Seo site audit
Run a complete technical SEO + AI-search audit of a website with crawlie. Use when the user asks to audit, crawl, or check a site for SEO issues, broken links, redirects, missing titles/descriptions/metadata, canonical or heading problems, image alt text, duplicate or thin content, or generative-engine (GEO / AI-search) readiness. Works even if crawlie is not installed.From its SKILL.md
npx -y skills add spronta/crawlie --skill seo-site-auditAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
3.8 KB, as published. Nobody here has run it
SEO Site Audit (powered by crawlie)
Deliver a prioritized, plain-English technical SEO + GEO audit of a site.
crawlie is a fast OSS crawler that ships on npm as crawlie — you do
not need it pre-installed and you do not need its source repo.
Bootstrap — make crawlie runnable
Decide once how you'll invoke crawlie, then reuse that prefix for every command:
- If
mcp__crawlie__*tools exist this session, prefer them (crawl_site,audit_url,explain_issue, etc.) and skip the CLI entirely. - Else pick a CLI prefix:
- If
crawlieis on PATH (command -v crawlie) → usecrawlie. - Otherwise →
npx -y -p crawlie crawlie(downloads + caches from npm on first use; needs only Node/npx — this is the install).
- If
- If there's neither the MCP nor Node, stop and tell the user: "Install Node (https://nodejs.org) and I can run crawlie with no further setup, or install the crawlie MCP for first-class tools."
Below, <crawlie> means the prefix you chose in step 2 (or the equivalent MCP tool).
Workflow
- Scope. Confirm the start URL. Whole site, or a section? For a section add
--include '<glob>'(repeatable); skip areas with--exclude '<glob>'. - Crawl as machine-readable JSON:
<crawlie> crawl <url> --format json- Large sites: cap with
--max-pages N(default 500) and/or--max-depth N. - Tune speed with
-c <concurrency>(default 16) and--timeout <secs>. - MCP equivalent:
crawl_sitewith the same options.
- Large sites: cap with
- Triage the findings: group by severity (error → warning → notice), then by
ruleid. Count affected URLs per rule. Lead with the highest-impact errors. - Explain the top 3–5 issue types so fixes are concrete:
(MCP:<crawlie> explain <rule-id>explain_issue.) Real rule ids you'll see include:broken-link,redirect-chain,client-error,server-error,title-missing,title-too-long,title-duplicate,description-missing,description-duplicate,h1-missing,h1-multiple,canonical-missing,image-missing-alt,lang-missing,viewport-missing,og-missing,twitter-missing,mixed-content,not-secure,no-hsts,duplicate-content,thin-content,low-text-ratio,blocked-by-robots,hreflang-incomplete, and the GEO set:geo-not-answerable,geo-no-structured-data,geo-no-llms-txt,geo-no-semantic-html,geo-no-author,geo-thin-for-ai. - Deliver a report, not raw JSON:
- Headline: the Health score (technical SEO) and GEO score (AI-search readiness) crawlie returns.
- A prioritized table: rule · severity · affected-URL count · one-line fix.
- The top fixes spelled out with example URLs.
- Offer a shareable HTML report:
<crawlie> crawl <url> --format html -o report.html.
Tips
- Audit just a few specific pages instead of crawling:
<crawlie> audit <url> [<url> ...](MCP:audit_urls). - Save to local history for later diffing: add
--save(then<crawlie> reports,<crawlie> report <id>). - Never dump the full JSON at the user — summarize, prioritize by impact, link the report.
Make it permanent (optional — offer once, don't block)
If you ran via npx, you may offer: "Want crawlie installed for good?
npm i -g crawlie. To get first-class agent tools, also run
claude mcp add crawlie crawlie-mcp — those activate after you restart Claude."