Claude AI

Claude SEO Skills For Repeatable Search Work.

This collection documents Claude Agent Skills built for specific SEO tasks. Each skill packages instructions, inputs, and guardrails so the same job is done consistently every time, instead of relying on one-off prompts.

Skills In This Collection

Full SEO Audit Claude Skill

The orchestrator skill that runs every individual audit below and consolidates the findings into one prioritized, cross-area report ranked by impact, for a complete technical-SEO review in a single pass. Claude skill Open

Internal Link Audit Claude Skill

A skill that audits a site's internal linking structure for broken links, orphan pages, redirect chains, click depth, and anchor text quality. Claude skill Open

External Link Audit Claude Skill

A skill that audits a site's external links for broken targets, redirects, insecure HTTP links, missing rel attributes on affiliate links, and unsafe target="_blank" usage. Claude skill Open

Meta Data Audit Claude Skill

A skill that audits a site's title tags and meta descriptions for missing, duplicate, too-long, too-short, or multiple tags, generic boilerplate titles, and keyword stuffing. Claude skill Open

Schema Markup Audit Claude Skill

A skill that audits a site's structured data: extracting JSON-LD, Microdata, and RDFa, then validating it against schema.org and Google rich result requirements. Claude skill Open

Site Architecture Audit Claude Skill

A skill that audits a site's architecture: hostname and protocol canonicalization, robots.txt, XML sitemap parity, crawl and index directive conflicts, URL structure, click depth, and directory taxonomy. Claude skill Open

Heading Structure Audit Claude Skill

A skill that audits a site's heading hierarchy for missing or multiple H1s, skipped heading levels, empty headings, headings that don't start at H1, overly long headings, and duplicate heading text. Claude skill Open

Image SEO Audit Claude Skill

A skill that audits a site's images for SEO and Core Web Vitals: missing alt text, absent width/height, missing lazy-loading, oversized files, legacy formats, generic filenames, and broken images. Claude skill Open

Core Web Vitals Audit Claude Skill

A skill that audits a site's Core Web Vitals and page-experience signals (LCP, CLS, INP, TTFB), pulling real CrUX field data from PageSpeed Insights and collecting lab proxies like render-blocking resources, page weight, and image hygiene. Claude skill Open

Redirect Audit Claude Skill

A skill that audits a site's redirects for redirect chains and loops, redirects ending in 404s or errors, 302s used for permanent moves, HTTPS-to-HTTP downgrades, client-side redirects, dropped query strings, and canonicals pointing at redirecting URLs. Claude skill Open

Robots.txt Audit Claude Skill

A skill that audits a site's robots.txt for a redirected or HTML-served file, a 5xx read as block-everything, a sitewide Disallow, syntax errors, blocked CSS/JS, missing Sitemap directives, unsupported directives, oversized files, and encoding issues. Claude skill Open

Sitemap Audit Claude Skill

A skill that audits a site's XML sitemaps: discovering them from robots.txt, following sitemap index files, and validating every URL for broken or redirecting targets, noindexed or canonicalized pages, wrong host or protocol, duplicates, oversized sitemaps, and invalid lastmod values. Claude skill Open

Llms.txt Audit Claude Skill

A skill that audits a site's /llms.txt for AI and LLM discoverability: missing files, HTML served instead of markdown, a missing H1 or summary, broken or redirecting links, links missing descriptions, wrong-host or relative URLs, and a companion /llms-full.txt. Claude skill Open

Canonical Tag Audit Claude Skill

A skill that audits a site's rel=canonical tags for missing canonicals, multiple conflicting canonicals, canonicals pointing at non-200, redirecting, or noindexed URLs, relative or cross-host canonicals, https-to-http downgrades, and Link-header conflicts. Claude skill Open

Content Quality Audit Claude Skill

A skill that audits a site's content quality for thin content, exact-duplicate body text across pages, near-duplicate (templated) pages, low text-to-HTML ratio, and pages missing an H1. Claude skill Open

Keyword Cannibalization Audit Claude Skill

A skill that audits a site for keyword cannibalization: pages with duplicate title targets, clusters of pages whose title, H1, and keyword signatures overlap, and pages sharing the same primary keyword phrase, with a recommended hierarchy. Claude skill Open

Mixed Content Audit Claude Skill

A skill that audits an HTTPS site for mixed content: active mixed content (http scripts, styles, iframes browsers block), insecure form actions, passive mixed content (http images and media), protocol-relative URLs, and pages still served over http. Claude skill Open

Open Graph Audit Claude Skill

A skill that audits a site's Open Graph and Twitter Card metadata: missing og:title, og:description, og:image, or og:url, broken or relative og:image URLs, og:url that mismatches the canonical, missing twitter:card, over-length social titles, and reused default images. Claude skill Open

Pagination Audit Claude Skill

A skill that audits a site's pagination: paginated pages canonicalizing to page 1 and hiding deep content, noindexed component pages, paginated pages missing a self-canonical, broken or inconsistent rel=next/prev, and redundant ?page=1 first pages. Claude skill Open

Soft 404 Audit Claude Skill

A skill that audits a site for soft 404s: error pages served with a 200 status, servers that return 200 for every unknown URL, thin pages matching the site's error template, and empty or near-empty pages. Claude skill Open

How I Build These Skills

  • Each skill targets one clear SEO task with explicit inputs, outputs, and constraints so results stay predictable.
  • Guardrails keep Claude inside known-good SEO practice and discourage fabricated metrics or unsupported claims.
  • Skills are designed to be reused across pages and projects, not rewritten as a fresh prompt every time.

How Every Skill Works: Fetch → Extract → Audit → Report

Every skill follows the same four-stage pipeline. Separating fetching the site from extracting what each audit needs from judging it from explaining it is the single most important design idea in the collection, it keeps results reproducible and ties every finding back to an observed fact.

1 · Fetch

A shared fetch_pages.py crawls the site once and stores the raw HTML and response facts in a single page_cache.json, an audit-agnostic snapshot of what the site actually served.

2 · Extract

A pure extractor reads that cache with --from-cache, parses only the fields this audit needs, and writes a plain, reviewable inventory.json. A full audit fetches once and extracts many times instead of crawling per area.

3 · Audit

A second pure script reads the inventory, applies checks and thresholds, assigns severities, and writes audit_report.json. It makes no network calls, so you can re-run it, tweak thresholds, or diff two runs without re-crawling.

4 · Report

Claude turns the findings into a human-readable report with prioritized fixes, and can export it to a Word .docx or a flat findings.csv for sharing with clients and teams.

  • The shared fetch stage makes the network calls; extract and audit are pure and deterministic, so audits are easy to reason about and cheap to repeat. Crawling once into a shared cache means a full audit doesn't re-crawl the site for every area.
  • The inventory is the source of truth: every finding traces back to an observed fact, never a guess. The reporting step is told explicitly never to invent URLs, prices, or claims.
  • Claude handles judgment that needs context (rewriting titles, prioritizing by traffic) while the scripts handle judgment that should be mechanical (counting characters, comparing hosts, resolving redirects).
  • Two link-graph skills: internal-link-audit and site-architecture-audit, keep their own crawler on purpose, because mapping click depth and resolving linked-but-uncrawled URLs needs more than a flat page cache.

What's Inside Each Skill

Every skill is a self-contained folder built to the same shape, so once you understand one you understand them all.

  • SKILL.md, the instructions Claude reads: when to use the skill, the inputs to collect, a numbered workflow, a checks table with severities, and how to produce the report. Its description is what Claude matches a request against, so it names the problems the skill finds and the trigger phrases.
  • references/audit-checks.md, one entry per check, each with a definition (what triggers it), why it matters (the SEO rationale), and the concrete fix. This file is the spec the auditor implements and the reasoning the report cites.
  • references/report-template.md, the exact Markdown structure of the final report, plus guidance that enforces naming the exact URL and value, giving a concrete replacement, capping long tables, and never inventing facts.
  • scripts/: the extractor and auditor for that audit, the shared fetch_pages.py crawler for the page-cache skills, and the shared md_to_docx.py and findings_to_csv.py converters so every skill can hand back a Word document or a flat CSV of findings.

The Severity Model

Every finding is assigned one of four levels, applied consistently across all skills, so each report leads with what matters most.

Severity Meaning Examples
High Actively harms indexing or ranking, or breaks the page. Fix first. Missing title, sitemap URL 404s, Disallow: /, broken canonical
Medium A real SEO quality problem, but not an emergency. Title too long, page canonicalizes elsewhere, slow LCP proxy
Low Hygiene and polish. Invalid changefreq, generic filename, future lastmod
Info Worth a look, not counted as an issue. Title / H1 divergence, intentional patterns

Principles Behind The Skills

The Indexable Contract

Every URL you submit to search engines, in a sitemap, an internal link, a canonical, should be a final, canonical, indexable 200 page. Anything that redirects, 404s, is noindexed, is blocked, or canonicalizes elsewhere breaks that contract and gets flagged. Many checks are applications of this one idea.

Standard-library Only

The Python scripts depend on nothing but the Python standard library, no pip install, no virtualenv. If you have Python 3.8+, they run. HTML, XML, HTTP, and gzip are all handled with built-in modules.

Shareable Reports

The report is produced as Markdown, then md_to_docx.py converts it to a .docx and findings_to_csv.py flattens the findings to a .csv, both with no dependencies. The .docx conversion runs after Claude's judgment, so prioritized fixes and rewritten titles are preserved; the document is the report reformatted, not re-derived from the JSON.

Install The Skills

Every skill lives in the claude-seo-skills npm package. Install all of them into your global Claude skills directory (~/.claude/skills/) with a single command:

npx claude-seo-skills install
Terminal
# Install only specific skills
npx claude-seo-skills install sitemap-audit robots-txt-audit
# Install into the current project instead of the global directory
npx claude-seo-skills install --project
# List everything available
npx claude-seo-skills list

The audit scripts need Python 3.8+, with no pip install required, every script uses only the Python standard library. You can also copy any skill folder into your Claude skills directory by hand; Claude invokes a skill automatically when a request matches its description. Full instructions are in the repository README below.

Repository README

The README from the Claude-SEO-Skills repository is below, covering the skill architecture, the full list of available skills, and how to install them. To see what the skills produce, browse the sample reports in examples/; to understand the design behind every skill, read docs/CONVENTIONS.md.

README.mdView on GitHub

Claude-SEO-Skills

Claude SEO Skills by Jake Labate, SEO Professional

npm version CI license Claude Skill

A collection of Claude skills for SEO tasks. Each folder under skills/ is a self-contained, fully functional Claude skill.

Each skill performs a real technical-SEO audit — crawling a site (or scanning local HTML), checking it against documented rules, and producing a prioritized, paste-ready report. They're built to be read and learned from as much as run: the rationale behind every check lives in each skill's references/audit-checks.md.

  • See what they produce: examples/ — illustrative sample reports.
  • Understand how they work: docs/CONVENTIONS.md — the design behind every skill.
Requirements
  • Python 3.8+ to run the audit scripts. No pip install required — every script uses only the Python standard library. (The one optional dependency, brotli, is used if present and skipped if not.)
  • Node 16+ only if you use the npx installer below. Claude itself runs the skills; you don't need Node to use them once installed.
Skill architecture

Every skill folder follows the standard Claude skill structure:

skill-name/
├── SKILL.md                     # YAML frontmatter (name, description) + workflow
├── references/
│   ├── audit-checks.md          # every check: definition, why it matters, fix
│   └── report-template.md       # the exact Markdown structure of the output
└── scripts/
    ├── fetch_pages.py                # shared: crawl once → page_cache.json (crawl skills)
    ├── extract_*.py / collect_*.py   # the extractor → inventory.json (reads --from-cache)
    ├── audit_*.py                    # the auditor → audit_report.json
    ├── md_to_docx.py                 # shared: render the report as a .docx
    └── findings_to_csv.py            # shared: flatten audit_report.json → findings.csv

All skills share one pipeline — fetch → extract → audit → report — and a four-level severity model (High / Medium / Low / Info). The page-based audits crawl the site once into a shared page_cache.json (via fetch_pages.py) and each extractor reads from it with --from-cache, so a full audit fetches once instead of crawling per area; each extractor also keeps a standalone mode (live URL, --local, --url-list). See docs/CONVENTIONS.md for the full design and a guide to adding your own skill.

Export reports to Word (.docx) or CSV

Every skill can hand back its report as a Word document, not just Markdown. Ask for "a Word doc", "a .docx", or "a shareable report" and the skill writes the report and converts it with its bundled scripts/md_to_docx.py:

python3 scripts/md_to_docx.py report.md --output report.docx

Like everything else here, the converter is standard-library only — a .docx is just a ZIP of OOXML, so no pip install is needed. It renders headings, tables, lists, links, bold/italic, and code blocks. The export happens after the report is written, so the .docx keeps the prioritized fixes and rewritten values Claude produced — it's the report reformatted, not a raw dump of the findings JSON.

When you want the data rather than the write-up — to filter, sort, or triage in Sheets or Excel — every skill also bundles scripts/findings_to_csv.py, which flattens the audit's audit_report.json into a CSV with one row per finding:

python3 scripts/findings_to_csv.py audit_report.json --output findings.csv

Also standard-library only. It prepends check and severity columns and joins list fields (like the pages sharing a duplicate value) with ; . This one is a direct dump of the structured findings, so it complements the .docx: the Word doc for stakeholders, the CSV for working the issue list.

Run everything at once
SkillDescription
full-seo-auditOrchestrator. Runs every individual audit below and consolidates the findings into one prioritized, cross-area report — ranked by impact, not by which audit found the issue. Use for a complete / comprehensive technical-SEO review.
Available skills
SkillDescription
canonical-tag-auditAudit a website's rel="canonical" tags: missing canonicals, multiple/conflicting canonicals, canonicals pointing at non-200/redirecting/noindexed URLs, relative or cross-host canonicals, https-to-http downgrades, and Link-header/HTML conflicts.
content-quality-auditAudit a website's content quality: thin content, exact-duplicate body text, near-duplicate (templated) pages via MinHash similarity, low text-to-HTML ratio, and missing H1s.
core-web-vitals-auditAudit a website's Core Web Vitals and page-experience signals (LCP, CLS, INP, TTFB): optionally pulls real field data from Google PageSpeed Insights (CrUX), and always collects browserless lab proxies — render-blocking CSS/JS, page weight, image dimension and lazy-loading hygiene, TTFB, text compression, DOM size, request counts, and third-party origins.
external-link-auditAudit a website's external (outbound) links: broken links, redirected targets, insecure HTTP links, affiliate rel="sponsored" compliance, unsafe target="_blank" usage, and sitewide outbound link patterns.
heading-structure-auditAudit a website's heading hierarchy (H1–H6): missing or multiple H1s, skipped heading levels, empty headings, headings that don't start at H1, overly long headings, and duplicate headings.
image-seo-auditAudit a website's images for SEO and Core Web Vitals: missing or empty alt text, missing width/height (layout shift), no lazy loading, oversized files, legacy formats, generic filenames, and broken image URLs.
internal-link-auditAudit a website's internal linking structure: broken links, orphan pages, redirect chains, click depth, anchor text quality, and link equity distribution.
keyword-cannibalization-auditAudit a website for keyword cannibalization: pages with duplicate title targets, clusters of pages whose title/H1/keyword signatures overlap, and pages sharing the same primary keyword phrase — with a recommended page hierarchy.
llms-txt-auditAudit a website's /llms.txt for AI/LLM discoverability (per llmstxt.org): a missing or HTML-served file, missing required H1 title or summary blockquote, broken/redirecting/blocked links, links missing descriptions, malformed list items, wrong-host or relative URLs, duplicate links, wrong content type, and whether a companion /llms-full.txt exists.
meta-data-auditAudit a website's title tags and meta descriptions: missing, duplicate, too-long, too-short, or multiple tags, generic or boilerplate titles, and keyword stuffing.
mixed-content-auditAudit an HTTPS website for mixed content: active mixed content (http scripts/styles/iframes browsers block), insecure form actions, passive mixed content (http images/media), legacy protocol-relative URLs, and pages still served over http.
open-graph-auditAudit a website's Open Graph and Twitter Card metadata: missing og:title/description/image/url, broken or non-image or relative og:image, og:url mismatching the canonical, missing twitter:card, over-length social titles/descriptions, and reused default images.
pagination-auditAudit a website's pagination: paginated pages canonicalizing to page 1 (hiding deep content), noindexed component pages, paginated pages missing a self-canonical, broken or inconsistent rel=next/prev, and redundant ?page=1 first pages.
redirect-auditAudit a website's redirects: resolves the full redirect chain for every URL to find chains and loops, redirects that end in 404s/errors, temporary (302) redirects used for permanent moves, HTTPS-to-HTTP downgrades, client-side meta-refresh and JavaScript redirects, dropped query strings, and canonicals pointing at redirecting URLs.
robots-txt-auditAudit a website's robots.txt: a redirected or HTML-served file, a 5xx read as "block everything", a sitewide Disallow: /, syntax errors, render-blocking CSS/JS, missing or unreachable Sitemap: directives, a missing default User-agent: * group, unsupported directives (noindex, crawl-delay) Google ignores, files over the 500 KiB limit, and BOM/duplicate/empty-rule issues.
schema-markup-auditAudit a website's structured data: extract JSON-LD, Microdata, and RDFa, validate against schema.org and Google rich result requirements, and find missing, invalid, or incomplete markup.
site-architecture-auditAudit a website's architecture: hostname and protocol canonicalization, robots.txt, XML sitemap parity, crawl and index directive conflicts, URL structure quality, click-depth distribution, and directory taxonomy.
sitemap-auditAudit a website's XML sitemaps: discovers sitemaps from robots.txt, follows sitemap index files, and validates every listed URL for non-200 status, redirects, noindex/robots-blocked URLs, canonicalized-away URLs, wrong host/protocol, duplicates, oversized sitemaps (over 50,000 URLs or 50MB), parse errors, and lastmod/priority/changefreq hygiene.
soft-404-auditAudit a website for soft 404s: error pages served with a 200 status, a server that returns 200 for every unknown URL, thin pages matching the site's error template, and empty/near-empty pages.
Install

Install all skills into your global Claude skills directory (~/.claude/skills/):

npx claude-seo-skills install

Other options:

# Install only specific skills
npx claude-seo-skills install sitemap-audit robots-txt-audit

# Install into the current project's ./.claude/skills instead of the global dir
npx claude-seo-skills install --project

# Install into a custom directory, overwriting anything already there
npx claude-seo-skills install --dir ~/my-skills --force

# List available skills
npx claude-seo-skills list

Or install the CLI globally:

npm install -g claude-seo-skills
claude-seo-skills install
Manual usage

You can also copy a skill folder into your Claude skills directory (e.g., ~/.claude/skills/ for Claude Code) or upload it where skills are supported. Claude will invoke the skill automatically when a request matches its description.