Install
$ agentstack add skill-hainrixz-claude-seo-ai-seo-meta-onpage ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
seo-meta-onpage (M7)
Head hygiene is cheap, deterministic, and the first thing every crawler reads. Reference: references/schema-tier1.md for the structured-data layer that sits alongside the head (owned by M5).
Audits
Working from the PageSnapshot (rendered_dom if present, else raw_html):
- Title — exactly one ``; length 50-60 chars (warn outside the band, fail if missing or empty, fail if duplicated site-wide across distinct URLs). Not all caps; not pure keyword list.
- Meta description — present, 150-160 chars (warn outside, not fail — Google may rewrite it); not duplicated site-wide; describes the page, not boilerplate.
- Viewport — `` present (fail if missing — mobile rendering/indexing depends on it).
- Charset — `
present and in the first 1024 bytes of`. - Language — `` present and a valid BCP-47 tag.
- Robots meta — sanity-check `
: flag an accidentalnoindex/nofollowon a page meant to rank. Full indexability/canonical logic (including the canonical tag) is owned by **seo-indexability (M2)** — here only **note presence** of`, do not adjudicate it.
Fixes
- AUTO — add missing
viewport,charset(utf-8), and `(inferred fromContent-Languageheader or page text; leave a TODO if ambiguous). These are deterministic, additive, verifiable writes → diff forfix`. - PROPOSED — generate/trim a `
andmeta descriptionfrom`, lead paragraph, and primary topic: length-bounded, keyword-aware but not stuffed, brand suffix only if the site uses one. Each is a draft requiring per-item accept (humans own messaging). - ADVISORY — removing an intentional
noindexis never auto-written; surface it and let the user decide. - Never fabricate a title, description, or
lang— when content is too thin to derive a value, leave a clearly-markedTODO:placeholder for the user to fill.
Verification
- Method
dom_assert:node ${CLAUDE_SKILL_DIR}/../../scripts/parse-html.mjs --url(or--file) — returnstitle(value/length/ok),meta_description(value/length/ok),robots_meta,canonical, andhead_hygiene(viewport/charset/lang) so each head element's presence and length is asserted directly against the snapshot. - Duplicate-title/description checks need the full crawl set; when only a single page is available the cross-URL assertion is reported
needs_api, never a falsepass.
Findings
Findings conform to schema/finding.schema.json. Examples:
M7.title.missing— no `(fail, severity 3,fixable: proposed, axissearch, confidenceestablished`).M7.title.length_out_of_band— title 78 chars, truncates in SERP (warn, severity 3,fixable: proposed, axissearch, confidencedirectional).M7.viewport.missing— no responsive viewport (fail, severity 3,fixable: auto, axissearch, confidenceestablished).
Each finding: evidence.observed quotes the head verbatim (e.g. the exact title string + its length); verification.reproduce is the runnable parse-html.mjs command above; expected_impact is banded + confidence-tagged (no naked %).
Honesty
- The "meta keywords" tag is dead — Google ignores it; do not add or recommend it.
- Title/description length bands are SERP-display heuristics (pixel-width truncation), not ranking factors — over-band values are
warn, notfail, and impact isdirectionalat most. - Google frequently rewrites the displayed title/description from on-page content; a perfect tag is not guaranteed to appear, so never promise a SERP snippet as a ranking gain.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Hainrixz
- Source: Hainrixz/claude-seo-ai
- License: MIT
- Homepage: https://tododeia.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.