Skip to content

The SEOtto crawler

If this string is in your access log, somebody who runs that site — or works for whoever does — asked SEOtto to watch its pages for changes that affect search: titles, canonicals, robots directives, the sitemap. We read what any visitor can read, slowly, and we identify ourselves on every request.

access.log

07:12:00 GET /robots.txt 200 "SEOtto/1.0 (+https://seotto.com/bot)"

07:12:01 GET /sitemap.xml 200 "SEOtto/1.0 (+https://seotto.com/bot)"

07:12:02 GET /pricing 200 "SEOtto/1.0 (+https://seotto.com/bot)"

07:12:03 GET /blog/sizing-guide 200 "SEOtto/1.0 (+https://seotto.com/bot)"

Always the same string

Eight requests at a time, at most

Per site, across the whole crawl. Customers can add a pause between batches for a fragile origin, and we lower it on request.

Never a conditional request

A 304 has no body, so every fetch is a plain GET. Responses are cut off at 2 MB.

Redirects followed by hand

Up to five hops, each one recorded, and each one re-checked so we never follow a redirect into a private network.

How to slow it down, or stop it

What robots.txt does and does not cover, said plainly.

What we do with what we read