Skip to content

fix: add guides hub, restore hub schema, gate dead links - #33

Merged
kitfunso merged 1 commit into
masterfrom
seo/guides-hub-and-dead-links
Oct 9, 2026
Merged

kitfunso merged 1 commit into
masterfrom
seo/guides-hub-and-dead-links

Conversation

@kitfunso

@kitfunso kitfunso commented Oct 9, 2026

Copy link
Copy Markdown
Owner

What

A crawl of all 228 sitemap URLs on the live site found three defects. This PR fixes each one at its source and adds a build gate for each.

1. /guides/ returned 404. All 20 guides link to it in their breadcrumb, but the page was never built. This adds the hub page, driven by a new registry in src/lib/guides.ts. The footer now links to /guides/ and /brand-facts/, which had no inbound links.

2. Category hubs shipped with no schema. CategoryLayout.astro passes three JSON-LD scripts with slot="head", but BaseLayout.astro had no head slot, so Astro dropped them on all 13 hubs. This adds the slot. The hubs now emit CollectionPage, BreadcrumbList and WebPage. Guides and /calculators/ gain BreadcrumbList too.

3. Two calculator cards pointed at slugs that do not exist. cutting-time-calculator linked to speeds-and-feeds-calculator (now speeds-feeds-calculator). us-paycheck-calculator linked to us-tax-calculator (now the self-employment tax calculator).

Also: robots.txt disallows /cdn-cgi/, where Cloudflare email-protection links return 404 to crawlers.

Gates

  • scripts/seo/check-internal-links.mjs checked only trailing slashes. It now also fails on a link whose target page was not built.
  • New scripts/seo/check-breadcrumb-schema.mjs fails on a calculator, hub or guide page with no BreadcrumbList.
  • New tests/seo/guides-registry.test.ts keeps the registry equal to the guide pages on disk.

Both build gates fail on the previous build (3 dead targets, 34 pages with no BreadcrumbList) and pass on this one.

Checks

  • npm run test: 200 files, 1280 tests pass
  • npm run lint: 0 errors (5 warnings, all in files this PR does not touch)
  • npm run format:check: clean
  • npm run build: 240 pages, all five postbuild gates pass
  • /guides/ checked in a browser from astro preview

Merging deploys to production through Cloudflare Pages.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LtvCxD865G4AtLvupcVofJ

A live crawl of all 228 sitemap URLs found three defects:

- /guides/ was linked from all 20 guides but never built, so it
  returned 404. Add the hub page from a new guides registry and link
  it from the footer with /brand-facts/ (both had no inbound links).
- BaseLayout had no head slot, so the CollectionPage, BreadcrumbList
  and WebPage schema in CategoryLayout was dropped on all 13 category
  hubs. Add the slot. Guides and /calculators/ gain BreadcrumbList.
- Two calculator cards pointed at slugs that do not exist.

check-internal-links.mjs now also fails on a link whose target page
was not built. The new check-breadcrumb-schema.mjs fails on a
calculator, hub or guide page with no BreadcrumbList. Both fail on
the previous build.

robots.txt disallows /cdn-cgi/, where Cloudflare email-protection
links return 404 to crawlers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtvCxD865G4AtLvupcVofJ
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T08:40:49.771202Z cfcd8b9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying boring-maths with  Cloudflare Pages  Cloudflare Pages

Latest commit: cfcd8b9
Status: ✅  Deploy successful!
Preview URL: https://a4f01c71.boring-maths.pages.dev
Branch Preview URL: https://seo-guides-hub-and-dead-link.boring-maths.pages.dev

View logs

@kitfunso
kitfunso merged commit 72ce457 into master Oct 9, 2026
2 checks passed
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