Article schema: headline, images, dates and author, done right
You want Article schema that passes Google’s checks and helps machines read your posts. This guide shows you the fields that matter and how to wire them. It is for founders who ship their own blog or docs.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
Article, BlogPosting or NewsArticle: which to use
Pick the most specific type your page qualifies for. BlogPosting and NewsArticle are both subtypes of Article. Google reads all three.
- Use BlogPosting for a typical company blog post at yourproduct.com/blog/new-feature.
- Use NewsArticle for time-sensitive news reporting. Not a release note. A real news story.
- Use Article when neither of the above fits, such as a long guide at /guides/getting-started.
You can start as Article and switch to BlogPosting later without changing the URL. The fields below are the same across these types.
The fields Google recommends for articles
- headline: the article’s headline. Google truncates long headlines.
- image: several high resolution images in 16:9, 4:3 and 1:1.
- datePublished: when this article first went live, in ISO 8601.
- dateModified: when you last changed the visible content, in ISO 8601.
- author: a Person or Organization with name and url.
These fields make the page eligible for article rich results. Structured data is not a ranking factor by itself, but it helps machines read the page and can enable features.
Headline: what to put in and what to match
Use the on-page H1 as the schema headline. Do not stuff keywords that are not visible on the page. Keep it human and specific.
Aim for a concise headline. Google truncates long headlines in results. If your H1 runs long, set a shorter title tag for results, but keep headline aligned with what people see on the page.
Example before: H1 says “We shipped some stuff” but headline is “All-new AI Analytics for SaaS Founders”. That is a mismatch. Fix: make both “AI analytics for SaaS founders: what we shipped in September”.
Images: sizes, ratios and URLs that work
Provide several high resolution images. Use 16:9, 4:3 and 1:1. Use absolute URLs that are crawlable. Put the main image on the page, not only in JSON-LD.
- One 16:9 image, for example 1280 by 720 pixels.
- One 4:3 image, for example 1280 by 960 pixels.
- One 1:1 image, for example 1408 by 1408 pixels.
These sizes are typical examples, not measured. Serve fast images. Compress them and keep them responsive. Use HTTPS. The image URLs must return an HTTP 2xx and allow crawling. Do not use data URLs in schema.
If you use a CDN that needs a token, make sure the schema image URLs do not require cookies or headers. The Rich Results Test will surface blocked images.
Dates: publish, modify and what must match on the page
Add both dates. Use ISO 8601. Show them on the page in a human format. The visible dates must match the JSON-LD values.
- datePublished is the first time you published the article at this URL.
- dateModified changes only when you edit the visible content, not when you fix a typo in schema.
Use full timestamps if you have them, for example 2026-11-14T13:31:24+01:15. Be consistent. Do not switch time zones between fields. This is illustrative, not measured.
If you republish an old post at the same URL, keep datePublished as the original date and update dateModified. If you launch a new URL, set a new datePublished.
Where to place the markup: JSON-LD, head or body
Use JSON-LD. Google recommends it. You can place the script in the head or the body. A page may carry several types in one @graph.
Google renders pages, so it can read JSON-LD injected by JavaScript. The Rich Results Test reads the rendered page. Some answering crawlers do not run scripts. Prefer server-side output when you can.
Keep the schema consistent with what a user sees. Do not mark up content that is not on the page. Do not use relative URLs where an absolute one is needed.
What article schema changes in results
With valid article schema, your page can be eligible for article rich results. This can include thumbnails, dates and bylines. Schema makes eligibility possible, it does not guarantee display.
For news publishers, NewsArticle schema supports features like Top Stories. AMP is not required for Top Stories since 2021. Your content and site policies still decide inclusion.
Article schema also helps Discover and assistants understand the topic, images and byline. It does not replace quality, original reporting or expert writing.
A worked example: BlogPosting with image variants and a Person
Here is JSON-LD for a post at yourproduct.com/blog/launch-notes-september with three image ratios and a real author page. Adjust the dates, names and image URLs.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BlogPosting",
"@id": "https://yourproduct.com/blog/launch-notes-september#article",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://yourproduct.com/blog/launch-notes-september"
},
"headline": "September launch notes: faster dashboards and a new API",
"image": [
"https://yourproduct.com/images/blog/launch-notes-sept-16x9.jpg",
"https://yourproduct.com/images/blog/launch-notes-sept-4x3.jpg",
"https://yourproduct.com/images/blog/launch-notes-sept-1x1.jpg"
],
"datePublished": "2026-11-14T13:31:24+01:15",
"dateModified": "2026-11-18T10:16:24+01:15",
"author": {
"@type": "Person",
"@id": "https://yourproduct.com/authors/alex-lee#person",
"name": "Alex Lee",
"url": "https://yourproduct.com/authors/alex-lee"
},
"publisher": {
"@type": "Organization",
"@id": "https://yourproduct.com/#org",
"name": "YourProduct Inc.",
"url": "https://yourproduct.com/",
"logo": {
"@type": "ImageObject",
"url": "https://yourproduct.com/images/logo-112x112.png",
"width": 112,
"height": 112
}
}
},
{
"@type": "Person",
"@id": "https://yourproduct.com/authors/alex-lee#person",
"name": "Alex Lee",
"url": "https://yourproduct.com/authors/alex-lee",
"sameAs": [
"https://www.linkedin.com/in/example",
"https://x.com/example"
]
},
{
"@type": "Organization",
"@id": "https://yourproduct.com/#org",
"name": "YourProduct Inc.",
"url": "https://yourproduct.com/",
"logo": {
"@type": "ImageObject",
"url": "https://yourproduct.com/images/logo-112x112.png",
"width": 112,
"height": 112
}
}
]
}
</script>A fixed page shows the same headline and dates on the page as in the JSON-LD, uses absolute HTTPS image URLs that load, and links the byline to the author page.
NewsArticle example for a time-sensitive report
If you run a news section, switch the type to NewsArticle and keep the same core fields. Add articleSection if helpful and stick to newsroom practices on dates and bylines.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://yourproduct.com/news/funding-announcement"
},
"headline": "YourProduct announces seed funding to grow its analytics suite",
"image": [
"https://yourproduct.com/images/news/funding-16x9.jpg",
"https://yourproduct.com/images/news/funding-4x3.jpg",
"https://yourproduct.com/images/news/funding-1x1.jpg"
],
"datePublished": "2026-11-12T10:16:24+01:15",
"dateModified": "2026-11-12T10:16:24+01:15",
"author": {
"@type": "Organization",
"name": "YourProduct Newsroom",
"url": "https://yourproduct.com/news"
},
"publisher": {
"@type": "Organization",
"name": "YourProduct Inc.",
"url": "https://yourproduct.com/",
"logo": {
"@type": "ImageObject",
"url": "https://yourproduct.com/images/logo-112x112.png",
"width": 112,
"height": 112
}
}
}
</script>Testing: Rich Results Test vs Schema Markup Validator
Run both. They answer different questions. Use the Rich Results Test for Google features and the Schema Markup Validator for schema.org syntax.
| Tool | URL | What it checks | What to fix with it |
|---|---|---|---|
| Rich Results Test | search.google.com/test/rich-results | Eligibility for Google rich results, missing or invalid fields for those features | Errors and warnings for Google types, like Article |
| Schema Markup Validator | validator.schema.org | Conformance to schema.org vocabulary, graph structure and types | Syntax errors, wrong types or properties, missing required fields per schema.org |
The Structured Data Testing Tool was retired in 2020. Do not use legacy screenshots in docs or pull requests. Test the rendered page, not only your template. Paste the URL into both tools.
- Search Console shows an enhancement report for article types it finds on your site. Use it to spot sitewide errors.
- The tests read the rendered page. If you inject JSON-LD after load, these tests will still find it.
- Fix common errors: missing required fields, relative URLs where absolute are needed, dates not in ISO 8601, content marked up but not visible on the page, nested types that break the graph.
Implement and ship: a short checklist
Map your templates
List which pages are Article, BlogPosting or NewsArticle. For example, /blog/* as BlogPosting, /news/* as NewsArticle, /guides/* as Article.
Output JSON-LD server-side
Place one <script type="application/ld+json"> per page, in head or body. Prefer server-side so assistants that do not run JavaScript can read it.
Match visible content
Show the headline, dates and byline on the page. Use the same values in JSON-LD. Use absolute HTTPS URLs for images and pages.
Add multiple image ratios
Provide at least one 16:9, one 4:3 and one 1:1 image URL. Host them at stable URLs that return an HTTP 2xx.
Validate on staging
Open the staging URL in the Rich Results Test and the Schema Markup Validator. Fix every error before release.
Monitor in Search Console
After deploy, check the article enhancement report. Track new errors, warnings and affected URLs.
On /blog/launch-notes-september, your final pass should confirm the headline matches the H1, the dates are ISO 8601, the images load, and the author page resolves with an HTTP 2xx.
Troubleshooting the errors you will see
- Missing required field: you omitted headline, author, an image or a date. Add the field, not a placeholder.
- Relative URL: your image or mainEntityOfPage is /images/hero.jpg. Use https://yourproduct.com/images/hero.jpg.
- Date not in ISO 8601: 2 September 2026 is not valid. Use 2026-11-14 or a full timestamp with timezone.
- Marked-up content not visible: you put an author that is not on the page. Add the byline or remove the field.
- Nested types break the graph: your author is a string and a Person at once. Pick one consistent shape.
- Thumbnails missing in results: your images are too small or blocked. Supply higher-resolution images and make them crawlable.
Questions
Use BlogPosting for a typical blog post. It is a subtype of Article. Keep WebPage for generic page-level data like breadcrumbs or sitewide schema in a separate node if needed. A page can carry several types in one graph.
No. AMP has not been required for Top Stories since 2021. Valid NewsArticle schema helps eligibility but editorial quality and policies still decide inclusion.
The markup remains valid and readable by assistants. Since August 2023, Google shows FAQ rich results only for well-known government and health sites. Mark it up if it helps machines read your Q and A, but do not expect a rich result.
You can. Google renders pages and both the Rich Results Test and the Schema Markup Validator read the rendered output. Some assistants do not run scripts, so server-side JSON-LD is safer when you have that option.
Google recommends several high-resolution images in 16:9, 4:3 and 1:1. Supplying all three covers more placements. Use absolute URLs, fast delivery and make the main image visible on the page.
Update the on-page H1 and the JSON-LD headline to the same text. If it is a meaningful change to the content, also update dateModified and show the new date on the page.
Sources
Check my site, free
Paste one blog post URL into the free check and see in about thirty seconds how your article schema, searches around it and rivals on them look, with three findings shown.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideJSON-LD: how to write it, where to put it, how to test it
- GuideThe Rich Results Test: what it checks and what it does not
- GuideOrganization schema: the fields that feed your knowledge panel
- GuideBreadcrumbs: the navigation, the markup, and what Google shows
- GuideFAQ schema in 2026: valid, readable by assistants, no rich result
- GlossaryStructured data
- GuideHowTo schema: what happened to it and what to do instead
- Free toolStructured data checker