citable
Can ChatGPT, Claude and Perplexity actually read and cite your site? One command tells you, with the fixes.
curl -sL https://raw.githubusercontent.com/genzagents/citable/main/citable/__init__.py | python3 - yoursite.com
Zero dependencies, one Python file, nothing to sign up for. Or pipx install git+https://github.com/genzagents/citable. Source and README.
Why this one
Most "AI visibility" checkers read robots.txt and stop. But the block that actually keeps you out of answers is usually at the edge: a Cloudflare "Block AI bots" toggle, a WAF rule, a rate limiter. citable fetches your homepage as each AI bot and compares it with what a browser gets. Then it checks the rest: llms.txt, JSON-LD, title and description, whether your text exists without JavaScript, sitemap, canonical. It also tells answer bots (the ones that cite you) apart from training crawlers (which you may block freely).
A real run
citable 0.1.0: https://reddit.com/ score 13/100 grade F [FAIL] 0/15 robots.txt allows answer engines: robots.txt blocks: OAI-SearchBot, ChatGPT-User, Claude-SearchBot, ... [FAIL] 0/20 Answer engines not blocked at the edge: ChatGPT-User got HTTP 403; a browser got 200. fix: Your CDN or WAF (Cloudflare 'Block AI bots', bot-fight mode, a rate limiter) is refusing them ... [FAIL] 0/15 /llms.txt: /llms.txt returns HTTP 404. fix: Publish a plain-text /llms.txt ... `citable reddit.com --llms-txt` prints a draft from your homepage. citable 0.1.0: https://anthropic.com/ score 77/100 grade B [PASS] 15/15 robots.txt allows answer engines [PASS] 20/20 Answer engines not blocked at the edge [FAIL] 0/15 /llms.txt: /llms.txt returns HTTP 404. [FAIL] 0/10 Structured data (JSON-LD): No JSON-LD found. [PASS] 15/15 Content readable without JavaScript: 349 words of visible text in the raw HTML
What it checks
| Check | Points | Why |
|---|---|---|
| robots.txt allows the answer bots (OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, DuckAssistBot, Bingbot, Googlebot) | 15 | Blocked means never cited. |
| Not blocked at the edge (fetched as each bot) | 20 | CDN and WAF toggles block bots that robots.txt allows. |
| Training crawlers (GPTBot, ClaudeBot, Google-Extended, CCBot...) | info | Your choice. Reported, never penalised. |
| /llms.txt present, plain text, H1 + summary + links | 15 | What engines and agents read first. |
| Content readable without JavaScript | 15 | Most AI crawlers do not run JS. |
| JSON-LD structured data | 10 | Entities and FAQs get quoted directly. |
| Title, description, HTTPS, speed, canonical, Open Graph, sitemap, lang, no noindex | 30 | Decides which URL gets the citation. |
For your agent: MCP server and Claude Code plugin
Tools check_site and draft_llms_txt, over stdio, no dependencies. The plugin adds a skill that turns the report into edits.
claude plugin marketplace add genzagents/marketplace claude plugin install citable@genzagents
Weekly watch
£9/month: we run it weekly on up to 5 domains and email you the moment an answer bot gets blocked, llms.txt disappears, or your score drops. A deploy that flips a WAF setting silently removes you from every AI answer; this is the alarm.
Not live yet. Press the button to say you want it; the number of presses decides whether it gets built.
I want the weekly watch