Skip to content

seo: put the numbers back in 220 product snippets, and stop a bench flap from 404ing the best-converting page - #2625

Merged
Flotapponnier merged 1 commit into
devfrom
fix/seo-round3-regressions
Sep 22, 2026
Merged

Flotapponnier merged 1 commit into
devfrom
fix/seo-round3-regressions

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Third audit. Two of these are mine.

#2620 took every number out of 220 product snippets

Moving the registry one-liner in front of the measured lead looked right. Registry descriptions run to a median of 166 characters against a 155 cap, so capSnippet dropped the lead entirely:

production today "Invo ranks #7 of 104 on trading builder fees collected at $12.8K, #8 of 11 on Crypto trading app iOS App Store ratings at 4.23x (p50, 24h)."
HEAD before this "Invo is a Hyperliquid-powered social trading mobile app supporting 170+ perp pairs with copy-trading and a registered builder code (Hyperliquid referral."

The vendor's own SERP result already says what the product is. The ranks are the only thing ours carries that theirs does not. A one-liner under 80 characters still leads; a longer one follows the ranks, trimmed to its first clause.

#2618 would have 404ed the best-converting page on the site

Turning the compare thin gate from noindex into notFound() is right for a pair that structurally has nothing to compare, and wrong for one whose data dipped for a render window.

/compare/fomo-vs-invo sits at exactly two live shared benches and earns 36 of the site's 289 clicks (954 impressions, CTR 3.77 %, position 3.18). One flapping bench and it would have gone to 404.

The 404 now keys on the number of shared benches, which is stable; a live-count dip goes back to noindex, which recovers.

I did not take the audit's proposed fix here. It suggested lowering the sitemap threshold in adhoc-pairs.ts from 3/4 to 2/3 to match the render floor. That buffer exists precisely for this flap — its comment says so — and removing it right when crossing it became expensive is the wrong direction. The floors differ on purpose; what was wrong was the consequence of crossing.

The second dead answer, same class as yesterday

/answers/polymarket-vs-kalshi-fees references pm-fee-comparison too, 404s too, and was advertised by the same priority-0.9 hub. The filter added yesterday works — the slug was simply missing from the set. Its YAML also hand-types "flat 2%", "roughly $0.07" and a "$0.20 / $0.80" crossover, so it must not be revived as written.

pnpm typecheck clean, pnpm lint 0 errors, pnpm test 305 pass, pnpm validate 231 specs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01L4rjxemTvgRwrCG6D2iK5D

…from 404ing the best converting page, retire the second dead answer

Third audit. Two of these are mine.

#2620 moved the registry one-liner in front of the measured lead in the
product description. Registry descriptions run to a median of 166
characters against a 155 cap, so capSnippet dropped the lead entirely and
every one of the 220 product snippets lost its numbers: /products/invo
went from "Invo ranks #7 of 104 on trading builder fees collected at
$12.8K, #8 of 11 on Crypto trading app iOS App Store ratings at 4.23x
(p50, 24h)." to a vendor blurb with nothing measured in it. The vendor's
own SERP result already says what the product is; the ranks are the only
thing ours carries that theirs does not. A one-liner under 80 characters
still leads; a longer one follows the ranks, trimmed to its first clause.

#2618 turned the compare thin gate from noindex into notFound. That is
right for a pair that structurally has nothing to compare and wrong for
one whose data dipped for a render window: /compare/fomo-vs-invo sits at
exactly two live shared benches and earns 36 of the site's 289 clicks, so
one flapping bench would have 404ed the best converting URL on the
property. The 404 now keys on the number of SHARED benches, which is
stable, and a live-count dip goes back to noindex, which recovers. The
sitemap's 3/4 buffer in adhoc-pairs.ts stays exactly as written: it exists
for this flap and its comment says so. The audit proposed lowering it to
match the render floor; that would have removed the buffer precisely when
crossing it became expensive.

And the same retired-bench class as yesterday, second instance:
/answers/polymarket-vs-kalshi-fees references pm-fee-comparison too, 404s
too, and was advertised by the same hub. The filter added yesterday works;
the slug was missing from the set. Its YAML also hand-types "flat 2%",
"roughly $0.07" and a "$0.20 / $0.80" crossover, so it must not be revived
as written.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4rjxemTvgRwrCG6D2iK5D
@Flotapponnier
Flotapponnier merged commit c932f44 into dev Sep 22, 2026
2 checks passed
@Flotapponnier
Flotapponnier deleted the fix/seo-round3-regressions branch September 22, 2026 23:09
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