Free tool · No signup
Article Schema Generator
Article markup describes a blog post or news story: its headline, images, author and when it was published and updated. It helps Google show the right title, image and date.
JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to brew better coffee at home",
"description": "Five changes that make the biggest difference, from grind size to water temperature.",
"url": "https://www.example.com/blog/better-coffee",
"mainEntityOfPage": "https://www.example.com/blog/better-coffee",
"image": [
"https://www.example.com/images/coffee-1200.jpg"
],
"datePublished": "2026-09-14",
"dateModified": "2026-10-02",
"author": [
{
"@type": "Person",
"name": "Jane Doe",
"url": "https://www.example.com/about/jane"
}
],
"publisher": {
"@type": "Organization",
"name": "Example Coffee Co",
"logo": {
"@type": "ImageObject",
"url": "https://www.example.com/logo.png"
}
}
}
</script>Valid Article markup
In the Rich Results Test, choose Code and paste. Your data stays in this browser: nothing is sent to a server.
example.com › blog › better-coffee
How to brew better coffee at home
2 Oct 2026 — Five changes that make the biggest difference, from grind size to water temperature.
Google doesn't require any properties for Article, but uses headline, image, author and dates for article features and Top Stories. Google's gallery
What Google can show
Google doesn't require any properties for Article, but uses headline, image, author and dates for article features and Top Stories.
Required and recommended properties
Google needs these for Article markup to be valid:
| Required | Notes |
|---|---|
| Headline |
| Recommended | Notes |
|---|---|
| Article URL | |
| Images | At least 1200 px wide. Google prefers 16×9, 4×3 and 1×1 versions. |
| Published | |
| Last updated | |
| Authors | Name, Type, Author page URL |
A complete example
The example values in the generator above produce this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to brew better coffee at home",
"description": "Five changes that make the biggest difference, from grind size to water temperature.",
"url": "https://www.example.com/blog/better-coffee",
"mainEntityOfPage": "https://www.example.com/blog/better-coffee",
"image": [
"https://www.example.com/images/coffee-1200.jpg"
],
"datePublished": "2026-09-14",
"dateModified": "2026-10-02",
"author": [
{
"@type": "Person",
"name": "Jane Doe",
"url": "https://www.example.com/about/jane"
}
],
"publisher": {
"@type": "Organization",
"name": "Example Coffee Co",
"logo": {
"@type": "ImageObject",
"url": "https://www.example.com/logo.png"
}
}
}
</script>Where to paste the code
- WordPress: check what your SEO plugin (Yoast, Rank Math) already outputs, then add the block with a header-code plugin such as WPCode, or in your child theme's
header.phpbefore</head>. For one page only, use a Custom HTML block in that page. - Shopify: for site-wide markup such as Organization, go to Online Store › Themes › Edit code and paste it in
theme.liquidbefore</head>. For products, edit the product section (oftenmain-product.liquid) and use Liquid variables such as{{ product.title | json }}so every product gets its own values. Most themes already output basic Product markup. - Next.js: render it in the page component as
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(data).replace(/</g, "\\u003c") }} />. Escaping<stops a value from closing the script tag early; this site does the same. - Webflow: Page settings › Custom code › Inside <head> tag. For CMS collection pages, add it to the template's page settings and insert fields from the collection.
Test before you publish
Paste the code into Google's Rich Results Test, then test the live page once it's published. Make sure every value matches what people see on the page.
By Muhammad Saif · Updated
Questions
Should I use Article, BlogPosting or NewsArticle?
BlogPosting for blog posts, NewsArticle for news reporting, and Article for anything else. Google treats all three the same way for article features.
Does the author need a URL?
It's not required, but linking each author to a page about them (or their profile) helps Google tell authors apart. Put only the name in the name field, not "By Jane Doe" or a job title.
Should dateModified change on every small edit?
Update it when the content meaningfully changes. Bumping the date without real changes doesn't help and can look misleading.
Does schema markup improve rankings?
Not directly. Google has said structured data isn't a general ranking factor. It makes pages eligible for rich results, such as review stars, prices and breadcrumbs, which can make a result stand out and earn more clicks.
JSON-LD or Microdata?
JSON-LD. Google recommends it because it sits in one script block, separate from your HTML, so it's easier to add and maintain. Microdata and RDFa still work but are woven into the markup.