feat(seo): TL;DR + FAQPage + ItemList schema infrastructure#13
Merged
Conversation
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>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
tldr,faq,reviewedBy.SchemaOrg.astroemits ItemList JSON-LD when anitemListprop is set; threaded throughBaseLayoutandPageLayout.BlogPostLayoutplumbsfaqthrough toPageLayout.faqDataso existingFAQPageschema infra picks it up — no SchemaOrg changes needed for FAQ.Layout
tldris set. Auto-renders\n\n-separated paragraphs and-bullet lists.faqis set.reviewedByfield in Article JSON-LD whenreviewedByis set.Wired index pages
ItemList is now active on:
/blog/— newest 20 posts/integrations/— all live integrations/oss-tools/dryfit/scenarios/— all 15 scenariosMisc
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
/blog/source includes"@type":"ItemList"JSON-LD/integrations/and/oss-tools/dryfit/scenarios/sametldr:field to any blog post frontmatter renders a Quick Answer calloutfaq:array renders the accordion + emits FAQPage JSON-LDreviewedBy:field renders the reviewer byline + adds reviewedBy to Article JSON-LD🤖 Generated with Claude Code