Article or BlogPosting schema is present on content pages
Why it matters
schema-org Article and schema-org BlogPosting unlock Top Stories carousel eligibility on mobile Search and Google Discover — two high-traffic surfaces where content without Article markup cannot appear. Google's documentation states that datePublished, author, and image are required for rich result eligibility; a blog post missing these fields is indexed as a plain page, not an article, losing carousel placement to competitors whose posts carry complete markup. For any site relying on organic content discovery, this is a direct distribution gap: the same words, worse placement, because the schema signals are missing.
Severity rationale
Info because most blog traffic still flows through standard search results even without Article schema, but the absence closes Top Stories and Discover carousels entirely — a meaningful lost channel for content-driven sites.
Remediation
Add BlogPosting or Article schema to your blog post template. Generate it server-side from your post metadata so the values always match visible content (mismatches between schema and visible text can trigger a rich result penalty).
// app/blog/[slug]/page.tsx
export default async function BlogPost({ params }: { params: { slug: string } }) {
const post = await getPost(params.slug)
const schema = {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
headline: post.title, // must match <h1>
datePublished: post.publishedAt,
dateModified: post.updatedAt ?? post.publishedAt,
author: { '@type': 'Person', name: post.authorName },
image: post.coverImageUrl, // required for Top Stories
description: post.excerpt,
}
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
{/* article content */}
</>
)
}
See the markup-content-match check to verify that schema field values stay in sync with visible page content.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Marketing SEO Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- schema-org · BlogPosting — Article/BlogPosting schema on content pages
- schema-org · Article — Article schema with required headline/author/datePublished
Taxons
History
- 2026-04-18·v1.0.0·Initial import from marketing-advanced-seo·automated