Affinero

Blog

A translation is not a duplicate. Don't tag it as one.

GENERATED · 959 words · EN→FI ✓

A Finnish version of an English post is not a copy of it, and Google does not treat it as one. There is exactly one field that can tell Google otherwise: a canonical tag on the Finnish page that points at the English one. On a bilingual site that is the mistake to guard against, and it is worse than having no canonical at all. The canonical's job is to name the one true address within a language. Across languages it has nothing to say.

Google already says a translation is a different page

Google's canonicalization overview, last updated on 20 August 2026 when we read it this morning, is specific. Different language versions of a page are treated as duplicates only when the primary content is in the same language, meaning only the menu and footer were translated and the body was not. A post rewritten in Finnish is a distinct page answering a distinct reader, and it is entitled to its own place in the index.

The same page describes what a canonical actually is. When several URLs carry the same content, Google picks one to represent the set and indexes that one most regularly. Your canonical tag states a preference about that pick, and Google calls it "a hint, not a rule".

The division of labour follows. Duplicates are a problem of addresses: the same Finnish page reachable at several URLs. Languages are a problem of audiences: two different pages for two kinds of reader. Canonicals handle the first. Hreflang handles the second.

The tag that can undo it points across languages

Google's guide to consolidating duplicate URLs (last updated 10 July 2026) puts the rule in one sentence. If you use hreflang, specify a canonical page in the same language. Its localized-versions page adds the other half: each language version must list itself and every alternate, and if two pages do not point at each other, the annotations are ignored.

Now imagine a Finnish page whose canonical names the English URL. Its hreflang says "I am the Finnish answer." Its canonical says "index the English page in my place." Those two signals contradict each other, and you have no say in which one Google believes. Because the canonical is only a hint, Google may decline it. You have still asked for the wrong thing, on every Finnish page at once.

This is an easy mistake to build, and our own setup shows how. Our slugs are shared between locales, which we argued for because it makes pairing mechanical. The cost is that a template which builds the canonical from the slug alone produces the English address on the Finnish page. Nothing errors. The page renders and the tag validates.

We emit no canonical at all, and that is mostly fine

When we checked our own pages this morning, neither the English nor the Finnish posts carried a rel=canonical anywhere. We had assumed it was there.

The honest finding is that this costs us little. Google's consolidation guide lists redirects and sitemap inclusion as canonical signals alongside the tag, and says that without an explicit choice Google will pick the version it judges best. Our site already redirects the obvious variants: plain http, a trailing slash, and an /en/ prefix all land on the one clean English address with a single hop. Our sitemap lists both locales, each with reciprocal hreflang. Google also says it prefers URLs that belong to an hreflang cluster when choosing canonicals. Most of a canonical's work is already done by other means.

What is left uncovered is narrow. A post URL with a tracking parameter on the end still answers 200 with the full page, and nothing on that page names the clean address. Separately, our Open Graph URL points every post at the homepage, a starter-template default we have not yet replaced. Neither drops a translation. Both are loose ends, and we have flagged both as fixes rather than ship a post that pretends otherwise.

Update, 15 October 2026: both are now fixed. Every post names a canonical in its own language, and the Open Graph URL points at the post. The text above records what we found on 14 October.

What a canonical is for on a bilingual site

Done right, the tag is boring. Each language version names itself as canonical: the English post points at the English URL, the Finnish post at the Finnish one. Hreflang then connects the two, in both directions, with the same set of links on each. Redirects collapse the address variants you can predict. The canonical catches the ones you cannot, such as campaign parameters, syndication copies, and preview links that escape into the wild.

If you cannot be sure your template will produce a same-language canonical, emitting none is safer than emitting the wrong one. Absence leaves the choice to Google, which, by its own account, prefers the URL in your hreflang cluster. A cross-language canonical takes the choice away from it in the wrong direction.

Point within the language, or not at all

The test is a single question you can ask of any page: does its canonical name a URL in the language it is written in? If yes, the tag is doing its job. If it names another language, you have told Google your translation is surplus.

For an engine that publishes every post in two languages, this is a rule that has to live in the template, because it gets inherited by every page at once. Google has never cared whether a page was written by a person or a machine. It cares whether the page was needed. A Finnish answer for a Finnish reader was needed. Do not let one tag tell Google otherwise.