Two sites, as an agent sees them.
In one sentence
The CrawlCheck compare page runs the same scan on two homepages and sets the results side by side: what an agent is told about each (the signed read, cite, connect and transact decisions), the overall grade and score with any finding that holds the letter down, the three stages (reach, read, quote), every section with the point gap, and the findings that appear on only one of them. A section that could not be measured on a site reads n/a, never zero.
The same scan on both homepages, and the signed answer an agent receives before it reads, cites, connects to or transacts with either one. Where they differ is where the evidence differs.
2
homepages, the same instrument
33
sections compared below
4
actions an agent asks about: read, cite, connect, transact
1
JSON call returns all of it: /api/compare
Example, from stored records denverpost.com against machinerelations.ai, a top-scoring site in the directory (92). Enter any two domains above to run your own.
denverpost.com
Letter held at C: a medium-severity finding (ROBOTS_RULES_SHADOWED)
machinerelations.ai
In plain English
- machinerelations.ai shows answer engines more usable evidence, by 11 points.
- Crawler permissions: machinerelations.ai is 67 ahead.
- Structured data: machinerelations.ai is 45 ahead.
- Page weight & text: machinerelations.ai is 40 ahead.
What an agent is told about each
The signed Resolve answer for each homepage, the call an agent makes first. Same rules for both; nothing here is re-derived for this page.
| Action | denverpost.com | machinerelations.ai |
|---|---|---|
| read | warn 8 of 9 AI-crawler identities were served the page; robots.txt allows 73 of 114 tested agents | allow 9 of 9 AI-crawler identities were served the page |
| cite | warn 8 of 9 AI-crawler identities were served the page; robots.txt allows 73 of 114 tested agents | allow 9 of 9 AI-crawler identities were served the page |
| connect | none declared the site declares no capability to connect to | allow 1 capability behaved as declared when invoked read-only. Only the verified ones are covered: https://crawlcheck.io/api/capabilities?domain=machinerelations.ai |
| transact | needs a human CrawlCheck does not certify transactions; a human confirms every financial, identity or irreversible action; the identity is confirmed (facebook.com, x.com, linkedin.com) | needs a human CrawlCheck does not certify transactions; a human confirms every financial, identity or irreversible action; the identity is confirmed (wikidata.org, x.com, github.com) |
denverpost.com: signed answer (observed 2026-10-22) · machinerelations.ai: signed answer (observed 2026-10-21)
Every section, side by side
Gap is denverpost.com minus machinerelations.ai. n/a is not measured, never zero.
| Section | denverpost.com | machinerelations.ai | Gap |
|---|---|---|---|
| Machine files robots.txt, llms.txt, sitemap and the entity graph: present, readable and served as the right type | 60 | 60 | 0 |
| Agent surfaces Emerging standards (agents.md, API catalog, MCP card). Measured for information only | n/a | n/a | — |
| Server & hosting What the edge and origin told us: cache state, compression, the software behind the page | 80 | 100 | -20 |
| Structured data The JSON-LD entity graph: stable @ids, connected nodes, credentials and locations declared | 55 | 100 | -45 |
| Linked data Whether the structured data parses as proper RDF and nothing dangles | 100 | 75 | +25 |
| Authors & trust signals Named people, dated articles, an organisation with contact details: the proxies an engine uses for trust | 57 | 75 | -18 |
| Accessibility structure Language, alt text, labelled controls and one main landmark, read from the delivered HTML | 96 | 95 | +1 |
| Entity corroboration Whether the identity links the site declares point back at it, and whether a Wikidata record names this domain | 100 | 100 | 0 |
| Content entities Named things in the page text that a knowledge graph recognises. Measured, not scored | n/a | n/a | — |
| Quotable content Whether the sentences an answer engine would lift are on the page in a form it can take: a defining lead, short factual paragraphs, answered questions, few first-person openers | 67 | 86 | -19 |
| Service area map Every place the schema declares, placed on one map around the declared centre and radius: which have a page, which fall outside the circle. Measured, not scored | n/a | n/a | — |
| Whole site Up to 60 declared pages, read once a day after a scan: not-200s, thin and mostly-code pages, missing JSON-LD, canonical elsewhere, noindex, missing or duplicate h1, orphans, undeclared pages, duplicate titles, and the median words, text share and response time across them. Every count is free; Watch names which pages. Measured, not scored | n/a | n/a | — |
| Freshness Every date the site publishes about itself: sitemap lastmod, Last-Modified, dateModified, dated elements, and where they disagree. Measured, not scored | n/a | n/a | — |
| Crawl waste Fetches that produce no new page: parameter and case variants, http links, redirecting or gone declared URLs, canonical-elsewhere and noindex pages | 100 | 100 | 0 |
| Page subject Which business entity the page is about and how every other business entity on it is related: chain, subsidiary, department, or undeclared | 100 | 100 | 0 |
| Local intents Which Google Maps intent types the site names about itself, and which of those have a page the homepage links to. Measured, not scored | n/a | n/a | — |
| Conversion path Phone link, form and call-to-action on the page, and whether they sit before the fold. Measured, not scored | n/a | n/a | — |
| Crawler permissions What robots.txt actually tells each named AI and search crawler it may do | 33 | 100 | -67 |
| Speed How fast the page answered our fetch, plus real-visitor field data where Google has it | 67 | 86 | -19 |
| Page weight & text How many of the delivered bytes are readable words, and how much is markup, scripts and styling | 20 | 60 | -40 |
| Machine-file chain robots.txt names the sitemap, llms.txt points onward, the entity graph points home: the chain a crawler follows | 100 | 86 | +14 |
| Claim consistency Name, phone, city and years-in-business match between the structured data and the visible page | 100 | 100 | 0 |
| Instructions for agents Text aimed at AI agents rather than people: present, visible, and not hidden | 100 | 100 | 0 |
| What each crawler gets Each named crawler fetched the page; this is whether they all got the same thing | 89 | 100 | -11 |
| Mobile Viewport, zoom, icons and manifest: whether a phone gets a page it can use | 100 | 100 | 0 |
| Local presence & NAP Street address, coordinates, hours, phone, and the directory listings the site itself declares | 86 | n/a | — |
| What AI looks for The facts an AI model weighs when it picks a business, ordered by how far each moved its ranking in CrawlCheck's tests, and whether the homepage shows each one. Measured, not scored | n/a | n/a | — |
| Trust and reputation Red flags an agent should check before it cites or calls a business: the phone number in FTC unwanted-call complaints, malware or phishing listing, domain age and registration, parked or for-sale pages and redirects to another organisation. Measured, not scored. | 88 | 88 | 0 |
| Site safety Malware or phishing listing, HTTPS and certificate, security headers, insecure resources, exposed versions, outdated jQuery, email forgery protection and domain registration. Measured, not scored. | 75 | 64 | +11 |
| Sitemap A sitemap exists, resolves, and declares the pages the homepage links to | 100 | 100 | 0 |
| Internal links Anchors carry words, targets resolve, and the link graph is not mostly repeats | 100 | 100 | 0 |
| URL naming Lowercase hosts and paths, no case-only duplicates, machine files spelt correctly | 80 | 100 | -20 |
| Image signals Alt text, declared dimensions, lazy-loading, modern formats, hero priority and the entity image in JSON-LD. | 80 | 100 | -20 |
Gap is denverpost.com minus machinerelations.ai. n/a means that section could not be measured on that site; it is not scored as zero.
What only one of them has
Only on denverpost.com
ROBOTS_RULES_SHADOWEDrobots.txt rules do not apply to named agentsENTITY_COLLISIONTwo business records on this page claim the same identityRENDER_RESOURCE_BLOCKEDThe homepage depends on files this site's own robots.txt disallowsPAGE_IS_MOSTLY_CODEAlmost nothing a machine receives from this page is readable textGEO_COUNTRY_MISMATCHThe published coordinates are not in the country the address namesNO_LLMS_TXTNo llms.txtNAP_UNDECLARED_LISTING4 off-site listings carry this phone number and the site never links them
Only on machinerelations.ai
STALE_CACHE_SERVEDVisitors and crawlers are being served an old copy of this page
On both
REDIRECT_CHAINThe homepage is reached through a chain of redirectsMACHINE_CHAIN_HEAVYThe machine files cost more than the page
Both sites measured by the same scan from the same vantage. A higher number means more of the evidence an answer engine needs is present, not that one site ranks above the other. JSON