dare.co.uk — daily hygiene
DARE.CO.UK · DAILY HYGIENE · 20 MAY 2026
Site hygiene: YELLOW ⚠ — 5 ok, 4 warnings, 0 failures.
At a glance
| Check | Verdict | Summary |
|---|---|---|
| 404 audit (pages + images) | ⚠ yellow | 0 broken page(s), 4 broken image ref(s) — small backlog. |
| Sitemap validation | ✅ green | 98.0% of sampled URLs return 200. |
| JSON-LD presence | ✅ green | 96.7% of sampled URLs carry JSON-LD. |
| SEO title + og: hygiene | ⚠ yellow | 54/698 pages have SEO-title issues (7.7%) — drift accumulating. |
| CLAUDE.md follow-up triage | ⚠ yellow | 21 follow-up(s) audited — 3 likely done, 1 decision pending, 17 open. |
| Canonical site-header rollout | ✅ green | 691/691 pages canonical (100%). |
| Content breadth + depth profile | ✅ green | 697 pages profiled — 244 stubs / 266 brief / 169 medium / 18 long-form; 251 without body image. |
| Body image coverage | ⚠ yellow | 244/690 pages (35.4%) no body image — recover via dare_lost_image_audit |
| Email health (DMARC/SPF/DKIM) | ✅ green | 7 green / 0 yellow / 0 red across 7 email-health checks. |
⚠ 404 audit (pages + images) — YELLOW
0 broken page(s), 4 broken image ref(s) — small backlog.
- Detail (markdown):
dare_404_audit_2026-05-20.md - Detail (HTML):
dare_404_audit_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
broken_pages=0,broken_imgs=4
✅ Sitemap validation — GREEN
98.0% of sampled URLs return 200.
- Detail (markdown):
dare_sitemap_validate_2026-05-20.md - Detail (HTML):
dare_sitemap_validate_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
total_urls=1181,sampled=50,ok_200=49,rate=0.98,sitemap_ok=True,robots_ok=True
✅ JSON-LD presence — GREEN
96.7% of sampled URLs carry JSON-LD.
- Detail (markdown):
dare_jsonld_presence_2026-05-20.md - Detail (HTML):
dare_jsonld_presence_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
sampled=30,valid_200=30,with_jsonld=29,coverage=0.9667
⚠ SEO title + og: hygiene — YELLOW
54/698 pages have SEO-title issues (7.7%) — drift accumulating.
- Detail (markdown):
dare_seo_title_audit_2026-05-20.md - Detail (HTML):
dare_seo_title_audit_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
audited=698,with_issues=54,by_issue={'og_site_name': 2, 'og_image': 3, 'og_title_mismatch': 40, 'title_length': 16}
⚠ CLAUDE.md follow-up triage — YELLOW
21 follow-up(s) audited — 3 likely done, 1 decision pending, 17 open.
- Detail (markdown):
dare_followup_audit_2026-05-20.md - Detail (HTML):
dare_followup_audit_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
total=21,likely_done=3,decision_pending=1,open=17
✅ Canonical site-header rollout — GREEN
691/691 pages canonical (100%).
- Detail (markdown):
dare_header_audit_2026-05-20.md - Metrics:
canonical=691,drift=0,no_header=0,total=691
✅ Content breadth + depth profile — GREEN
697 pages profiled — 244 stubs / 266 brief / 169 medium / 18 long-form; 251 without body image.
- Detail (markdown):
dare_content_breadth_audit_2026-05-20.md - Detail (HTML):
dare_content_breadth_audit_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
total=697,by_bucket={'brief': 266, 'stub': 244, 'medium': 169, 'long-form': 18},by_section={'404.html': 1, 'about': 1, 'albums': 14, 'anti-spam-policy': 1, 'architecture': 43, 'archive': 3, 'books': 11, 'brands': 7, 'cinema': 85, 'contact.html': 1, 'culture-means-thriving-teams': 2, 'daring-acts': 66, 'dmca-policy': 1, 'fields-notes-from-business-design': 3, 'fine-arts': 44, 'future-media': 32, 'index.html': 1, 'industrial-design': 24, 'methods-of-business-design': 3, 'narrative': 5, 'new-york-city': 15, 'observations': 213, 'people': 45, 'photography': 36, 'places': 14, 'privacy-policy': 1, 'psychology': 4, 'sitemap': 1, 'templates': 1, 'user-interface': 13, 'users': 1, 'visual-communications': 3, 'writing': 2},no_image=251,no_image_by_bucket={'brief': 87, 'stub': 104, 'medium': 55, 'long-form': 5}
⚠ Body image coverage — YELLOW
244/690 pages (35.4%) no body image — recover via dare_lost_image_audit
- Detail (markdown):
dare_body_image_coverage_2026-05-20.md - Detail (HTML):
dare_body_image_coverage_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
total=690,no_image=244,pct_no_image=35.36,by_section={'observations': 74, 'cinema': 63, 'daring-acts': 19, 'future-media': 13, 'architecture': 12, 'people': 12, 'photography': 8, 'fine-arts': 8, 'albums': 8, 'industrial-design': 5, 'user-interface': 4, 'psychology': 4, 'brands': 2, 'books': 2, 'narrative': 2, 'writing': 2, 'dmca-policy': 1, 'privacy-policy': 1, 'sitemap': 1, 'anti-spam-policy': 1, 'places': 1, 'new-york-city': 1}
✅ Email health (DMARC/SPF/DKIM) — GREEN
7 green / 0 yellow / 0 red across 7 email-health checks.
- Detail (markdown):
dare_email_health_2026-05-20.md - Detail (HTML):
dare_email_health_2026-05-20.html— surfaces in the dev-reports catalog after the next sync. - Metrics:
checks=7,green=7,yellow=0,red=0,domain=dare.co.uk
What this tells us
- One or more checks show measurable drift. None are P1 individually, but multiple yellows in a row warrant a deeper look — yellow is the leading indicator of red.
- See the per-check sections above for specifics; each detail report includes its own “what’s next”.
What’s next
- Re-runnable any time:
python3 ~/bin/dare_daily_hygiene.py. - Scheduled daily 07:30 local via
~/Library/LaunchAgents/uk.co.dare.daily-hygiene.plist. - Each detail report in the catalog (sync runs every 30 min from
~/Library/LaunchAgents/uk.co.dare.devreports-sync.plist). - Add more checks: register an adapter in
CHECKSinside~/bin/dare_daily_hygiene.py. Phase 2 candidates parked: broken-link crawl, image-naming audit, content-freshness audit.
Generated 2026-05-20 07:30:27 via dare_daily_hygiene.py.