website-seo-geo SKILL.md skillA
website-seo-geo from karero/croftweaver is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add karero/croftweaver/website-seo-geo@git:20261016.8c14a32Pins git:20261016.8c14a32 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- karero/croftweaver
- Path
skills/website-seo-geo/SKILL.md- Versions recorded
- 5
- Latest version
- git:20261016.06c517a, committed Oct 16, 2026
- First version recorded
- Jul 9, 2026
- Size
- 10,636 bytes
- Repository stars
- 8
- License
- MIT
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 6 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…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 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 …
Read the whole file at its exact version.
How to install
mdr add karero/croftweaver/website-seo-geo@sha256:dbf33c800bf7e569The line at the top of this page pins the label git:20261016.8c14a32, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_q2u3elbq372av5al)
1 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 5 versions of this file, between Jul 9, 2026 and Oct 16, 2026, about one every 25 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261016.06c517a latest | 2026-10-16 | 06c517a | 10,636 B | A | view · diff |
| git:20261016.8c14a32 | 2026-10-16 | 8c14a32 | 10,636 B | A | view · diff |
| git:20261009.9ea91dc | 2026-10-09 | 9ea91dc | 10,638 B | A | view · diff |
| git:20261009.5a8feb2 | 2026-10-09 | 5a8feb2 | 10,589 B | A | view · diff |
| git:20260709.9f21208 | 2026-07-09 | 9f21208 | 10,329 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (10636 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
karero/croftweaver · 8 stars · license MIT · pushed 2026-10-21 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_q2u3elbq372av5al GET https://markdownregistry.com/api/v1/resolve?ref=karero/croftweaver/website-seo-geo GET https://markdownregistry.com/api/v1/blob/dbf33c800bf7e56921717343fa3e2394af0b55c9a9091936e9ff97f8206bcceb
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.