Google SEO Advanced

Structured Data Schema Checklist: How to Write Article/FAQ/Product/Breadcrumb

A B2B website really only needs four hand-written Schema types: Article, FAQPage, Product, and BreadcrumbList. Each has clear required fields, and...

四类核心 Schema:字段填齐就能上,填错就触发警告Four core schemas: fill required fields, avoid warnings JSON-LD 写在 head,字段值必须和页面可见文字一致JSON-LD in head, values must match visible text 类型Type 必填字段Required fields 放置位置Placement ArticleArticle headline · author · datePublished · imageheadline · author · datePublished · image 所有博客与白皮书页All blog / whitepaper pages FAQPageFAQPage mainEntity[] · name · acceptedAnswermainEntity[] · name · acceptedAnswer FAQ 区块前Before FAQ section ProductProduct name · image · offers · brandname · image · offers · brand 产品详情页Product detail pages BreadcrumbBreadcrumb itemListElement[] · position · name · itemitemListElement[] · position · name · item 所有二级及以下页All 2nd-level+ pages 反直觉:字段越多越好是误区,多填一个隐藏字段就触发垃圾标记Counter-intuitive: more fields is a trap — hidden fields trigger spam Google 只认必填和推荐字段,多余字段不加分,错配字段会扣分Only required and recommended fields count 红线:Schema 里写的数字必须和页面可见数字完全一致,包括货币Red line: schema numbers must match visible text exactly
Required fields and placement for the four core Schema types: Article/FAQ/Product/Breadcrumb

Structured Data Schema Checklist: How to Write Article/FAQ/Product/Breadcrumb

Bottom line first: A B2B website really only needs four hand-written Schema types: Article, FAQPage, Product, and BreadcrumbList. Each has clear required fields, written in JSON-LD inside the head, and field values must match the visible text on the page word for word. Counterintuitive take: more Schema fields is not better. Adding one hidden field or a number that doesn’t match the page can trigger a Google manual action for spammy structured data. This article gives you four reusable JSON-LD templates and the three validation steps you must run before launch.

1. General rules for writing JSON-LD

Google recommends JSON-LD syntax, not Microdata or RDFa. There are three hard rules.

Rule The right way What not to do
Syntax <script type=”application/ld+json”> Use Microdata or RDFa
Location End of head or body Inject dynamically with JS, then wait for rendering
Field values Match the visible text on the page word for word Schema says “$999”, page says “Request a quote”
Multiple types Use a @type array or link with mainEntityOfPage Pile six or seven unrelated types on one page

Why JSON-LD: it’s decoupled from the HTML structure, so maintaining templates won’t break the markup when you change the DOM. Microdata is embedded in tag attributes, so changing one class can break it too.

Two more things people often overlook: first, all date fields must use ISO 8601 format with a timezone offset, like 2026-09-21T09:00:00+08:00, not “September 2026”; second, URL fields must be directly crawlable by Google, so don’t use backend links that require login. These two issues only show warnings in the Rich Results Test, not errors, so they’re easy to miss.

2. Article: blog and whitepaper pages

Article is the basic markup for article pages. It determines whether the author avatar, publish time, and thumbnail carousel appear in the SERP.

Field Required Example value Description
@type Yes Article Use NewsArticle for news
headline Yes No more than 110 characters Match <title>
author Yes {“@type”:”Person”,”name”:”Cui Lishu”} Also link to the author page
datePublished Yes 2026-09-21T09:00:00+08:00 ISO 8601 format
dateModified Recommended Same as datePublished or the update time Update when you refresh the article
image Yes At least 1200×675 pixels Affects the carousel thumbnail
publisher Recommended Linked to Organization Includes a logo field

Example: a B2B blog added Article but used a small 600×300 image, and the Rich Results Test reported “image too small”. After switching to a 1200×675 cover image, it appeared in the SERP article carousel within a week. For image size requirements, see Media Asset Governance.

Don’t just put the company name in the author field. Use a specific author name and link it to an author page. Google reads this field for knowledge panels and author carousels. Writing only “crater” doesn’t qualify as a Person or an Organization, so the markup gets ignored. The author page itself must be accessible on your site, and you should link external profiles like LinkedIn and GitHub in sameAs.

3. FAQPage: The Main Channel for AI Answers

Although FAQPage no longer shows rich results in SERPs for ordinary business blogs after 2023, it remains the primary channel through which ChatGPT, Gemini, and Google AI Overviews read Q&A content.

Field Required Description
@type Yes FAQPage
mainEntity[] Yes Array of 5 to 6 Question items
name Yes The question text, matching the page summary
acceptedAnswer.text Yes Plain-text answer, matching the visible answer on the page

Counterintuitive point: FAQPage SERP accordions have only appeared on authoritative forums and government sites since August 2023. Adding them to an ordinary B2B blog won’t display anything. But you should still write them — the mainEntity array is the primary channel AI engines use to read FAQs. For FAQ content methodology, see FAQ 与 People Also Ask.

Red line: The Q&As in mainEntity must exactly match the visible FAQ on the page. Never include Q&As that don’t exist on the page. Google’s manual action for FAQ spam targets exactly this.

Pay attention to question and answer length too: keep questions between 20 and 40 characters, and answers between 80 and 150 characters. Questions that are too short look like keyword stuffing; too long and they exceed the SERP accordion display range. Answers that are too short lack information density and won’t be cited by AI; too long and they get truncated.

4. Product: The High-Yield Zone for B2B Product Pages

Product markup determines whether product cards, prices, and stock status appear in SERPs. Be restrained with B2B semi-custom products.

Field Required B2B Considerations
name Yes Full product model name, matching the H1
image Yes Main image; at least 3 product images is safer
description Recommended Matching the product page meta description
brand Recommended {“@type”:”Brand”,”name”:”…”}
offers.price When there’s a clear price Don’t fill in price for quote-based products
offers.availability Recommended InStock / PreOrder — don’t mislabel
aggregateRating When there are genuine reviews Fake star ratings will trigger a manual action

Scenario example 2: A B2B equipment manufacturer’s product page set offers.price=5000, but the page only said “Request a Quote.” Rich Results Test flagged a field mismatch warning, and two weeks later the GSC rich results report showed zero rich result impressions for that product page. After deleting the price field and changing availability to PreOrder, impressions recovered.

Price field mismatches are the most common source of Product markup accidents. When B2B semi-custom product pages don’t publish quotes, don’t force in a price just to get a SERP card.

5. BreadcrumbList: A Must-Have Site-Wide

BreadcrumbList lets Google display breadcrumbs instead of long URLs in SERPs. It’s the lowest-cost Schema across your entire site.

Field Required Description
@type Yes BreadcrumbList
itemListElement[] Yes The full path from homepage to current page
position Yes Starts at 1 and increments
name Yes Breadcrumb display text
item Recommended Absolute URL for that level

The item field must use an absolute URL, not a relative path. The hierarchy must match the breadcrumb visible on the page: Home → Section → Subsection → Current page, with no levels skipped. The current page itself must also be included in itemListElement, otherwise Google can’t confirm which page the breadcrumb points to.

6. Three checks before launch

Steps Tools Timeframe Pass criteria
Validate URL by URL Rich Results Test On the day before deployment No errors, only acceptable warnings
Spot-check after launch Run the live URLs again Launch day Rendered output matches local
Rich media report Search Console Days 7, 14 and 30 Impressions non-zero, errors at 0

These four Schema types are the baseline for a B2B website. Organization and WebSite are the other two that must go in the head of every page site-wide. For the full priority breakdown, see Structured data (Schema). Multilingual sites must also make sure Schema fields match Multilingual Number and Table Localization so currency and units don’t get mixed up across languages.

The last common source of trouble is duplicate Schema generated automatically by plugins. Once a WordPress site has Yoast or Rank Math installed, the plugin outputs Article and Organization markup by default. If you also hand-write a set of JSON-LD, you’ll get duplicate field warnings. Before launch, run the Rich Results Test on your product and post pages. If you see duplicate fields, turn off the corresponding plugin module and keep your hand-written set.

7. Monthly checkups after Schema goes live

Schema isn’t something you write once and forget. Template changes, products going on and off sale, and price adjustments all push fields out of sync with what’s visible on the page. Spending half a day on a checkup each month is far less work than fixing things after an incident.

Checkup item How to check Frequency Pass criteria
GSC rich media report errors Search Console experience report Monthly 0 errors; warnings are acceptable
Fields match visible text Run Rich Results Test on a sample of 10 pages Monthly No field mismatch warnings
Product price sync Compare the price field on product pages with the listed price After a price change Quote-based products should have no price field
Breadcrumb path Compare breadcrumbs on a sample of second-level pages After a redesign No levels skipped; item is an absolute URL
Duplicate Schema Check the number of ld+json blocks in the page source After installing a new plugin No duplicate output from plugins and hand-written code

When a checkup turns up a problem, don’t rush to change the whole site. Reproduce it in a staging environment first and confirm whether it’s a template issue or a single-page issue. Template issues affect every page, so fixing the template once is enough. Single-page issues are usually a content editor slipping up on a price or date, so fix them page by page. Log each monthly checkup on a single sheet. After three months you’ll see which errors keep coming back, and you can write them into the content editor handbook to cut down on repeat incidents at the source.

One last reminder: Schema is for search engines and AI engines to read, not for visitors. Field values must honestly reflect what’s actually on the page. Don’t fake prices or inflate review ratings just to chase rich results. Once Google issues a manual action for spammy structured data, recovery takes quarters, not weeks. It’s not worth it.

For multilingual sites, keep Schema fields consistent with the page language. On English pages, fill JSON-LD fields in English; on Chinese pages, fill them in Chinese. Don’t mix the two. The currency field must match the currency shown on that language version, so don’t put USD on pages aimed at European customers. Always use ISO 8601 for dates instead of ambiguous local formats like “9/21/2026”. The Rich Results Test won’t flag these details, but they do affect how accurately AI engines extract your data.

FAQ

Can the Article headline field be longer?
Keep it under 110 characters and match the page title. Anything longer gets truncated in the SERP, and Google tends to use its own truncated version. Don’t stuff keywords into the headline; it has to be the article’s real title.
Can FAQPage have more Q&As than the page shows?
No. Every Q&A in mainEntity must be visible on the page, word for word. Adding Q&As that don’t exist on the page counts as spammy structured data and can trigger a manual action. Aim for 5 to 6, and don’t force 20 just to hit a number.
The Product page doesn’t publish prices. How should I write offers?
Don’t include the price field, and don’t mark it InStock. You can leave offers.priceCurrency empty, or only set offers.availability to PreOrder. The most common mistake is putting a list price in the price field when the page says “request a quote” instead. That’s the most frequent error in rich results reports.
Can BreadcrumbList item fields use relative paths?
No. They must be absolute URLs with https and the domain. Google misresolves relative paths when rendering, which sends breadcrumbs to the wrong pages. Include all three levels: home, section, and current page. Don’t skip levels.
Can a single page carry both Article and BreadcrumbList?
Yes, that’s a standard combination. The usual approach is two separate ld+json blocks: one Article and one BreadcrumbList. A Product page can also carry Product + BreadcrumbList + Organization (linked through the publisher field). Don’t merge them into a single object.
How long after Schema goes live do rich results show up?
There’s no guaranteed timeline. Usually it takes 7 to 14 days after Google recrawls for that type to appear in the Search Console rich results report. Even with correct markup, whether rich results show is up to Google and depends on page quality, backlinks, and content authority. Don’t change your code just because nothing shows after 3 days.

Final thoughts

These four core Schema types are the minimum viable set for a B2B website: Article for blog posts, FAQPage for AI answers, Product for product pages, and BreadcrumbList sitewide. Get them right and you may still not get rich results; get them wrong and you definitely lose eligibility.

Three steps to launch: this week, audit 5 template pages with the Rich Results Test and list the missing types; next week, add the four JSON-LD templates to the head, matching field values word-for-word with the visible text; on day 30, confirm zero errors in the Search Console rich results report.

One line worth remembering: schema isn’t about how much you add, it’s about how accurate it is. Fields match the page, numbers match the quote, Q&A matches the FAQ, and only then will rich results come calling.

Cui Lishu
Cui Lishu Crater experts

Delivery · Operations Lead · Crater Delivery & Operations Team

Delivery & Operations Lead at Crater. Responsible for SEO execution, social media channel operations, and content distribution, with a knack for breaking down growth actions with data. Has overseen the delivery of multiple go-global projects, with a focus on the coordinated playbook across Facebook, Twitter, TikTok, YouTube, and SEO/GEO.

SEO executionContent operationsCase breakdowns
1106articles shared
84knowledge base articles