One blogger's server logs, read as a data-quality audit
Tracy Durnell's AWStats data is the cleanest public look at what arrives at a small site. 90% of visits last under thirty seconds, and a single IP fetched 423,059 pages. Her caveat is also the limit: server-side stats give a rough human/bot estimate, nothing better. Google's AI Mode held query volume while external clicks fell 18.8 points, so composition moved where volume looked flat.
Decomposed by failure mode, it sharpens:
- Label noise. Engagement, conversion-intent and dwell-time targets absorb agent sessions as human, and short-session dominance skews time-on-page features.
- Covariate shift. Referrer and channel distribution moved; the production model's training window predates the move.
- Measurement validity. With bot share unmeasured, an A/B primary metric carries an unknown mixture component, and mixture drift between arms inflates variance quietly.
Delegated-action agents worsen this in a specific way. Session depth, dwell, scroll and page-sequence features go degenerate when an agent transacts for the user, and attribution breaks at the referrer layer. That is live distribution shift against conversion, fraud and LTV models, and the aggregate volume chart stays flat through it, which is why the monitors miss it.
The corpus side of the same problem
Dormant, unmoderated corners of the web are the tail generic crawlers ingest happily and human editors no longer defend. With agents demonstrably writing to live third-party sites, the marginal document a 2026 crawl adds is meaningfully more likely to be machine-authored than a 2023 crawl's was, and it reads fluently enough to pass dedup and perplexity filters. Most pipelines carry no field for it.
The expensive version is an eval validity failure: the held-out set drifts toward machine text while production traffic stays human, so offline metrics stop predicting online performance. That correlation is the only reason the offline eval exists.
Artifact detection will not rescue either side. Auto-labelling of AI-generated video is bypassed by a real person reading an AI script at $26 per script and 24-hour turnaround, and clips persisted across dozens of accounts after 20 channels reaching 45M views were terminated. Generation artifacts are a dead end for a synthetic-content classifier, and the signal lives in behavioral and network-graph features.
The move: make the contamination a number
The cheap version is a verified-human holdout cohort, a refit of each engagement, propensity or session-based model on it, and the AUC or lift delta between contaminated and cleaned populations posted beside the drift monitors as a standing metric. That delta is the contamination estimate, and unlike a bot-detection heuristic it survives review. On the corpus side: a crawl-date field and domain-liveness filter on every web-derived ingestion path, a frozen pre-2026 human-verified eval slice as control, and 10K newly ingested documents sampled for machine-authored share. The threshold argument cannot start before that number exists.
If the held-out set drifts toward machine text while production traffic stays human, the offline metric has stopped predicting the only thing it was built to predict.