Pattern · TypeScript
FAQ and HowTo JSON-LD: when markup is appropriate
Avoid markup “for stars only”: visible content, one primary intent per page, Google guidelines.
Level: advancedTime estimate: ~30 min for policy
Google may ignore or penalize markup when questions do not match visible text or the whole landing is duplicated as FAQ.
- Each FAQ answer must appear on the page for users
- do not mark the entire catalogue as HowTo
- follow Search Central type docs
FAQPageandHowToonly earn rich results when rules hold: human-first content, full parity with HTML, no spam or hidden text.
Code
Illustrative fragment (do not copy blindly — verify current Google specs):
const faqLd = {
'@context': 'https://schema.org',
'@type': 'FAQPage',
mainEntity: [
{
'@type': 'Question',
name: 'Is the short question identical to the on-page heading?',
acceptedAnswer: {
'@type': 'Answer',
text: 'Yes — it matches the visible paragraph under the question verbatim.',
},
},
],
}
Verification
- Every question/answer pair in JSON-LD exists in the DOM for real users without empty accordion shells.
- Rich Results Test: no blocking errors; avoid dozens of low-quality duplicate questions.
Sources
More patterns
- JSON-LD
Extending JSON-LD Organization and WebSite in the root layout
Linked @id values in @graph: organization, person, site — the base for other entities.
Open pattern - JSON-LD
BreadcrumbList JSON-LD for internal pages
One helper feeds both visible breadcrumbs and markup — names and URLs stay in sync.
Open pattern
Blog posts
- Development
DM-only sales vs. a real site: what US businesses should plan for
For US SMBs: FTC disclosures, state consumer rules, sales tax nexus, texts and opt-in, and why a site on your domain beats Instagram or Telegram as the only storefront. Practical checklist—not legal advice.
Read article - SEO
SEO architecture: why a site does not sell without structure
How the right site structure affects sales and rankings. Why design comes second and semantics first.
Read article
Need this implemented for your domain and stack?
Short form: name, phone, and site. After you submit, we reply with next steps and a phase outline; details are refined on a call.