CiteLab

A Practical Guide to JSON-LD Structured Data for Blogs

Structured data tells search engines and AI exactly what your content means. This guide covers the JSON-LD schemas every blog should ship: Article, BreadcrumbList, Organization, and FAQPage.

By Yacine El Attaoui 2 min read Published
Abstract green gradient cover reading Schema
On this page

Structured data is a small block of JSON that translates your page into the vocabulary search engines and AI models already understand: schema.org. Adding it doesn’t change how your page looks — it changes how machines interpret it, which drives rich results and AI citations.

Why JSON-LD (and not microdata)

Google recommends JSON-LD: a single <script type="application/ld+json"> block, kept separate from your HTML. It’s easier to generate, template, and maintain than inline microdata, and it’s what every major engine prefers.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "A Practical Guide to JSON-LD Structured Data",
  "datePublished": "2026-06-11",
  "author": { "@type": "Person", "name": "Yacine El Attaoui" }
}
</script>

The four schemas every blog should ship

1. Article / BlogPosting

The core of any post. Include headline, description, image, datePublished, dateModified, author, and publisher. This makes you eligible for article rich results and gives AI engines clean metadata to attribute.

2. BreadcrumbList

Describes where a page sits in your hierarchy (Home → Blog → Post). It produces the breadcrumb trail in search results and helps engines understand site structure.

3. Organization (and WebSite)

Defines your brand once, site-wide: name, logo, URL, and social profiles. Over time this feeds the knowledge graph and links your content to a recognized entity.

4. FAQPage

Marks up question-and-answer sections. It’s one of the highest-leverage schemas for GEO because AI answer engines frequently mine well-formed Q&A pairs when composing responses. Treat it as machine-readable support for visible answers, not a guarantee of extra search-result space.

Connect your entities with @id

The real power comes from linking schemas together with @id. Define your Organization once with "@id": "https://example.com/#organization", then reference it from each article’s publisher field:

"publisher": { "@id": "https://example.com/#organization" }

This tells engines that every post belongs to the same publisher entity — a stronger signal than repeating the details on every page.

How to validate

Before you ship, test every template:

  1. Google Rich Results Test — confirms eligibility for rich results.
  2. Schema.org Validator — catches syntax and vocabulary errors.
  3. Search Console → Enhancements — monitors valid items and errors at scale over time.

Common mistakes to avoid

  • Marking up content that isn’t visible on the page — a guideline violation.
  • Mismatched dates between your schema and the rendered page.
  • Invalid image URLs (use absolute URLs, not relative paths).
  • Over-stuffing FAQ schema with promotional content instead of genuine answers.

Ship these four schemas, wire them together with @id, validate them, and your blog speaks the language search engines and AI models read fluently — the foundation of both SEO and GEO.

Frequently asked questions

Does JSON-LD guarantee rich results?
No. JSON-LD helps search engines understand eligible content, but Google decides whether to show a rich result based on query, page quality, policy compliance, and supported result types.
Which schema should a blog post use first?
Start with BlogPosting or Article, BreadcrumbList, Organization, and WebSite. Add FAQPage or HowTo only when the matching question-answer or step-by-step content is visible on the page.
Should FAQPage schema still be used for GEO?
Yes, when the FAQ is visible and useful to readers. Even when a search feature is limited, clear question-answer structure can still help machines parse and quote the page.
Share: X LinkedIn

Subscribe to the newsletter

Get new posts and occasional notes in your inbox. No spam, unsubscribe anytime.