---
schema_version: "newruntime-reader-dossiers-v1"
type: "reader_dossier"
slug: "duckduckbot"
kind: "search"
operator: "DuckDuckGo"
researched_at: "2026-10-23"
confidence: "high"
json_url: "https://newruntime.com/readers/duckduckbot.json"
canonical_url: "https://newruntime.com/readers/duckduckbot/"
---

# DuckDuckBot

> DuckDuckGo's web crawler, used to improve DuckDuckGo search results.

## Dossier

- Kind: Search engines
- Operator: DuckDuckGo (https://duckduckgo.com/)
- Documentation: https://duckduckgo.com/duckduckgo-help-pages/results/duckduckbot
- robots.txt tokens: DuckDuckBot
- Feeds: search index
- Respects robots.txt: Yes, per its documentation. Respects robots exclusion via WWW::RobotRules.
- Verification: Published IP ranges (https://duckduckgo.com/duckduckbot.json)
- Labels matched in our logs: duckduckbot

## Why it matters to New Runtime (our interpretation)

Feeds DuckDuckGo's own index used by privacy-focused human readers alongside its Bing-sourced results.

## Observed behaviour

- Baseline 2026-10-23 (93-day window): 10 requests on 9 days; first seen 2026-08-11, last seen 2026-10-15; Returning.
- Live numbers: https://newruntime.com/bot-traffic-history.json and https://newruntime.com/crawler-journeys.json

## Sources

- https://duckduckgo.com/duckduckgo-help-pages/results/duckduckbot

Identity: A family name is what a client claims in its user agent. It is verified only when its request came from the operator's published IP ranges or passed forward-confirmed reverse DNS, as reported per family in /crawler-journeys.json. Anyone can claim any name.

All dossiers: https://newruntime.com/readers.md
