DuckAssistBot
Operated by DuckDuckGo
Quick Facts
- User-Agent:
- DuckAssistBot
- Category:
- AI & LLM Bots
- Operator:
- DuckDuckGo
- Safety:
- Safe
- Blocking Impact:
- Low - No SEO ranking impact
- SEO Impact Score:
- 2/10
- Official docs:
- help.duckduckgo.com
Confirmed by the operator
DuckDuckGo names DuckAssistBot on its own documentation page, linked above. The token, purpose and robots.txt behaviour on this profile come from that page, re-checked on October 19, 2026.
What is DuckAssistBot?
DuckAssistBot fetches pages to answer questions in DuckDuckGo's DuckAssist AI answers.
DuckDuckGo states content it fetches is not used to train AI models. It identifies itself with the token DuckAssistBot. DuckDuckGo documents it at help.duckduckgo.com.
What happens if you block DuckAssistBot?
Want to see whether DuckAssistBot actually visits you? Read how do I monitor AI bot traffic to my website?
How to block DuckAssistBot with robots.txt
<code>User-agent: DuckAssistBot</code> - Matching is case-insensitive. Robots.txt is fetched from the root of each subdomain separately.
Is DuckAssistBot safe to allow?
What does DuckAssistBot do?
From DuckDuckGo's own documentation.
- DuckAssistBot fetches pages to answer questions in DuckDuckGo's DuckAssist AI answers.
- Not used to train AI models, according to the operator
- Blocking it stops DuckAssist from citing your pages. No effect on DuckDuckGo's regular results (DuckDuckBot) or on Google.
DuckAssistBot in context
DuckAssistBot is a retrieval crawler that feeds AI search answers operated by DuckDuckGo. In plain terms, it fetches a page when a person asks an assistant or app to open it. Our database files it under AI and LLM crawlers and ranks it Tier 2, important crawlers from established AI and search operators. 74 of the 104 AI and LLM crawlers in our database share this tier.
Its safety rating is safe and its blocking impact is low. So the decision about DuckAssistBot rests on what you want from DuckDuckGo, not on its behaviour. How we rate safety and impact.
How site owners treat DuckAssistBot
In our own study of robots.txt files across the Tranco top 10,000 sites (fetched October 20, 2026, 5,583 valid files), 304 files (5.4%) name DuckAssistBot in a User-agent line, and 461 (8.3%) block it from the homepage. 236 of those blocks come from a group written for this crawler by name, and 225 come from a broad User-agent: * rule that catches it by accident. Larger sites are stricter: 14.2% of the top 1,000 block it, against 8.5% of the middle band and 7.1% of the tail.
Does it follow robots.txt?
DuckAssistBot's operator says it follows robots.txt, so a correctly written DuckAssistBot group is enough to control it.
DuckDuckGo crawlers and close alternatives
DuckAssistBot is one of 2 DuckDuckGo crawlers in our database. A User-agent: DuckAssistBot group controls DuckAssistBot only; the other DuckDuckGo tokens below need their own lines.
DuckAssistBot: this crawler (Tier 2)DuckDuckBot: DuckDuckGo Search, builds a search or answer index (Tier 3)
To give DuckAssistBot the same answer as its siblings, stack User-agent: DuckAssistBot with their lines above one set of rules; to treat DuckAssistBot differently, give it its own group.
Other AI and LLM crawlers that do the same job (fetches a page when a person asks an assistant or app to open it) include ChatGPT Agent from OpenAI, ChatGPT Operator from OpenAI, ChatGPT-User from OpenAI, ChatGPT-User/2.0 from OpenAI, Claude-SearchBot from Anthropic, Claude-User from Anthropic. Deciding about DuckAssistBot is usually a decision about the whole group, so check how your file treats these too.
We first recorded DuckAssistBot on March 17, 2026. DuckDuckGo documents it on help.duckduckgo.com, and we recheck that page before each release.
Which rule DuckAssistBot actually follows
DuckAssistBot reads exactly one group in robots.txt, the most specific one that names DuckAssistBot, and never combines rules across groups. This short file shows the trap:
User-agent: *
Disallow: /private/
User-agent: DuckAssistBot
Disallow: /drafts/
- Find the group. DuckAssistBot looks for a group naming
DuckAssistBot. One exists, so it ignoresUser-agent: *completely. - Apply only that group. It is refused
/drafts/and nothing else. - The surprise.
/private/is open to DuckAssistBot, because that rule lives in the*group it no longer reads. To keep it out of both, repeatDisallow: /private/inside its own group.
Test yourself: does a rule under User-agent: * apply to DuckAssistBot if the file also has a User-agent: DuckAssistBot group?
No. Once a group names it, DuckAssistBot reads only that group. Put every rule you want it to follow inside its own group.
Test yourself: will blocking DuckAssistBot remove your pages from AI answers?
Often, yes. DuckAssistBot is a retrieval crawler that feeds AI search answers, so pages it cannot fetch can drop out of the answers or results it supports.
Test yourself: is User-agent: duckassistbot the same as User-agent: DuckAssistBot?
Yes. RFC 9309 makes user-agent matching case-insensitive. Paths are a different story: Disallow: /Blog/ does not block /blog/.
Should you allow DuckAssistBot? Decide by situation
| If you are... | Recommended setting |
|---|---|
| You publish content and want AI answers to cite it | Allow it. DuckAssistBot fetches pages for answers, so blocking it can remove you from them. |
| You license content and want to stop AI training | Blocking it does not stop training, because DuckAssistBot is a retrieval crawler that feeds AI search answers. Block the operator's training crawler instead. |
| You run an online shop | Allow it on product and category pages, which are the pages shoppers ask assistants about. |
| Your server is under load from bots | Rate-limit before blocking. It is rated safe in our database. |
Check DuckAssistBot on your own site
- Open
/robots.txton your domain and search forDuckAssistBot. If it is not named, it followsUser-agent: *. - List the
Disallowlines in the group DuckAssistBot follows and test your key URLs against them; the longest match wins, andAllowwins a tie. - Look beyond the file. A firewall or bot manager can refuse DuckAssistBot even when robots.txt allows it, and that never shows in the file.
- Run our GPTBot and ClaudeBot access check to see how DuckAssistBot and every other crawler we track are treated in one pass, including firewall refusals.
Common mistakes with DuckAssistBot
The errors we see most often with DuckAssistBot in the files and firewalls we test:
- Blocking DuckAssistBot while trying to stop AI training. Retrieval crawlers fetch pages so answers can cite them; blocking it can remove you from those answers without affecting training.
- Letting a firewall or bot-fight mode refuse DuckAssistBot while robots.txt allows it. The file looks right, but the crawler still gets a 403 or a challenge page.
- Forgetting that once a
User-agent: DuckAssistBotgroup exists, DuckAssistBot ignores every rule underUser-agent: *.
All three hide inside a file that looks correct, so check DuckAssistBot from outside after every change.
Spotting DuckAssistBot in your logs
robots.txt says what DuckAssistBot may do; your access logs show what it actually did.
Count requests
On a server with standard Nginx or Apache logs, this counts matching requests per day (adjust the log path for your host):
grep -iE "DuckAssistBot" /var/log/nginx/access.log \
| awk '{print $4}' | cut -d: -f1 | sort | uniq -c
And this shows which paths it requested most, which is the quickest way to see whether your Disallow lines are being respected:
grep -iE "DuckAssistBot" /var/log/nginx/access.log \
| awk '{print $7}' | sort | uniq -c | sort -rn | head -20
Check the requests are genuine
Anyone can send the DuckAssistBot user-agent, so confirm the source before acting on a match:
DuckAssistBot: we hold no published IP list, so use reverse DNS where the operator documents a hostname and treat an unverifiable DuckAssistBot request with caution.
Frequently Asked Questions
What is the official user-agent string for DuckAssistBot?
DuckAssistBot. This is the exact string you must use in robots.txt, Nginx, Apache, or Cloudflare firewall rules to target this bot. User-agent matching in robots.txt is case-insensitive, but the string must be spelled correctly. You can verify that a request genuinely comes from DuckAssistBot by performing a reverse-DNS lookup on the source IP - legitimate bots resolve back to their operator's domain.Is DuckAssistBot safe?
Will blocking DuckAssistBot hurt my SEO?
How do I block DuckAssistBot in robots.txt?
/robots.txt file:User-agent: DuckAssistBot Disallow: /
This instructs DuckAssistBot not to crawl any path on your site. The Disallow: / directive covers the entire domain including subfolders. To only block specific sections, replace / with the path (e.g.,
Disallow: /blog/). Note: robots.txt is publicly readable - any bot or human can inspect it at yourdomain.com/robots.txt.Does DuckAssistBot respect robots.txt?
How do I verify if DuckAssistBot is crawling my site?
DuckAssistBot (case-insensitive grep: grep -i "DuckAssistBot" /var/log/nginx/access.log). You can also check Google Search Console → Coverage → Crawl Stats for Googlebot variants. For DuckAssistBot specifically, filter by user-agent in your log analysis tool (GoAccess, AWStats, etc.).What is the crawl frequency of DuckAssistBot?
User-agent: DuckAssistBot Crawl-delay: 10(10 second delay between requests).
Can I block DuckAssistBot from specific pages only?
Disallow: / you can restrict DuckAssistBot to specific paths:User-agent: DuckAssistBot Disallow: /private/ Disallow: /staging/ Allow: /
This allows DuckAssistBot everywhere except the listed paths. Path matching in robots.txt uses prefix matching -
Disallow: /private/ blocks /private/page.html but NOT /public/private/.Does blocking DuckAssistBot prevent AI training on my content?
Is there an alternative to robots.txt to opt out of DuckAssistBot?
DuckAssistBot enforces it. Per-bot meta tags and llms.txt are not opt-out mechanisms any major operator documents.