Schema Markup Generator

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.

Required by Google

Images

At least 1200 px wide. Google prefers 16×9, 4×3 and 1×1 versions.

Authors
  1. author 1

    A page about the author, such as their bio or profile.

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.

Search preview · approximate

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:

RequiredNotes
Headline
RecommendedNotes
Article URL
ImagesAt least 1200 px wide. Google prefers 16×9, 4×3 and 1×1 versions.
Published
Last updated
AuthorsName, 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.php before </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.liquid before </head>. For products, edit the product section (often main-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.