Get started2 min readUpdated
How mttr reads a site
What it fetches, in what order, what it keeps, and what it will not do on anyone’s site.
What does mttr fetch from a site?
Only its public pages, by their public address. It checks the domain, reads robots.txt and obeys it, reads the sitemap, then reads the home page and follows links, a few pages at a time, up to 100 pages. Every request names itself as mttr, and nothing behind a sign-in is read.
One read, start to finish
The address
mttr checks the domain resolves to a public address. A private address is never read.
robots.txt
It reads
robots.txtand follows it, for its own name and for every crawler. A site that keeps all crawlers out gets one page read and a report that says why.The sitemap
It reads the sitemap the site names, so pages no link leads to are still found.
The pages
It reads the home page, then follows links and the sitemap, a few pages at a time, up to 100 pages.
The rules
Every page is checked against one rulebook. Code decides each rule. Where a model is asked for an opinion and is unsure, the page goes to a person instead of passing or failing.
How it names itself
Every request carries the user agent mttr/0.1 (+https://mttr.si), so a server’s logs show each visit and where to learn what it was. In robots.txt it keeps to the rules written for mttr when there are any, and to the rules for every crawler when there are none. A path those rules keep it from is never fetched and never counted in the report.
What is kept
| What | How often | Why |
|---|---|---|
| The summary | Every read | The score, the four stages, and each rule with how many pages fail it |
| Every page | Every read | Its status, depth, words, links, and the rules it fails |
| Its text | Once a version | A page whose words have not changed adds nothing new |
| Its HTML | The newest only | So a change to the rulebook can be scored again without fetching the site |
What it will not do
- Read a private address, a page behind a sign-in, or a port other than 80 or 443.
- Pretend to be anyone else. Every request names itself as mttr.
- Go where
robots.txtsays it may not. - Read one site more than once every 10 minutes.
- Report pages no link leads to when the read stopped at its limit, since it cannot tell those from pages it did not reach.
Keeping mttr out
Add User-agent: mttr and Disallow: / to your robots.txt. It is obeyed on the next read.
Sources
- IETFRFC 9309: Robots Exclusion ProtocolHow robots.txt names a crawler and what it may readrfc-editor.org
- sitemaps.orgSitemaps XML formatThe sitemap format a read takes its list of pages fromsitemaps.org
- OpenAIOverview of OpenAI crawlersThe names of OpenAI’s crawlersdevelopers.openai.com
- AnthropicDoes Anthropic crawl data from the web?The names of Anthropic’s crawlerssupport.claude.com
- PerplexityPerplexity crawlersThe names of Perplexity’s crawlersdocs.perplexity.ai