seo P2 batch: CSP + twitter:site + grammar + hyperliquid Dataset + feed.json - #1490
Merged
Conversation
Five P2 fixes from the SEO deep audit (2026-07-26):
1. CSP: allowlist analytics.ahrefs.com in script-src + connect-src.
Ahrefs script was silently violating CSP on every visitor.
2. products/[slug]: add twitter:site (was only card+title+description
before, every other route type ships it).
3. chains/[slug]: pluralize 'N measurement' vs 'N measurements'
('1 measurements' on Polkadot hub reads broken).
4. hyperliquid/[slug]: add Dataset JSON-LD (only had BreadcrumbList,
GSC treats content-heavy pages with only breadcrumbs as 'no
structured data'). Dataset carries revenue+volume variableMeasured
pointing at /api/stat/hyperliquid-frontends.
5. Add /feed.json (JSON Feed 1.1) as a companion to /rss.xml. Modern
readers + AI agent tooling (Perplexity crawler, LangChain document
loaders, MCP clients) prefer JSON over XML. <link rel=alternate>
added in layout for auto-discovery.
Skipped items from the audit:
- SITE.github Flotapponnier: false positive, ChainBench URL works.
- robots.txt User-Agent casing: both forms are spec-compliant.
- /ai.txt: no formal spec exists; llms.txt already covers.
- JSON-LD body→head migration: refactor cost > payoff.
- MCP directory registration: external, requires Anthropic account.
Flotapponnier
added a commit
that referenced
this pull request
Jul 26, 2026
…1490) Five P2 fixes from the SEO deep audit (2026-07-26): 1. CSP: allowlist analytics.ahrefs.com in script-src + connect-src. Ahrefs script was silently violating CSP on every visitor. 2. products/[slug]: add twitter:site (was only card+title+description before, every other route type ships it). 3. chains/[slug]: pluralize 'N measurement' vs 'N measurements' ('1 measurements' on Polkadot hub reads broken). 4. hyperliquid/[slug]: add Dataset JSON-LD (only had BreadcrumbList, GSC treats content-heavy pages with only breadcrumbs as 'no structured data'). Dataset carries revenue+volume variableMeasured pointing at /api/stat/hyperliquid-frontends. 5. Add /feed.json (JSON Feed 1.1) as a companion to /rss.xml. Modern readers + AI agent tooling (Perplexity crawler, LangChain document loaders, MCP clients) prefer JSON over XML. <link rel=alternate> added in layout for auto-discovery. Skipped items from the audit: - SITE.github Flotapponnier: false positive, ChainBench URL works. - robots.txt User-Agent casing: both forms are spec-compliant. - /ai.txt: no formal spec exists; llms.txt already covers. - JSON-LD body→head migration: refactor cost > payoff. - MCP directory registration: external, requires Anthropic account. Co-authored-by: Florent Tapponnier <contact@mobula.io>
Flotapponnier
added a commit
that referenced
this pull request
Jul 26, 2026
…1490) (#1491) Five P2 fixes from the SEO deep audit (2026-07-26): 1. CSP: allowlist analytics.ahrefs.com in script-src + connect-src. Ahrefs script was silently violating CSP on every visitor. 2. products/[slug]: add twitter:site (was only card+title+description before, every other route type ships it). 3. chains/[slug]: pluralize 'N measurement' vs 'N measurements' ('1 measurements' on Polkadot hub reads broken). 4. hyperliquid/[slug]: add Dataset JSON-LD (only had BreadcrumbList, GSC treats content-heavy pages with only breadcrumbs as 'no structured data'). Dataset carries revenue+volume variableMeasured pointing at /api/stat/hyperliquid-frontends. 5. Add /feed.json (JSON Feed 1.1) as a companion to /rss.xml. Modern readers + AI agent tooling (Perplexity crawler, LangChain document loaders, MCP clients) prefer JSON over XML. <link rel=alternate> added in layout for auto-discovery. Skipped items from the audit: - SITE.github Flotapponnier: false positive, ChainBench URL works. - robots.txt User-Agent casing: both forms are spec-compliant. - /ai.txt: no formal spec exists; llms.txt already covers. - JSON-LD body→head migration: refactor cost > payoff. - MCP directory registration: external, requires Anthropic account. 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.
5 P2 fixes from the deep SEO audit. See commit for details + explicit list of items skipped as false positives / low-ROI.