Article schema markup is JSON-LD structured data based on the Schema.org Article type. It gives search engines explicit signals about who wrote a piece of content, when it was published, who the publisher is, and what the headline and representative image are. Use it on long-form editorial content, news stories, and blog posts where authorship, freshness, and publisher identity matter to the reader and to search engines. It is not the right choice for product pages, FAQ pages, or how-to guides — those have their own Schema.org types with different required properties and rich result eligibility.
When to use Article vs BlogPosting vs NewsArticle
Schema.org defines a hierarchy here: Article is the parent type, and BlogPosting and NewsArticle are subtypes that inherit all of its properties and add semantic specificity.
- Article — the broadest type. Use it for long-form editorial content that does not fit neatly into a blog or news context: white papers, research pieces, opinion essays, evergreen guides. Google accepts it for article rich results but treats it as a general category.
- BlogPosting — semantically more accurate for blog-format content. If the page lives in a blog section, has a single author, and is written in a first-person or perspective-driven voice,
BlogPostingis the correct type. It signals to Google (and to AI systems parsing your content) that this is blog content rather than a news story or technical report. - NewsArticle — use only if your content is genuinely news-oriented and time-sensitive: breaking news, event coverage, press releases. Google applies stricter criteria here and the Top Stories carousel has its own eligibility requirements beyond just adding this type.
Either Article or BlogPosting will satisfy Google’s parser for article rich results. The distinction matters more for topical categorization in AI systems than for traditional rich result eligibility.
Required and recommended properties
Google’s structured data documentation distinguishes between required and recommended fields. Required fields are the minimum to be eligible for article rich results. Recommended fields improve the quality of the rich result and the confidence of entity signals.
- headline (required) — the article title. Must be 110 characters or fewer. Must match the visible
<h1>on the page — do not use a different string in the markup than what the user sees. - image (required) — a full URL to a representative image. Minimum 1200 pixels wide for the large image rich result format. Relative URLs are invalid here. Missing or undersized images are the most common reason article markup fails validation.
- datePublished (required) — ISO 8601 format date of first publication (e.g.,
2025-03-10). Google uses this for freshness signals and for Top Stories eligibility. - author (required) — a
PersonorOrganizationentity with at minimum anameproperty. Including aurlpointing to an author profile page strengthens the entity connection and is increasingly important for E-E-A-T signals. - publisher (recommended) — an
Organizationwithnameand alogoobject. The logo must meet Google’s image size requirements. Publisher is technically recommended rather than required, but in practice omitting it weakens the structured data and reduces Google News eligibility. - dateModified (recommended) — ISO 8601 date of the most recent substantive update. Include this and keep it accurate. Setting it to the current date on every deploy when content has not actually changed is a pattern Google notices and discounts.
- description (recommended) — a short summary of the article. Not required for rich results but useful for entity understanding and often used in Discover card formatting.
Article schema JSON-LD example
Here is a complete Article block with all required and key recommended properties. All JSON-LD keys and string values use single quotes.
<script type='application/ld+json'>
{
'@context': 'https://schema.org',
'@type': 'Article',
'headline': 'How to Audit Your Schema Markup in 30 Minutes',
'image': 'https://terrysamuels.com/images/schema-audit-guide.jpg',
'datePublished': '2025-03-10',
'dateModified': '2025-11-04',
'author': {
'@type': 'Person',
'name': 'Terry Samuels',
'url': 'https://terrysamuels.com/'
},
'publisher': {
'@type': 'Organization',
'name': 'Salterra Digital',
'logo': {
'@type': 'ImageObject',
'url': 'https://terrysamuels.com/images/salterra-logo.png',
'width': 600,
'height': 60
}
},
'description': 'A step-by-step walkthrough of auditing structured data on any site using the Rich Results Test and Schema Markup Validator.',
'mainEntityOfPage': {
'@type': 'WebPage',
'@id': 'https://terrysamuels.com/how-to-audit-schema-markup/'
}
}
</script>
The mainEntityOfPage property ties the article to its canonical URL as the primary topic of that page — useful for disambiguation when a domain publishes multiple pieces and Google is mapping content to entities.
How to add article schema markup
The method depends on your platform.
WordPress with Yoast SEO or RankMath
Both Yoast SEO and RankMath generate Article or BlogPosting markup automatically on post pages. Yoast outputs a full schema graph including author, publisher, and datePublished. RankMath does the same and allows per-post schema type overrides. The practical issue is that both plugins set the author entity based on the WordPress user profile — if the author profile page is thin or missing, the entity signal is weak. Strengthen it by ensuring each author has a complete profile with a bio, photo, and external links.
Manual JSON-LD injection
On any platform that allows injecting code into the page <head>, you can add the JSON-LD block directly. On WordPress without a schema plugin, add it via a function in functions.php or via a per-post custom field that a template reads and outputs. On Squarespace, use per-page code injection. On custom HTML sites, add the <script type='application/ld+json'> block directly in the <head> of each article page. Static sites can automate this through their build process using the article metadata.
How to test article schema markup
Before pushing article schema to production, validate it in both tools:
- Google Rich Results Test — paste the URL or the raw HTML and see whether Google detects the
Articletype, which fields are present, and whether any required fields are missing or invalid. This is the definitive check for rich result eligibility. - Schema Markup Validator (validator.schema.org) — the Schema.org validator tests against the full specification. It will catch things the Rich Results Test ignores, including type mismatches and deprecated property usage.
If you manage a large library of articles, Google Search Console’s Enhancements section reports on structured data errors across all crawled pages over time — useful for catching regressions after plugin updates or template changes.
Article schema and AI Overviews
Large language models and AI Overview systems in Google Search use structured data as a translator — it gives them explicit signals about entity relationships that they would otherwise have to infer from unstructured text. For article content specifically, a well-formed Article block with a named author entity linked to a profile URL tells these systems who produced the content, when it was current, and who the publisher is. This is the mechanical underpinning of E-E-A-T as a machine-readable signal rather than an editorial judgment.
In practice, sites with consistent author entity data across their article corpus are better positioned to be cited in AI-generated answers than sites where authorship exists only in byline text. The sameAs property on the Person entity — linking to the author’s LinkedIn profile, Wikipedia entry, or Wikidata ID — extends the entity connection beyond your domain and into a broader knowledge graph that AI systems can cross-reference.
Common mistakes with article schema markup
- Using Article on non-editorial pages. Product listings, category pages, and service pages are not articles. Applying
Articlemarkup to them misrepresents the content and can trigger validation warnings. Each page should use the Schema.org type that most accurately reflects what the page actually is. - Omitting or undersizing the image. Google requires a representative image with a minimum width of 1200px for the large image rich result format. Missing the image entirely, or using a small thumbnail, is the most common reason article markup fails validation.
- Gaming dateModified. Setting
dateModifiedto the current date on every deploy even when content has not changed is a detectable pattern. Search engines discount the freshness signal when they see it updating on a fixed cadence regardless of content changes. Only update it when you have made substantive edits to the article. - Headline mismatch. The
headlineproperty must match the visible<h1>on the page. Structured data that contradicts visible content is a violation of Google’s guidelines and can result in the markup being ignored or penalized. - Author as a plain string. Nesting the author as
'author': 'Terry Samuels'instead of aPersonentity with aurlorsameAsproperty loses the entity connection. The string tells Google a name; the entity object tells Google who that person is in the knowledge graph.
- BlogPosting Schema MarkupHow to implement BlogPosting specifically for blog content
- How to Test Schema MarkupStep-by-step validation with the Rich Results Test and Schema Markup Validator
- Schema Markup AuditFull audit of your current structured data output and gap analysis
If you are not sure whether your articles are structured correctly or whether the markup is improving your visibility in News and Discover, schema markup consulting covers Article, NewsArticle, and BlogPosting implementations from audit through deployment.