ianbot
What the crawler does, what it never does, and how to allow it if your firewall blocks it.
ianbot fetches pages for the free tools on this site, such as the internal links tool. It only runs when someone enters a site URL into a tool. It never crawls on a schedule and never visits a site nobody asked it to.
It identifies itself with this user agent:
ianbot/1.0 (+https://ian.is/ianbot)What it does
- Reads
robots.txtfirst and follows it in full. Rules forianbotwin over*rules.Crawl-delayis honoured. - Finds pages through the sitemaps listed in
robots.txtor at the usual sitemap paths. If there is none, it follows links from the home page. - Fetches at most 2,000 HTML pages per run, six at a time, with a 15 second timeout each.
- For the AI answer check only, it also asks for a site’s home page once in the name of each AI crawler (such as GPTBot or PerplexityBot), to see whether a firewall lets that crawler in. It does this only for a site its owner verified in Google Search Console and chose to run the tool on, once per crawler per run. Each of those requests carries the header
X-Ianbot: AI crawler access check; +https://ian.is/ianbot. - Keeps the text it extracts and the report in that run’s private storage for 7 days so the visitor can come back to it, then deletes it. Any API key is deleted as soon as the run ends.
What it never does
- It never fetches a URL that
robots.txtdisallows, including redirect hops. - If
robots.txtcannot be read because the server errored, it stops. It does not guess. - It never keeps page content beyond those 7 days or uses it for anything but that report, and it never sells or shares anything it reads.
Allow it past a firewall
When a firewall blocks ianbot, the tool names the firewall and links here. Choose where your site runs to see the steps.
ianbot runs on Cloudflare Workers and has no fixed IP address, so every fix below matches its user agent. Anyone can copy a user agent, so keep the rule to ianbot alone and never use it to skip sign-in or open private pages.
Cloudflare
Cloudflare’s bot protection and security rules sometimes challenge ianbot. To let it through:
- In the Cloudflare dashboard, open your domain and go to Security rules.
- Select Create rule, then Custom rules.
- Set Field to User Agent, Operator to contains and Value to
ianbot. - Under Choose action, pick Skip and tick the features that blocked ianbot, usually All Super Bot Fight Mode Rules or All managed rules. Browser Integrity Check and Security Level are under More components to skip. The security events log shows which one it was.
- Select Deploy and run the tool again.
To limit the rule to one hostname, edit the expression:
(http.host eq "www.example.com" and http.user_agent contains "ianbot")
No rule can skip Bot Fight Mode, the bot setting on the Free plan. If it is on, turn it off under Security, then Settings (filter by Bot traffic) while the tool runs, and turn it back on after.
Vercel
Vercel’s Bot Protection challenges requests that do not come from a browser, and ianbot is not a browser. A custom rule with the Bypass action lets it through:
- In the Vercel dashboard, open your project and select Firewall in the sidebar.
- Select ⋯, then Configure, then Add New… and Rule.
- Name the rule, for example “Allow ianbot”.
- Set If to User Agent, Contains,
ianbot. - Set Then to Bypass and select Save Rule.
- Select Review Changes, then Publish. The rule works straight away, with no redeploy.
- Run the tool again.
Vercel runs custom rules in order. If you have rules that deny or challenge traffic, move this one above them.
Attack Mode only lets through bots on Vercel’s verified list, and Vercel does not offer a way to add your own. If the rule does not help and Attack Mode is on, turn it off under Firewall, then Bot Management while the tool runs.
AWS WAF
AWS WAF’s Bot Control rule group blocks user agents that do not look like a browser, through its SignalNonBrowserUserAgent rule. To let ianbot through:
- In the AWS WAF console, open the web ACL for your site. The new console calls it a protection pack.
- In the sampled requests or your WAF logs, find a request whose user agent contains
ianbotand note the rule that blocked it. - If it was the Bot Control rule group, edit the rule group and add a scope-down statement so it only inspects requests whose
User-Agentheader does not containianbot. - Save and run the tool again.
If a different rule blocked ianbot, add the same condition to that rule.
Akamai
Akamai Bot Manager lets you define your own bots and choose what happens to them. To allow ianbot:
- In Akamai Control Center, create a custom bot category for trusted bots, or use one you already have.
- Add a custom-defined bot to that category that matches the User-Agent request header
*ianbot*, with wildcards turned on. - In your security policy, set that category’s action to Allow or Monitor.
- Save and activate the security configuration, then run the tool again.
If someone else manages Akamai for you, send them these steps.
Sucuri
Sucuri’s Aggressive bot filter blocks any user agent that does not match a real browser. Sucuri can allow IP addresses and URL paths, but not a user agent, so the filter has to be off while the tool runs:
- In the Sucuri firewall dashboard, open Settings, then Security.
- Turn off Aggressive bot filter.
- Check that Access Control, then Block User Agents does not list ianbot.
- Run the tool again, then turn the filter back on.
Something else
For any other firewall, security plugin or host:
- Find a request from
ianbotin your firewall’s or plugin’s log and note the rule that blocked it. - Add an exception to that rule, or a rule that allows requests whose user agent contains
ianbot. - Run the tool again.
If you cannot change the firewall yourself, send your host the user agent at the top of this page and ask them to allow it.
Allow it in robots.txt
If a tool reports that robots.txt blocks ianbot, add a group for it:
User-agent: ianbot
Allow: /
Keep your rules for other crawlers as they are. Allowing ianbot changes nothing for Googlebot or anyone else.
Block it
Add a Disallow group for ianbot to robots.txt and it will not fetch a single page. If you have a question or a complaint, contact me.