Short answer: most websites answer on more than one address. With and without "www", on http and https, with and without a slash on the end, and on the hosting company's own address, like yourname.pages.dev or yourname.netlify.app. If those copies show the page instead of redirecting to your real address, search engines can find them, index them and split your rankings between them. The fix is a permanent (301) redirect from every copy to the one address you've chosen.
This is the first in a short series about things that actually broke, on our own site and on client sites, and the rule each one left behind. No composite stories. Every example below is real and written up in our own notes.
We start with twins because we found three on our own site this year, and one of them was embarrassing.
A canonical tag tells Google which copy you'd like it to use. A redirect means there's only one copy to choose from.What broke
Three twins on our own site
1. Two copies of every page
In August, our Search Console export showed /about and /about/ as two separate pages, and the same for /local and /studio. Our host serves a page at both addresses by default, so Google had found both and was splitting what little attention we had between them.
The rule it left: every page gets a 301 from the no-slash version to the slash version, and our pre-launch check now fails the build if any page in the sitemap is missing one. It can't come back without someone noticing.
2. A www copy nobody asked for
In October, Search Console listed 38 www.zenlio.co.uk addresses under "Alternate page with proper canonical tag". The www version of the site was showing pages instead of redirecting to the bare domain. Our canonical tags pointed the right way, which is why Google mostly coped, but it was still crawling two of everything.
The rule it left: one redirect rule at the host, so www sends every visitor and every crawler to the bare domain, path and all. Those 38 URLs drop out of the report as Google recrawls them.
3. The hosting address, in search results
On 1 November, a web search for our own domain came back with zenlio.pages.dev for our About, Blog, Industries and Get started pages. That's the address our host gives every site it runs. Every page on it worked, every internal link pointed at it, and nothing told search engines to leave it alone.
Our canonical tags pointed at zenlio.io, which helped Google. Other search engines were happily listing the copy. Ten minutes in the Cloudflare dashboard fixed it: a bulk redirect that sends the pages.dev address to the real domain, keeping the page and any tracking on the end.
The rule it left: the hosting address gets redirected on launch day, for every site we build. Not later. Launch day.
And one on a client's site
A renovation company in East London had both problems at once. The version of its site without "www" wasn't redirecting, and in one quarter the non-www homepage picked up 283 impressions and 4 clicks in Google that should have gone to the real one. Then, in November, its hosting preview address turned up above the real domain in a web search for the company's own name. Same cause, same fix.
Why it mattersWhat a twin actually costs you
- Split signals. Links, clicks and attention land on two addresses instead of one. On a young site with little authority, that's a share you can't spare.
- The wrong address in results. A customer sees yourname.pages.dev in a search result and wonders if it's really you.
- Links you lose. Someone shares the copy, a directory picks it up, and that link points at an address you'll eventually switch off.
- Muddled reporting. Analytics and Search Console split the same page across two or three rows, so nothing looks as strong as it is.
Canonical tags help, but Google treats them as a strong hint, not an instruction, and other search engines and AI tools don't always respect them. A redirect leaves nothing to interpret.
The five kinds of twin
| Twin | Looks like | How it happens | The fix |
|---|---|---|---|
| www or not | www.example.co.uk and example.co.uk | Both are set up and both show pages | Pick one. 301 the other to it, path included |
| http or https | http://example.co.uk | Old links, or https never forced | Force https at the host for every page |
| Trailing slash | /about and /about/ | Many hosts serve both by default | 301 to one form and link to that form everywhere |
| Hosting address | example.pages.dev, example.netlify.app, example.vercel.app | Every host gives your site its own address | Redirect it to your domain at the host |
| Old staging site | dev.example.co.uk, staging.example.co.uk | Left running after launch | Password-protect it or take it down |
Find your twins in ten minutes
- Type every version. Try http://, http://www., https:// and https://www. in front of your domain, then a page with and without the slash on the end. Each one should land on exactly the same address, and you should see the address bar change.
- Search for the hosting address. Ask whoever built your site what address the host gave it, then search for it. If your pages come back on that address, you've found a twin.
- Read Search Console's page report. Under Indexing, then Pages, look at "Alternate page with proper canonical tag" and "Duplicate, Google chose different canonical than user". If the examples are www, http or no-slash versions of your own pages, those are twins.
- Search your business name on Bing. A copy Google ignores can still be listed elsewhere, and AI tools draw on more than Google.
- Check your own links. Your Google Business Profile, social profiles and directory listings should all use the same version of your address. That was one of the first things on our own list.
Fixing it properly
Choose one version of your address and treat every other version as a doorway that sends people to it. In practice:
- A 301 redirect from every other version to the one you've chosen, keeping the rest of the address
- Every internal link written in the chosen form, so you're not relying on redirects to tidy up after yourself
- Canonical tags pointing at the chosen version, as a backstop rather than the fix
- The same address on your Google Business Profile, social profiles and every directory
On Cloudflare Pages, the hosting address is fixed with a Bulk Redirect: your-project.pages.dev as the source, your domain as the target, a 301, and "preserve query string", "subpath matching" and "preserve path suffix" ticked. Cloudflare's own guide also ticks "include subdomains", which sends preview links to the live site too. We leave that one off so previews keep working, because Cloudflare already marks every preview deployment as noindex.
Then give it time. Search Console reports the old copies for weeks after the fix, as Google gets round to recrawling them. That's normal, and it's not a sign the fix failed.
Every site we launch gets its hosting address redirected on day one, www and http folded into one address, and a check that blocks the launch if a page is missing its trailing-slash redirect. If you'd like someone to look at yours, our website and visibility audit covers all of this, or try the 30-minute website check yourself first.
