Skip to content

chore(seo): add ex-sinks baseline to pulse reports - #93

Merged
nibzard merged 1 commit into
mainfrom
seo/pulse-ex-sinks-baseline
Jul 30, 2026
Merged

chore(seo): add ex-sinks baseline to pulse reports#93
nibzard merged 1 commit into
mainfrom
seo/pulse-ex-sinks-baseline

Conversation

@nibzard

@nibzard nibzard commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Two docs pages absorb a third of all Search Console impressions at near-zero CTR, so every site-level clicks/impressions/CTR number in the pulse describes those pages instead of the docs:

Page Impressions Share CTR
/llms-full.txt 37,527 18.0% 0.03%
/overview/self-hosting/railway 36,672 17.6% 0.05%

Site CTR reads 0.29% with them, 0.44% without (pages people actually click run 0.85% to 1.7%).

What changed

  • config.json gains impression_sinks, with a comment explaining what each page does to the numbers, so the list is easy to edit when another page starts behaving the same way.
  • New Phase 0 script gsc-perf.mjs: parses a Search Console pages export and prints site clicks/impressions/CTR as exported and ex-sinks, plus each sink's share of impressions, and writes a perf-YYYY-MM.json snapshot for next month's delta.
  • SKILL.md: the report template now carries both views, and month-over-month comparison is on the ex-sinks row. The as-exported number is never dropped.
  • The July report gets a dated addendum recording the ex-sinks baseline (586 clicks / 134,125 impressions / 0.44% CTR, Apr 29 to Jul 28) and the Jul 10-18 impression cliff, with the evidence it is Google-side: the decline finishes before docs(seo): SEO research, tooling, and P0 title/meta rewrites #72/feat(seo): BreadcrumbList JSON-LD site-wide + TechArticle on integrations #73 merged (Jul 23) and before the llms.txt work (Jul 29-30), clicks held (-9%) while impressions fell 35% and CTR rose 0.26% to 0.36%.

Tests

tests/seo-ex-sinks.test.ts (TDD, written first) covers the export parsing and the ex-sinks totals: thousands separators, header variants, sink matching by path or full URL, and a sink missing from the export. Full suite green, biome clean.

Two docs pages absorb a third of all Search Console impressions at near-zero
CTR (/llms-full.txt and /overview/self-hosting/railway), so every site-level
clicks/impressions/CTR number describes them instead of the docs.

- add `impression_sinks` to the pulse config, with the reason each page is listed
- add Phase 0 (gsc-perf.mjs): parses a Search Console pages export and prints
  site totals as exported and ex-sinks, plus each sink's share of impressions
- report template now carries both views and compares month over month on ex-sinks
- record the ex-sinks baseline and the Jul 10-18 impression cliff (Google-side:
  onset predates every July SEO commit) in the July report
@vercel

vercel Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview Jul 30, 2026 1:00pm

Request Review

@nibzard
nibzard merged commit d6a338c into main Jul 30, 2026
2 of 3 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