feat(web): keyword research + on-page SEO rewrites (SQLR-33)#139
Merged
Conversation
Land a per-page keyword registry under web/seo/keywords.md and rewrite the H1, lede, and metadata on /, /docs, and the landing-page benchmarks section to target "embedded SQL + vector database in Rust", "SQLite alternative", and "SQLRite vs SQLite benchmarks" — terms the site can realistically rank for without overclaiming features that don't ship yet. Internal-anchor audit found no "click here" / "read more"; docs CTA now exposes /blog as a second descriptive in-site sibling. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
Lands the SQLR-33 keyword research + on-page SEO pass for sqlritedb.com. Content/metadata only — no structural redesigns, no new routes, no dep changes.
web/seo/keywords.md— head / mid-tail / long-tail keyword tables with target page, intent, priority, and a per-page primary+secondary registry for the P0 pages.web/src/app/layout.tsx— site-wide defaulttitle+description+keywordsarray rewritten to lead with "embedded SQL + vector database in Rust".web/src/app/page.tsx— landingmetadatarewritten; page-level title now explicitly contains the primary head term + product name.web/src/components/hero.tsx— H1: "SQLRite — an embedded SQL + vector database in Rust." Lede leads with "SQLite alternative" / "embedded database in Rust" and names HNSW + BM25 inside the 160-char meta-snippet zone.web/src/app/docs/page.tsx— H1: "SQLRite docs — getting started with the embedded Rust database." Lede answers "what is SQLRite + how do I use it" in plain language and adds 4 descriptive deep-links into key sections. Docs CTA card now exposes/blogas a second descriptive in-site sibling alongside/.web/src/components/benchmarks.tsx— H2: "SQLRite vs SQLite benchmarks — honest numbers, published in public." Sub-copy names HNSW + BM25 as the differentiator workloads.web/README.md— points future rewrites atweb/seo/keywords.md.Why
The site has been a beautiful brochure — full metadata surface (OG, JSON-LD, sitemap, RSS, OG images) but no keyword targeting at the wording level. Without explicit terms in the H1 + lede, Google can't surface us for "embedded database in Rust", "SQLite alternative", or "MCP server for SQLite" even though we're a credible answer for all three.
The keyword sheet is the registry — every P0 page now records its primary + secondary keyword so future rewrites stay coordinated rather than drifting.
Internal-linking sweep
Grep confirmed zero non-descriptive anchors in
web/src— no "click here" / "read more" / bare "here". The "every doc page links to ≥ 2 sibling pages with descriptive anchors" rule is met via the global<Footer />(links to/blog,/blog/rss.xml, GitHub) plus the docs CTA card, which now adds an explicit/bloglink as a second descriptive in-site sibling.Verified locally
Test plan
weblint + build steps pass./,/docs, and the landing benchmarks section.<title>+<meta name="description">.https://sqlritedb.com(free up to 500 URLs) to confirm no duplicate H1/title/meta and no orphan pages.Follow-ups (filed separately)
Long-tail keywords from the sheet that are blog topics rather than rewrites — split into their own tickets:
.ask/ natural-language-to-SQL section in/docs.🤖 Generated with Claude Code