fix(hl): don't emit /hyperliquid/<slug> links for builders without history - #978
Merged
Conversation
…story
Ahrefs surfaced 14 /hyperliquid/<slug> URLs returning 404 on our own
domain (supurr, nautilus-trader, superstack, unigox, slash, liquid8,
aura-money, superx, vibeliquid, blink, xtrade-protocol, kinto,
ranger-finance, topdog). Root cause:
1. isHlBuilderSlug() returns true whenever the slug appears in
hyperliquid-frontends.yml providers (spec-level).
2. /hyperliquid/<slug>/page.tsx notFound()s when the same slug is
NOT in fetchHlHistory().frontends (12-month rolling blob).
3. Some builders are in the spec but not in history (dormant, new,
paused, or just below the history-blob activity threshold).
Two inlink sources produced the 404 chain:
a) /products/<slug> checked isHlBuilderSlug() before redirecting
to /hyperliquid/<slug>, sending 12 crawler paths into a 404.
b) /hyperliquid hub cohort leaderboard rendered a link to
/hyperliquid/<slug> for every cohort row, even the 2 rows
(aura-money, nautilus-trader) with no 12m history.
Fixes:
- New isHlBuilderWithHistory(slug) checks BOTH the spec AND the
history blob. Wired into products/[slug]/page.tsx replacing the
older check, so /products/<dormant-builder> now renders the
normal provider profile instead of redirecting to a 404.
- hl-cohort-leaderboard swaps <Link> for a plain <span> on rows
where the history map has no entry. The row still shows all
KPI data + '—' for the trend column; just no crawl path into
/hyperliquid/<slug> 404s.
Flotapponnier
added a commit
that referenced
this pull request
Jul 8, 2026
…story (#978) (#979) Ahrefs surfaced 14 /hyperliquid/<slug> URLs returning 404 on our own domain (supurr, nautilus-trader, superstack, unigox, slash, liquid8, aura-money, superx, vibeliquid, blink, xtrade-protocol, kinto, ranger-finance, topdog). Root cause: 1. isHlBuilderSlug() returns true whenever the slug appears in hyperliquid-frontends.yml providers (spec-level). 2. /hyperliquid/<slug>/page.tsx notFound()s when the same slug is NOT in fetchHlHistory().frontends (12-month rolling blob). 3. Some builders are in the spec but not in history (dormant, new, paused, or just below the history-blob activity threshold). Two inlink sources produced the 404 chain: a) /products/<slug> checked isHlBuilderSlug() before redirecting to /hyperliquid/<slug>, sending 12 crawler paths into a 404. b) /hyperliquid hub cohort leaderboard rendered a link to /hyperliquid/<slug> for every cohort row, even the 2 rows (aura-money, nautilus-trader) with no 12m history. Fixes: - New isHlBuilderWithHistory(slug) checks BOTH the spec AND the history blob. Wired into products/[slug]/page.tsx replacing the older check, so /products/<dormant-builder> now renders the normal provider profile instead of redirecting to a 404. - hl-cohort-leaderboard swaps <Link> for a plain <span> on rows where the history map has no entry. The row still shows all KPI data + '—' for the trend column; just no crawl path into /hyperliquid/<slug> 404s. Co-authored-by: Florent Tapponnier <contact@mobula.io>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Ahrefs surfaced 14
/hyperliquid/<slug>URLs returning 404 on our own domain with inlinks from our own pages:12 of them: inlinked from
/products/<slug>which does a 301 to/hyperliquid/<slug>.2 of them (aura-money, nautilus-trader): inlinked from the
/hyperliquidcohort leaderboard.Root cause
isHlBuilderSlug(slug)returns true whenever the slug is inhyperliquid-frontends.ymlproviders (spec-level)./hyperliquid/[slug]/page.tsxnotFound()s when the same slug is NOT infetchHlHistory().frontends(12-month rolling blob).Fix
isHlBuilderWithHistory(slug)checks BOTH spec + history blob./products/[slug]uses the new check → dormant HL builder slugs now render the normal provider profile instead of 301-ing to a 404.hl-cohort-leaderboardrenders a plain<span>(not<Link>) on rows without history. Row still shows KPI + '—' for trend.Test plan