DesearchBot
DesearchBot is the web crawler operated by Desearch. It fetches public web pages so that people and AI agents searching through Desearch can find them, and cites the source back in every answer. This page documents how to identify it, how to verify that a request really came from us, and how to control what it crawls.
Identity
- robots.txt token
- DesearchBot
- User-Agent
- Mozilla/5.0 (compatible; DesearchBot/1.0; +https://www.desearch.ai/crawler)
- Signature-Agent
- https://www.desearch.ai/crawler
- Key directory
- https://www.desearch.ai/.well-known/http-message-signatures-directory
- Key ID
- SIH21WRtn5LqTl8zoecrtqPzvQko6jb7RDh21IMjbwU
- Contact
- support@desearch.ai
Verifying a request
Anyone can put DesearchBot in a User-Agent header. That string proves nothing on its own, so do not allowlist on it.
Every request we send is signed with an Ed25519 key using HTTP Message Signatures (RFC 9421), following the Web Bot Auth scheme. The signature covers the host the request is sent to, so it cannot be replayed against a different site, and it holds whatever address the request arrives from.
Signature-Agent: "https://www.desearch.ai/crawler"
Signature-Input: sig1=("@authority" "signature-agent")
;created=1788896662;keyid="SIH21WRtn5LqTl8zoecrtqPzvQko6jb7RDh21IMjbwU"
;alg="ed25519";expires=1788896962;tag="web-bot-auth"
Signature: sig1=:4qF0VDVJkCSUrui1Aqg/8p9lYo/URN8oG001r/3uwL5vswanZz6KbRRh1hyEW3mBf8ODALjh22O+9wKlcb0yDg==:To check a request:
- Read the
Signature-Agentheader and fetch the key directory below. - Match the
keyidfromSignature-Inputagainst a key in that directory. - Verify the signature over the covered components, in the order they are listed.
Our public keys are published at https://www.desearch.ai/.well-known/http-message-signatures-directory. A request that fails this check is not from us, whatever its User-Agent claims — and we would like to hear about it.
We also crawl from a small, stable set of static addresses and never route through residential proxies. If you would rather just ask, send the timestamp, the host it hit and the source IP address to support@desearch.ai and we will tell you whether it was ours.
How it crawls
- robots.txt
- We read it before we visit a host, and again on later visits. We follow Allow, Disallow and Crawl-delay written for our token, and fall back to your * group when you have not named us.
- Request rate
- At most one request per second to a host, and slower whenever your robots.txt sets a longer Crawl-delay. That covers every request we make: robots.txt, each sitemap and each page.
- Rendering
- A plain HTTP GET. We do not execute JavaScript, run a headless browser, or load your page assets.
- Discovery
- We start from the sitemap your robots.txt advertises. Where there is none we try /sitemap.xml and /sitemap_index.xml, and stop if neither parses.
- Revisits
- We re-read a sitemap on a schedule set by how often it actually changes, and fetch a page again when its sitemap entry changes.
- Attribution
- Every page we index keeps its link, headline and source, and Desearch cites them in the answers it returns.
What it never does
- Bypass paywalls, logins, or metered access.
- Solve or evade CAPTCHAs and bot challenges.
- Submit forms, or take any other action that writes to your site.
- Crawl a path your robots.txt disallows.
- Rotate residential IP addresses to disguise where it comes from.
Blocking or slowing it down
Add any of the following to /robots.txt at the root of your host. There is nobody to contact and nothing to register, and you do not need a rule to allow us: with no rule for our token we follow your * group.
Block us completely
We stop at robots.txt and fetch nothing else from your host.
User-agent: DesearchBot
Disallow: /Block part of the site
Everything outside these paths stays crawlable.
User-agent: DesearchBot
Disallow: /members/
Disallow: /newsletters/Slow us down
Seconds to wait between our requests. Any value above one second replaces our default.
User-agent: DesearchBot
Crawl-delay: 10Removing a page that is already indexed
robots.txt controls crawling, not what has already been stored. To drop a page, serve X-Robots-Tag: noindex or add a noindex meta tag and we remove it at the next fetch. For an urgent takedown, email us and we act manually.
Contact
Wrong crawl rate, unexpected traffic, a page that should not be indexed, or anything else about this crawler: support@desearch.ai. We reply within two business days.