# Structured-data consistency checker

> Compare your JSON-LD names and URLs, canonicals, sitemap and llms.txt for contradictions, with an exact line to copy for each fix.

This is the markdown version of https://llmsrank.dev/tools/consistency. The tool is beta and free.

## The check

Enter your domain or your llms.txt URL. We read your llms.txt, your sitemap, your homepage and up to 20 pages your llms.txt links, and report where they contradict each other: names, URLs, canonicals, sitemap entries and dates. Each finding comes with a suggested line built from your own pages: review it, check every URL is yours, then copy it; a reviewed fix turns its own check green once applied. A canonical that points to another site is reported, never proposed as a fix. We obey your robots.txt for our tool token, LLMSRank-User: a page it disallows is skipped, never fetched, and listed in the results. If it disallows your homepage, no check is made. Your llms.txt and robots.txt are always read.

This is a different sample from the scan: the scan looks at your homepage and up to 3 linked pages, this check looks at the homepage and the pages your llms.txt points to, and reads your sitemap too. It is the tool behind the JSON-LD agreement, canonical agreement, sitemap freshness, URL hygiene and curation audits. It reports contradictions; it does not claim that any AI product acts on them.

Programmatic use: `POST https://llmsrank.dev/api/tools/consistency` with `{"target": "example.com"}`, then `GET` the `status_url` it returns. It counts as one of the free scans of the day.

## What the checks compare

- `entity_name`: Whether the llms.txt H1 and the Identity section’s names match a name, alternateName or legalName in your JSON-LD.
- `entity_url`: Whether your identity JSON-LD has a url on the same site as the llms.txt file.
- `same_as`: Whether the identifier links in your llms.txt Identity section (Wikidata, registries, official profiles) are listed in your JSON-LD sameAs.
- `canonical_link`: Whether each page your llms.txt links declares that same URL as its rel=canonical.
- `canonical_sitemap`: Whether the sitemap lists each page’s canonical URL, and the pages your llms.txt links.
- `lastmod`: Whether sitemap lastmod dates look like real edit dates, and whether the llms.txt date stamp agrees with the newest linked page.
- `url_forms`: Duplicate, relative and query-string URLs in your llms.txt.
- `twin_canonical`: Whether the HTML page behind each linked .md URL declares itself canonical.

## What each part of a result means

- **Verdict:** Consistent, Mismatch, Missing or Not checked (not enough was read to compare).
- **Audit:** The audit page that explains the rule, with the scan’s formula below.
- **Detail and evidence:** What we compared in our words, then the names, URLs and lines we read from your site, shown as plain text.
- **Items:** One row per name, page, link or sitemap entry, up to 50 per check.
- **Fixes:** Each fix is one line in a code block with where it goes. “Copy all fixes” joins them, grouped by file or page.

## Notes

- Server HTML only: pages are read as the server sends them, with no JavaScript run, so JSON-LD or links added by scripts are not seen. Each page is read as far as its head (up to 256 KB).
- A sitemap larger than the live-scan limits (5 MB per file, up to 5 child files, 20 seconds) is read in part; when the result says the sitemap is incomplete, the sitemap checks cover only the entries read and an absent entry proves nothing.
- Page bodies are never stored. A run is kept for 24 hours.

## How the scan scores these

### [JSON-LD agreement](https://llmsrank.dev/docs/audits/json-ld-agreement)

0.4 when your homepage or a sampled page carries identity JSON-LD (Organization or a subtype, WebSite, Person, Product, Service or an application) · + 0.4 when its name, legalName or alternateName agrees with your llms.txt H1 · + 0.2 when its url is on the same site as the file (www. and subdomains count as the same site). Names agree when either contains the other, ignoring case, punctuation, legal suffixes such as Inc or LLC, and generic words such as Docs. An H1 that is a domain (“acme.com”) agrees through that domain’s name. 0 when we read your pages and found no identity JSON-LD; markup that doesn’t parse counts as absent.

### [Canonical agreement](https://llmsrank.dev/docs/audits/canonical-agreement)

Per linked page we sample: 1 when the URL you link is the page’s canonical (ignoring http against https, www., a trailing slash and a #fragment) · 0.5 when it is the same page in a form we can’t reconcile (a different query string or capitalisation, /page.html against /page) · 0 when the canonical points elsewhere. The score is the mean over the pages that declare a canonical. A page with no canonical is left out, not scored as a mismatch.

### [Curation, not a sitemap](https://llmsrank.dev/docs/audits/curation-not-sitemap)

1.0 at ≤ 40% overlap with sitemap.xml · linear to 0 at 100%. Overlap = share of the sitemap’s pages the file links to, compared by host (case and www. ignored) and path (trailing slash and .md ignored). UNVERIFIED when no sitemap is archived, it’s empty or truncated, or it’s an index whose children weren’t all archived (v1.1).

### [Sitemap freshness](https://llmsrank.dev/docs/audits/sitemap-freshness)

Presence + lastmod coverage + plausibility: 0.4 readable · + 0.3 × lastmod coverage · + 0.3 × plausible share (v1.1). A lastmod is plausible when it’s a valid W3C date, not after the capture day, and not one timestamp shared by 90% or more of a 10+ page sitemap.

### [URL hygiene](https://llmsrank.dev/docs/audits/url-hygiene)

0.6 × the share of links that are absolute (start with http:// or https://) + 0.4 × the share that are unique (compared as exact strings).

### [Entity identity](https://llmsrank.dev/docs/audits/entity-identity)

0.4 when the file states your identity: a labelled legal or brand name (“Legal name:”, “Brand:”, “Company:”, “Owner:”), “operated by …” or “a subsidiary of …”, or a legal-entity name that shares a word with your H1 (“Acme Payments, Inc.”) · + 0.3 for alternate names or identifiers: an alias label (“Also known as:”, “Formerly:”, “Aliases:”), “formerly …” or “also known as …” right after your name, a stock ticker (“NYSE: ACME”), LEI, Wikidata ID, D-U-N-S or registration number, or “the official website of …” · + 0.3 for a glossary: a ## Glossary, Terminology, Vocabulary or Definitions heading, a “Vocabulary:” line, or a link to a /glossary page. 0 when the file states none of these.
