This is a readiness audit, not a rank tracker. It does not track keyword positions, traffic or how often ChatGPT, Claude or Perplexity mention you. It answers the question before that: can search engines and AI assistants actually reach and read my site, and what should I fix first? Five Agent Skills run a technical SEO crawl, check AI-crawler access (robots.txt and the firewall), audit schema markup and build an llms.txt. Real crawlers and parsers do the checking (Python standard library, no paid APIs, no keys). Claude turns the results into a ranked fix list and a client-ready report.
| Skill | What it does | You get |
|---|---|---|
site-seo-crawler |
Polite crawl (robots.txt respected, delay, page cap). Checks titles, descriptions, H1s, canonicals, noindex, broken links, dead sitemap URLs, mixed content, image alt, viewport and lang, thin pages, JS-only pages, invalid JSON-LD. | pages.csv, issues.csv (severity + fix), summary |
ai-crawler-access |
Reads robots.txt with an RFC 9309 parser for 19 AI and search bots (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, CCBot, Bingbot…). Then it probes the server with each bot's user agent, which catches the firewall/CDN blocks and challenge pages that robots.txt checkers miss. | Access table, score, findings |
schema-markup-checker |
Validates JSON-LD (Organization/LocalBusiness, Product + offers, Article, FAQ, Breadcrumb…), flags missing required properties, FAQ text not visible on the page, and inconsistent name/address/phone. | Report + ready-to-paste JSON-LD built from the site's real facts |
llms-txt-builder |
Validates an existing /llms.txt against the llmstxt.org format, or drafts one (plus llms-full.txt) from the crawl, leaving out 404 and noindex pages. |
llms.txt, llms-full.txt, validation |
ai-visibility-report |
Runs everything with one command and scores five areas (technical 30, AI access 25, structured data 20, readability 15, llms.txt 10). | White-label single-file report.html (mobile-friendly), report.md, ranked actions |
For freelancers and agencies selling audits, in-house marketers, and site owners checking their own site.
Try it
- "Run a full SEO and AI-visibility audit on https://example.com and give me the report."
- "Can ChatGPT and Perplexity crawl our site? Check robots.txt and the firewall."
- "Check the schema on these three product pages and give me the fixed JSON-LD."
- "Write an llms.txt for our site."
Want to see it first? samples/sample-site/ is a small saved website with a dozen planted problems. Ask Claude to audit it with --local-dir (no internet needed).
AI disclosure and limits
- No ranking promises. The audit finds technical blockers and missing signals. It can't see inside Google's or any AI engine's ranking.
- llms.txt is a proposed standard. Few AI crawlers are confirmed to use it today, so the pack scores it low (10%) and says so in the report.
- The live probe sends one request per bot per path with that bot's user agent. A site can still treat the real, IP-verified bot differently. Results are labelled as a strong signal, not proof.
- Only audit sites you own or have permission to audit. The crawler is polite by default; keep it that way.
- Claude writes the fix list and report text; that text can be wrong. Check it before sending it to a client.
- Not tested: how any AI engine or search engine actually ranks a site, or sites behind logins.
What you need
- A Claude plan with Skills and code execution turned on, or Claude Code, or the Claude API.
- Internet access where the scripts run, for live audits (Claude Code on your computer works; offline audits use saved pages).
- Python 3.9+ (standard library only) if you run it on your computer.
5-minute setup
- Unzip the pack.
- In claude.ai, open Settings > Capabilities. Turn on code execution.
- Open Customize > Skills. Click +, then Upload a skill.
- Upload each zip in
claude-ai-uploads/. One zip is one skill. - Check the skills are on. Start a chat, attach your files and ask in plain words.
- Not sure it works? Try a sample first: ask Claude to run
ai-crawler-accesson the files insamples/.
Using Claude Code or the API instead? See Install below.
Install
You need Python 3.9+ with pandas and openpyxl wherever the scripts run. Claude's code-execution sandbox already has them. matplotlib is optional: without it you still get every table and report, just no PNG charts.
Claude Code (CLI or desktop)
Option A: copy the skills (simplest)
unzip oarsman-seo-ai-visibility-pack.zip
cp -r oarsman-seo-ai-visibility-pack/skills/* ~/.claude/skills/ # all your projects
# or, for one project only: cp -r oarsman-seo-ai-visibility-pack/skills/* .claude/skills/
Start a new session and ask for the task in plain words (see "Try it" below). Claude picks the right skill by itself.
Option B: install as a plugin (one command to update later)
unzip oarsman-seo-ai-visibility-pack.zip
claude plugin marketplace add ./oarsman-seo-ai-visibility-pack
claude plugin install oarsman-seo-ai-visibility-pack@oarsman-seo-ai-visibility
In plugin mode the skills are namespaced, e.g. /oarsman-seo-ai-visibility-pack:<skill-name>, and they still trigger automatically.
Claude.ai (web, desktop app)
- Turn on code execution: Settings > Capabilities > Code execution and file creation (in the newer layout it's called "Create and edit files").
- Open Customize > Skills, click +, choose Create skill, then Upload a skill.
- Upload each zip in
claude-ai-uploads/. Each zip holds one skill, so repeat for every skill in the pack. - Make sure the skills are toggled on. Then upload your files in a chat and ask in plain words.
On Team or Enterprise plans, an owner has to allow Skills and code execution under Organization settings > Plugins & skills first.
Claude API (Agent Skills)
Upload each skill folder with the Skills API (POST /v1/skills, beta header skills-2025-10-02) and attach it in the container of a Messages request that has the code-execution tool enabled. The API sandbox has no internet access and no pip install. Every script in this pack uses only the standard library plus pandas and openpyxl, which are preinstalled.
The live crawl and bot probe need internet access to the site being audited. In Claude Code that just works. On claude.ai, the sandbox needs network access to the site's domain (check your code-execution network settings). The API sandbox has no network, so there you use the offline mode (--local-dir on a saved copy of the site), which the tests cover.
Other agents that read SKILL.md
The folders follow the open Agent Skills format (agentskills.io), so tools that support it can load them too: copy skills/* into that tool's skills folder. Only Claude has been tested.
Check it works on your machine
cd oarsman-seo-ai-visibility-pack
python tests/run_tests.py
This reruns every script on the bundled sample data and checks the numbers. You should see 41/41 checks passed. The full record of our own run is in TESTS.md, and the files it produced are in expected/.
What's in the folder
skills/ai-crawler-access/ SKILL.md, scripts/ai_access.py
skills/ai-visibility-report/ SKILL.md, scripts/make_report.py, scripts/run_full_audit.py
skills/llms-txt-builder/ SKILL.md, scripts/build_llms_txt.py
skills/schema-markup-checker/ SKILL.md, scripts/schema_check.py
skills/site-seo-crawler/ SKILL.md, scripts/crawl_site.py
samples/ sample data used by the tests and for trying the skills
tests/ run_tests.py, validate_skills.py, fixtures/
expected/ the exact files our test run produced
TESTS.md test record: every check, its result, and excerpts of real outputs
.claude-plugin/ plugin.json + marketplace.json for Claude Code
Licence and support
One buyer, one business (yours or the client you're working for). You can change the skills and deliver the outputs to clients, but you can't resell or share the pack. Full terms are in LICENSE.txt.
Support is self-serve: this README and TROUBLESHOOTING.md (fixes and FAQ). There is no call, chat or email support. Fixes ship as new versions at your download link; CHANGELOG.md lists every change.
Built by Oarsman AI, with AI-assisted development. Every number in the examples comes from a real test run (see TESTS.md). Not affiliated with Anthropic. Claude is a trademark of Anthropic, PBC.