Skip to main content

Sample audit — a real scan, sealed, with its retraction on the record.

One completed scan: www.usa.gov PASS under the current protocol set, sealed bundle published unmodified. The usa.gov example whose raw-extraction figures were wrong was retracted on 2026-09-29; this page now carries the corrected numbers from the fixed pipeline.

Real scan: https://www.usa.gov/ run 2026-10-23 under protocol set gm-ai-consumer-compat/4.0.0 — the current set. Redacted for publication: internal record IDs only. Observed values unchanged. Sites change — rescan to verify today's state.

What we got wrong — correction published 2026-09-29

The defect was ours, not the site's. Here are the wrong numbers, the corrected numbers, and the sealed bundle that produced them.

On 2026-09-19 we published an audit example here claiming a U.S. federal government site served almost no main-content text to a raw crawler: raw 36 vs rendered 412. Independent re-measurement found 443 raw words in the page's main element and no deficit — our raw-extraction arm had under-counted, and the figures were false. We retracted them publicly on 2026-09-29 and fixed the pipeline instead of editing the claim.

The corrected numbers below are not hand-edited: they are the main-content arm of the sealed bundle on this page, captured 2026-10-23 under the fixed protocol set gm-ai-consumer-compat/4.0.0 — the same site, measured honestly: raw 443 = rendered 443 = no-JavaScript 443 words, a 1:1 ratio. The audit reports what the evidence shows; this correction shows what the evidence shows now.

Example PASS — warnings never fail an audit

https://www.usa.gov/ · 64 protocol executions · protocol set gm-ai-consumer-compat/4.0.0

PASS: zero open blockers, 1 warning-level finding, and 5 informational findings — every one listed in full in the findings section below. Warnings and informational notes never fail an audit. Nothing to fix is a valid audit result — the audit reports what the evidence shows. This projection is labeled exactly as sealed, including its protocol set; it is one capture on one day, not a claim that the site stays this way.

Audit profile

Public AI discovery compatibility

Scan timestamp

2026-10-23T12:23:12.627Z

Profile + protocol set

public-ai-discovery/1.0.0

gm-ai-consumer-compat/4.0.0

Sealed bundle digest 45397e…0c37a

Audit verdict

PASS

Execution state: COMPLETE

PASS means every required protocol completed without an open production blocker.

Blockers

0

Warnings

1

Information

5

Verified remediations

0

What this result means

What this means

This audit completed: every required protocol ran and no production blocker is open. 1 warning is recorded below. Coverage: 27 of 27 tracked AI actors were evaluated.

Do this next

Keep the record current: rescan this URL after meaningful site changes, and read the recorded warnings and convention notices below.

What this does NOT mean

A PASS records that the measured path is open — it does not predict citations.

PASS means every required protocol completed without an open production blocker.

Findings and fixes

Findings below are tied to named protocol observations. Experimental observations cannot determine the verdict.

INFOSTRUCTURED_DATA_ORGANIZATION_IDENTITY_INCOMPLETE

The raw Organization structured data is missing identity fields

An Organization node was observed in the raw response, and the bounded identity check did not observe: name. This is an informational completeness observation, not a defect by itself.

  • Completeness checks cover raw-versus-rendered schema type presence and three bounded Organization identity fields only.
  • Organization identity fields are recorded as booleans; property values are not stored.
  • The absence of an Organization node is not automatically a defect.
INFOLLMS_TXT_NOT_FOUND

The site does not publish a /llms.txt file

The observed site does not publish a /llms.txt file. This is an informational optimization opportunity and does not indicate that AI systems cannot access, understand, or cite the site.

Publish a /llms.txt file

Consider publishing a /llms.txt file describing the site for AI agents. Absence does not prove an access, understanding, or citation problem; this is an advisory optimization.

  1. Create a /llms.txt file at the site origin with a valid H1-style title heading.
  2. Ensure the body is at least the required minimum size beneath the title.
  3. Describe what information you intend to share with AI agents without exposing unpublished content.

Verification protocols: acquisition.llms-txt

  • The target does not publish a /llms.txt file.
INFOCONTENT_NEGOTIATION_MARKDOWN_NOT_SERVED

The origin did not serve a markdown representation

A request that preferred `text/markdown` was answered with text/html (HTTP 200) and no markdown alternate was declared. Serving a markdown representation is an agent-friendly convention rather than a requirement; this is informational and does not indicate that AI systems cannot access, understand, or cite the page, and provider consumption is not inferred.

  • The request asked for `Accept: text/markdown` and the origin answered HTTP 200 with text/html.
  • CONTENT_NEGOTIATION_CONVENTION: convention — serving a markdown representation is a publishing convention, not a requirement; this records what was requested and what came back and never infers how a provider consumes content.
  • Only the HTTP status, media type, bounded byte length, truncation flag and markup-prefix boolean are recorded; no response body is retained.
  • Markdown detection uses the declared media type plus a 512-character body prefix check, so a mislabelled representation is recorded as declared.
  • The response body was read with a 262144-byte bound.
  • Only a Link header entry with rel="alternate" and a markdown media type is recognised as the origin advertising an alternate markdown representation.
INFOCRAWLER_IDENTITY_NOT_VERIFIABLE

Crawler identity was not verified by this scan

Vendors publish machine-readable identity material for their crawlers (address ranges from OpenAI, Perplexity and Anthropic, and reverse-DNS and crawler documentation from Google), and no retrieved copy of that material was recorded in this bundle. For this audit, no retrieved copy of the vendors’ published identity material was available. A synthetic request sent from Generative Metrics’ own declared scan address can never confirm that traffic claiming a crawler name is that vendor’s crawler, because the vendor’s fleet uses its own address ranges, reverse DNS, edge signatures and script behaviour. Nothing in this finding says that any crawler did or did not visit the audited site. Verifying that requires a measurement only the site owner holds: server logs or edge telemetry recorded at the origin, which no external scan can substitute for. This is reported for information only: it never blocks the audit, never changes the verdict, and it carries no remediation.

  • VANTAGE_LIMITATION: convention — Generative Metrics observes from its own network vantage with a single synthetic request sent from its own declared scan address. A request from our address can never confirm that traffic claiming a crawler name is that vendor’s crawler, because the vendor’s fleet uses its own address ranges, reverse DNS, edge signatures and script behaviour. No verification result is claimed, in either direction, by this protocol.
  • PROBE_SOURCE_DECLARED: convention — Generative Metrics’ own probe source address is a DECLARED self-report supplied as an input, never a measured observation, so it can never be read as evidence about a vendor’s crawler.
  • VERIFICATION_NOT_PERFORMED: convention — this protocol records the state of the published identity material. It performs no match and no mismatch between a request and an address range, and its observation result is INDETERMINATE whenever a verification cannot be made. Every state reachable from Generative Metrics’ vantage is such a case.
  • Only a payload hash, a bounded prefix count and a shape verdict are recorded for each vendor document; no document body and no address value leaves the retrieval phase.
  • VANTAGE_LIMITED: convention — the vendor-published identity material is in hand for at least one audited actor, and the verification itself still cannot be performed from Generative Metrics’ vantage. The material is recorded so a site owner can use it directly with their own traffic measurements.
WARNINGSTRUCTURED_DATA_PROPERTY_MISSING

Structured data is missing convention properties

Raw structured data on this page omitted 1 property(ies) the Generative Metrics material-property convention (v1, cited 2026-10-02) enumerates for the types the page presents: the page presents Organization and the Generative Metrics material-property convention (v1) expects name, url — the check did not observe name. Schema.org defines no required properties — this is a counted fact against the printed convention, for review.

Add the convention properties to the observed structured data

The page presents Organization and the Generative Metrics material-property convention (v1) expects name, url. Adding the convention properties makes the structured data machine-checkable against that convention.

  1. Add the unobserved convention properties (name) to the Organization nodes in the raw JSON-LD response.
  2. Keep the structured data in the initial HTML response so machine readers observe it without JavaScript.
  3. Re-run the audit to record the updated property-presence facts.

Verification protocols: structured-data.depth

  • Property expectations are the Generative Metrics material-property convention (version v1, cited 2026-10-02); schema.org defines no required properties, and the same convention list applies on every site and every scan.
  • The depth check reads the RAW HTML arm only; the browser-rendered representation is not property-checked.
  • Property presence is recorded per type as booleans; property values, hashes, and page text are never stored.
  • Only the raw JSON-LD graph is property-checked; microdata, RDFa, and OpenGraph-synthesized objects are recorded as counts only.
  • Property absence under this convention is a counted fact, not a verdict input, and the convention defines no required properties for any type.
INFOSITEMAP_ROBOTS_COVERAGE_FACTS

The robots policy was evaluated over the captured sitemap inventory

The robots policy was evaluated over 1526 of 1526 loc entries in the captured sitemap document. Per-actor disallow counts are recorded as execution facts; no access, compliance, indexing, or citation effect is inferred.

  • Only the captured sitemap document was evaluated; sitemaps declared in robots.txt and child sitemaps listed in a sitemap index were not fetched.
  • Loc entries for context-dependent or control-token actors are excluded from the per-actor evaluated and disallowed counts (disclosed as excludedCount): their directives are reported without inferring that robots.txt governs actual access.
  • Disallow counts, matched-rule tokens, and example URLs are execution facts only; no compliance, access, indexing, or citation effect is inferred. Example disallowed URLs are recorded inside the sealed evidence bundle and are erased with it.

Your URL will produce a different bundle. Run the same audit surface free — 5 single-page audits per month plus one full site audit (up to 25 URLs, once per account), no card. New scans run the current protocol set gm-ai-consumer-compat/4.0.0.

Protocol execution

58 of 64 protocol executions on this run succeeded; 5 returned NOT_APPLICABLE. Required protocols determine whether this audit is complete. Informational protocols add context but do not create a pass requirement.

  • acquisition.http1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Required

  • acquisition.robots1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Required

  • acquisition.llms-txt1.0.0

    SUCCEEDED

    gm:llms-txt-probe

    Informational

  • acquisition.sitemap1.0.0

    SUCCEEDED

    gm:sitemap-probe

    Informational

  • content.negotiation1.0.0

    SUCCEEDED

    gm:content-negotiation-probe

    Informational

  • representation.raw-rendered1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Required

  • policy.robots1.0.0

    SUCCEEDED

    openai:oai-searchbot

    Required

  • policy.robots1.0.0

    SUCCEEDED

    anthropic:claude-searchbot

    Required

  • policy.robots1.0.0

    SUCCEEDED

    google:googlebot

    Required

  • policy.robots1.0.0

    SUCCEEDED

    perplexity:perplexitybot

    Required

  • policy.robots1.0.0

    SUCCEEDED

    openai:gptbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    anthropic:claudebot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    google:google-extended

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    openai:chatgpt-user

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    anthropic:claude-user

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    perplexity:perplexity-user

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    google:google-agent

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    openai:oai-adsbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    kagi:kagibot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    commoncrawl:ccbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    microsoft:bingbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    apple:applebot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    apple:applebot-extended

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    duckduckgo:duckassistbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    diffbot:diffbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    webzio:omgili

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    allenai:ai2bot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    hive:imagesiftbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    linkup:linkupbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    google:google-cloudvertexbot

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    google:google-gemininotebook

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    google:googleother

    Informational

  • policy.robots1.0.0

    SUCCEEDED

    firecrawl:firecrawlagent

    Informational

  • policy.ai-usage-headers1.0.0

    SUCCEEDED

    gm:ai-usage-header-probe

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    openai:oai-searchbot

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    anthropic:claude-searchbot

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    google:googlebot

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    perplexity:perplexitybot

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    openai:gptbot

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    anthropic:claudebot

    Informational

  • access.actor-probe1.0.0

    NOT_APPLICABLE

    google:google-extended

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    openai:chatgpt-user

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    anthropic:claude-user

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    perplexity:perplexity-user

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    google:google-agent

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    openai:oai-adsbot

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    kagi:kagibot

    Informational

  • access.actor-probe1.0.0

    SUCCEEDED

    gm:control-probe

    Informational

  • content.actor-extraction1.0.0

    SUCCEEDED

    gm:actor-content-probe

    Informational

  • extraction.main-content1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Required

  • structured-data.visible-consistency1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Required

  • structured-data.completeness1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Informational

  • freshness.dates1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Required

  • identity.crawler-verification1.0.0

    NOT_APPLICABLE

    gm:crawler-identity-verification

    Informational

  • content.structure1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Informational

  • metadata.signals1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Informational

  • policy.opt-out-semantics1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Informational

  • policy.ai-txt1.0.0

    SUCCEEDED

    gm:ai-txt-probe

    Informational

  • structured-data.depth1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Informational

  • extraction.pdf-text1.0.0

    ABSTAINED

    gm:direct-http-probe

    Informational

  • site.robots-coverage1.0.0

    SUCCEEDED

    gm:direct-http-probe

    Informational

  • identity.wba-directory1.0.0

    NOT_APPLICABLE

    gm:wba-directory-probe

    Informational

  • policy.aipref1.0.0

    NOT_APPLICABLE

    gm:aipref-probe

    Informational

  • observation.cdn-default-block1.0.0

    NOT_APPLICABLE

    gm:direct-http-probe

    Informational

Evidence and integrity

The digest below is the original sealed digest of the unredacted bundle. This page's projection is redacted — internal record IDs are replaced with stable labels — so the projection itself does not re-verify against that digest. The sealed bundle it identifies is published unmodified below, and it verifies as-sealed at /verify.

Schema version

gm-evidence-bundle/1.0.0

Protocol set version

gm-ai-consumer-compat/4.0.0

original sealed digest of the unredacted bundle

45397e9790fd90b2e13dcbe1f4a3d2817c04c1d9584bc7b07be0765cc830c37a

Download the sealed bundle — published unmodified

This file is the sealed artifact behind every number on this page, byte for byte as it was sealed on 2026-10-23 — unredacted and unmodified, so its bundleSha256 is exactly the digest above. It was inspected before publication and carries no account-identifying data. The linked verifier recomputes the digest in your browser; on a match it also cross-checks the file against our stored sealed copy — that cross-check sends the file to our server.

Recompute the SHA-256 over the bundle's canonical JSON form (keys recursively sorted, no whitespace, with the bundleSha256 field removed) and compare it with the digest above — the published recipe on the proof contract page describes each step.

Captured artifacts

  • Artifact 1

    RAW_HTTP_RESPONSE · HTTP 200 · 48647 bytes

    https://www.usa.gov/

    full-body hash · hash-only retention

    34f9e0bd13c46c13ffa29001081090b570897d5bdf045bad9aebe3823d937ece

  • Artifact 2

    ROBOTS_TXT · HTTP 200 · 1558 bytes

    https://www.usa.gov/robots.txt

    full-body hash · hash-only retention

    57210da4611cc41b25fb10231cdadd60520cb5ef20ad92309cdd0df6fd12377a

  • Artifact 3

    LLMS_TXT · HTTP 404 · 0 bytes

    https://www.usa.gov/llms.txt

    full-body hash · hash-only retention

    e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

  • Artifact 4

    SITEMAP_XML · HTTP 200 · 124444 bytes

    https://www.usa.gov/sitemap.xml

    full-body hash · hash-only retention

    92a01edf234586d0654052387d61d8f290521555216cdb756654557d6916da41

  • Artifact 5

    RAW_HTTP_RESPONSE · HTTP 200 · 48647 bytes

    https://www.usa.gov/

    full-body hash · hash-only retention

    34f9e0bd13c46c13ffa29001081090b570897d5bdf045bad9aebe3823d937ece

  • Artifact 6

    RENDERED_DOM · HTTP — · 54162 bytes

    https://www.usa.gov/

    full-body hash · hash-only retention

    14646fb1285ea7e61769151229bc39497977ea07262fdd0861cbb98f4b944c3c

  • Artifact 7

    NO_JAVASCRIPT_DOM · HTTP — · 48705 bytes

    https://www.usa.gov/

    full-body hash · hash-only retention

    1d9a045f7b32cdfb606d91e735a75885c6ccf2610ab03e709a0961efc0e37365

Artifact 5 is the content-negotiation probe's fetch: the origin served the same HTML to the markdown-preferring request, so it is byte-identical to Artifact 1 and the protocol records MARKDOWN_NOT_SERVED. Artifact 3 is the site's own 404 page for /llms.txt (hash recorded, body not retained). Retrieval recorded as observed.

Verification

Baseline scan — no remediation verification on this run. A later scan is what would compare the remediated protocol against this baseline.

Scope and limitations

This audit reports what the named acquisition, policy, and extraction protocols observed. It does not promise indexing, ranking, citation, model training, provider behavior, or semantic understanding.

  • This profile tests documented public discovery controls; it does not prove indexing, retrieval, ranking, citation, training inclusion, or model use.
  • User-initiated agents are informational because provider behavior may be context dependent.
  • Informational actors never create blockers and are never required; an unmeasured informational actor is reported rather than inferred.

Protocol and Actor Counting Facts

Every cell derived from code at render (zero literals).

Protocol and actor counting facts derived dynamically from catalog and profile
DimensionCountBreakdown / Details
Registered Actors34Actors catalogued across all registered vendors
Evaluated Actors274 REQUIRED · 23 optional
HTTP Probed Actors13Synthetic network probe sent
Robots-Only Actors14Evaluated against robots.txt policy only
Protocols in Set25Discrete protocols in current production set
Total Executions6427 robots + 1 ai-usage + 13 probes + 1 control + 22 other
Finding Codes63Closed finding code registry entries

Counting gloss: Registered actors (34) catalogued across all registered vendors; Evaluated actors (27) evaluated in the current discovery profile (4 REQUIRED · 23 optional); Protocols in set (25) yield 64 total executions across per-actor evaluations (27 robots + 1 ai-usage + 13 probes + 1 control + 22 other).

Get this same sealed bundle for your site — one full site audit (once per account) plus 5 single-page audits per month, free