Skip to content

docs: add redirects for the most-hit 404 paths seen in GA4 - #2353

Merged
GigaHierz merged 2 commits into
mainfrom
GigaHierz/2298-redirects-from-ga4-404s
Oct 2, 2026
Merged

GigaHierz merged 2 commits into
mainfrom
GigaHierz/2298-redirects-from-ga4-404s

Conversation

@GigaHierz

@GigaHierz GigaHierz commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Refs #2298

The GA4 "Page Not Found" report (Page path x Page title, 3-30 September) listed 110 distinct failing paths. I checked each against the live site: 37 already redirect (the earlier redirect PRs working), 71 still return 404. This adds redirects for the 38 of those that map to a page that exists today (one wildcard entry covers three of them), plus three single-hop fixes for paths that already redirected through a wildcard.

What changed

docs.json: 41 redirect entries (net of one exact entry replaced by a wildcard), each source to the page that answers the same question, e.g. /quickstart to /build-on-celo/quickstart, /home/celo-token to /home/protocol/celo-token, /home/protocol/transaction/:slug* to /home/protocol/transactions/:slug*, /protocol/transaction/fees to /operate/specification/transaction-fees, the build-on-celo/minipay variants to /build-on-celo/build-on-minipay/overview. Retired L1 operator and Baklava paths go to the nearest current operator or network page. The three extras, /infra-partners/integration/nightfall, /learn/celo-token and /learn/developer-tools, now reach their final page in one hop instead of two. The .mdx redirect stays for indexed copies; the source link in tooling/nodes/overview.mdx is fixed.

Deliberately not redirected

  • Malformed paths from links elsewhere that end in )., )Developer, " or :.<b>Phone.
  • Not our content: /u/…, /t/… (forum), /token/0x…, IPFS and /api/* probes, /v/master/… and /developer-guide/summary/… generated SDK docs, translated blog posts.
  • Template and probe paths: /api-reference/*, /essentials/*.
  • /security, /home/protocol/stability, /developer-resources/climate: no page that answers the same question.

Caveat on the numbers

The tracking only started in late August, so the earlier baseline covered a few days, and the views here include visits from before the redirects landed. Re-run the report after a week to see what is still being hit.

Verification

$ jq '.redirects | [length, (map(.source) | length - (unique | length))]' docs.json
[1015, 0]            # 1015 redirects, 0 duplicate sources
$ mint broken-links --check-redirects
success no broken links found
$ bash scripts/check-orphans.sh
No orphan pages found.

No pages moved or deleted.

🤖 Generated with Claude Code

Refs #2298

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@palango palango left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working through the GA4 list. The mechanics are clean: all 38 sources return 404 on production today, every destination is an in-nav page, there are no duplicate or shadowed sources and no new chains, and mint validate plus mint broken-links --check-redirects pass locally. I checked each source with mint dev and they all land where intended.

I'd like two small changes before merging.

/home/protocol/transaction/overview should point to /home/protocol/transactions/overview, not /home/gas-fees. That 404 comes from the existing /what-is-celo/using-celo/protocol/:slug* wildcard. The old page was the transactions overview, and its two siblings (transaction-types, tx-comment-encryption) hit the same dead prefix. One wildcard, /home/protocol/transaction/:slug* to /home/protocol/transactions/:slug*, covers all three.

The .mdx source comes from our own content. tooling/nodes/overview.mdx line 19 links contribute-to-celo/community-rpc-nodes/community-rpc-node.mdx as a relative link, which renders as that 404 path. Please fix the link to /contribute-to-celo/community-rpc-nodes/community-rpc-node in this PR. Keeping the redirect for indexed copies is fine.

A few optional points are inline. Nothing else blocks.

Comment thread docs.json Outdated
},
{
"source": "/home/protocol/transaction/overview",
"destination": "/home/gas-fees"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This 404 is produced by the /what-is-celo/using-celo/protocol/:slug* wildcard, and the old page was the transactions overview, now at /home/protocol/transactions/overview ("Transactions on Celo"). /home/gas-fees is about getting CELO for gas. The siblings /home/protocol/transaction/transaction-types and /home/protocol/transaction/tx-comment-encryption are also 404 today, so a single /home/protocol/transaction/:slug* to /home/protocol/transactions/:slug* entry would cover all three.

Comment thread docs.json Outdated
},
{
"source": "/tooling/overview/network/node/overview",
"destination": "/operate/operators/run-node"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The existing /network/node/:slug* wildcard sends the same node overview to /tooling/nodes/overview. That page seems the closer match here, since it covers hosted and community RPC options as well as self-hosting. Non-blocking.

Comment thread docs.json
},
{
"source": "/tooling/nodes/contribute-to-celo/community-rpc-nodes/community-rpc-node.mdx",
"destination": "/contribute-to-celo/community-rpc-nodes/community-rpc-node"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The source of this one is tooling/nodes/overview.mdx line 19, which links contribute-to-celo/community-rpc-nodes/community-rpc-node.mdx as a relative path with the extension (AGENTS.md section 6). It renders as exactly this URL. Could you fix that link to /contribute-to-celo/community-rpc-nodes/community-rpc-node here too? Keeping the redirect for indexed copies is fine.

Comment thread docs.json Outdated
},
{
"source": "/getting-started/baklava-testnet/running-a-validator",
"destination": "/operate/operators/run-node"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Main sends the neighbouring /getting-started/baklava-testnet/running-a-validator-in-baklava and /network/baklava/run-validator to /contribute-to-celo/community-rpc-nodes/community-rpc-node. Worth matching one way or the other. Non-blocking.

Comment thread docs.json Outdated
},
{
"source": "/operations-manual/celo-foundation-voting-policy",
"destination": "/operate"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Other retired L1 validator content (the /what-is-celo/about-celo-l1/:slug* wildcard, /celo-codebase/protocol/consensus*) goes to /home/celo-l1. That fits the Foundation voting policy better than the operator landing page. Non-blocking.

Comment thread docs.json
},
{
"source": "/operate/integration/nightfall",
"destination": "/build-on-celo/nightfall"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional: this fixes the second hop of /infra-partners/integration/nightfall, which goes through /infra-partners/:slug* first. An exact /infra-partners/integration/nightfall entry to /build-on-celo/nightfall would make that a single hop. The same applies to /learn/celo-token and /learn/developer-tools via /learn/:slug*.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@GigaHierz
GigaHierz requested a review from a team as a code owner October 2, 2026 09:40
@GigaHierz
GigaHierz requested review from palango and seolaoh and removed request for a team October 2, 2026 09:40
@GigaHierz

Copy link
Copy Markdown
Contributor Author

Review points addressed in d5a7c21.

  • /home/protocol/transaction/overview is replaced by one wildcard, /home/protocol/transaction/:slug* to /home/protocol/transactions/:slug*, covering the overview, transaction-types and tx-comment-encryption (all three old paths 404 on production; all three targets exist and are in nav).
  • tooling/nodes/overview.mdx line 19 now uses the root-relative link; the .mdx redirect stays.
  • Optional points applied, each a single hop: the node overview goes to /tooling/nodes/overview; the Baklava validator paths match their neighbours on main; the Foundation voting policy goes to /home/celo-l1; exact entries added for /infra-partners/integration/nightfall, /learn/celo-token and /learn/developer-tools.

1015 redirects, 0 duplicate sources, no destination that is itself a source; mint broken-links --check-redirects and the orphan check pass. Two other relative internal links were found and left alone: contribute-to-celo/contributors/code-contributors.mdx:53 and contribute-to-celo/community-rpc-nodes/registering-as-rpc-node.mdx:330.

@palango palango left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick turnaround. Both blocking points are fixed: the /home/protocol/transaction/:slug* wildcard sends overview, transaction-types and tx-comment-encryption to their pages under /home/protocol/transactions/, and the community RPC link in tooling/nodes/overview.mdx is root-relative. You also picked up all the optional points, including the three single-hop entries. CI is green. One heads-up: this and #2346 both add redirects at the top of the array in docs.json, so whichever lands second needs a quick rebase.

@GigaHierz
GigaHierz merged commit 0a49f8d into main Oct 2, 2026
5 checks passed
@GigaHierz
GigaHierz deleted the GigaHierz/2298-redirects-from-ga4-404s branch October 2, 2026 10:58
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