Skip to content

Feat/docs seo discoverability#871

Merged
EmersonBraun merged 4 commits into
mainfrom
feat/docs-seo-discoverability
May 19, 2026
Merged

Feat/docs seo discoverability#871
EmersonBraun merged 4 commits into
mainfrom
feat/docs-seo-discoverability

Conversation

@EmersonBraun
Copy link
Copy Markdown
Collaborator

What

Why

How

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking)
  • Breaking change (requires RFC reference below)
  • Docs only
  • Chore / internal

RFC / ADR reference

Checklist

  • Tests added or updated (pnpm test passes)
  • Types check (pnpm lint)
  • Bundle size within budget (pnpm size — when configured)
  • Changeset created (pnpm changeset) — for any user-facing change
  • Docs updated (concept page, recipe, or API reference)
  • Manifesto principles respected (core <10KB, plug-and-play, zero lock-in, no any)
  • Screenshots or demo recorded (for UI changes)

Screenshots / demo

- json-ld: render via dangerouslySetInnerHTML with < escaped so
  structured data survives in the DOM (React was HTML-escaping the
  <script> children, breaking every breadcrumb/article/org block)
- sitemap: add blog posts, learn steps, showcase entries, and the
  /learn /blog /showcase /stack /community /evals routes (was docs-only)
- robots: allow /api/og so OG preview images are crawlable
- not-found: noindex 404 to keep soft-404s out of the index
- public/<key>.txt: IndexNow verification key
- scripts/ping-indexnow.mjs: read live sitemap, submit URLs to IndexNow
  (Bing/Yandex/DuckDuckGo/Ecosia), batched at 10k
- scripts/ping-google.mjs: notify Google Indexing API per URL via
  service-account JWT; no-ops without GOOGLE_INDEXING_SA secret
- .github/workflows/indexnow.yml: triggers on successful production
  deployment_status (Vercel), plus manual dispatch

Secrets to set: INDEXNOW_KEY (matches key file), optional
GOOGLE_INDEXING_SA (service-account JSON).
GSC "Not found (404)" export (2026-05-19) listed 226 crawled URLs
that 404 after repeated docs IA churn. Partitioned:

- 124 → exact target verified in the live sitemap (tool pages moved
  under /integrations, recipes under /reference/recipes, .md API
  suffix stripped, flat UI pages under /ui, etc.)
- 74 → nearest live ancestor section (dead content; recovers crawl
  budget, avoids soft-404 chains)
- 28 → intentionally left to 404 (code-snippet file paths leaked as
  links, unbuilt /es /zh locales, parsed garbage like /$ /&)

legacy-404-redirects.mjs is prepended to next.config redirects so
first-match wins over the broad wildcard rules that previously
chained these into still-dead targets. Validated: 198 unique
sources, no self-loops, no intra-list chains, config loads clean.
iam.disableServiceAccountKeyCreation prevents creating the JSON key
the script needed. Google recrawls the sitemap on its own after the
GSC sitemap submit + "Validate fix", so IndexNow alone is enough.
Removes ping-google.mjs and its workflow step.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 19, 2026

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

Project Deployment Actions Updated (UTC)
agentskit-doc Ready Ready Preview, Comment May 19, 2026 8:42pm

@github-actions
Copy link
Copy Markdown
Contributor

@EmersonBraun EmersonBraun merged commit 6eecb69 into main May 19, 2026
14 checks passed
@EmersonBraun EmersonBraun deleted the feat/docs-seo-discoverability branch May 19, 2026 20:51
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