Build Log

The Canonical URL Must Actually Load

A canonical URL is a claim about where a page lives. The v5 repair began when that claim did not match the hosting platform’s real response.

The contradiction

The site originally declared .html addresses in canonical tags and the sitemap. Cloudflare Pages served the extensionless form and redirected the declared address. A visitor still reached the page, but the site was asking crawlers to treat a redirecting URL as authoritative. The same mismatch appeared in Open Graph URLs, breadcrumb items, structured-data identifiers, and internal links.

This is a useful example of why link checking alone is not enough. A redirect can make every link appear to work while the site’s declarations disagree with the host. Technical trust depends on semantic consistency as well as reachability.

Repair the whole graph

Version 5 adopted the host’s extensionless URL form everywhere. Canonicals, og:url, JSON-LD identifiers, breadcrumb destinations, sitemap entries, and internal links were regenerated as one coordinated graph. Six sampled production routes then returned 200 directly with self-consistent canonicals.

Host consistency was handled separately. A Cloudflare Worker redirects www to the apex domain while preserving the path and query string. That behaviour was tested at the root, on state pages, and on article routes instead of being assumed from a dashboard setting.

What became standard

The canonical form must be the form the server actually serves. Sitemap parity now means more than matching a file list: every listed URL should resolve directly, use the intended host, and agree with the page’s own metadata and structured data.

The current form is visible on the NSW page, the Easter guide, and the Articles hub.

All Build Log entries →