BlogPosting Schema Generator
Fill out a form. Get valid BlogPosting JSON-LD.
A form-driven builder for schema.org BlogPosting markup with a live JSON-LD preview that updates as you type. Covers author attribution with @id cross-referencing, the image triple (1:1, 4:3, 16:9), three date fields, and an Essential/Full coverage toggle. Empty fields are omitted so the output stays valid at every keystroke. Everything runs in your browser: nothing is sent to XooCode.
BlogPosting form
Title of the blog posting. Google truncates at 110 characters. 52/110
Summary of the blog posting. Google truncates at ~160 chars in the SERP.
Images (three aspect ratios)
Google's Article rich result requires images in three aspect ratios: 1:1 (1200x1200), 4:3 (1200x900), and 16:9 (1200x675). All three are recommended for full rich result eligibility.
Square. Minimum 1200x1200px.
Landscape. Minimum 1200x900px.
Widescreen. Minimum 1200x675px.
Canonical URL of the article page.
When the article was first published.
When the article was last updated.
Emits as nested Person. In Full mode you can use @id instead.
Emits as nested Organization.
Live JSON-LD output
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Why We Switched to Water-Based Ink for XooTee Prints",
"description": "The story behind our switch from plastisol to water-based ink for all XooTee Classic screen prints, and what it means for print quality, feel, and wash longevity.",
"image": [
"https://xoocode.com/blog/images/water-ink-switch-1x1.jpg",
"https://xoocode.com/blog/images/water-ink-switch-4x3.jpg",
"https://xoocode.com/blog/images/water-ink-switch-16x9.jpg"
],
"url": "https://xoocode.com/blog/water-based-ink-switch",
"datePublished": "2025-11-20",
"dateModified": "2026-01-05",
"author": {
"@type": "Person",
"name": "Peter Valenta"
},
"publisher": {
"@type": "Organization",
"name": "XooCode Blog"
}
}
</script>Updates as you type. Empty fields are omitted from the output. Click the copy icon above to copy the full <script> tag ready for pasting into your HTML head.
How to use the generator
The tool is a two-pane split: a form on the left, a live JSON-LD preview on the right. Type into any field and the preview updates immediately. When you’re done, click the copy icon in the preview header and paste the <script> block into your page’s <head> tag. Four steps cover the full workflow.
- 1
Start from the seed
Click the Load example button above the form. It populates every field with Peter Valenta’s water-based ink blog post from the XooCode Blog. Use it to see what a fully populated output looks like, then clear and start over for your own blog post. - 2
Pick coverage mode
The Coverage dropdown has two settings. Essential shows the core fields Google needs for Article rich results: headline, description, images, URL, dates, author, and publisher. Full adds alternativeHeadline, articleBody, wordCount, articleSection, keywords, inLanguage, mainEntityOfPage, paywall fields, and the author@idtoggle. - 3
Fill in the image triple
Google’s Article rich result requires images in three aspect ratios: 1:1 (square), 4:3 (landscape), and 16:9 (widescreen). The form has one URL field for each. If you only have one image, you can enter the same URL in all three fields. Google will accept it but the rendering quality drops when the aspect ratio does not match the slot. - 4
Copy the output
The preview pane shows the full<script type="application/ld+json">wrapper with syntax highlighting. Click the copy icon to grab it and paste into your page head. Test it with Google’s Rich Results Test before publishing.
Why BlogPosting instead of plain Article
BlogPosting and Article share every property. The only difference is the @type string. So why bother? Because Google treats them differently for author attribution and content discovery.
BlogPosting triggers the author knowledge panel card in search results when the author has a Google Knowledge Panel. It also feeds the Discover “Following” tab, where users subscribe to individual blog authors. Plain Article does not trigger these features. If your content is published on a blog with an individual author byline, BlogPosting is the correct choice even though the properties are identical to Article.
The distinction matters most for independent bloggers and multi-author company blogs where byline identity drives readership. For an unsigned corporate knowledge-base article or a reference page with no personal author, plain Article is the better fit because the author-attribution features have nothing to attach to.
Dates for blog content
The generator exposes three date fields, each serving a distinct purpose for blog content.
datePublished is required. Google uses it for the “Published:” label in the SERP snippet and for recency ranking signals. Leave this out and your Article rich result will not render.
dateModified is important for evergreen content you update over time. Google shows “Updated:” in the SERP when dateModified differs meaningfully from datePublished. For a blog post you refresh with new information every quarter, keeping dateModified current tells Google the content is maintained, not stale.
dateCreated (Full mode only) records the draft date. This is rarely useful for blog posts because the publication date is what readers and search engines care about. Include it if your CMS tracks draft creation separately and you want the structured data to reflect that.
What this generator is and isn’t
The BlogPosting Schema Generator is a tightly scoped tool. Knowing what it doesn’t try to do saves you time hunting for features that were never supposed to exist.
It IS a BlogPosting builder
It is NOT a NewsArticle builder
dateline or print metadata fields.It IS author-attribution aware
It is NOT a Knowledge Panel tool
It IS Essential/Full aware
It is NOT a Rich Results Test
Authoritative sources behind BlogPosting
The generator’s behaviour is sourced from primary documentation. These are the references to consult when you need to verify anything the tool produces.
- schema.org/BlogPosting – the canonical vocabulary definition. BlogPosting inherits everything from
SocialMediaPostingandArticleabove that, with no additional properties of its own. - Google Article structured data documentation – the required and recommended property lists that apply to all Article subtypes, including BlogPosting. This is the source for the Essential-mode field set.
- Google author structured data – Google’s guide to author markup, including the
@idcross-referencing pattern the Full-mode toggle implements. - Google Rich Results Test – run your generator output through this to catch value-level issues before publishing. Free and immediate.