FAQ JSON-LD for answer engines: what worked on aviwebsquad.in
Short answer: Answer-engine optimization here means real FAQ sections in markdown rendered to FAQPage JSON-LD via FaqJsonLdBuilder—plus crawlable HTML so extractors see the same text as humans.
Read alongside crawlable HTML in an Inertia SPA and AI search and helpful content.
What failed before (May 2026)
- Ten “What is X?” posts same day, thin bodies, no first-hand detail
- Google AdSense: Low value content
- AEO widgets without substance do not help
What we changed
## FAQheadings in markdown → parsed into JSON-LD- Contact + blog index + category pages ship
CollectionPage/ContactPageschema - Build-log posts link internally to related guides
FaqJsonLdBuilder rules (simplified)
- Questions must be
###under## FAQ - Answers are following paragraphs until next heading
- Skip if <2 Q&A pairs (avoid spam schema)
Testing
tests/Feature/Seo/CrawlablePagesTest.php asserts application/ld+json on key routes—run before deploy (Pest checklist).
FAQ
Is FAQ schema required for AdSense?
No—but it signals structured, helpful pages when content is actually helpful.
ChatGPT citations?
Unpredictable. Write for humans; schema is hinting, not magic.
Duplicate FAQ on every page?
Bad idea—we only add when the article genuinely answers distinct questions.
Contact page schema
ContactPage + Organization nested under publisher—matches visible address/email in crawlable partial.
BreadcrumbList on categories
Emitted when category has ≥3 posts—skips thin archives aligned with empty category sitemap fix.
Validator workflow
Google Rich Results Test on staging tunnel before deploy; invalid JSON-LD blocked by Pest JSON parse assertion.
FAQ (extended)
Microdata vs JSON-LD?
JSON-LD only—keeps markdown clean.
Overlapping FAQ with article body?
Answers may repeat summary paragraphs; extractors tolerate mild duplication if questions are distinct.