Articleis the parent type.BlogPostingfor blog posts,NewsArticlefor news. Pick the most specific subtype that applies.- Required: nothing per Google. Recommended floor:
headline,image,datePublished,dateModified,author,publisher. - Author should be a Person entity with
name,url, andsameAs. Plain strings break entity matching. - Ship 3 image aspect ratios (1:1, 4:3, 16:9). Google picks the right one per surface; missing ratios drop eligibility.
- Use
@idreferences to your Organization + Person schemas instead of nesting full objects in every Article.
Chapter 1. Before you start
Article schema is what tells search engines and AI engines that a page is an editorial unit of content with an author, a publication date, and a publisher. Every blog post on your site needs it; news articles, opinion pieces, and long-form editorial all use the same family of types.
- Your Organization schema and WebSite schema already published. Article references both via
publisherandisPartOf. - Author info for every byline on the site. At minimum: name, role, headshot URL, and one canonical profile (LinkedIn). Skip "Editorial Team" attributions - Google QRG flags these as Low quality.
- Three image aspect ratios for every article hero: 1:1 (square), 4:3 (standard), 16:9 (wide). Minimum 1200 pixels wide for the largest variant.
- Accurate
datePublishedanddateModifiedvisible on the page that match the schema values. Don't fake refresh dates.
publisher
set to a plain string instead of an Organization @id reference - which means
every article was a free-floating entity unconnected to the brand record. 28 had
author missing sameAs, breaking authorship entity matching that
Google QRG treats as critical for E-E-A-T.
Chapter 2. Article, BlogPosting, or NewsArticle: which subtype?
Use the most specific subtype that fits. Google supports three:
| Subtype | Use for | Special properties |
|---|---|---|
Article | Generic editorial content (fallback) | Base properties only |
BlogPosting | Blog posts (most common) | Inherits Article + suitable for Blog context |
NewsArticle | News articles, especially time-sensitive | printEdition, printPage, printSection, dateline |
For a blog post on a brand's /blog path: use BlogPosting. For a
news story on a publisher site: use NewsArticle. For anything that doesn't
fit either (a long-form editorial review, a case study): use Article.
Sub-subtypes also exist: OpinionNewsArticle, ReviewNewsArticle,
AnalysisNewsArticle, ReportageNewsArticle. Use them when
applicable; default to the parent if not sure.
Chapter 3. Required and recommended properties
Per Google's Article documentation, there are no strictly required properties. The recommended floor below is what we ship on every client editorial page.
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"@id": "https://www.example.com/blog/post-slug#article",
"headline": "Article Title Goes Here",
"description": "One-sentence summary of the article.",
"datePublished": "2026-05-20T08:00:00-05:00",
"dateModified": "2026-05-20T08:00:00-05:00",
"author": { "@id": "https://www.example.com/about#author-slug" },
"publisher": { "@id": "https://www.example.com/#organization" },
"isPartOf": { "@id": "https://www.example.com/#website" },
"image": [
"https://www.example.com/blog/post-slug/hero-1x1.jpg",
"https://www.example.com/blog/post-slug/hero-4x3.jpg",
"https://www.example.com/blog/post-slug/hero-16x9.jpg"
],
"mainEntityOfPage": "https://www.example.com/blog/post-slug",
"articleSection": "Analytics",
"keywords": "GA4, Shopify, ecommerce analytics",
"wordCount": 2150
}
Note the @id pattern: author, publisher, and
isPartOf reference other schemas by their @id rather than
duplicating the full Person, Organization, and WebSite blocks inside every Article. This
keeps the entity graph clean and reduces breakage when you update Organization details once.
Chapter 4. Author and publisher entity references
Author must be a Person (or sometimes Organization) entity, not a plain string. Google QRG explicitly flags "Editorial Team" or anonymous authorship as Low quality for E-E-A-T evaluation. The author block needs name, url, and sameAs at minimum.
{
"@type": "Person",
"@id": "https://www.example.com/about#jane-doe",
"name": "Jane Doe",
"jobTitle": "Senior Editor, Example Brand",
"url": "https://www.example.com/about#jane-doe",
"image": "https://www.example.com/brand/jane-avatar.jpg",
"description": "Jane covers analytics and measurement for the Example Brand audience.",
"sameAs": [
"https://www.linkedin.com/in/janedoe",
"https://x.com/janedoe"
],
"worksFor": { "@id": "https://www.example.com/#organization" }
}
Publisher references the Organization schema you shipped on the homepage. Use the
@id reference rather than re-declaring the full Organization in every Article.
If you missed shipping Organization schema, see post #5 in this cluster, the
Organization
schema guide.
Chapter 5. The image array (1:1, 4:3, 16:9)
Google requires images for rich result eligibility and recommends three aspect ratios per article: 1:1 (square), 4:3 (standard), and 16:9 (wide). Different SERP surfaces and AI engine outputs prefer different ratios; shipping all three gives Google the flexibility to render the article in any context.
- 1:1 square: minimum 1200x1200 pixels.
- 4:3 standard: minimum 1600x1200 pixels.
- 16:9 wide: minimum 1920x1080 pixels (also serves as Open Graph image).
Generate all three from the same source image. Most static-site generators and CMSs can
produce them automatically; for manual workflows, use sharp or any image tool
that crops to fixed ratios. Each URL in the image array must be publicly
crawlable and indexable - blocking the image URL via robots.txt breaks rich result
eligibility.
Chapter 6. Where do you place Article schema?
One Article schema per editorial page, embedded inside a
<script type="application/ld+json"> tag in <head> or
before </body>. Either location works for Google; head is
more conventional and ensures the schema is parsed before any body content loads.
Do not ship Article schema on:
- Category or archive pages (those need
CollectionPageif anything). - Product pages (those need
Product+Offer, covered in post #8). - About pages (those need
AboutPageorWebPage). - Landing pages with no editorial author or publication date.
- Homepage (use
WebSite+Organizationinstead).
Match the schema to what the page actually is. Shipping Article on a product page is a Google policy violation (structured data must match content).
Chapter 7. The breakages we see most often
Ranked by frequency across 47 ecommerce content audits over the past 24 months:
- Publisher as a plain string instead of an Organization @id reference: entity graph broken. 31 of 47 audited sites.
- Author missing
sameAs: E-E-A-T authorship signal incomplete. 28 of 47. - Only one image aspect ratio shipped: rich result eligibility limited. 22 of 47.
dateModifiedalways equalsdatePublished: tells search engines nothing about freshness. 18 of 47.- Author is a string ("Editorial Team") instead of a Person entity: QRG-flagged. 14 of 47.
- Article schema on non-article pages (product, landing, about): policy violation. 11 of 47.
- Image URLs blocked by robots.txt: rich result eligibility broken. 6 of 47.
We track Article schema integrity through our Sentry product; the structured-data rule set catches every breakage above on running sites.
FAQ
What's the difference between Article, BlogPosting, and NewsArticle?
Article is the parent type. BlogPosting is a subtype for blog
content. NewsArticle is a subtype for news content with extra properties
like dateline, printEdition, and printSection.
Use the most specific subtype that applies; Article is the fallback when
neither blog nor news fits.
What's actually required for Article schema?
Per Google's documentation, no properties are strictly required. The recommended floor
is headline, image, datePublished,
dateModified, author, and publisher. Missing any
of these reduces rich-result eligibility and weakens the E-E-A-T signal.
How do I do author schema properly?
Author should be a Person entity with name, url,
and sameAs at minimum. Use @id to reference a canonical author
profile URL on your site so multiple articles by the same author tie back to one entity
record. Avoid plain-string authors like "Editorial Team" - Google QRG flags them as Low
quality.
Should I include the article body in articleBody?
Optional. Google parses the visible page content directly, so articleBody
doesn't add ranking benefit. The exception is for paywalled content where the
articleBody field, combined with isAccessibleForFree: false and
the CSS-class selector, signals to Google that the content is paywalled but indexable.
Where does Article schema go on the page?
Inside a <script type="application/ld+json"> tag in
<head> or before </body>. One Article schema per
page. Do not duplicate it across the head and body, and do not ship it on non-article
page types (product, landing, about).
Can I use Article schema on a landing page?
Only if the landing page is genuinely editorial - it has an author, a publication date,
and substantive content. Marketing landing pages without those elements should use
WebPage instead. Google's structured-data policy requires schema to match
content; misusing Article for non-editorial pages can trigger a manual action.
References
- Schema.org. "Article." schema.org/Article
- Schema.org. "BlogPosting." schema.org/BlogPosting
- Schema.org. "NewsArticle." schema.org/NewsArticle
- Google Search Central. "Article (Article, NewsArticle, BlogPosting) structured data." developers.google.com/search/docs/appearance/structured-data/article
- Google Search Central. "Structured data general guidelines." developers.google.com/search/docs/appearance/structured-data/sd-policies
- Schema.org. "Schema Markup Validator." validator.schema.org
- Google. "Rich Results Test." search.google.com/test/rich-results