
# Sitewalk: SEO Audit & Site Crawler
**Ask your AI assistant to audit a website. Get the technical SEO problems back, ranked by impact, with a plain fix for each.**
**[Use it in ChatGPT, no install](https://chatgpt.com/plugins/plugin_asdk_app_6ac47963cb448191a5b1757e0682bd6a)** · **[Self-host with Docker](#-run-the-full-stack-with-docker-recommended-for-self-hosting)** · [Claude Code plugin](#-claude-code-plugin-and-the-seo-growth-agent) · [audit.adityaarsharma.com](https://audit.adityaarsharma.com/)
Coming soon to Grok.
[](LICENSE)
[](https://modelcontextprotocol.io)
[](https://python.org)
[](https://github.com/adityaarsharma/sitewalk/releases)
[](https://github.com/adityaarsharma/sitewalk/stargazers)
[](https://github.com/PhialsBasement/LibreCrawl)
[](https://chatgpt.com/plugins/plugin_asdk_app_6ac47963cb448191a5b1757e0682bd6a)
[](#-claude-code-plugin-and-the-seo-growth-agent)
[](https://claude.ai/download)
[](https://github.com/openai/codex)
[](https://codeium.com/windsurf)
[](https://mcptoplist.com/server/pulsemcp%2Fadityaarsharma-librecrawl-seo)
---
## Three ways to run Sitewalk
### 1. Hosted: one sentence, nothing to install
Open **[Sitewalk in ChatGPT](https://chatgpt.com/plugins/plugin_asdk_app_6ac47963cb448191a5b1757e0682bd6a)** and type:
```
Audit https://yoursite.com for technical SEO problems
```
Sitewalk crawls the site, and ChatGPT brings back the problems ranked by impact, each with a plain fix and example pages, plus a link to the full report (CSV and PDF). Sign in once with your email. The free account gives 3 audits a month: up to 50 pages for any site, up to 500 pages for a site you verify you own.
ChatGPT is the main way in. The same hosted server also answers any MCP client that supports remote servers with OAuth:
| Client | How to connect |
|---|---|
| **ChatGPT** | [Open the Sitewalk plugin](https://chatgpt.com/plugins/plugin_asdk_app_6ac47963cb448191a5b1757e0682bd6a) |
| **Grok** | Coming soon |
| **Claude Code** | `/plugin marketplace add adityaarsharma/sitewalk` then `/plugin install sitewalk@sitewalk`, or `claude mcp add --transport http sitewalk https://audit.adityaarsharma.com/mcp` |
| **Any MCP client** | Remote URL `https://audit.adityaarsharma.com/mcp` (streamable HTTP, OAuth sign-in by email) |
Hosted tools: `start_site_audit`, `get_audit_status`, `get_audit_report`.
What sets the hosted route apart: you start the crawl from the chat itself, with nothing to install and no earlier audit needed. Bigger hosted crawls are coming with **Pro: USD 9 a month**, 50 audits and 20,000 pages a month, up to 1,000 pages per audit on a site you verify. Billed monthly, no yearly plan, and the free account stays free. [Join the waitlist](https://audit.adityaarsharma.com/#waitlist).
### 2. Self-hosted: this repository
The full open-source engine and MCP server: no page cap when self-hosted (your own server), 38 MCP tools, 30+ checks (self-hosted build), branded PDF plus CSVs, and nothing kept on the server after you download the zip. Runs on your own machine or server with Docker. Jump to [Install in 60 seconds](#-install-in-60-seconds).
### Hosted or self-hosted
| | Hosted (ChatGPT) | Self-hosted (this repo) |
|---|---|---|
| Setup | None. Sign in with email | Docker or the one-line installer |
| Pages per audit | 50 for any site, 500 for a site you verify | No cap |
| Audits | 3 a month on the free account, 50 a month on Pro (waitlist) | As many as your server can run |
| Checks | The core technical checks and an extra-checks pass, ranked by impact | 30+ checks (extended checks), extended CSVs |
| Output | Ranked list in chat, full report with CSV and PDF | Zip with a PDF and 7 CSVs |
| Data | Reports stay private to your account | Ephemeral: wiped after you download |
| Crawler | SitewalkBot, obeys robots.txt, 1 page every 2 seconds | Your own IP and settings |
---
## 🧭 Claude Code plugin and the SEO growth agent
This repository is also a Claude Code plugin marketplace. The `sitewalk` plugin connects the hosted Sitewalk server and adds an **SEO growth agent**: it audits a site, ranks the fixes by impact, writes a fix plan for your stack (WordPress, Next.js, Shopify or static), offers to apply it, then re-checks after you ship.
```
/plugin marketplace add adityaarsharma/sitewalk
/plugin install sitewalk@sitewalk
```
Then ask: `Run the SEO growth loop on https://yoursite.com`. The skill is in [`plugins/sitewalk/skills/seo-growth/SKILL.md`](plugins/sitewalk/skills/seo-growth/SKILL.md), and the agent is in [`plugins/sitewalk/agents/seo-growth-agent.md`](plugins/sitewalk/agents/seo-growth-agent.md). Running the self-hosted server instead? The agent uses the self-hosted tool names too.
---
## 📑 Table of contents
- [Two ways to run Sitewalk](#two-ways-to-run-sitewalk)
- [Claude Code plugin and the SEO growth agent](#-claude-code-plugin-and-the-seo-growth-agent)
- [What is an MCP?](#-dont-know-what-an-mcp-is-read-this-30-second-explainer)
- [The whole pitch in 4 lines](#-the-whole-pitch-in-4-lines)
- [One command = a complete audit](#-one-command--a-complete-audit-v220)
- [Why this exists](#-why-this-exists)
- [Install in 60 seconds](#-install-in-60-seconds): [one-liner](#-install-in-60-seconds) · [Docker](#-run-the-full-stack-with-docker-recommended-for-self-hosting) · [manual](#-manual-install)
- [30+ checks every audit](#-30-checks-every-audit)
- [Feature comparison](#-feature-comparison-to-other-on-site-seo-crawlers)
- [What every audit produces](#-what-every-audit-produces)
- [Your first audit](#-your-first-audit)
- [How it works](#-how-it-works) · [Architecture](#-architecture)
- [Configuration](#-configuration)
- [38 MCP tools](#-38-mcp-tools)
- [Documentation](#-documentation)
- [Roadmap](#-roadmap)
- [License & credits](#-license--trademarks)
The sections below cover the **self-hosted** engine (repository formerly `librecrawl-technical-seo-audit-mcp`; old links redirect here).
---
## 🤔 Don't know what an MCP is? Read this 30-second explainer
> **Model Context Protocol (MCP)** is the open standard that lets AI assistants like Claude, Cursor, or Codex call external tools. Think of it as "USB for AI assistants": you plug a tool in, the AI can use it. Sitewalk is one of those tools. Once installed, you just *ask* your AI assistant to audit a site, and it does. No GUI. No dashboard. No exports.
**New to all this?**
- Don't have Claude Code yet? → [Install Claude Code](https://docs.anthropic.com/claude-code) (free for individuals).
- Already have one? → Skip to [Install in 60s](#-install-in-60-seconds).
---
## 🪄 The whole pitch in 4 lines
```
You: Audit https://acme.com, full site, no caps, give me the zip
Agent: → librecrawl_start_chunked_audit · polls until done · saves zip locally
You: Show me broken pages + broken external links + hreflang errors
Agent: → reads CSVs, prints filtered tables. Server already forgot the audit.
```
That's the product. **Your AI assistant runs a full technical SEO audit for you.** With the self-hosted build you get a branded PDF + 7 CSVs covering 30+ technical checks (the extended checks), ready to hand a client. The server wipes everything the moment you download.
---
## ✅ One command = a complete audit (v2.2.0)
No flags to remember, no caps to set. Anyone who runs:
```
librecrawl_start_chunked_audit(url="https://yoursite.com")
```
gets a **full end-to-end audit by default**:
- **Every page**: entire sitemap crawled, including orphan pages not linked from the homepage
- **Every page's text**: readability, AI-tells, boilerplate analyzed word-by-word
- **Every outbound link**: every domain (yours, third-party, social, CDN) HTTP-validated for broken links
- **No silent dropping**: per-page checks + link validation cover 100% of pages; the report states exactly what was covered
- **Heavy sites safe**: 4 to 5 MB pages crawl fine; polite crawling never overloads the origin
- **Zero history**: the server forgets the entire audit the moment you download the zip; re-scan anytime, nothing persists
Verified on real production sites: 1,942-page and 709-page WordPress sites, full coverage, origins healthy throughout.
> **Note:** runs **one audit at a time** (single-tenant backend). For team use, queue audits sequentially: concurrent multi-audit routing is on the roadmap.
---
## 🔥 Why this exists
There are great desktop SEO crawlers and great cloud SEO suites. Sitewalk adds five things:
### ⚡ It runs **inside your AI assistant**
38 MCP tools your agent calls directly. No GUI app to babysit, no SaaS dashboard to log into, no CSV exports to upload to ChatGPT. **You just ask.**
### 🚀 Chunked-progressive crawler that **never times out**
Most SEO MCP servers (SiteAudit MCP, AgentAEO, SE Ranking MCP) run synchronously and disconnect on sites over a few hundred pages. Sitewalk runs the crawl in a **background worker thread**, persists progress to SQLite WAL, and returns a `session_id` in **under 2 seconds**. Your agent polls a tiny status tool until done. **10,000-page enterprise sites work the same as 50-page blogs.** Survives PM2 / MCP-client restarts mid-crawl.
### 🛡️ Catches WAF challenges other crawlers **silently misreport**
Cloudflare, Akamai, DataDome, Imperva, and PerimeterX challenge pages are served as `200 OK` but contain a JavaScript challenge instead of your content. Most crawlers report these as "page OK, all good". Sitewalk fingerprints the challenge in the response body and flags `bot_block_challenge_detected`. **You see what's actually broken.**
### 🤖 An **AIMD controller** tunes crawl delay live
Additive-Increase / Multiplicative-Decrease: the same algorithm TCP congestion control uses. Error rate > 10% → halve chunk, double delay. p95 latency > 1.5× target → 1.5× delay. Clean signals → additive decrease. **Polite by construction. No rate-limit blow-ups. No manual tuning.** Respects `robots.txt` `Crawl-Delay` floor.
### 🧹 **Ephemeral by design**: the agency-safe default
Once you download the zip, the server deletes the session row, every artifact file on disk, AND the upstream LibreCrawl crawl record. **Per-audit server footprint after cleanup: 0 bytes, 0 rows.** Auditing 50 client sites? Zero data persists where another operator could see it.
### 📄 Branded **PDF reports** ready to hand a client
WeasyPrint, A4, page numbers, footer on every page. Open in any PDF viewer. No SaaS watermark. Hand it to a client as your work.
---
## ⚡ Install in 60 seconds
```bash
curl -fsSL https://raw.githubusercontent.com/adityaarsharma/sitewalk/main/install.sh | bash
```
The installer asks 3 questions (target client, optional Google PageSpeed API key, optional GSC integration) and writes a ready-to-use MCP entry into your Claude / Cursor / Codex / Windsurf config. **Done.**