fix: spell model names the way vendors do in search results - #161
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Model labels were title-cased from the slug, so 41 pages read "Gpt 5.1"
instead of "GPT-5.1", and 24 repeated the provider ("DeepSeek Deepseek
Chat"). That spelling landed in the title, H1, meta description, JSON-LD
and llms.txt at once, missing the exact-match form people search for.
Titles and descriptions also overflowed what Google renders: 145 of 321
titles were over 60 chars and 226 over 160. Templates now offer several
phrasings longest-first and take the richest that fits.
Social cards are generated per page from catalog data instead of one
static image for all 321 pages. resvg renders with three vendored Outfit
TTFs and loadSystemFonts disabled, so output does not depend on the fonts
installed on the build machine.
brunobuddy
force-pushed
the
chore/seo-metadata-audit
branch
from
July 28, 2026 10:56
086a309 to
715322a
Compare
The homepage title opened on a verb and pushed modelparams.dev to character 46, past where scanning stops. It now leads with the brand, which is what a navigational search for "modelparams" and a link pasted into a feed both want to see first. The descriptive half says "LLM Parameters" rather than "model parameters": to an ML audience the latter reads as weights, and the former is the head term people type. The description opens on the brand and the category, then names temperature, top_p and max_tokens, which Google bolds when they match the query. Title drops from 60 to 47 chars, description sits at 155.
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
Model labels were title-cased from the slug, so 41 pages said "Gpt 5.1" instead of "GPT-5.1" and 24 repeated the provider ("DeepSeek Deepseek Chat"). That spelling went into the title, H1, meta description, JSON-LD and llms.txt at once, so the pages missed the exact spelling people search for.
Separately, 145 of 321 titles were over 60 chars and 226 were over 160, so Google truncated most of them. The homepage title also opened on a verb and pushed the brand to character 46.
✨ What changed
70b->70B,a4b->A4B,v1.5stays lowercase) and hyphen binding forGPT-/GLM-.modelFullLabel()drops the provider prefix when the model name already carries it.lastmodnow comes from commit dates, giving 16 distinct dates instead of one build-date stamp.404.htmlwithnoindex, follow, plusog:locale,og:image:type, per-pageog:typeand real image alt text.src/client/fonts/directory and the card generation step.👤 For users
Shared links preview with the actual model or parameter and its facts instead of a generic site card. The default card is now really 1200x630 (it was 1280x640 while declaring 1200x630) and 37 KB instead of 635 KB.
🔧 For operators
Build grows from 1.5s to 4.5s and writes 322 PNGs (11 MB). Adds
@resvg/resvg-jsand three vendored Outfit TTFs (99 KB). Rendering usesloadSystemFonts: false, so output does not depend on fonts installed on the build machine.📝 Notes
Rebased on #160, which already added
/apito the sitemap. Kept itsAPI_PATHconstant and priority, dropped my duplicate entry.Parameter pages drop the
modelparams.devsuffix when the path is long, trading brand for exact-match keywords inside 60 chars. Reversible inparameterPageTitle.The dev server still returns plain-text 404s, which are more useful while developing. The branded 404 is a build artifact Vercel serves.