On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

BlogPosting

BlogPosting is a subtype of Article that describes blog content. It inherits all Article fields and carries the same Google structured data requirements. Search engines and AI answer engines treat BlogPosting and Article identically for rich results, but BlogPosting provides a more specific type signal that helps classify content as informal, regularly published commentary rather than formal journalism or academic writing.

Use BlogPosting for blog posts, opinion pieces, and serial content published under a blog section. Google supports BlogPosting for article rich results, Top Stories (less common than NewsArticle), and author knowledge panels.

Fields by Google status

Recommended

  • author — The person or organization that wrote the post.
  • dateModified — When the post was last updated (ISO 8601).
  • datePublished — When the post was first published (ISO 8601).
  • headline — The title of the blog post.

Additional fields (not in Google docs)

  • articleBody — The full text of the post. Most implementations omit this due to size.
  • articleSection — The blog category (e.g., "Engineering", "Product Updates").
  • keywords — Topic tags describing the post's subject matter.
  • mainEntity — The primary entity the post is about.
  • mainEntityOfPage — The page URL where this post is the main content.
  • publisher — The organization that published the post.
  • wordCount — The number of words in the post body.

JSON-LD example

{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Why We Switched from REST to GraphQL",
  "author": {
    "@type": "Person",
    "name": "Guillermo Rauch",
    "url": "https://rauchg.com"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Vercel",
    "url": "https://vercel.com"
  },
  "datePublished": "2024-03-15T09:00:00Z",
  "dateModified": "2024-04-02T14:30:00Z",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://vercel.com/blog/why-we-switched-to-graphql"
  },
  "articleSection": "Engineering",
  "keywords": ["GraphQL", "REST", "API design"]
}

When to use BlogPosting

Use BlogPosting on any page that functions as a blog post: dated entries published under a blog or journal section of a site. If the content is a news report from a recognized news outlet, use NewsArticle instead. If the content does not fit a specific subtype, use the parent Article type.

BlogPosting shares all fields with Article. The only difference is the @type value, which signals content classification to search engines and AI systems.

Related types

  • Article — parent type; use when the content is not specifically a blog post
  • NewsArticle — for news reporting from recognized publishers
  • WebPage — the broader page container that BlogPosting content lives on
On this page:
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Need help with schema on your site?

We implement structured data for Webflow sites — from audit to deployment.

Work with us

Work with us