Demo sites name their canonical address
Every page of a listed demo site now tells search engines its one address, so filtered overviews and “open alone” views stop showing up as separate duplicate pages.
What each address declares
| Address requested | Before | Now |
|---|---|---|
/Overview | none | https://demos.example.dev/ |
/?Area=VoiceOverview, filtered | none | https://demos.example.dev/ |
/?Kind=Bug+fixOverview, filtered | none | https://demos.example.dev/ |
/?Area=Canvas&q=logoOverview, filtered and searched | none | https://demos.example.dev/ |
/push-to-talk-a1b2c3/Video page | none | https://demos.example.dev/push-to-talk-a1b2c3/ |
/logo-drafts-d4e5f6/Artifact page | none | https://demos.example.dev/logo-drafts-d4e5f6/ |
/logo-drafts-d4e5f6/?aloneArtifact page, “Open in its own window” | none | https://demos.example.dev/logo-drafts-d4e5f6/ |
/no-such-page/Unknown address (404) | none · noindex | none · noindex |
A site on https://demos.example.dev/ with a video page and an artifact page, generated by Obeya's own site code at the commit before the change and with the change, served the way Cloudflare Pages serves it, and fetched at each address.
What the head of the filtered overview says now:
<title>Team demos</title><link rel="canonical" href="https://demos.example.dev/">
Decisions
- The base URL is always known. A site can only be shared on with an absolute
http(s)URL in its settings, so there's no case where the tag has to be left out or worked out some other way. - The canonical tag alone covers the filter variants, with no
noindex. The filter runs in the browser, so?Area=Voicegets exactly the same file as the overview, and the canonical tag is the standard signal for that. A static site could only addnoindexto the filtered views with a script, and a bug in that script could drop the overview itself out of Google. Blocking query addresses inrobots.txtwould also stop Google from ever seeing the canonical tag. - Some pages get no tag: the 404 page (it is served at any address and already has
noindex), pages on an unlisted site (alreadynoindex), and a demo exported as a file (it has no address).
Pages already online
The overview picks up the tag the next time anything is shared. Pages that were shared earlier are now marked outdated with this change, so the Koordinator's entry “N shared demos are outdated” can share them again in one go. The change is listed there as:
For search engines, every page names its one address (rel="canonical"): they list the page once instead of also under variants such as ?alone.
Search Console reflects the change only after Google has crawled the pages again, which typically takes days to weeks.