PE-8867 | fix(seo): page descriptions, canonical og tags and sitemap cleanup - #98
Merged
Merged
Conversation
- 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/
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
r0ohafza
marked this pull request as ready for review
September 14, 2026 22:05
mihoward21
approved these changes
Sep 14, 2026
| @@ -1,3 +1,7 @@ | |||
| --- | |||
| description: "Create, update, distribute and withdraw from SplitV2 contracts with the SplitV2Client in the Splits TypeScript SDK." | |||
Contributor
There was a problem hiding this comment.
nit: just Splits? instead of SplitV2?
| @@ -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." | |||
Contributor
There was a problem hiding this comment.
nit: claude is telling me this is too long (over 170 characters)
| ) | ||
| const shared = { | ||
| canonical, | ||
| openGraph: { |
Contributor
There was a problem hiding this comment.
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.
This branch was successfully deployed
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.
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:
og:imagepointed 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 usedname=instead ofproperty=, so some scrapers ignored them entirely, andog:urlwas the same static URL on all 29 pages.lastmodwas the build timestamp on every URL (Google discardslastmodit cannot trust, and it can lower crawl trust in the sitemap), nolangon<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.orghost, which is handled separately in the website repo.AEO. AI crawlers already have full access here and
llms.txtexists. 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).