Skip to content

feat(website): SEO-optimal landing title + description for share previews#195

Merged
montfort merged 1 commit into
mainfrom
feat/landing-seo-title-description
May 22, 2026
Merged

feat(website): SEO-optimal landing title + description for share previews#195
montfort merged 1 commit into
mainfrom
feat/landing-seo-title-description

Conversation

@montfort
Copy link
Copy Markdown
Contributor

Summary

Follow-up to #193 (branded OG card). opengraph.xyz flagged two warnings on the landing page after that PR shipped:

  • Title is short (9 chars). Optimal: 50-60. Was just StrayMark because the page fell back to the site title.
  • Description is short (48 chars). Optimal: 110-160. Was the hero tagline doing double duty.

This PR fixes both by passing explicit title and description props on the landing page's <Layout>, with separate translate keys so the H1 and hero copy stay short and punchy. Docusaurus auto-appends | StrayMark to the Layout title, so the message strings are the tagline portion only.

Rendered titles after this change

Locale Title Length
EN Cognitive discipline for AI-assisted engineering | StrayMark 60 ✅
ES Disciplina cognitiva para ingeniería asistida por IA | StrayMark 65 ✅
zh-CN 面向 AI 辅助工程的认知纪律 | StrayMark 49 ✅

Descriptions land at ~157 / ~187 / ~71 chars respectively — comfortably inside the 110-160 SEO sweet spot for EN, slightly above for ES (acceptable for the longer phrasing), zh-CN dense by nature.

What's intentionally NOT addressed

opengraph.xyz also warned "Missing call-to-action in your image." Skipped on purpose:

  • The card's design is restrained to match the brand voice.
  • The straymark.dev URL on the card already serves as a soft CTA.
  • Top brands with similar positioning (Stripe, Linear, Vercel) all omit imperative CTAs from their OG cards.

Test plan

After deploy:

  • opengraph.xyz — title shows 60 chars, description ~160 chars, no "short" warnings (CTA warning is expected and ignored)
  • Browser tab on landing shows the longer descriptive title
  • Internal pages (/quickstart, /features/cli, …) still get their own page titles unchanged
  • Locale switcher: /es/ and /zh-CN/ show the localised meta strings

🤖 Generated with Claude Code

…iews

opengraph.xyz flagged two issues on the landing page when previewing
shares: title too short (9 chars, "StrayMark") and description too
short (48 chars). Both stemmed from the page falling back to the site
title/tagline since `src/pages/index.tsx` only set `description`.

Fix: pass explicit `title` and `description` to <Layout> on the
landing only — site title and tagline stay short for the navbar and
the hero H1. Docusaurus auto-appends ` | StrayMark` to the Layout
title, so the message strings are the tagline portion only.

Rendered titles after this change:

  EN     60 chars  Cognitive discipline for AI-assisted engineering | StrayMark
  ES     65 chars  Disciplina cognitiva para ingeniería asistida por IA | StrayMark
  zh-CN  49 chars  面向 AI 辅助工程的认知纪律 | StrayMark

Descriptions land at 157 / 187 / 71 chars respectively — comfortably
inside the 110-160 sweet spot for EN, slightly above for ES (acceptable
for the longer phrasing), and the Chinese version is dense by nature.

The "missing call-to-action in image" warning is intentionally not
addressed: the card design is intentionally restrained and the
straymark.dev URL serves as a soft CTA. Imperative verbs would clash
with the brand voice.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@montfort montfort merged commit 6d6de7a into main May 22, 2026
1 check passed
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.

1 participant