Skip to content

hotfix(seo): bundle 3 SEO 404 fixes to main (alternatives + composite slug + ton→gram scope) - #753

Merged
Flotapponnier merged 3 commits into
mainfrom
hotfix/seo-fixes-bundle-to-main
Jun 26, 2026
Merged

hotfix(seo): bundle 3 SEO 404 fixes to main (alternatives + composite slug + ton→gram scope)#753
Flotapponnier merged 3 commits into
mainfrom
hotfix/seo-fixes-bundle-to-main

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Summary

Cherry-pick bundle of 3 SEO-only fixes from dev → main, so prod ships the 404 cleanup without dragging the rest of dev's accumulated work.

  1. `fix(seo): drop dead /alternatives links from perp/PM venue footers + dead compare pair` (was fix(seo): drop dead /alternatives + jupiter-vs-raydium compare #749 on dev)

    • Gates `/alternatives/` footer links in `pm-venue-section.tsx` and `perp-venue-section.tsx` on `loadAlternativeSlugs()` membership
    • Kills 14 dead 404s (lighter, manifold, vertex, grvt, ostium, variational, pacifica, aevo, edgex, paradex, extended, myriad, limitless, aster)
    • Pre-resolves `COMPARE_PAIRS` in `compare/page.tsx` and skips pairs where either side is unresolved (kills jupiter-vs-raydium)
  2. `fix(seo): blacklist hex builder slugs and shared composite filter` (was fix(seo): blacklist hex builder + shared composite filter #747 on dev)

    • DEAD_COMPOSITE_SLUGS Set + HEX_ADDRESS_SLUG regex applied in `buildProviders` + `getProvider` + `related-providers`
    • Bumps cache key v3 → v4
  3. `fix(seo): scope ton→gram redirect to benches with gram explainer` (supersedes hotfix(seo): scope ton→gram redirect to benches with gram explainer #750)

    • Replaces catch-all `/benchmarks/:slug/ton → :slug/gram` with explicit per-bench redirects for l1-finality, network-fees, wallet-labels-coverage
    • Stops the 308→404 chain on aggregator-head-lag / gas-estimation / rpc-capabilities / etc.

Closes #750. PRs #747 + #749 remain open against dev for staging record.

Test plan after `vercel --prod`

  • `curl -I /alternatives/lighter` returns 404 (page still gone) but no internal link from `/perps` or `/pm`
  • `/compare` does not list jupiter-vs-raydium
  • `curl -I /benchmarks/aggregator-head-lag/ton` returns 404 (no redirect chain)
  • `curl -I /benchmarks/l1-finality/ton` still 308 → /gram (200)
  • `/products/0x` and `/products/codex-solana` continue to 404

Florent Tapponnier added 3 commits June 26, 2026 15:28
…dead compare pair

Two SEO regressions feeding 404s into Google's crawl:

1. /products/<slug> for perp/PM venues without an alternatives YAML
   (lighter, manifold, vertex, grvt, ostium, variational, pacifica,
   aevo, edgex, paradex, extended, myriad, limitless, aster) hardcoded
   a /alternatives/<slug> footer link in PmVenueSection and
   PerpVenueSection. Now gated on loadAlternativeSlugs() membership so
   only venues with an actual YAML emit the link.

2. /compare hub rendered jupiter-vs-raydium even though raydium has
   no bench appearances, so /compare/jupiter-vs-raydium 404s
   downstream. Pre-filter COMPARE_PAIRS against getProvider() so dead
   pairs disappear from the list and the JSON-LD ItemList until both
   sides resolve.

Plus a defensive guard in buildAlternativesReverseMap() so the
emitted alt.slug is always a known live YAML, even if the alt list
source ever changes shape.
Drop 15 anonymous 0x... HL builder slugs and 5 dead composite slugs
from /products listing, sitemap and individual /products/<slug> routes.
DEAD_COMPOSITE_SLUGS now lives in providers.ts as the single source of
truth; related-providers.ts imports it. Bumps providers cache key v3->v4.
The catch-all /benchmarks/:slug/ton redirect fired on every bench,
including aggregator-head-lag/gas-estimation/rpc-capabilities/etc that
have no per_chain_explainer for gram. Result: 308 chain into 404, which
Ahrefs + Google flag as a soft-404 anti-pattern.

Now explicit per-bench: l1-finality, network-fees, wallet-labels-coverage.
@Flotapponnier
Flotapponnier merged commit 2799b81 into main Jun 26, 2026
1 check passed
@Flotapponnier
Flotapponnier deleted the hotfix/seo-fixes-bundle-to-main branch July 17, 2026 14:43
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