Aftermath
Open. The code is deployed; the two zone settings wait on a hand in the dashboard.
What is measured
| Read | Submitted and indexed | Duplicate | Unknown |
|---|---|---|---|
| 2026-10-07 22:13 UTC, sitemap of slash addresses | 1 | 21 | 4 |
| 2026-10-08 00:22 UTC, sitemap of slashless addresses | 24 | 0 | 2 |
The jump is not Google re-crawling in six hours; the crawl dates are September’s. It is the sitemap finally naming the addresses Google already held.
Live on production the same evening: 23 of 26 sitemap URLs with a lastmod (the three repo markdown pages are undated on purpose), a dated TechArticle with an author on a fix stage, the HSTS header on /.
What happens next, in order
- The zone: the redirect rule, Always Use HTTPS, HSTS. Checked with one
curl -Ieach:/column/→ 301,http://→ 301. - Search Console: on the “Duplicate without user-selected canonical” report, Validate fix; resubmit
sitemap-index.xml; URL-inspect the two unknown pages. - One page per type through Google’s Rich Results test and the schema.org validator, expecting 0 errors.
The number, and what would change my mind
Indexing is no longer the number. The number is impressions: 28 in September, on one query. Expected: queries other than the site’s own names appearing in the Search Console performance report within 30 days of the deploy, read weekly by the same script. If at 30 days every impression is still a brand or workshop name, the pages are indexed and nobody searches for what they say — a content and keyword problem, and the next fix is written at that layer, not this one.
The rule I changed
Two, one each for the two mistakes.
Read Search Console within a week of any cut-over, not five weeks after. The report costs one API call, and the 307, the missing dates and the one-query impressions were all visible in it on day one.
And inspect the address Google chose, not the address you submitted. The first read said “one page indexed” and was believed for six hours and one branch. The column that would have said otherwise was in the same CSV.