A sitemap that never worked
The public /sitemap.xml was a stale static file with 9 URLs. The dynamic generator behind it had returned 500 since the day it was written - the static file silently masked the failure, so no article ever reached the sitemap.
Canonical hosts at war
index.html and the sitemap declared www, every page-level canonical declared the apex domain, and both hosts answered 200 with no redirect - splitting indexing signals in half.
A CDN blocking all AI crawlers
A CDN-managed robots.txt block was denying GPTBot, ClaudeBot, CCBot and others site-wide. The owner did not know: the rules lived in the CDN dashboard, not in the codebase.