Task · BAP-0001

Announce changed pages with IndexNow and join the fleet sitemap index

Description

backlogs.m7kni.io is a new origin with no IndexNow submission and no entry in m7kni.io’s sitemap index, so its 51 indexable URLs are discovered only by crawl.

Record pages are noindex and absent from the sitemap by design, so only the project index, the 24 boards, completed and milestones pages are announced. Reuse the fleet IndexNow key, served from this site’s own root: IndexNow requires the key file to be reachable at the host of the URLs submitted.

Decided against security.txt for this origin (MKN-0027): the repo is public and GitHub is the contact path.

Also slow the rebuild cron. Hourly was chosen when freshness was the only concern; with IndexNow announcing every change it also means pinging search engines about tracker churn nobody searches for.

Acceptance Criteria

Implementation Notes

Key file reuses the fleet IndexNow key, served from this site’s own root: IndexNow validates by fetching /.txt, so one key works across hosts provided it is reachable at each.

Submission reads dist/sitemap.xml rather than walking dist/, so the announced set is exactly the set the sitemap claims is indexable. Record pages are noindex and absent from the sitemap, so they can never be announced by construction rather than by a filter someone can forget.

State lives in an actions/cache entry keyed per run and restored by prefix, matching the hub’s arrangement. HTTP 202 is success (key validation pending) and a non-2xx never fails the run: the deploy already succeeded and a late engine notification is not a reason to mark a good release red.

Cron moved from hourly to every 6 hours. Hourly predated IndexNow, when freshness was the only concern.

Hub side: scripts/generate_sitemaps.py grows BACKLOG_SITE_URL and appends this site’s sitemap to m7kni.io’s sitemap index. Cross-host entries in a sitemap index are only honoured where both hosts are verified to one owner; both are m7kni.io properties.

Verified live 2026-09-20: key file 200 at the site root, deploy run 35509910272 announced 52 URLs with HTTP 202, and m7kni.io/sitemap.xml lists https://backlogs.m7kni.io/sitemap.xml.

52, not the 51 in the plan: adding this tracker made the site discover and publish itself, so the index is now 25 projects. The recursion works without a special case.

View the source file on GitHub