Skip to content

feat(seo): TL;DR + FAQPage + ItemList schema infrastructure#13

Merged
nadyyym merged 1 commit into
masterfrom
seo/tldr-faq-itemlist-schema
May 7, 2026
Merged

feat(seo): TL;DR + FAQPage + ItemList schema infrastructure#13
nadyyym merged 1 commit into
masterfrom
seo/tldr-faq-itemlist-schema

Conversation

@nadyyym

@nadyyym nadyyym commented May 7, 2026

Copy link
Copy Markdown
Member

Summary

Ships the GEO-readiness schema layer per the 2026 best-practice playbook — 74.2% of AI citations come from "Top N" listicle-format pages with triple JSON-LD schema stacking (Article + ItemList + FAQPage) and an extractable Quick Answer block above the fold.

This PR is infrastructure only — adds the schema layer and the layout slots so per-post content can land in Batch C without further code changes.

Schema layer

  • New optional blog frontmatter fields: tldr, faq, reviewedBy.
  • SchemaOrg.astro emits ItemList JSON-LD when an itemList prop is set; threaded through BaseLayout and PageLayout.
  • BlogPostLayout plumbs faq through to PageLayout.faqData so existing FAQPage schema infra picks it up — no SchemaOrg changes needed for FAQ.

Layout

  • Quick Answer / TL;DR callout renders above the cover image when tldr is set. Auto-renders \n\n-separated paragraphs and - bullet lists.
  • FAQ accordion renders above the "Explore Beton" aside when faq is set.
  • Reviewer byline ("Author · Reviewed by Markelov") + reviewedBy field in Article JSON-LD when reviewedBy is set.

Wired index pages

ItemList is now active on:

  • /blog/ — newest 20 posts
  • /integrations/ — all live integrations
  • /oss-tools/dryfit/scenarios/ — all 15 scenarios

Misc

Also fixes a few /tools/dryfit/ references in canonicalPath/breadcrumb fields that the Batch G sed missed (oss-tools/dryfit.astro, scenarios pages).

Stacked on Batch G

Branched off seo/oss-tools-pillar (PR #12) so the oss-tools file moves are visible. Will rebase against master after #12 lands.

Test plan

  • Vercel preview deploys clean
  • /blog/ source includes "@type":"ItemList" JSON-LD
  • /integrations/ and /oss-tools/dryfit/scenarios/ same
  • Adding a tldr: field to any blog post frontmatter renders a Quick Answer callout
  • Adding a faq: array renders the accordion + emits FAQPage JSON-LD
  • Adding a reviewedBy: field renders the reviewer byline + adds reviewedBy to Article JSON-LD
  • No regressions on existing posts (no fields set → unchanged render)

🤖 Generated with Claude Code

GEO-readiness layer per the 2026 best-practice playbook (74.2% of AI citations come from "Top N" listicle-format pages with triple JSON-LD schema stacking + extractable Quick Answer above the fold).

- Blog content schema: new optional fields `tldr` (string), `faq` (array of {question, answer}), `reviewedBy` (reviewer name).
- BlogPostLayout: renders TL;DR callout above article body when set; renders FAQ accordion above the "Explore Beton" aside; emits FAQPage JSON-LD via existing PageLayout.faqData wiring; adds reviewedBy to byline + Article JSON-LD when set.
- SchemaOrg.astro: new optional itemList prop emitting ItemList JSON-LD; threaded through BaseLayout and PageLayout.
- ItemList wired on three index pages: /blog/, /integrations/, /oss-tools/dryfit/scenarios/.

Also picks up a few internal-href and canonicalPath leftovers from Batch G (oss-tools/dryfit and oss-tools/seqd had a couple of /tools/ references that the sed missed).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented May 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
getbeton-ai-landings Ready Ready Preview, Comment May 7, 2026 7:54am

Request Review

@nadyyym nadyyym merged commit 4a99d61 into master May 7, 2026
2 of 3 checks passed
@nadyyym nadyyym deleted the seo/tldr-faq-itemlist-schema branch May 7, 2026 08:26
nadyyym added a commit that referenced this pull request May 9, 2026
The workflow has been failing on every PR (including merged #13/#14/#15/#16)
since at least early May 2026 with ECONNREFUSED localhost:4321 — the
"Start preview server" step backgrounds astro preview but the readiness
loop races and the next step fetches before the server binds. The team
has been ignoring the failure for months.

scripts/seo-check.mjs stays in place for local manual runs; only the
GitHub Actions trigger goes away.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant