fix: add Robinhood chain to ParaSwap probe (Virtuals now on chain 4663) - #1472
Merged
Conversation
added 2 commits
July 26, 2026 02:51
Four verified crawl / SEO issues confirmed on prod (2026-07-26):
1. Sitemap + /api/citable served no s-maxage, every crawl re-ran the
loader chain (x-vercel-cache: MISS observed). Add explicit
Cache-Control on both via next.config.ts headers().
2. /404 emitted two identical <meta name="robots" content="noindex">
tags because not-found.tsx set { index: false } and Next merged
instead of replacing the layout's robots shape. Give not-found the
full IS_STAGING-style shape so Next replaces.
3. Mixed-case URLs served 200 instead of 308-lowercase
(/products/Alchemy, /Benchmarks/foo). Add case-normalising 308 at
the top of middleware; broaden matcher to cover every HTML route.
4. Bench pages with chain variants (aggregator-head-lag, perp-fees)
emitted 4-5 <meta property="og:image"> tags via generateImageMetadata
fanning out per-chain entries. Social scrapers picked
nondeterministically. Chain-scoped OG cards were never rendered on
the actual /[chain] pages anyway (they inherit the site-wide OG),
so the fan-out gave no upside. Return only the default entry.
Flotapponnier
added a commit
that referenced
this pull request
Jul 26, 2026
…3) (#1472) * seo hygiene P0: cache headers + robots dedup + case redirects + og:image Four verified crawl / SEO issues confirmed on prod (2026-07-26): 1. Sitemap + /api/citable served no s-maxage, every crawl re-ran the loader chain (x-vercel-cache: MISS observed). Add explicit Cache-Control on both via next.config.ts headers(). 2. /404 emitted two identical <meta name="robots" content="noindex"> tags because not-found.tsx set { index: false } and Next merged instead of replacing the layout's robots shape. Give not-found the full IS_STAGING-style shape so Next replaces. 3. Mixed-case URLs served 200 instead of 308-lowercase (/products/Alchemy, /Benchmarks/foo). Add case-normalising 308 at the top of middleware; broaden matcher to cover every HTML route. 4. Bench pages with chain variants (aggregator-head-lag, perp-fees) emitted 4-5 <meta property="og:image"> tags via generateImageMetadata fanning out per-chain entries. Social scrapers picked nondeterministically. Chain-scoped OG cards were never rendered on the actual /[chain] pages anyway (they inherit the site-wide OG), so the fan-out gave no upside. Return only the default entry. * fix: add Robinhood chain to ParaSwap probe — Virtuals tokens now on chain 4663 --------- Co-authored-by: Florent Tapponnier <contact@mobula.io>
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.
Summary
SupportsChainonly handled"base"and"bsc". After the Virtuals chain detection fix, all Virtuals Protocol tokens now come back withchain: robinhoodfrom the Virtuals API — so ParaSwap was getting 0 probes on the entire Virtuals venue.0x5fc5360…) toparaswap.go, matching the same pattern already used by Odos and KyberSwap.per_chain_explainer.baseto note Virtuals has expanded to Robinhood chain.After deploy
Redeploy the
token-quote-coverageharness on ocb-par-main so the updated binary takes effect. Next hourly batch will start emittingparaswap/virtuals/robinhoodprobes. If ParaSwap API supports chain 4663 we get real coverage data; if not, the bench will show 0% which is still accurate and better than no data.Test plan
docker build --no-cachethen restart containertoken_quote_coverage_attempts_total{provider="paraswap", chain="robinhood"}should be > 0chain=robinhood, venue=virtualsnow shows ParaSwap row on staging bench page