CrawlCheck
Compare

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.

Two scans, ~20 seconds each if either site is new to us. Each one is kept like any scan; the comparison itself is not stored. Need the whole field? One site against up to five competitors.

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

81
Cgrade
81Reach
80Read
83Quote

Letter held at C: a medium-severity finding (ROBOTS_RULES_SHADOWED)

9 findings · 2026-10-22 · full report

vs

machinerelations.ai

92
Agrade
96Reach
89Read
91Quote

3 findings · 2026-10-21 · full report

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.
Before an agent acts

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.

Actiondenverpost.commachinerelations.ai
readwarn
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
citewarn
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
connectnone 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
transactneeds 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)

Sections

Every section, side by side

Gap is denverpost.com minus machinerelations.ai. n/a is not measured, never zero.

Sectiondenverpost.commachinerelations.aiGap
Machine files
robots.txt, llms.txt, sitemap and the entity graph: present, readable and served as the right type
60600
Agent surfaces
Emerging standards (agents.md, API catalog, MCP card). Measured for information only
n/an/a—
Server & hosting
What the edge and origin told us: cache state, compression, the software behind the page
80100-20
Structured data
The JSON-LD entity graph: stable @ids, connected nodes, credentials and locations declared
55100-45
Linked data
Whether the structured data parses as proper RDF and nothing dangles
10075+25
Authors & trust signals
Named people, dated articles, an organisation with contact details: the proxies an engine uses for trust
5775-18
Accessibility structure
Language, alt text, labelled controls and one main landmark, read from the delivered HTML
9695+1
Entity corroboration
Whether the identity links the site declares point back at it, and whether a Wikidata record names this domain
1001000
Content entities
Named things in the page text that a knowledge graph recognises. Measured, not scored
n/an/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
6786-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/an/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/an/a—
Freshness
Every date the site publishes about itself: sitemap lastmod, Last-Modified, dateModified, dated elements, and where they disagree. Measured, not scored
n/an/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
1001000
Page subject
Which business entity the page is about and how every other business entity on it is related: chain, subsidiary, department, or undeclared
1001000
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/an/a—
Conversion path
Phone link, form and call-to-action on the page, and whether they sit before the fold. Measured, not scored
n/an/a—
Crawler permissions
What robots.txt actually tells each named AI and search crawler it may do
33100-67
Speed
How fast the page answered our fetch, plus real-visitor field data where Google has it
6786-19
Page weight & text
How many of the delivered bytes are readable words, and how much is markup, scripts and styling
2060-40
Machine-file chain
robots.txt names the sitemap, llms.txt points onward, the entity graph points home: the chain a crawler follows
10086+14
Claim consistency
Name, phone, city and years-in-business match between the structured data and the visible page
1001000
Instructions for agents
Text aimed at AI agents rather than people: present, visible, and not hidden
1001000
What each crawler gets
Each named crawler fetched the page; this is whether they all got the same thing
89100-11
Mobile
Viewport, zoom, icons and manifest: whether a phone gets a page it can use
1001000
Local presence & NAP
Street address, coordinates, hours, phone, and the directory listings the site itself declares
86n/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/an/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.
88880
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.
7564+11
Sitemap
A sitemap exists, resolves, and declares the pages the homepage links to
1001000
Internal links
Anchors carry words, targets resolve, and the link graph is not mostly repeats
1001000
URL naming
Lowercase hosts and paths, no case-only duplicates, machine files spelt correctly
80100-20
Image signals
Alt text, declared dimensions, lazy-loading, modern formats, hero priority and the entity image in JSON-LD.
80100-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.

Findings

What only one of them has

Only on denverpost.com

  • ROBOTS_RULES_SHADOWED robots.txt rules do not apply to named agents
  • ENTITY_COLLISION Two business records on this page claim the same identity
  • RENDER_RESOURCE_BLOCKED The homepage depends on files this site's own robots.txt disallows
  • PAGE_IS_MOSTLY_CODE Almost nothing a machine receives from this page is readable text
  • GEO_COUNTRY_MISMATCH The published coordinates are not in the country the address names
  • NO_LLMS_TXT No llms.txt
  • NAP_UNDECLARED_LISTING 4 off-site listings carry this phone number and the site never links them

Only on machinerelations.ai

  • STALE_CACHE_SERVED Visitors and crawlers are being served an old copy of this page

On both

  • REDIRECT_CHAIN The homepage is reached through a chain of redirects
  • MACHINE_CHAIN_HEAVY The 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

Questions about this page

QHow is the comparison measured?
Both homepages are scanned by the same instrument under the same rules: the named crawler identities, the machine files, the structured data and the readable text. The page then lists every section with each site’s score and the gap.
QWhat does the gap mean?
The first site’s section score minus the second’s. A positive gap means the first site shows answer engines more usable evidence in that section; n/a means the section could not be measured on that site and is not counted as zero.
QCan I compare more than two sites?
Yes: the matrix at /compare/matrix sets one site against up to five competitors on the same sections.
QDoes comparing store anything about the sites?
Each site’s scan is kept like any scan: the shareable report (90 days in the fast store, then the sealed archive), the evidence and measurement row until the domain opts out, and its Resolve answer for 45 days. The comparison itself is not stored; re-run it from the two domains at any time.
QWhat does the agent table show?
The signed answer Resolve gives an agent about each homepage: read, cite, connect and transact, each allow, warn, block or needs a human, with the reason. It is the stored public answer, the same one /api/v1/resolve returns; a site with no stored answer says so and links to a live check.