← ClaudeAtlas

website-seo-geolisted

The on-page SEO + GEO contract for a new site: exact metadata limits (title 50–60 chars, meta description 140–160 with a 120 floor), og:title/og:description == title/desc, twitter inherits OG, clean canonical == og:url, required JSON-LD schema, and llms.txt for AI answer engines. Use when building or reviewing a page's <head> / metadata (step 5 of the new-website pipeline), or when a title/description is too long or tags are out of sync. Enforced by the seo.spec.ts check in the new-website test suite. Delegates depth to ai-seo (GEO) and schema-markup. Trigger phrases: "SEO metadata", "title too long", "meta description length", "og tags", "twitter card", "canonical", "is my SEO set up", "llms.txt", "GEO", "head tags", "structured data on this page".
karero/website-builder · ★ 4 · Web & Frontend · score 74
Install: claude install-skill karero/website-builder
# Website SEO & GEO The metadata contract every page must satisfy. This skill owns the **exact limits and consistency rules**; it hands depth off to the existing global skills: `ai-seo` (AI answer-engine / GEO strategy), `schema-markup` (rich JSON-LD), `seo-audit` (technical SEO / crawl / Core Web Vitals — see also `website-qa`). ## The limit table (enforced) | Tag | Ideal | Hard cap | Why | |---|---|---|---| | `<title>` | 50–60 chars | ~60 | Google truncates ~580–600px; >60 risks a cut, >70 almost always cut | | `<meta description>` | 140–160 chars | ~160 | Truncates ~920px; >160 cut; <120 wastes space / keyword room | | `og:title` / `og:description` | = `<title>` / = description | — | Test fails on any divergence | | `twitter:title` / `twitter:description` | inherit OG (same strings) | — | `twitter:card = summary_large_image` | The test counts characters (em-dash, en-dash, curly apostrophe each = 1 char but render wider — stay clear of the cap). `<meta name="description">` is **separate from** `og:description`; one does not replace the other — ship both, in sync. ### German (and other compounding languages) eat the budget faster The limits above are pixel-render caps, not word counts — they don't change per language, and the numbers in the table stay exactly as specified. But German compound nouns (`Suchmaschinenoptimierung`, `Barrierefreiheit`, `Barrierefreiheitsprüfung`) pack far more meaning per character into a single unbroken word than English does, so the same 5