Skip to content

bridge pages: SEO/GEO audit fixes (titles with live leader, false claims removed, internal links, stale hub columns) - #2538

Merged
Flotapponnier merged 1 commit into
devfrom
fix/bridge-seo-geo
Sep 19, 2026
Merged

Flotapponnier merged 1 commit into
devfrom
fix/bridge-seo-geo

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Follow-up to the bridge SEO/GEO audit (.saudit/bridges/report.md, verdict FIX THEN SHIP).

Blockers

  • bridge-fee / bridge-quote-latency: seo_title and seo_description now carry the live leader and number (Cheapest USDC bridge: Squid Router at 0.0067% all in, Fastest bridge quote API: Mobula at 40 ms (live p50)), descriptions 148/150 chars with the trailer named. 367 impressions, 1 click behind the old generic titles.
  • False measured claims removed from FAQ/findings (all in FAQPage JSON-LD): "vary 10x" (live spread 164x), "$5, $50, $300, $1000 and $10000 buckets" (harness quotes 5/50/300), "100 to 400 ms", "5x gap… 10 to 20x", "on the roadmap" corridor breakdown (the tabs exist), 10-bucket histogram list (16 buckets since 2026-09-19).
  • Answers: which-bridge-has-the-cheapest-usdc-fee answers in the first sentence with {{best_name}}/{{best_p50}} instead of a URL and a typed cohort of six; cheapest-bridge-usdc-to-base rewritten on the real corridor (Sol to Base cell via {{best_name:chain:Base}}, bridge_cost_percent, 24h p50; it claimed Ethereum to Base, bps, 24h average, per-size tabs); which-bridge-has-the-fastest-quote-api drops the typed list, the three-regions claim and discloses NI's fixed 3 s wait; duplicate meta description gone; answers seo_title now renders placeholders.
  • Validator: placeholder resolution now runs on answers/*.yml against their bench, plus a rule against {{count}} <noun> (A, B, C, D…) typed cohorts. It caught what-is-the-highest-crypto-staking-yield (Sui listed, 6 measured), fixed too.

Majors

  • Internal linking: AnswersForBench on bench pages and the /bridge hub; CompareThisBench on answers pages and the hub.
  • /bridge hub: title/description rewritten, "three regions" gone, as-of line, em dash removed. Also a real data bug: the US/SGP columns showed 2026-09-09 figures (stale KV variants no longer materialized since the region dimension was scoped to EU-West). Variants older than the stale threshold are ignored and the table renders only regions with live data.
  • /products/<slug> meta: short bench labels for non-RPC benches (title head, or <category noun> <metric> when long).
  • /compare/<a>-vs-<b>: FAQ questions deduped (bench named when both winners share the verb), description date from the newest shared run instead of new Date(), title X vs Y 2026: N live benchmarks compared.

Minors

  • Ad hoc compare pairs above the live floor enter the sitemap (91 on dev, incl. lifi-vs-relay which ranks at 4.0); lastmod from the shared benches' specs.
  • Registry-only product pages take the registry file's lastmod instead of catalogTs; benchmarks/compare/products [slug]/page.tsx in the git-mtime manifest.
  • Answers pages ship the Highwire citation_* block.
  • Bridge report front matter: title without "Best", 151-char summary, dated hero finding.

Verified locally on a fresh dev server: titles, descriptions (all ≤158), FAQ uniqueness, 0 leftover {{, links counts, sitemap sections; pnpm validate, tsc (src clean), 272 tests pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HJgbZCqjR4nvCfcJSzofbw

…03 name the live leader and number; the fee FAQ and the three bridge answers drop the claims the harness never measured ($1000/$10000 buckets, 10x, 100 to 400 ms, three regions, Ethereum to Base); the USDC-to-Base answer reads the Sol to Base cell; answers get compare links and citation meta, bench pages and the /bridge hub list their answers; the hub hides region columns whose variant is stale (US/SGP showed 2026-09-09 figures) and shows an as-of line; products meta uses short bench labels; compare pages dedupe the FAQ, date from the newest run and carry the count in the title; ad hoc compare pairs enter the sitemap; validator lints answers placeholders and typed cohorts

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HJgbZCqjR4nvCfcJSzofbw
@Flotapponnier
Flotapponnier merged commit 3d7174b into dev Sep 19, 2026
1 check failed
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.

2 participants