What Is hreflang, and Do You Need It for a Translated Store?

What Does hreflang Actually Do?
hreflang tells a search engine that two pages are the same content in different languages, and which language each one is for. That single piece of information changes how those pages are treated.
Without it, a search engine sees several pages with similar structure and overlapping meaning and has to work out the relationship itself. It might rank one and ignore the others. It might show a German searcher your English page because that is the version it knows best.
With it, the relationship is explicit. The German page is declared as the German version of the English page, so a German searcher can be served the German one. Nothing is competing, because the pages have been declared as alternatives rather than rivals.
For a store that has just been translated, this is the difference between having translated pages and having translated pages that people find. If you have gone to the trouble of translating an OpoShop store, this is the step that lets that work show up in search.
Do You Really Need It?
You need it if you have translated pages that you want found in search. You do not need it if your translation is purely a convenience for traffic you already have.
That distinction is worth being honest about. If your international visitors arrive from ads, social posts or direct links, translation improves their experience whether or not search engines understand the structure. hreflang does nothing for a shopper who is already on your page.
But most merchants translate partly hoping to be found by people searching in that language. That is the whole point of having a German product page: a German search should be able to reach it. Without hreflang, you are relying on a search engine to work it out.
There is also a defensive reason. Multiple near-identical pages without a declared relationship is the situation people worry about when they hear "duplicate content". hreflang resolves it by saying these are language variants, not copies. That is the reassurance most OpoShop merchants are actually looking for when they ask about this.
What Does the Tag Look Like?
The tag is a link element in the page head, one per language version, plus one that names a fallback. It is simple enough to read even if you never write one yourself.
Each version of a page carries a list of every version including itself. So your English page points at the German and French versions and at itself, and the German page carries the same list. That reciprocity is required. A one-directional declaration is usually ignored.
The pieces that matter:
- The language code: A short code like de for German or fr for French, sometimes with a region such as pt-BR for Brazilian Portuguese.
- The URL of that version: Where the language variant actually lives, whether that is a subfolder, a subdomain or a query parameter.
- An x-default entry: The version to show when none of the declared languages fit the searcher.
The x-default entry is the one people skip and it is genuinely useful. It is your answer to "what should a Finnish searcher see when you do not offer Finnish", and the sensible answer is your original page.
How Do You Add It Without Doing It by Hand?
You add it by letting your translation tool emit it, because doing it manually across a catalogue is a maintenance trap.
1. Why doing it by hand goes wrong
The reason to automate is arithmetic. Every page needs an entry for every language, on every language version. Four languages across two hundred products is thousands of tags that must all stay correct.
Add a language and every existing page needs updating. Remove one and they all need updating again. Anyone who has maintained this manually will tell you it drifts within a month.
2. Reciprocity is the usual failure
The most common hreflang mistake is a page declaring an alternate that does not declare it back. Search engines treat the relationship as unconfirmed and ignore it.
Automated tags avoid this because they generate the full set from one list of languages. It is another argument for letting the tool do it.
3. Do not expect fast results
hreflang changes nothing until search engines recrawl your pages and reconsider which version to serve. That is a slow process, especially on a small site.
Weeks is normal. If you check after three days and see no change, nothing is wrong. Nothing about your OpoShop store is broken, the crawl simply has not happened yet.
What Else Should Be Translated for Search?
hreflang tells search engines which page to show. Three other things decide whether a searcher clicks it, and they are easy to overlook.
- The page title: What appears as the headline in results. An English title on a German page wastes the impression entirely.
- The meta description: The snippet underneath. It is the sales pitch in the search result.
- The page language attribute: Declares the content's language to browsers and assistive technology, and affects how text is read aloud.
The title is the one that costs you the most when missed. A German searcher scanning results sees your English headline and skips it, so your correctly-tagged German page never gets the visit it earned.
There is one caveat worth stating. Translated titles and descriptions should only be used when a translation actually exists. Substituting a machine guess for a title you carefully wrote, when no translation is ready, is worse than leaving your own words. A good tool translates meta only when it has something real to use, which is the behaviour to look for on OpoShop.
How Do the Common URL Structures Compare?
Language versions have to live at different URLs, and there are three usual ways to arrange that.
| Structure | Example shape | Strengths | Trade-offs |
|---|---|---|---|
| Subfolders | yourstore.com/de/product | Keeps all authority on one domain, simple to reason about | Requires your platform to support language paths |
| Subdomains | de.yourstore.com/product | Clean separation per language | Search engines may treat it as a more separate site |
| Query parameter | yourstore.com/product?lang=de | Works on any platform without routing changes, easy to add and remove | Less conventional, so the hreflang tags are doing more of the work |
For a small store on a hosted platform, the third option is often the only one available and it works perfectly well as long as the hreflang tags are correct and consistent. The tag is what carries the meaning, not the shape of the URL.
What matters far more than which structure you pick is that each language has a stable, distinct URL that does not change. A language version that lives at a different address each time cannot be indexed at all, so consistency beats elegance here.
What Happens If You Skip It?
If you skip it, your translated pages still exist and still serve shoppers who reach them, but search engines are left to interpret the relationship on their own.
The realistic outcomes are two. Search engines may only rank one version and treat the others as secondary, so your German page rarely surfaces for German searches. Or a searcher may be shown a version in the wrong language, which they bounce from immediately.
Neither is catastrophic. Your store works, your translated pages are readable, and shoppers who arrive by other routes are served properly. What you lose is the search upside, which for many merchants was a large part of the reason to translate.
Given that turning hreflang on is usually a single setting, skipping it is rarely a deliberate choice. It is something people do not know to look for. If you have translated an OpoShop store, it is worth checking the setting exists and is enabled.
Best answer: hreflang is a tag that declares which language each version of a page is for, and you need it if you want your translated pages found in search. It has to be reciprocal, it should include an x-default fallback, and it should be generated automatically rather than maintained by hand. Pair it with translated page titles and descriptions, and expect weeks rather than days before search results reflect the change.
How Do You Check It Is Working?
You check it by looking at your own page source first and at search behaviour second, in that order, because one is instant and the other is slow.
The instant check takes a minute. Open a product page in your browser, view the page source, and search for hreflang. You should see one entry per language you offer, plus an x-default. Then load the same page in another language and confirm the same list is there.
The slower checks come from a search console tool, which will report hreflang errors it finds during crawling. The two it usually flags are missing return links, where a page declares an alternate that does not declare it back, and unknown language codes from a typo. Both are generated rather than typed when a translation app on OpoShop handles the tags, which is why automated tags rarely produce either.
The final check is simply patience. Rankings for a newly translated page take time to establish, and hreflang does not accelerate indexing, it only clarifies relationships once pages are indexed.
If the tags are present and reciprocal on your OpoShop store, you have done your part and the rest is waiting.
FAQs
Is hreflang required for every translated page?
It should be on every page that has a translated version, which in practice means every product, collection and content page your translation tool covers. That is exactly why it should be generated automatically rather than added by hand.
What is the difference between hreflang and the lang attribute?
The lang attribute declares what language the current page is written in. hreflang declares where the other language versions of that page live. You want both: one describes this page, the other describes the family it belongs to.
Does hreflang stop duplicate content problems?
It resolves the concern people usually mean by that phrase, which is several near-identical pages competing. hreflang tells search engines these are language alternatives rather than copies, so they are treated as one set with several versions.
Do I need a separate domain for each language to use hreflang?
No. hreflang works across subfolders, subdomains and query parameters. What it needs is a stable distinct URL per language version, not a particular URL shape.
How long until I see results from adding hreflang?
Weeks, and sometimes longer on a small site, because search engines have to recrawl your pages before anything changes. It is not a switch that moves rankings the same day, and nothing is wrong if you see no change in the first fortnight.
Should the x-default point at my English page?
Usually yes. x-default is the version shown when a searcher's language does not match anything you offer, and your original page is the sensible fallback for that. It should point at a real page rather than a language selector.
If you have translated your store, turning on hreflang is the cheapest remaining step between that work and being found.
