Skip to content
SurfacedByWebsite checker

SurfacedBy crawler

SurfacedBy measures how AI platforms answer questions and which websites they cite. Our crawler reads the websites our customers track, the pages and brands AI answers cite, and sites checked with our free tools.

What it fetches

  • Websites our customers track: robots.txt, llms.txt, sitemaps and public pages, when the site is added and again on a regular schedule to keep their reports current.
  • Pages that AI answers cite, and the websites of brands those answers mention: the page itself and a few public pages such as the homepage, to see what the page says and who publishes it.
  • Publisher websites: public about and contact pages, when a customer looks for who publishes a page that AI answers cite.
  • Any website someone checks with our free tools: robots.txt, llms.txt, the homepage and the page they entered.

It sends GET and HEAD requests to public pages only. It does not run JavaScript, submit forms or log in, and when a site asks it to slow down (HTTP 429 or a Retry-After header) it waits or stops.

robots.txt

Yes. It reads robots.txt first, follows the rules for SurfacedBy (or for all crawlers when none name us), and waits between requests as long as a Crawl-delay asks. A page robots.txt disallows is not requested at all, under any user agent. When robots.txt cannot be read because the server errors or times out, it reads no pages from that site until it can (it may use a copy read in the last week). The one exception is a site whose owner has connected it to SurfacedBy, for example by installing our tracker or connecting Search Console: it is read whatever its robots.txt says, because its owner asked us to monitor it.

If your site is not connected to SurfacedBy, this robots.txt rule blocks our crawler:

User-agent: SurfacedBy Disallow: /

IP addresses

149.28.75.82/32

Every request our crawler sends comes from these addresses, so they are the complete allowlist. These are fixed addresses. They change only when our infrastructure changes, and this page and the machine-readable list at surfacedby.com/bot.json always show the current set. If your host refreshes allowlists automatically, point it at that list rather than a copy.

User agent

Mozilla/5.0 (compatible; SurfacedBy/1.0; +https://surfacedby.com/bot)

robots.txt, sitemaps and pages are all requested with this user agent, from the addresses above.

Every request is signed using the Web Bot Auth standard (HTTP message signatures), so bot protection that checks signatures can confirm it comes from us. Our public keys are published at surfacedby.com/.well-known/http-message-signatures-directory.

Allowing the crawler

If your host or CDN runs bot protection (a firewall, a challenge page, an AI crawler block), it may answer our crawler with a security page instead of your site. Your SurfacedBy dashboard then shows a notice naming the pages it could not read. Add the addresses above to your protection's allowlist, or send them to your host's support team and ask them to allowlist the SurfacedBy crawler. A rule that checks both the addresses and the user agent is the most reliable.

The same protection can refuse the AI platforms' own crawlers. If you want AI assistants to read and cite your pages, check that their crawlers are allowed too. The AI crawlers directory lists each one, with its user agent and how to allow it.

Stopping the crawler

To stop our crawler visiting your site, add the robots.txt rule above, block the addresses above, or email [email protected] with your domain.

Common Questions

Why is the SurfacedBy crawler visiting my site?
SurfacedBy measures how AI platforms answer questions and which sites they cite. Your site may be one a customer tracks as their own, a competitor or brand that AI answers mention, a page AI answers cite, or a site someone checked with one of our free tools.
Does it follow robots.txt?
Yes. It reads robots.txt first, follows the rules for SurfacedBy (or for all crawlers when none name us), and waits between requests as long as a Crawl-delay asks. A page robots.txt disallows is not requested at all, under any user agent. When robots.txt cannot be read because the server errors or times out, it reads no pages from that site until it can (it may use a copy read in the last week). The one exception is a site whose owner has connected it to SurfacedBy, for example by installing our tracker or connecting Search Console: it is read whatever its robots.txt says, because its owner asked us to monitor it.
How do I know a request really comes from SurfacedBy?
Check that it comes from one of the IP addresses on this page or in the list at surfacedby.com/bot.json. Every request our crawler sends uses those addresses and the SurfacedBy user agent. Every request is also signed with Web Bot Auth, so bot protection that checks signatures can confirm it.
Can I allow it by user agent?
Yes. robots.txt, sitemaps and pages are all requested with the SurfacedBy user agent, from the addresses on this page. Because anyone can copy a user agent, a rule that checks both the user agent and the addresses is the most reliable.
Will it slow my site down?
It sends GET and HEAD requests to public pages only. It does not run JavaScript, submit forms or log in, and when a site asks it to slow down (HTTP 429 or a Retry-After header) it waits or stops.
How do I stop it?
Add the robots.txt rule on this page, block the IP addresses on this page, or email [email protected] with your domain.