"GPTBot visited 412 times" is not a fact.
It is a count of a header anyone can type. The llms.txt integration publishes what your site permits AI crawlers and agents to do as a signed, content-addressed document instead of an editable text file — and records every fetch with a grade saying how well the fetcher was actually identified. Most fetches will not clear the bar. You will be able to see which ones did.
Six uses that genuinely diverge — not one allow/deny switch.
Plenty of publishers welcome search indexing and refuse model training. A single flag cannot say that. Each subject takes allow, deny, or conditional — and a conditional without a stated condition is refused, because it reads as permission to whoever wants to read it that way.
train
Using your content as training data for a model.
infer
Retrieving it at inference time — RAG, browsing, tool use.
quote
Reproducing passages in an answer.
index
Indexing it for search and retrieval.
embed
Deriving embeddings or other transformed representations.
evaluate
Using it to benchmark or evaluate a model.
Two of these four can establish who fetched. Two cannot.
The line runs between what the client told us and what we checked against something the client does not control. Everything below that line is recorded, kept, and clearly marked as a claim.
Unidentifiednot citable
Nothing usable was presented. Recorded as such rather than dropped.
Self-declarednot citable
A User-Agent string, and nothing else. Anyone can send one. This records that a claim was made — NOT that the named operator fetched anything.
IP-confirmedcitable
Reverse DNS returned a hostname AND that hostname resolved back to the same address. The round trip is the point: a PTR record alone is set by whoever controls the IP.
Signature-verifiedcitable
The request carried an RFC 9421 signature that verified against the operator's published key. The strongest identification available.
A number you cannot defend is worse than no number.
No headline crawler count
Every competing dashboard leads with a big number of AI visits. That number counts a header anyone can send. We split counts by grade and state the citable share in words underneath — because the total is the misleading part.
Confirmed and claimed never merge
The operator we confirmed and the operator a header named are separate fields, separate lists, separate counts. Merging them is precisely the move that turns a string into a fact.
Impersonation is a finding
When a User-Agent claims one operator and the confirmed network identity is another, that row is flagged as contradicted. It is the most interesting thing a fetch ledger can surface, and folding it into "unidentified" would throw it away.
Silence is shown as a gap
A declaration that says nothing about training says nothing about training — it is not consent and it is not refusal, and whoever reads it decides. The console names every subject you have not taken a position on.
The document carries its own proof
The text form a crawler fetches contains the declaration id and the signature. A serialisation that drops the proof is just a text file again — which is what this replaces.
An unreadable ledger is not an empty one
If we cannot read your fetch log we say so. "We could not read it" and "nobody fetched your declaration" are opposite facts, and only one of them is ever true at a time.
The Markdown surface AI agents read — free, and signed.
Agents increasingly ask a site for a Markdown rendering of a page and read a Content-Signal header to learn what they may do with it. Cloudflare ships exactly that pairing as "Markdown for Agents" — available, per Cloudflare's own documentation, to Pro, Business and Enterprise plans and SSL-for-SaaS customers, and not on the Free plan. Because the llms.txt integration already holds your signed position on AI use, it emits the same two things — an agent-readable Markdown surface and a Content-Signal header — from that signed source, free, on any host.
Free, on any host
The declaration renders as agent-readable Markdown at a stable URL, and every response carries a Content-Signal header stating permitted AI use. Cloudflare offers this pairing as "Markdown for Agents" — per its own documentation, to Pro, Business and Enterprise plans and SSL-for-SaaS customers, not on the Free plan. The llms.txt integration serves it to everyone, on whatever host your site already runs.
The header comes from a signed source
The Content-Signal line is not a dashboard toggle — it is a conservative reduction of your six-subject declaration. If any contributing subject is a deny or a conditional, the coarse axis reads no, never yes, so the header can never permit more than you signed; where you took no position, the axis is omitted rather than defaulted to a value.
The document carries its own proof
The Markdown leads with the Content-Signal line, states every subject in full, then ends with the declaration id — the SHA-256 of its own bytes — the signing key, and the signature. An agent that reads it can verify what it read. Markdown rendered at the edge from a page's HTML carries no such proof.
This is not a comparison of who blocks more crawlers — nobody serving over HTTP blocks anything. It is about which parts of the agent-readable layer sit behind a paid plan and which do not. Cloudflare's AI Crawl Control and a plain llms.txt are available on every Cloudflare plan; the Markdown for Agents surface named above is the one gated to paid plans, and it is exactly the piece the llms.txt integration gives you for nothing.
It does not block anything. Nothing served over HTTP can.
A declaration is a statement of permitted use, not an enforcement mechanism. A crawler that ignores it will still get your bytes — and so will one that never asked. If you need traffic actually stopped, that is a job for your CDN or WAF, and we will say so rather than sell you this.
What the llms.txt integration gives you is evidence: what you declared, when you declared it, that the bytes have not changed since, and which parties fetched it — each with an honest grade on how well that was established. That is what a dispute actually turns on.
Say it once, in a form that holds up.
The llms.txt integration is a whole product on its own — and always free. Combine it with the rest of Trustvice when you want to — through a workflow step you configure, never a dependency you inherit.
声明规则,让每次运行都接受检查。
智能体、证据、治理、商务和披露都在 Trustvice 360 中。免费注册,在一个仪表板中打开所有套件。