Skip to content

Seo/pumpfun legacy url 301s - #242

Merged
buddies2705 merged 2 commits into
mainfrom
seo/pumpfun-legacy-url-301s
Aug 11, 2026
Merged

Seo/pumpfun legacy url 301s#242
buddies2705 merged 2 commits into
mainfrom
seo/pumpfun-legacy-url-301s

Conversation

@buddies2705

Copy link
Copy Markdown
Contributor

No description provided.

Gaurav Agarwal and others added 2 commits August 11, 2026 21:13
plugin-client-redirects emits a real HTML page for every old URL: HTTP 200,
a meta-refresh, a *relative* canonical, and an EMPTY <title>. A 200 with no
title is an indexable duplicate, so each of these competes with the page it
is supposed to point at.

Verified live 2026-08-11 — all return 200 with <title></title>:
  /docs/examples/Solana/Pump-Fun-API/
  /docs/examples/Solana/Pump-Fun-Marketcap-Bonding-Curve-API/
  /docs/examples/Solana/pump-swap-api/
  /docs/examples/dextrades/Pump-Fun-API/
  /docs/blockchain/Solana/Pump-Fun-API/

That is nine indexable URLs for a four-page cluster, and Google is using
them. On 2026-08-09, GSC recorded /docs/examples/Solana/Pump-Fun-API/ at
position 3 for "pumpfun api" while the canonical page sat at 13.4 the same
day — the soft-redirect stub outranking the real page.

Adds one regex location returning real 301s. The client-side redirects stay
as a fallback for any request that bypasses nginx.

Loop safety, checked exhaustively before committing: the capture group matches
only bare page names, never a "Pumpfun/<page>" segment, so the redirect targets
cannot re-enter the block. Verified 10 legacy paths redirect, 10 canonical and
neighbouring paths untouched, 0 loops. The existing ^~ /docs/blockchain/Solana/PumpFun
block does not shadow these — "PumpFun" is not a prefix of "Pump-Fun-API".

NOT verified: nginx syntax. Neither nginx nor docker is available in the
environment this was written in, so `nginx -t` could not be run. The following
commit adds that check to CI. Do not merge until it passes — a bad config here
does not fail the build, it fails container start.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nginx/default.conf is copied into the runtime image by the Dockerfile but was
not checked anywhere in CI, which only runs `npm run build` and the link
checker. A syntax error therefore survives the build and surfaces at container
start, taking the docs offline on deploy.

Runs `nginx -t` against the same nginx:stable-alpine the image is built from.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@buddies2705
buddies2705 merged commit b04cebc into main Aug 11, 2026
1 check 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