AI crawler profile
User-agent string to match in robots.txt and server logs: Diffbot
Operator
Diffbot
Purpose
Training + search
robots.txt
Partially respects robots.txt
Official docs
Diffbot converts web pages into structured data (its Knowledge Graph) that customers — including AI companies — query and license. It's less a classic crawler than an extraction service: many fetches happen on demand when a customer requests a specific URL, which complicates the usual robots.txt picture.
Diffbot's bulk crawling honors robots.txt, but customer-triggered, on-demand extraction of specific URLs has been reported to proceed regardless — treat blocks as advisory.
Diffbot publishes no IP-range file for Diffbot, so it can only be identified by its user-agent string — which anything can send. Treat traffic claiming this agent as unverified, and prefer a reverse-DNS check where the operator documents one before acting on it.
User-agent: Diffbot Disallow: /
User-agent: Diffbot Allow: /
Diffbot's robots.txt compliance is unreliable, so a robots.txt rule alone may not stop it. These enforce the block. Matching on the user-agent string still trusts a self-declared header — and no IP-range file exists for this agent, so treat it as best-effort.
if ($http_user_agent ~* "Diffbot") {
return 403;
}RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Diffbot [NC]
RewriteRule .* - [F,L](http.user_agent contains "Diffbot")
grep -i "Diffbot" /var/log/nginx/access.log | wc -l
It's a genuine trade-off: Diffbotserves both search-style features (which send you visibility) and model training (which you may want to opt out of). Since one user agent controls both, you can't split the decision — weigh which matters more using our blocking decision guide.
Diffbot is Diffbot's crawler serving both AI search features and model training. Extracts structured data from pages for customers, including AI companies.
Diffbot's bulk crawling honors robots.txt, but customer-triggered, on-demand extraction of specific URLs has been reported to proceed regardless — treat blocks as advisory.
Add "User-agent: Diffbot" followed by "Disallow: /" to your robots.txt file. The change takes effect the next time the bot fetches your robots.txt.
No. Diffbot is separate from Googlebot, which handles Google Search indexing. Blocking Diffbot has no effect on your traditional search rankings, but it does remove your pages from the AI answers Diffbot's assistant serves to its users.
Search your server access logs for the string "Diffbot" — for example: grep -i "Diffbot" /var/log/nginx/access.log | wc -l. Our free AI Bot Log Analyzer does this in your browser: paste a log file and it counts hits per AI crawler, including Diffbot, with per-path breakdowns.
You don't — Diffbot isn't a tool you run. It's Diffbot's own crawler, operated by Diffbot, that visits your site from their infrastructure. The only control you have over it is whether you allow or block it, via robots.txt or a server rule. If you're looking to crawl other sites yourself, you'd write your own crawler or use a crawling library; sending "Diffbot" as your user agent would be impersonating Diffbot.
Almost certainly not. Crawl-delay was never part of the original robots.txt specification — Google has publicly said it ignores the directive, and the AI crawlers that model their parsers on Google's do the same. Diffbot publishes no position on crawl-delay for Diffbot, so treat it as unsupported. If Diffbot is hitting your site harder than you want, rate-limit it at the server or CDN instead: a Cloudflare rate-limiting rule or an nginx limit_req zone matched on the user agent will actually be enforced, whereas a crawl-delay line is only a request that this agent likely never reads.
Diffbot makes no enforceable commitment that Diffbot honors robots.txt, so the plain answer may be that it simply does not. Before assuming that, rule out the ordinary causes: a cached copy of robots.txt from before your change, a user-agent line that does not actually match, or a block placed in a group this agent does not read. If the hits continue after those are excluded, robots.txt is not going to stop this agent and you need a firewall or CDN rule that returns 403.
Treat it as no unless Diffbot says otherwise. Rendering JavaScript costs an order of magnitude more than fetching HTML, and most AI crawlers — unlike Googlebot, which runs a full headless Chrome — read the raw HTML response and stop there. The practical consequence: anything your page loads client-side after the initial response is likely invisible to Diffbot. If your main content is client-rendered, server-render it or pre-render it so the text exists in the first response.
Diffbot publishes no IP-range file for Diffbot, which means there is no way to verify a request really came from them. Any traffic claiming this user agent should be treated as unverified. If you need certainty, block on the user agent and accept that you may be blocking impostors rather than the real crawler — and note that the absence of published ranges is itself a signal about how seriously the operator treats crawler transparency.
There is no published schedule, and no operator commits to one. Training crawlers like Diffbot typically sweep in bursts rather than at a steady rate — quiet for weeks, then hundreds of requests over a day or two as a collection run reaches your domain. Larger and more-linked sites are revisited more often. The only way to know for your own site is to measure it: grep your access log for the user agent, or paste the log into our AI Bot Log Analyzer, which breaks hits down by date and path in your browser.
Diffbot publishes it at https://docs.diffbot.com/docs/how-to-identify-diffbot. That page is the authoritative source for the user-agent string and Diffbot's stated crawling policy.
Part of our directory of every known AI crawler, refreshed monthly. Last verified: 2026-09-13.