The table shows aggregated signals from AI crawlers/bots that visited your site. No personal data or IP addresses are stored — only patterns from user agents and how your site responded.
| Column | What it means | Common values & interpretation |
|---|---|---|
| Date (UTC) | The date (in UTC) when the requests from this crawler pattern were first/last observed in the period. | e.g. 2025-12-15 — groups are per day |
| Endpoint | Which public AI-permission endpoint the crawler tried to access. | robots = robots.txt json = /.well-known/ai-usage.json or similar llms = llms.txt Others = normal pages/posts (non-policy) |
| Crawler | Human-readable name of the AI crawler/bot family (based on User-Agent). | e.g. “GPTBot”, “Google-Extended”, “PerplexityBot”, “ClaudeBot”, “Unknown crawler” |
| Agent Token | A short, unique fingerprint derived from the full User-Agent string (helps group similar bots even if versions differ slightly). | e.g. openai-gptbot-1.0 — mostly for debugging/advanced users |
| Status | Overall compliance assessment for these requests. | Compliant – Everything looks correct Caution – Potential issue, but not clearly forbidden Violation – Clear breach of your declared policy |
| Reason | Why the system assigned this status (most important column for understanding issues). | See detailed explanations below |
| Licence | The AI usage license/policy slug that was active and sent in the response at the time. | e.g. elthian-allow = Allow most AI uses elthian-useonly = Allow indexing/search but no training/commercial use elthian-noai = No AI use at all unknown / mixed = Could not determine or varied during the period |
| Verified | Whether the request included a verifiable Pro snapshot signature (strong proof the response came from your actual site). | Yes = cryptographically verified No = self-reported only |
| Count | How many times this exact combination (day + endpoint + crawler + status + reason) was seen in the selected period. | Higher numbers = more consistent behavior from that crawler |
Common Reasons & What They Mean
- Policy endpoint served with a recognized license → Compliant. A crawler requested one of your policy files (robots.txt, llms.txt, JSON) and received a valid, recognized policy in response.
- Non-policy endpoint served with a recognized license → Compliant. Normal page content was served under a clear license (good — shows your default/per-post policy is being applied).
- Allow policy served on a public policy endpoint → Compliant. Your “allow most uses” policy was correctly served on a policy discovery endpoint.
- Use-only policy served on a public policy endpoint → Caution. You declared a restrictive “use only / no training” policy, but it was served on a public endpoint where some crawlers might expect more permissive or stricter signals.
- NoAI policy served in response → Violation. A strict “no AI use allowed” policy was sent — if any crawler still tries to train on or reuse content, this flags it clearly.
- License could not be resolved → Caution. The system couldn’t determine which license was active (fallback policy missing? misconfiguration?).
- Unknown or unmapped crawler agent → Caution. The bot’s User-Agent isn’t recognized by our mapping — treat with care; it could be a new/niche AI crawler.
What does “mixed” mean in the License column?
In most cases, you’ll see a single license name like elthian-notrain or elthian-public. This means all requests in that row used the exact same license policy.
When you see “mixed” instead, it simply means:
Different license policies were applied to similar-looking requests from the same crawler on the same day.
Why does this happen?
Your site can have two layers of license rules:
- Global / default policy Applies to the entire site unless overridden (set in the main settings or as fallback)
- Per-URL / scoped overrides You can set different policies for specific paths or pages (configured in Scope Rules → e.g. /plugins/* = more permissive, /docs/* = non-commercial only)
When a crawler visits different parts of your site on the same day:
- Homepage or blog posts → uses global policy (elthian-notrain)
- A plugin download page → uses the scoped /plugins rule (elthian-public)
- Documentation pages → uses the scoped /docs rule (elthian-noncommercial)
Because your analytics groups rows by day + crawler pattern + endpoint type + status/reason, if even one request in that group had a different license, the whole row shows “mixed”.
Is “mixed” bad?
No — it’s not an error or violation. It simply indicates that your site is using multiple policies intentionally (a feature, not a bug).
All entries in your log are still marked Compliant because the correct license was served for each request.
Examples from a typical site
| Seen in License column | What it usually means | Action needed? |
|---|---|---|
| elthian-notrain | Everything uses your main “no training” policy | None — clean & consistent |
| mixed | Crawler hit both global pages and scoped areas (e.g. /plugins or /docs) | None — expected if you have overrides |
| elthian-public | Only scoped permissive pages were hit | Check if that’s intentional |