Add FAQPage schema + answer-first intro to AI infrastructure tools guide#20083
Conversation
Enables the existing what-is-style FAQPage schema mechanism for blog posts via an opt-in `faq_schema: true` frontmatter flag, then turns it on for /blog/ai-infrastructure-tools/, which already carries a genuine 9-question FAQ section. Blog posts are gated behind an explicit opt-in rather than a blanket `.Type "blog"` check because 168+ existing posts contain narrative headings ending in "?" that are not real Q&A sections; a blanket gate would emit inaccurate FAQPage schema across the archive. This keeps the mechanism reusable for future posts (mirrors the what-is template pattern from the earlier comparison-page FAQPage work) instead of a one-off inline JSON-LD block. Also rewrites the post's opening paragraph into an answer-first format (55 words) that states what the two AI-infrastructure markets are before any narrative framing, targeting our weakest AI-visibility topic (11.36% visibility per Profound) on a page that already drives citations.
Pre-merge Review — Last updated 2026-07-07T19:50:15ZWarning Automated fact-checking was incomplete for this review. The verification service errored on 1 of 70 claim(s); those trail entries are unconfirmed — spot-check them manually. Once the service is back, mention Tip Summary: This PR is an SEO/AEO enhancement to the existing "Best AI Infrastructure Tools in 2026" blog post. It makes two changes: (1) it rewrites the opening paragraph to be answer-first — leading with the two-market definition (infrastructure for AI vs AI for infrastructure) rather than building up to it — and (2) it opts the post into FAQPage structured data via a new Review confidence:
Investigation log
🔍 Verification trail70 claims extracted · 59 verified · 10 unverifiable · 1 contradicted
📊 Editorial balanceSection depth, mention distribution, recommendation steering
🚨 Outstanding in this PRNo outstanding issues in this PR.
|
💡 Pre-existing issues in touched files (optional)
✅ Resolved since last reviewNo items resolved since the last review. 📜 Review history
Need a re-review? Want to dispute a finding? Mention |
|
Your site preview for commit 560ec16 is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-20083-560ec161.s3-website.us-west-2.amazonaws.com |
Lighthouse Performance ReportCommit: 560ec16 | Metric definitions
|
|
@claude This branch can't merge due to a conflict. Please resolve. |
|
Claude finished @CamSoper's task in 3m 37s —— View job Merge conflict resolved ✅
What happenedThe branch's shallow clone couldn't see The only conflict was in
The merged comment block above the condition documents both rules. Diff vs. Note: No Hugo binary/ |
…ucture-tools # Conflicts: # layouts/partials/schema/graph-builder.html
|
@claude #update-review |
|
🤖 Review updated on @CamSoper's request. |
What this does
Adds FAQPage structured data and an answer-first opening to /blog/ai-infrastructure-tools/, our weakest topic in AI-visibility tracking (AI Infrastructure sits at 11.36% visibility per our Profound monitoring, well behind Alternatives at 97.6% and DevOps Solutions at 96.9%) despite Pulumi's AI-native infrastructure positioning. The page already earns real citation volume, so structural improvements here compound rather than starting from zero.
Changes
Template: extends
layouts/partials/schema/graph-builder.htmland reuses the existingschema/collectors/faq-entity.htmlFAQ-extraction partial (already powering FAQPage schema onwhat-ispages) to also fire for blog posts, gated behind an opt-infaq_schema: truefrontmatter flag rather than a blanket.Type "blog"check.The opt-in gate is deliberate: 168+ existing blog posts contain narrative
###/##headings that happen to end in?without being real Q&A sections (checked viagrep -rn '^#\{2,3\} .*?$' content/blog/). A blanket type-based gate would generate inaccurate FAQPage schema across the whole archive. The flag keeps this a reusable template mechanism, not a per-page hack: any future blog post with a genuine FAQ section picks up schema by adding one frontmatter line.Content: sets
faq_schema: trueon/blog/ai-infrastructure-tools/, which already carries a genuine 9-question FAQ section under## Frequently asked questions, and rewrites the opening paragraph into an answer-first format, 55 words, stating what the two AI-infrastructure markets are (infrastructure for AI vs. AI for infrastructure) before any narrative framing.Verification
grepthat the existing FAQ section's H3 headings all end in?, matching the FAQ-entity partial's parsing rule for non-/faq/pages.acceptedAnswer.text(the partial extracts directly from.RawContent, so page and schema text are the same source and can't drift).faq_schema: true.what-isFAQPage pattern exactly (same partial, samemainEntityshape).🧠 This PR was created by workprentice on behalf of @joeduffy.