dare.co.uk 404 redirects report — 2026-06-18
Daily top-50 404 paths from Cloudflare Analytics, last 24h. Operationalises feedback_404_redirect_threshold_rule — at ≥50 hits/day, examine and decide whether to redirect editorial 404s to a deserving archive page.
TL;DR
- 395 total 404 hits in the last 24h across 50 distinct paths.
- 0 path(s) over the 50/day threshold needing a redirect decision.
- 32 bot-probe paths — leave 404 (per rule, security signal).
- 0 section-root paths — build index pages, not redirect.
Legacy editorial — decide redirect target
(18 path(s) · 148 total hits)
| Path | Hits | Action | Decision? |
|---|---|---|---|
/terraform/terraform.tfstate |
15 | examine + decide (rule applies) | |
/.kube/config |
15 | examine + decide (rule applies) | |
/.azure/credentials |
15 | examine + decide (rule applies) | |
/.yarnrc |
15 | examine + decide (rule applies) | |
/cf-fonts/v/newsreader/5.2.10/latin/opsz/italic.woff2 |
15 | examine + decide (rule applies) | |
/ip |
9 | examine + decide (rule applies) | |
/dare_gsc_404_drift_2026-06-11 |
8 | examine + decide (rule applies) | |
/dare_snapshots_r2_push_2026-06-11 |
8 | examine + decide (rule applies) | |
/posts/steven-soderbergh-259x300.jpg |
7 | examine + decide (rule applies) | |
//wordpress/wp-includes/wlwmanifest.xml |
6 | examine + decide (rule applies) | |
/sitemap.xml |
5 | examine + decide (rule applies) | |
//site/wp-includes/wlwmanifest.xml |
5 | examine + decide (rule applies) | |
/wp/ |
5 | examine + decide (rule applies) | |
/contact-us |
4 | examine + decide (rule applies) | |
//shop/wp-includes/wlwmanifest.xml |
4 | examine + decide (rule applies) | |
/phpinfo |
4 | examine + decide (rule applies) | |
/posts/005-300x292.jpg |
4 | examine + decide (rule applies) | |
//blog/wp-includes/wlwmanifest.xml |
4 | examine + decide (rule applies) |
Bot-probe paths — leave 404
(32 path(s) · 247 total hits)
| Path | Hits | Action | Decision? |
|---|---|---|---|
/cdn-cgi/rum |
18 | leave 404 (security signal) | |
/wp-json/wp/v2/users |
16 | leave 404 (security signal) | |
/posts/cropped-ziiiro-celeste.jpeg |
16 | leave 404 (security signal) | |
/cdn-cgi/trace |
16 | leave 404 (security signal) | |
/wp-json/ |
15 | leave 404 (security signal) | |
/index.php |
15 | leave 404 (security signal) | |
/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js |
15 | leave 404 (security signal) | |
/sites/default/settings.local.php |
15 | leave 404 (security signal) | |
/wp-content/plugins/fix/up.php |
12 | leave 404 (security signal) | |
/wp-admin/admin-ajax.php |
11 | leave 404 (security signal) | |
/this_is_a_new_hello_world.php |
8 | leave 404 (security signal) | |
/wp-login.php |
7 | leave 404 (security signal) | |
/wp-content/plugins/hellopress/wp_filemanager.php |
5 | leave 404 (security signal) | |
/wp-aothait.php |
5 | leave 404 (security signal) | |
/h2.php |
5 | leave 404 (security signal) | |
/cxs.php |
4 | leave 404 (security signal) | |
/ph33w.php |
4 | leave 404 (security signal) | |
/jjhf.php |
4 | leave 404 (security signal) | |
/pass4.php |
4 | leave 404 (security signal) | |
/wp-content/shell.php |
4 | leave 404 (security signal) | |
/wplogbak.php |
4 | leave 404 (security signal) | |
/nyan.php |
4 | leave 404 (security signal) | |
/xs.php |
4 | leave 404 (security signal) | |
/eknmacnl.php |
4 | leave 404 (security signal) | |
/haz.php |
4 | leave 404 (security signal) | |
/ffile.php |
4 | leave 404 (security signal) | |
/mac.php |
4 | leave 404 (security signal) | |
/wp-update.php |
4 | leave 404 (security signal) | |
/by.php |
4 | leave 404 (security signal) | |
/wornnessesal.php |
4 | leave 404 (security signal) | |
/zfe.php |
4 | leave 404 (security signal) | |
/wp-rss2.php |
4 | leave 404 (security signal) |
How to apply the decisions
For each row with DECIDE:
- Inspect the path — is it a real legacy URL (old article slug, external referrer link) or accidentally-popular bot noise?
- If editorial: pick a deserving target from the existing archive-page roots:
-
/methods-of-business-design/-/culture-means-thriving-teams/-/fields-notes-from-business-design/-/cinema/-/photography/-/observations/ - Add a 301 to
~/Code/dare-co-uk/_redirects:/<path> /<target> 301 - Commit + push; Cloudflare Pages redeploys in ~30s.
Bot-probe paths stay 404 — redirecting them rewards scanners. Section roots get index-page builds, not redirects, because the underlying content is stunning and deserves its own home.
Generated 2026-06-18 via dare_404_redirects_report.py. Companion to feedback_404_redirect_threshold_rule.
Automated recommendation — maturity ladder
Site housekeeping wants to become a scheduled script + intelligence engine. Criteria are set in the rule (feedback_404_redirect_threshold_rule); this report applies them. Maturity ladder for how the recommendations become action:
Today (v1 — ad-hoc) |
Tomorrow (v2 — programmatic + HITL) |
Future (v3 — decision engine) |
|---|---|---|
| Report generates daily, surfaces threshold hits | Report adds confidence score + suggested target per row, opens weekly PR with proposed _redirects edits |
Engine auto-applies high-confidence redirects, queues medium-confidence for weekly batch review, escalates ambiguous |
| Dan reviews report manually when alerted | Weekly cadence: 15 min review, approve/reject queued changes | Quarterly: review engine’s calibration + edit criteria |
_redirects edited by hand on a case-by-case basis |
_redirects PRs auto-drafted from approved rows |
_redirects PRs auto-merged for high-confidence; manual override always available |
Criteria the report already delineates (the substrate v2/v3 build on):
- Bot-probe paths → leave 404 (security signal; never reward scanners with 200)
- Section-root paths → build index page (stunning content earns its own home, not a redirect)
- Favicon paths → already-redirected verification (deploy-lag sanity check)
- Legacy editorial paths above threshold → DECIDE redirect target (the human-in-the-loop slot)
- Legacy editorial paths below threshold → monitor (wait for signal before spending decision budget)
v2 adds: a confidence score per editorial row (based on path-shape regex + historical hit pattern + the article corpus’ nearest-neighbour match for a sensible target), and a draft PR against _redirects per weekly cohort. v3 lets the engine merge the high-confidence cohort autonomously, with Dan reviewing the medium/low cohorts.
Each level inherits the same criteria — only the level of automation changes. The rule stays the source of truth; the engine becomes a faster applicator of it.
Built with — component scripts
seo_render_html.py— wraps the source.mdin the dash.gf.cx design language (+anchor_enricher.pyfor inline-link promotion & rollover thumbnails)dare_dev_reports_publish.py— bundles the day’s reports into the catalog and ships to dash.gf.cx/reports