AgenticWebScore
Scan

Content Accessibility · Recommended · High impact

Reuse and licensing terms declared

Declaring ai-train=no without stating a licensing path leaves both the publisher and the agent without an answer they can act on.

  • Recommended
  • High impact
  • Draft standard
Reuse and licensing terms declared — Property, Value
Property Value
Check idlicensing-terms
DimensionContent Accessibility (22%)
TierRecommended — pool 20 pts
Weight inside tier2
ImpactHigh
MaturityDraft — A published specification that is not yet ratified.
ConditionalNo
Publishing skilllicensing
StandardsTDM Reservation Protocol

What the scanner requests

  • /terms
  • /licensing
  • /.well-known/tdmrep.json

It also reads documents it has already fetched: $home, $robots.

What is measured

The scanner reads the homepage / response headers for tdm-reservation and tdm-policy and the homepage HTML head for <meta name="tdm-reservation"> and <meta name="tdm-policy"> - the two carriers that need no extra request; the site-wide /.well-known/tdmrep.json file is the third carrier the TDM Reservation Protocol defines and is read when that path is in the probe map. Values are resolved in the protocol's own precedence order, HTML meta over HTTP header over file. Pass when tdm-reservation is 1 or 0 and, if it is 1, tdm-policy points at a reachable TDM policy or licensing page, so the agent knows both that mining is reserved and how to ask for a licence; partial when a declaration exists but tdm-reservation carries any other value, which the protocol defines as a protocol error that agents must treat as unset, or when rights are reserved with no licensing path at all; fail when none of the carriers is present. This profile-scoped check is reported as not scored and excluded from the denominator unless the publisher or institution profile has been positively identified.

Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

              DOMAIN="https://example.com"
curl -sSL -D - "$DOMAIN/" "$DOMAIN/.well-known/tdmrep.json" | grep -iE '^(HTTP/|tdm-)|tdm-(reservation|policy)'
            

The fix

This is the artifact to ship. It is the complete change, not a description of one.

              # nginx: declare TDM rights on the responses agents actually fetch.
# tdm-reservation: 1 reserves TDM rights (the Article 4 opt-out) and tdm-policy is
# the licensing path an agent must read before mining. If you cannot set headers on
# your host, the same two values go in the HTML head instead, as
# <meta name="tdm-reservation" content="1"> and <meta name="tdm-policy" content="...">.
server {
    listen 443 ssl;
    server_name example.com;
    root /var/www/example.com;

    location / {
        add_header tdm-reservation "1" always;
        add_header tdm-policy "https://www.example.com/.well-known/tdm-policy.json" always;
    }

    # The licensing path: an ODRL 2.2 offer naming the rightsholder to contact.
    location = /.well-known/tdm-policy.json {
        default_type application/ld+json;
        return 200 '{"@context":["http://www.w3.org/ns/odrl.jsonld",{"tdm":"http://www.w3.org/ns/tdmrep#"}],"uid":"https://www.example.com/policies/tdm-1","@type":"Offer","profile":"http://www.w3.org/ns/tdmrep","assigner":{"uid":"https://www.example.com","vcard:fn":"Example Publishing Ltd","vcard:hasEmail":"mailto:licensing@example.com","vcard:hasURL":"https://www.example.com/licensing"},"permission":[{"action":"tdm:mine","duty":[{"action":"obtainConsent"}]}]}';
    }
}
            

Standards referenced

  • TDM Reservation Protocol

Related checks

Related checks — Check, Tier, Impact, Same skill
Check Tier Impact Same skill
markdown-negotiation — Markdown content negotiationRecommendedCritical—
headings — Semantic heading structureEssentialHigh—
meta — Title and summary metadataEssentialHigh—
jsonld — JSON-LD structured dataEssentialCritical—
faq-schema — FAQ / question-answer schemaRecommendedHigh—
breadcrumb — Breadcrumb / navigation schemaEmergingLow—
summary — Prominent summary blockRecommendedMedium—
lang — Language declaration and multilingual accessRecommendedMedium—