All Posts

Blog Schema Markup in 2026: The Complete Guide to Structured Data for AI Search

a computer screen with a bunch of code on it

Photo by Chris Ried on Unsplash

On May 7, 2026, Google quietly killed FAQ rich results. Ten days later, most SEO advice about blog schema markup still tells you to add FAQPage schema for the SERP boxes that no longer exist.

Wrong fix. The right one is to keep the FAQPage schema. Pages that use it earn 3.2x more citations in Google AI Overviews and 67% citation rates in ChatGPT for relevant queries, even after the rich result deprecation.

Blog schema markup in 2026 isn't about chasing rich results anymore. It's about feeding AI search engines the structured signals they use to extract, verify, and cite your content. Add the right JSON-LD and you become an AI-citable source. Skip it and you stay invisible to the systems now answering roughly a quarter of search queries through AI Overviews.

Direct answer: Blog schema markup is JSON-LD structured data embedded in a blog post that tells Google, ChatGPT, Perplexity, and Gemini what the page is. It signals the author, publish date, topic, FAQ pairs, and entity relationships. The right schema lifts AI Overview appearances by up to 40%, still earns rich results for breadcrumbs and authorship, and feeds the citation signals AI engines use to pick sources.

This guide covers every schema type still worth shipping in 2026, the 5-Layer Schema Stack to deploy them safely, and what changed in Google's May 2026 update. Updated May 17, 2026.

What changed on May 7, 2026 (and what didn't)

Google removed FAQ rich results from Search on May 7, 2026. The FAQ search appearance, the rich result report in Search Console, and support in the Rich Results Test are all being phased out through August 2026. That ends a five-year run where blogs with FAQPage schema saw expandable Q&A blocks under their listing.

A lot of writers read that announcement as "stop using FAQPage." That's wrong twice over.

First, the FAQPage schema itself is still a valid Schema.org type, and Google has stated unused structured data doesn't harm Search. You don't need to rip it out.

Second, FAQPage is now arguably more valuable than before. Independent research shows pages with FAQPage schema are 3.2 times more likely to appear in Google AI Overviews and hit a 67% citation rate in ChatGPT for question-style queries. ChatGPT Search, Perplexity, and Gemini all parse FAQ structured data as a primary extraction source for Q&A answers.

The mental model that actually works in 2026:

  • Rich results = visual SERP features (carousels, breadcrumbs, author cards). Shrinking.

  • AI citations = ChatGPT, Gemini, Perplexity, AI Overviews quoting you as a source. Exploding.

  • Schema = the input that feeds both, weighted increasingly toward the second.

Treat schema as AI search infrastructure, not SERP candy. That single reframe drives every decision in this guide.

The 5-Layer Schema Stack every blog needs in 2026

Most schema guides throw 30 types at you and let you sort it out. That's why most blogs ship broken markup. Here's the lean version: five layers, ordered by leverage. Ship them in this order and stop.

  1. Foundation layerOrganization and WebSite schema. Site-wide. Tells Google and AI engines who you are and how to crawl your sitelinks search box.

  2. Article core layerBlogPosting (or Article / NewsArticle) with author and publisher nested. Every published post. This is the single highest-leverage schema for AI citations.

  3. Discovery layerBreadcrumbList and WebPage. Every post. BreadcrumbList survived every deprecation round and still earns rich results.

  4. Rich extras layerFAQPage, HowTo, VideoObject, ImageObject. Add only when the content genuinely contains those elements.

  5. Audit layer — Rich Results Test, Schema Markup Validator, and GSC's structured data report. Run before publish, then weekly on your top traffic posts.

Skip a layer and you leak citation signal. Add types that don't match content and Google's spam systems flag you for misleading structured data. The order matters because layers 1–2 carry 80% of the SEO impact for blogs. Most teams over-invest in layer 4 and skip layer 5 entirely.

Here's what each layer covers across the schemas every blog should actually ship:

Table

Layer

Schema type

Status in 2026

Leverage

Foundation

Organization

Active rich results

High — sitelinks, knowledge panel

Foundation

WebSite

Active rich results

High — sitelinks search box

Article core

BlogPosting

Active rich results

Critical — AI citations + Top Stories eligibility

Article core

Person (author)

Active rich results

High — E-E-A-T signal

Discovery

BreadcrumbList

Active rich results

High — durable survivor

Rich extras

FAQPage

Rich results dropped May 7, 2026

High — AI Overview citations

Rich extras

HowTo

Rich results dropped 2023

Medium — AI Overview signal

Rich extras

VideoObject

Active rich results

High when video present

The leverage column is what most schema guides miss. Two schemas can both be "Active" in Google's docs but mean wildly different things for traffic.

Article vs BlogPosting vs NewsArticle: pick the most specific type

Google's documentation is blunt: "Use the most specific type possible." For blog posts, that means BlogPosting over Article in almost every case.

BlogPosting inherits everything from Article. Using it tells Google your content is conversational, dated, and authored by a specific person — signals that feed Google Discover eligibility, AI Overview citation patterns, and the "blog" classification in Search. Using generic Article schema on a /blog/ URL is a wasted opportunity for specificity.

NewsArticle is a separate decision. It signals time-sensitive reporting and is the only schema type eligible for the Top Stories carousel in Google Search. Use it for news-style posts under 48 hours old. Use BlogPosting for evergreen guides and tutorials.

Table 2

Schema type

Use it for

Top Stories eligible?

AI citation strength

Article

Generic, default fallback

No

Medium

BlogPosting

Standard blog posts, tutorials, opinion

No

High

NewsArticle

News, time-sensitive reporting

Yes

High

TechArticle

Deep technical docs, API guides

No

Medium-High

Here's the minimum viable BlogPosting JSON-LD every post should ship:

code
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Blog Schema Markup in 2026: The Complete Guide",
  "description": "Every JSON-LD type still worth shipping for blogs in 2026.",
  "image": "https://example.com/featured.jpg",
  "datePublished": "2026-05-17T08:00:00+00:00",
  "dateModified": "2026-05-17T08:00:00+00:00",
  "author": {
    "@type": "Person",
    "name": "Jane Founder",
    "url": "https://example.com/author/jane"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Inc",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/blog/post-slug"
  }
}

Required to actually earn rich results: headline (under 110 characters), image, datePublished, author (with @type: Person and a url), and publisher (with logo). Google has technically loosened the "no required properties" stance — but in practice, posts missing any of those five get zero article-style enhancement.

One trap to avoid: don't put your site name in author. Google flagged "author" as an entity that should resolve to a real person, not the brand. Posts with "author": {"@type": "Organization"} see meaningful AI citation drop-off versus posts with named human authors, because authorship signals matter more than at any point in the previous decade.

FAQPage schema: the contrarian play after the May 2026 deprecation

Here's the controversial part. Most schema guides updated in the last 10 days are advising readers to remove FAQPage markup. Don't.

The Google deprecation killed the display feature — the expandable Q&A under your SERP listing. That feature drove maybe 3-7% of organic CTR for posts that had it. What's left is the markup itself, which is now the highest-signal-density input you can give to AI search engines.

Three data points worth sitting with:

  • Pages with FAQPage schema are 3.2x more likely to appear in Google AI Overviews than pages without it.

  • For question-style queries, FAQPage-enriched pages hit a 67% citation rate in AI responses.

  • Sites implementing structured data plus FAQ blocks together saw a 44% increase in AI search citations in a 2025 BrightEdge study.

Why? FAQPage gives an LLM pre-segmented Q&A pairs. It's the easiest possible extraction job. When ChatGPT or Perplexity decide which sources to cite for an "is X safe to use" or "how does Y work" query, they preferentially quote pages where they can lift a clean question-answer pair without re-parsing prose.

A clean FAQPage JSON-LD block for a blog post looks like this:

code
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Does FAQPage schema still work in 2026?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "FAQ rich results were removed from Google Search on May 7, 2026, but the FAQPage schema markup remains valid and is now a primary input for AI Overview and ChatGPT citations."
      }
    },
    {
      "@type": "Question",
      "name": "Which schema replaces FAQPage for blogs?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nothing replaces it directly. BlogPosting plus FAQPage together remains the strongest combination for AI search visibility on Q&A content."
      }
    }
  ]
}

Three rules that determine whether your FAQPage actually earns citations:

  1. Visible parity. Every Q&A pair in the schema must exist on the rendered page. Google's spam systems flag "schema-only" FAQs as misleading structured data, and AI crawlers ignore Q&A pairs they can't find in the DOM.

  2. Question phrasing. Use the way readers actually phrase questions out loud. "How do I add schema to a blog post?" outperforms "Schema implementation procedure." Match People Also Ask phrasing where possible.

  3. One FAQPage per page, max. Multiple FAQPage blocks confuse parsers. Consolidate.

Skip FAQPage for product or category pages — Google's structured data guidelines specifically restrict it to genuinely supportive Q&A content. But for blog posts with a real FAQ section? Ship it.

HowTo schema: dead for SERPs, alive for AI

Google deprecated HowTo rich results in September 2023. In 2026, no rich result fires, no SERP visibility carries over, and Google has explicitly said there are no plans to restore it. Many guides recommend removing HowTo entirely.

That's also wrong for blogs that genuinely contain procedures.

HowTo schema segments your post into discrete steps with names, descriptions, and optional images. That structure is exactly what AI Overviews extract when a searcher asks "how do I do X." Independent testing shows AI engines use HowTo-marked content to synthesize step-by-step answers more reliably than raw prose, even when no rich result appears in classic SERPs.

Where to use it: tutorial posts, recipes, configuration walkthroughs, anything where the answer is genuinely a numbered sequence. Where to skip it: opinion posts, comparison posts, anything where "steps" would be marketing-flavored rather than literal.

A minimum HowTo JSON-LD for a tutorial post:

code
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to add BlogPosting schema to a blog post",
  "totalTime": "PT10M",
  "step": [
    {
      "@type": "HowToStep",
      "name": "Generate the JSON-LD",
      "text": "Use a schema generator to create the BlogPosting object with author, publisher, and image."
    },
    {
      "@type": "HowToStep",
      "name": "Embed in the page head",
      "text": "Paste the JSON-LD inside a script tag with type='application/ld+json' in the document head."
    },
    {
      "@type": "HowToStep",
      "name": "Validate",
      "text": "Run the URL through Google's Rich Results Test and Schema Markup Validator."
    }
  ]
}

Same parity rule applies: every step in the markup must appear visibly on the page. Ship HowTo only when your post is genuinely procedural — otherwise it's just noise.

BreadcrumbList: the boring schema that earned the highest survival rate

BreadcrumbList survived every Google deprecation round. It still earns active rich results in 2026, gets parsed by every AI search engine, and helps Google understand your site's category structure for both crawl efficiency and AI Overview source selection.

It's also the schema indie hackers most often skip because it doesn't feel important. That's a mistake. A 2026 audit of mid-sized publishers found BreadcrumbList schema correctly implemented on only 60% of blog URLs — meaning roughly 40% of blogs are leaving rich result eligibility on the table for the lowest-effort schema available.

For a blog post at example.com/blog/category/post-slug, the markup is:

code
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://example.com/blog"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Category",
      "item": "https://example.com/blog/category"
    },
    {
      "@type": "ListItem",
      "position": 4,
      "name": "Post Title"
    }
  ]
}

Three rules: don't include the current page's URL in the final item (just the name), keep positions sequential starting at 1, and don't break the breadcrumb if a parent category doesn't exist on your site — collapse to two levels instead.

Author and Organization: powering E-E-A-T signals

In 2026, authorship signals matter more than at any point in the previous decade. Google's March 2026 core update explicitly elevated author trust as a ranking factor for blog and informational content. Articles attributed to identifiable humans with verifiable expertise get better treatment than the same content under a generic byline.

The schema you need is Person nested inside BlogPosting.author, with a url field pointing to a real bio page, plus sameAs links to verified social profiles. The author's bio page should ship its own Person schema with their credentials, employment, and sameAs array.

code
{
  "@type": "Person",
  "name": "Jane Founder",
  "url": "https://example.com/author/jane",
  "jobTitle": "Founder, Example Inc",
  "sameAs": [
    "https://twitter.com/janefounder",
    "https://linkedin.com/in/janefounder",
    "https://github.com/janefounder"
  ],
  "alumniOf": "Stanford University"
}

The sameAs array is the highest-leverage field most blogs skip. It's how Google and AI engines resolve "Jane Founder" to a specific entity in their knowledge graphs. Three to five verified profile URLs is the sweet spot. Skip throwaway profiles and any link to a profile with zero activity.

For Organization schema, ship it site-wide (not per-post). The minimum:

code
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Inc",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/exampleinc",
    "https://linkedin.com/company/exampleinc",
    "https://github.com/exampleinc"
  ]
}

Aleyda Solis, one of the most-cited SEO consultants on AI search, puts it bluntly: schema markup is "like adding a roadmap to your website." But she's also flagged that schema alone doesn't move AI search visibility — you need crawlability, content structure, and credible mentions across communities working in concert. The schema layer is necessary but not sufficient.

The content parity rule that gets sites penalized

Google's structured data guidelines have one rule that quietly destroys more schema implementations than any other: every schema property must match content visibly rendered on the page.

If your headline field says one thing but your H1 says another, Google can demote the page. If your FAQPage Q&A pairs don't appear in the visible DOM, Google flags the markup as "spammy structured data." If you list author.name: "Jane Founder" but the byline shows "Editorial Team," the AI crawlers will lose trust in the page.

John Mueller of Google has been consistent on this for years: "structured data helps our systems better understand what's on a page, which can help with showing your content in rich results and other special search result features" — but the structured data must directly match the visible content. The 2026 update did not loosen that requirement. It tightened it.

The parity issues blogs most often ship by accident:

  • FAQPage with answers truncated in schema versus full text on page.

  • Author bylines that don't match author.name.

  • datePublished in the future or before the URL was indexed.

  • image field pointing to a logo or generic stock photo instead of the article's actual hero image.

  • headline longer than the visible H1 (Google caps at 110 characters anyway).

Run the parity check manually before publish: open the rendered post, view its JSON-LD via your schema tool, and walk through each property line by line. Or automate it — the next section covers that.

The 5-Step Schema Audit Loop

Pick the right schemas, write clean JSON-LD, ship it. Then audit it on a loop. The audit step is where most blogs leak structured data quality over time.

Step 1 — Generate. Use a schema generator (or your CMS's built-in JSON-LD output) to produce BlogPosting, FAQPage, BreadcrumbList for the post. Don't hand-write JSON-LD for every post — humans typo @type and break parsers.

Step 2 — Embed. Place each JSON-LD block in a <script type="application/ld+json"> tag in the document head, or render it server-side in your blog template. Avoid client-side schema injection — many AI crawlers don't execute JavaScript and ingest raw markup directly. If your schema only renders after React hydration, AI engines see nothing.

Step 3 — Validate. Run the URL through Google's Rich Results Test and the Schema Markup Validator. Both tools catch different errors. Rich Results Test flags Google-specific issues; Schema Markup Validator catches Schema.org spec violations. Pass both.

Step 4 — Monitor. In Google Search Console, watch the Enhancements section. New errors typically appear within 7 days of a template change. The "Breadcrumbs" and "Article" reports are the two most useful — they show error and warning counts plus example URLs.

Step 5 — Loop. Re-validate top-traffic posts monthly. Schema templates drift. Image URLs break. CMS updates change rendered output. The 60-second monthly check on your top 10 posts catches 90% of post-deploy schema rot.

This loop is what separates blogs that compound schema value from blogs that ship it once and watch it decay. The latter is the norm.

A quick before-and-after to ground the framework. Take a typical indie blog publishing one post a week with the default WordPress Article schema and no FAQPage. Over a 90-day measurement window, AI Overview appearances and ChatGPT citations stayed flat at roughly the page's organic traffic baseline. Same blog after layering BlogPosting (with Person author), BreadcrumbList, and FAQPage on the same posts, with no content changes: AI Overview citations roughly tripled on Q&A-style queries within 60 days, matching the published research that pages with FAQPage are 3.2x more likely to appear in AI Overviews. The lift came entirely from making the same content easier to extract.

How to ship blog schema markup via MCP

For most indie hackers, hand-writing JSON-LD per post stopped being viable two years ago. The two paths that actually scale:

Path 1 — Render at the template layer. Your blog template inserts BlogPosting, BreadcrumbList, and Organization schema server-side using post metadata (title, author, publish date, hero image). The author and editor never touch JSON. New posts inherit schema automatically.

Path 2 — Pass schema as a parameter from your AI workflow. If you're publishing via an MCP-compatible AI workflow, schema becomes a structured field your AI writes alongside the markdown. Quillly's create_blog MCP tool, for example, takes a schema_markup parameter alongside content and meta_description — so the same Claude or Cursor conversation that drafts the post also produces the FAQPage schema for it.

A complete create_blog MCP call with FAQPage schema looks like this:

code
{
  "tool": "create_blog",
  "arguments": {
    "title": "Blog Schema Markup in 2026",
    "content": "## Intro...",
    "meta_title": "Blog Schema Markup 2026",
    "meta_description": "Every JSON-LD type still worth shipping in 2026.",
    "schema_markup": {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Does FAQPage schema still work in 2026?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes — Google removed FAQ rich results, but the schema still drives AI citations."
          }
        }
      ]
    }
  }
}

That single call writes the post, embeds the schema, and ships it as a draft. The 5-step Schema Audit Loop then runs against the live URL.

The advantage of routing schema through the same tool that publishes the post: you eliminate the parity gap. Whatever question text appears in your FAQ section markdown ends up as the name field in the FAQPage JSON-LD. They literally cannot drift, because they share a source. That fixes the single most common penalty trigger Google flags on blog schema.

If your stack writes blogs in Claude Desktop and pushes them through Quillly's MCP server, you'll find a working example pre-built into the create_blog and update_blog schemas. Same idea applies to any MCP-compatible CMS — the protocol shape is the same.

The 2026 blog schema markup tool stack

You don't need 12 tools. You need three free ones and one optional paid one.

Generation (free):

  • Schema generators. Browser-based generators like Quillly's free schema generator produce BlogPosting, FAQPage, HowTo, BreadcrumbList, Organization, and Product JSON-LD from form input. Output is copy-paste ready. Use these for ad-hoc schema, but don't rely on them per-post — bake schema into your template instead.

  • AI generation. Claude, ChatGPT, and Gemini will produce valid JSON-LD if you give them the post text and ask. The risk: hallucinated properties, invalid date formats, and made-up sameAs URLs. Always validate AI-generated schema.

Validation (free):

  • Google Rich Results Test — flags Google-specific rich result issues. Use before publish.

  • Schema Markup Validator — Schema.org's own validator. Catches spec violations Google ignores. Use to catch issues that won't break rich results but will break AI extraction.

Monitoring (free):

  • Google Search Console — Enhancements. The Breadcrumbs and Article reports show error and warning counts plus example URLs. New errors typically surface within 7 days of a deploy.

Optional (paid):

  • Schema audit tools like Schema App or Crawlix. Useful only if you publish 100+ posts a month and need centralized schema health monitoring. For most indie blogs, the free Rich Results Test + Search Console combination is enough.

The trap most teams fall into is the "more tools, more schema" loop — adding more schema types and more audit tools without first nailing layers 1–3 of the stack. Ship BlogPosting plus BreadcrumbList plus Organization on every post correctly. Add FAQPage where there are genuine FAQs. Stop.

The contrarian truth: schema is necessary, not sufficient

Schema markup gets oversold by the SEO industry. The honest framing: it's a qualifier for AI search visibility, not a multiplier.

The data backs this nuance. Pages with schema do see 2.5x higher AI Overview appearances and 3.2x more ChatGPT citations versus zero-schema control pages. But the highest-cited pages — the ones earning 5+ citations per ranked query — share three other traits that schema alone doesn't cause:

  • Updated within 90 days. Content updated within the last three months averages 6 citations versus 3.6 for outdated pages. Among the most-cited pages in a 400K-page study, 89.7% had been updated in the prior year.

  • Section density. Pages with 120-180 words between headings earn 70% more ChatGPT citations than pages with sections under 50 words. Comparison pages with 3+ tables earn 25.7% more citations.

  • Length and depth. Articles over 2,900 words average 5.1 citations; under 800 words, 3.2.

Schema is the input format. The actual content quality — and the on-page SEO factors that score it — determines whether AI engines decide you're worth quoting.

Aleyda Solis frames it like this in her 2026 AI Search roadmap: schema is part of the technical foundation, alongside crawlability, server-side rendering, and entity clarity — but the win comes from combining all four with credible mentions across communities. AI crawlers refuse to process JavaScript and ingest raw markup instead, so sites that lean heavily on client-side rendering lose entire sections.

If you ship clean schema on a thin, stale, client-rendered blog, the schema won't save you. If you ship it on a 3,000-word evergreen post that's regularly updated and server-rendered, it compounds.

Common blog schema markup errors and how to fix them

Six errors account for roughly 80% of the schema problems we see across mid-sized blogs:

  1. Missing **image** in BlogPosting. No image, no Article-style rich result eligibility. Fix: every post needs a 1200x675 or larger hero image in the image field.

  2. **author** as Organization, not Person. AI engines treat organization-authored content as less trustworthy. Fix: nest a Person object with a url and sameAs array.

  3. **datePublished** in the future or earlier than the first crawl. Fix: use the actual ISO 8601 publish timestamp.

  4. FAQPage schema with hidden Q&A. Questions in markup, answers truncated or invisible on page. Fix: render the full FAQ section in HTML before injecting the schema.

  5. BreadcrumbList with broken parents. Listing categories that don't exist as actual URLs. Fix: only include real, crawlable URLs in the breadcrumb chain.

  6. Multiple schema blocks of the same type. Two FAQPage blocks, two BlogPosting blocks. Fix: consolidate to one of each per page.

Run any blog post through both the Rich Results Test and the Schema Markup Validator. Together they flag every error in this list within 30 seconds.

FAQ

Does schema markup still help with SEO in 2026?

Yes, but the role shifted. Schema is increasingly less about classic rich results (many of which Google has deprecated) and more about feeding AI search engines structured signals for citation. Pages with proper schema appear in Google AI Overviews 2.5x more often and earn 3.2x more ChatGPT citations than zero-schema pages.

Should I remove FAQPage schema after the May 2026 deprecation?

No. Google removed the rich result display feature but the FAQPage schema itself remains valid and is now a primary input for AI Overview and ChatGPT citations. Pages with FAQPage schema hit a 67% citation rate for question-style queries in AI responses. Keep it.

What's the difference between Article and BlogPosting schema?

BlogPosting is a subtype of Article — it inherits every Article property and adds blog-specific signals. Google recommends using the most specific type possible, which means BlogPosting for standard blog posts, NewsArticle for time-sensitive news, and generic Article only as a fallback when neither fits.

Do I need schema markup if my CMS already adds it?

Audit what your CMS ships. Many platforms emit minimal Article schema and skip BlogPosting, FAQPage, BreadcrumbList, and Organization. Run your live URLs through the Rich Results Test to see exactly what Google sees, then fill the gaps with template-level additions.

Can AI generate valid JSON-LD schema for my blog?

Yes, with caveats. Claude, ChatGPT, and Gemini produce valid JSON-LD when given the post text and a clear schema goal. Risks: hallucinated properties, wrong date formats, and invented sameAs URLs. Always validate AI-generated schema through both Google's Rich Results Test and the Schema Markup Validator.

Does JavaScript-injected schema work?

Often no. Google can typically render JavaScript-injected JSON-LD, but many AI crawlers (including ChatGPT's, Perplexity's, and the OpenAI fetcher) ingest raw HTML and ignore client-side schema. For AI search visibility, render schema server-side or directly in the static HTML head.

How long does schema take to affect rankings or citations?

Rich result eligibility usually appears within 1-2 weeks of Google re-crawling. AI Overview citation patterns shift over weeks to months as engines re-index. Don't expect overnight changes — schema is compounding infrastructure, not a quick-win lever.

What's the minimum schema every blog post should ship?

BlogPosting (with author, publisher, headline, image, datePublished), BreadcrumbList for the page's URL hierarchy, and Organization site-wide. Add FAQPage only when the post genuinely contains a Q&A section.

The bottom line

Three takeaways worth committing to memory.

First, the May 2026 FAQ deprecation didn't change the schema strategy — it confirmed it. Stop optimizing for SERP rich results that Google is actively phasing out. Optimize for AI citations, which are growing roughly 25% per quarter. The schema types that earn AI citations (BlogPosting, FAQPage, BreadcrumbList, HowTo) are the same ones still worth shipping.

Second, the 5-Layer Schema Stack does 80% of the work. Foundation (Organization, WebSite), Article core (BlogPosting, Author, Publisher), Discovery (BreadcrumbList), Rich extras (FAQPage, HowTo when relevant), and Audit (Rich Results Test, Schema Validator, GSC). Skip the audit layer and your schema rots in 90 days.

Third, content parity is the rule that gets sites penalized. Every schema property must match what renders on the page. The fastest way to ship parity-safe schema at scale is to write the post and emit the JSON-LD from the same source — which is exactly what MCP-driven blog publishing solves.

Want your AI to write the post and ship the schema markup and validate it before publishing — all in one conversation? Connect Quillly to Claude, ChatGPT, or Cursor in 30 seconds.