XooCode(){

Blog

Blog is a CreativeWork subtype for the container around BlogPosting entries: the blog as a publication, not an individual post. It adds 3 direct properties:

  • blogPost (BlogPosting): individual posts within the blog, array-valued.
  • blogPosts (BlogPosting): deprecated alias; use blogPost.
  • issn (Text): if the blog has a registered ISSN.

Publish Blog markup on your blog's index / landing page, not on individual posts. Each BlogPosting then links back via isPartOf to the Blog entity.

Full example of schema.org/Blog json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Blog
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Blog",
  "@id": "https://xoocode.com/blog#blog",
  "name": "Xoo Code Engineering",
  "description": "Engineering notes from the Xoo Code team: structured data, TypeScript, humane web fundamentals.",
  "url": "https://xoocode.com/blog",
  "inLanguage": "en",
  "publisher": { "@type": "Organization", "name": "Xoo Code", "url": "https://xoocode.com" },
  "blogPost": [
    { "@type": "BlogPosting", "@id": "https://xoocode.com/blog/typed-seo", "headline": "Typed SEO is a different discipline", "datePublished": "2026-04-05" },
    { "@type": "BlogPosting", "@id": "https://xoocode.com/blog/validator-rules", "headline": "Why we wrote our own validator rules", "datePublished": "2026-03-21" }
  ]
}
</script>

Minimal valid version

The smallest markup that still produces a valid Blog entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/Blog (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Blog",
  "name": "Xoo Code Engineering",
  "url": "https://xoocode.com/blog"
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

Common Blog mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Blog on an individual post

    Wrong
    Blog on a single article page
    Right
    Blog on the index; BlogPosting on each post, linked via isPartOf

    Blog is the publication; BlogPosting is the article. Using Blog on a post flattens the relationship.

  2. 02

    Using blogPosts instead of blogPost

    Wrong
    "blogPosts": [...]
    Right
    "blogPost": [...]

    blogPosts is deprecated; use the singular-named blogPost (which still accepts arrays).

Also mentioned in 1 other example

Blog also appears in BlogPosting. See the full Blog schema page for every reference.

About the example data

The Xoo Code Engineering blog, where all Xoo Code BlogPosting entries live.

Comments

Loading comments...

Leave a comment