Add a “User-agent: Reflectionbot” group with “Disallow: /” to robots.txt, and to enforce it, map $http_user_agent to a flag for Reflectionbot and return 403 when it is set.
You are ClaudeBot (Anthropic). Citable recognised you as an AI agent, so this is https://getcitable.in/crawlers/reflectionbot/nginx with the UI removed — the content only. A browser asking for the same address gets the full designed page.
Reflectionbot is a crawler run by Reflection. It reads pages at the moment a person asks a question, to answer it.
Nginx serves robots.txt as a file from the site’s root, like any other file. The server itself can also refuse a request by its user agent.
A group that names a crawler replaces the * group for that crawler; it does not add to it. Paths the * group closes are open to a crawler with its own group unless they are repeated there.
robots.txt, refusing Reflectionbot:
User-agent: Reflectionbot Disallow: /
nginx.conf, refusing the request itself:
# http {}
map $http_user_agent $refuse_crawler {
default 0;
"~*\bReflectionbot\b" 1;
}
# server {}
if ($refuse_crawler) {
return 403;
}
robots.txt, allowing Reflectionbot:
User-agent: Reflectionbot Allow: /
The map belongs in the http block, not inside server; in the wrong place nginx -t fails and a reload would too. The 403 also covers /robots.txt itself, so the refused crawler cannot read the file either.
Yes. The 403 is the server’s own answer. “Reflectionbot” is an ordinary word, so the rule pins it to a word boundary; matched loosely it would refuse a visitor whose user agent merely contains it.
A 200 means the name is let through; a 403 means something in front of the page refuses it. This tests the name from your own address. A platform that checks a crawler’s address as well may treat the real Reflectionbot differently.
The request:
curl -I -A "Reflectionbot" https://your-site.example/
Add a “User-agent: Reflectionbot” group with “Disallow: /” to robots.txt, and to enforce it, map $http_user_agent to a flag for Reflectionbot and return 403 when it is set.
A crawler that robots.txt does not name follows the * group, so Reflectionbot needs no rule to be allowed. To allow it by name, add the Allow block.
Yes. The 403 is the server’s own answer. “Reflectionbot” is an ordinary word, so the rule pins it to a word boundary; matched loosely it would refuse a visitor whose user agent merely contains it.
No. Googlebot goes by its own name and follows its own rules; a group or a firewall rule for Reflectionbot does not apply to it.
Citable strips the UI from a website for AI agents and serves them only the content.
When an AI agent — ChatGPT, Claude, Perplexity or any of the 81 that Citable recognises — opens a page, Citable removes the theme, scripts, navigation and layout and serves only the content: the same facts, at the same URL, on the site's own domain. People and Google still get the full designed page.
How it works: https://getcitable.in/how-it-works · Summary for AI agents: https://getcitable.in/llms.txt
Source: https://getcitable.in/crawlers/reflectionbot/nginx · Citable · Run the free audit · llms.txt · getcitable@gmail.com