Skip to content

PE-8867 | fix(seo): page descriptions, canonical og tags and sitemap cleanup - #98

Merged
r0ohafza merged 4 commits into
mainfrom
seo/protocol-docs-metadata
Sep 14, 2026
Merged

r0ohafza merged 4 commits into
mainfrom
seo/protocol-docs-metadata

Conversation

@r0ohafza

@r0ohafza r0ohafza commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Why

An SEO/AEO audit of the live site (curl with Googlebot and Twitterbot user agents, plus Search Console data) found that splits.org/protocol/docs is fully crawlable and indexed but tells search engines and AI answer engines almost nothing about what it covers:

  • Every page carried the same description, the app tagline "Software to manage onchain earnings". It never mentions contracts, SDK, Split, Waterfall or Swapper, so the search snippet and the AI summary of any page were identical and off-topic. Nothing on the site said "these are the protocol docs".
  • The index title was "Docs | Protocol": no brand, no keyword. The marketing page splits.org/protocol currently outranks the docs for the contract names because the docs index said nothing.
  • Share previews were broken. og:image pointed at the per-deploy Vercel hostname, which is noindexed and changes every deploy, so link unfurls on X, Slack, Discord and Farcaster could go stale or blank. Most OG tags also used name= instead of property=, so some scrapers ignored them entirely, and og:url was the same static URL on all 29 pages.
  • Smaller signals working against us: sitemap lastmod was the build timestamp on every URL (Google discards lastmod it cannot trust, and it can lower crawl trust in the sitemap), no lang on <html>, a viewport that forbids zoom (accessibility and mobile-friendliness failure), a duplicate SVG <title> that auditors flag as a second document title, and a three-hop redirect on /sdk-info.

Impact

SEO. Each page now has a unique, keyword-bearing title and description, so snippets differentiate between the SDK client pages, the contract reference pages and the templates, and the index competes for "Split / Waterfall / Swapper contracts" queries with a matching title. Share cards resolve reliably on the public host. The sitemap no longer claims every page changed at the last deploy. These are the on-page basics that were missing; they do not fix the bigger traffic loss from the retired docs.splits.org host, which is handled separately in the website repo.

AEO. AI crawlers already have full access here and llms.txt exists. What they lacked was a per-page summary: the meta description is the first thing an answer engine reads to decide what a page is about and whether to cite it. The 29 descriptions are written as one-sentence answers ("The Waterfall contract pays recipients in sequential tranches...") so they can be quoted directly, and the index description names the four things the protocol is (open-source, audited contracts, TypeScript SDK, React hooks).

- theme.config.tsx: build og:image on splits.org instead of the per-deploy
  Vercel hostname; emit og/twitter tags through next-seo with property=
  and per-page og:url; drop duplicate viewport/theme-color, bogus twitter
  tags and the static app tagline description; descriptive index title;
  GitHub icon without an SVG <title>
- pages/**/*.mdx: description frontmatter on all 29 pages
- pages/_document.tsx: html lang=en
- next-sitemap.config.js: no build-timestamp lastmod, no inert robots.txt
- next.config.js: sdk-info redirects permanent, straight to /sdk/
@vercel

vercel Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
protocol-docs Ready Ready Preview Sep 14, 2026 10:38pm UTC

Request Review

Comment thread pages/sdk/splits-v2.mdx Outdated
@@ -1,3 +1,7 @@
---
description: "Create, update, distribute and withdraw from SplitV2 contracts with the SplitV2Client in the Splits TypeScript SDK."

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.

nit: just Splits? instead of SplitV2?

Comment thread pages/index.mdx Outdated
@@ -1,3 +1,7 @@
---
description: "Documentation for the Splits protocol: open-source, audited Split, Waterfall and Swapper smart contracts for managing onchain revenue, with a TypeScript SDK and React hooks."

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.

nit: claude is telling me this is too long (over 170 characters)

Comment thread theme.config.tsx
)
const shared = {
canonical,
openGraph: {

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.

nit: do we want to set type in here too? my claude flagged it as missing

Review nit: the description was 173 characters and Google truncates
around 160.
Review nit: plain wording matches the V1 page's "legacy V1 splits".
Review nit: next-seo only emits og:type when given one, so scrapers
saw no type.
@r0ohafza
r0ohafza merged commit 25494df into main Sep 14, 2026
1 check passed
@r0ohafza
r0ohafza deleted the seo/protocol-docs-metadata branch September 14, 2026 22:43
@r0ohafza r0ohafza changed the title fix(seo): page descriptions, canonical og tags and sitemap cleanup PE-8867 | fix(seo): page descriptions, canonical og tags and sitemap cleanup Sep 14, 2026

This branch was successfully deployed

1 active deployment
Preview — 39c01551 Deployed Sep 14, 2026 by vercel[bot]
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