seorank
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@seorankaudit example.com and list the top SEO fixes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
seo.rank
A free, open-source on-page SEO audit. Paste a URL, get a 0–100 score and the fixes that matter most, in the order to make them. Web app, JSON API, CLI, TUI and an MCP server for AI agents.
seo.rank is a Moshpit site. It is listed on pit.world at pit.world/b/seo.rank.
# the CLI and TUI
bunx seorank audit example.com
bunx seorank audit example.com --local # on your machine, no daily limit
bunx seorank # interactive
# your agent
claude mcp add seorank -- bunx seorank mcpWhat it checks
About 25 checks, weighted by how much they matter to search engines:
Group | Checks |
Crawlability | HTTP status, |
Security | HTTPS, http→https redirect, HSTS |
Content | title length, meta description length, one H1, heading outline, word count, whether the most repeated phrase is in the title or H1, image alt coverage, internal links |
Mobile & markup | viewport, |
Social & rich results | Open Graph, X/Twitter card, JSON-LD types (and broken JSON-LD), hreflang |
Speed | time to first byte, HTML size, compression |
Plus the top words and two-to-three word phrases on the page, with density.
The score is the weighted share of checks passed (a warning earns half). The fix list is sorted by what each fix is worth.
Related MCP server: seo-audit-mcp
How it stays free
No paid APIs, no headless browser. One audit is a handful of HTTP requests (the page, robots.txt, a sitemap, the http check) and a few milliseconds of parsing with Bun's built-in HTMLRewriter.
10 audits per visitor per day, enforced on the server. A visitor is an HMAC of their IP under a secret held only in memory and replaced at every UTC midnight, when the counts reset.
A global cap (2,000 fresh audits a day by default) as a cost circuit breaker, and at most 8 audits in flight at once.
A one-hour cache per URL; re-opening a recent result does not use an audit.
Over the limit: the page says so, the API answers
429withRetry-After. Or run it yourself with--local, without limits.
Privacy
No cookies (the server strips Set-Cookie from every response), no accounts, no analytics, no JavaScript on the pages, no third-party requests. nginx keeps no access log for the site and the app logs nothing per request. Strict CSP, Referrer-Policy: no-referrer.
Safe fetching
seo.rank fetches URLs that strangers give it, so src/fetch.ts only fetches http(s) on ports 80/443, refuses credentials in URLs, checks that every address a name resolves to is public (no loopback, RFC 1918, link-local, CGNAT, ULA, multicast, v4-mapped or NAT64 forms of those), follows at most five redirects by hand and re-checks every hop, only lets the page redirect within its own site, and enforces a timeout and a 2 MB cap.
API
| the full audit: |
|
|
|
|
Add fields=summary (and optionally top=N, default 5, max 25) for a small answer: url, finalUrl, status, score, grade, summary, the top N fixes, checkedAt, cached, quota.
Headers X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. CORS open, no key needed.
API keys (trusted callers)
SEORANK_API_KEYS lists keys for our own services, comma-separated, each name:key or a bare key (16+ characters). A request with Authorization: Bearer <key> or X-API-Key: <key>:
skips the per-visitor free limit and does not count against the public global cap;
has its own daily cap per key,
SEORANK_KEY_DAILY_LIMIT(default 50,000), reported in the sameX-RateLimit-*headers and byGET /api/quotawith the key;runs behind its own concurrency gate,
SEORANK_KEY_CONCURRENCY(default 4), so keyed batches and public visitors cannot starve each other.
A wrong key is a 401, never a quiet fall back to the free tier. Keys are compared in constant time and never logged; /health reports per-key usage by name only. The CLI and MCP server send SEORANK_API_KEY when it is set.
Surfaces
The house rule: everything ships a TUI, a CLI, an MCP and an API.
Web + API |
|
CLI |
|
TUI |
|
MCP |
|
The CLI, TUI and MCP server talk to https://seo.rank (or SEORANK_URL). Because seo.rank is a Moshpit name, the client resolves it with your system resolver if you are on the Moshpit network, otherwise through the Moshpit DNS-over-HTTPS resolver, and verifies the certificate against the Moshpit Root CA bundled in the package (public/moshpit-root-ca.crt). If the instance cannot be reached at all, the CLI and MCP server run the audit locally.
MCP config
{ "mcpServers": { "seorank": { "command": "bunx", "args": ["seorank", "mcp"] } } }Run your own
git clone https://github.com/moshcoder/seo.rank && cd seo.rank
bun install
bun src/server.ts # http://127.0.0.1:8790
bun testProduction runs on bare metal with bin/install.sh (OpenInstall): a systemd unit running bun behind nginx.
More
What AI crawlers and answer engines can read on a page: CrawlProof.
A site built for you, with every check passing: pit.world/build.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Run full technical SEO audits of any website from your AI agent and get structured findings back.
Scan any URL for on-page, technical & content SEO; 0-100 score with copy-paste fixes.
Scores any URL's AI-search visibility with concrete fixes. $1.50/call via x402.
AEO audit: score any website 0-100 for AI visibility. Checks schema, meta, content, AI crawlers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to crawl and audit websites for SEO issues, returning structured JSON reports with errors, warnings, and key statistics.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform instant SEO audits, check robots.txt, sitemaps, and AI crawler access for any URL without API keys.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to run full on-page SEO audits for any URL or up to 10 URLs at once, returning 0-100 scores, meta tag and heading checks, schema/image/link analysis, load time, and prioritized fixes via pay-per-call x402 micropayments.MIT

agentbuiltofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to run a free AI-readiness audit of any URL, checking AI crawler rules, JavaScript-free page text, JSON-LD, llms.txt, sitemap, meta description, FAQ schema, and returning a score with findings and fixes. Also exposes the same capability via an A2A agent endpoint.MIT