Fix Your Shopify SEO Today
Get the Digital Darts: Hreflang Tags app from the official Shopify Apps store today for a free 14-day trial:
If you have two or more Shopify stores for the same business serving different countries or languages, you may be losing traffic and sales from poor SEO.
The hreflang tag tells search engines like Google what version of the page from what store, to serve users. The tag also prevents duplicate content penalties from similar content being on multiple stores.
The SEO Challenge With Shopify
Nearly all Shopify stores do hreflang tags with a {{ canonical_url }} value or Shopify Markets. The big SEO mistake in doing with the canonical URL is you must have the exact same collections, products, pages, blogs, blog tags, and articles in each store—all with the same URL handle—otherwise your tags will point to non-existent pages (404s).
If one store doesn’t contain all the same products, or any URL handle for a store varies between another store, standard hreflang tags in Shopify are bad for SEO. Google will crawl non-existent pages and you will lose organic traffic.
The way to historically solve this problem is to have the exact same store setup and URLs across all stores. If you have stores in different languages, that is bad for SEO, and bad for the user experience, because your URL handles should be in the same language as the store.
Grow with Digital Darts: Hreflang Tags
Your Shopify stores can now have perfect hreflang tags to increase sales from organic search.
Without the app, your customers may be taken to the wrong store when coming from Google search, which can lead to confusion in international shipping and poorer conversion rates.
By using the app, organic conversion rates may increase as visitors are served the correct store for their region and language in search results.
If you’ve previously used a universal language in your URLs across stores to deal with hreflang tags, you can now catapult SEO and improve the user experience with URL handles in the same language as the store.
Reviews From Shopify Brands
We have a lot of different stores, so it is quite difficult to set up correct hreflang tags. This app helped us a lot to simplify the process of creating, managing, and ensuring correct hreflang tags at all times. The setup is very simple and the support team is great! They are constantly trying to improve the app and even implemented a new feature which we suggested. Would recommend it to everyone!
Great tool, and completely necessary if you’re forced to run multiple Shopify instances. We saw significant improvements in our search rankings and traffic within days of installing the app. It’s easy and straightforward to use, and works reliably.
This is a great app that takes care of a notoriously tricky aspect of the implementation. It does exactly what is required for implementing and managing hreflang tags. If you have any issues, support will promptly investigate and fix them.
You can read plenty more 5-star reviews in the app marketplace.
Highlights
- Designed by 11-year Shopify SEO experts so you know your tags follow best practices. Works for all content types. Collections, products, pages, blogs, blog tags, and articles will be matched so stores have perfect hreflang tags.
- Integrates with Shopify’s native language translation used by most language apps like Langify, Translate My Store, and sometimes Weglot depending on your settings. Don’t make the mistake of depending on their hreflang tags for multiple stores.
- Works with any folder, domain, sub-domain, multi-market configuration possible in Shopify.
- Install the app on any store you want to optimize. If you have four Shopify accounts for a business, install it on each account.
- Automatic installation of tags. Just enable the app embed. No messy code surprises. Easily roll out the app.
- Save hours of work. Products instantly map to each other based on SKUs, barcodes, or URL handles. Any articles, blogs, collections, and pages with the same URL handle instantly map.
- Trusted long-time standing. From the makers of the Digital Darts: Related Posts app, which has been published and supported since 2015.
- Partner friendly. Free use on development stores. Contact us for support.
Frequently Asked Questions
Install the app through the Shopify marketplace for each store. On first install, create an account with your email and password. For additional stores, log in with the same account to link them together.
The app includes a setup checklist that walks you through enabling the app embed and getting started. If you have other hreflang tags, they’ll need to be removed.
The fastest solution is to use our Hreflang Checker Chrome extension. This lets you quickly check hreflang tags on webpages for SEO. See what tags exist and if a page’s language code, region code, and return links match.
It does not matter whether you have sub-domains, multi-lingual folders native in Shopify, or completely different domains. The app is made to give any Shopify store the hreflang tags for good international SEO.
It’s dead-simple. Once your stores are connected, content types like collections, pages, blogs, and articles automatically map based on URL handle. Products match based on your setting selected: SKU, barcode, URL handle, or a custom metafield of your choice. For ones with no match, you manually match them like you would in a spreadsheet. Watch this example:
The app is made to solve the problem of having different products, collections, pages, blogs, blog tags, and articles between stores.
After being certified Shopify Experts and managing the SEO of Shopify clients for over 5 years, we saw the problem in Shopify with how stores talk with each other for SEO. It was non-existent. As a result, any alternative solution to do hreflang tags did damage to SEO.
The app solves the problem by syncing all content types across stores in a table-like design. This means you can tell Google, for example, that product A doesn’t exist on another store. Or if collection A has a different URL on another store due to language, the hreflang tags remain synced.
Whatever you do with redirects between stores has no effect on hreflang tags.
On redirects and serving pages, Google says:
Whatever configuration you decide to go with, you should make sure all the pages—including country and language selector pages—have rel-alternate-hreflang annotations.Google Search Central Blog
This means Google wants to see hreflang tags on your stores even if you redirect or give users the option to swap between websites. It is best practice to explicitly indicate the language and sometimes region of pages through hreflang tags to help organic SEO.
The default option in the app sets what store you want to have the x-default hreflang tag. Think of it as your catch-all store where you want people to go if they shouldn’t go to any other store. For most Shopify businesses, this is their US store. You can configure this in Settings > Domains. You can also disable x-default entirely if preferred.
Google says, “The new x-default hreflang attribute value signals to our algorithms that this page doesn’t target any specific language or locale and is the default page when no other page is better suited.” They recommend using the x-default feature as a fallback even though it’s not mandatory.
The app does not redirect users to follow Google best practice for users and SEO. It’s enticing to redirect shoppers to a store based on the user’s IP information. Resist the temptation. “Do not use IP analysis to adapt your content,” says Google’s documentation. “IP location analysis is difficult and generally not reliable. Furthermore, Google may not be able to crawl variations of your site properly. Most, but not all, Google crawls originate from the US, and we do not attempt to vary the location to detect site variations. Use one of the explicit methods shown here (hreflang, alternate URLs, and explicit links).”
The result of this sin is that Googlebot crawls the website then gets redirected to one version based on your redirection rules. The version Google sees will differ from what other shoppers see. When a website treats the Googlebot differently to people, the website is cloaking—a violation of webmaster guidelines.
Refer to our Shopify hreflang guide to learn what to do instead.
Go to Online Store > Themes > Customize > App Embeds, then enable the Hreflang Tags embed. The app’s setup checklist also provides a direct link to activate it. You can use the app on a preview theme.
By default, the app uses the languages and regions from your Shopify Markets settings. Market and locale changes are detected automatically via webhooks, so updates typically sync without any action on your part.
If you need to force a refresh, you can manually sync from the dashboard. Configure your Shopify Market settings in Shopify admin > Settings > Markets, and the app will pick up the changes.
If you need to override your Shopify Markets configuration, go to Settings within the app and enable the override option. This lets you set custom language and region values per domain.
To turn off hreflang tags without uninstalling, disable the app embed in Online Store > Themes > Customize > App Embeds. You can also exclude specific domains from hreflang output in the app’s Settings > Domains.
To stop billing and remove the app entirely, uninstall it from your Shopify admin. Your data is retained for 7 days in case you reinstall.
Language and Regions
Market and locale changes are automatically detected via webhooks. If the update isn’t reflected, you can manually sync from the dashboard. The tags will refresh shortly after.
The app reads languages and regions from your Shopify Markets configuration. To change them, go to Shopify admin > Settings > Markets and update your market settings there. Changes are typically detected automatically via webhooks, or you can manually sync from the app dashboard.
If you need to override what Shopify Markets provides, enable the override option in the app’s Settings. This lets you set custom language and region codes per domain.
Yes. The language follows Google’s requirement of being in ISO 639-1 format. The region also follows their requirement of being in ISO 3166-1 Alpha 2 format.
A language can differ from the region. A region can be ignored. However, a language must be specified to meet Google’s advanced SEO requirements.
Thanks to the app, you can have hreflang tags like the following in Shopify:
en: English language content with no region
en-au: English language content for Australian users
es-mx: Spanish language content for Mexican users
Removing Other Bad Hreflang Tags
During the installation process, you’re asked to remove hreflang tags inserted from other apps or Shopify. This does not affect the app, but multiple hreflang tags confuses Google.
We suggest removing old hreflang tags once the app is installed in all stores. Mapping does not need to be complete because most Shopify stores have poor hreflang tags to begin with.
Most translation apps like Langify v2, Translate My Store, and Translation Lab use Shopify’s native hreflang tags. You need to contact Shopify support to ask them to disable their default hreflang tags for each store.
Contact Shopify support to ask them to disable their default hreflang tags for each store. This is something only they can do.
Remove all other hreflang tags by searching “hreflang” in the theme.liquid file. If you can’t find the tags, they may be in the snippets folder. Use the Shopify theme search Chrome Extension to locate where the tags are inserted.
Getting Geeky Questions
When no language or region from the hreflang tag matches a user’s browser setting, the x-default tag tells Google what page to take users to. Setting a default is best practice for when no languages match.
The app lets you set one domain as the default in Settings > Domains, which uses a value of hreflang="x-default". Alternatively, no default can be set by disabling x-default in Settings. Individual pages cannot be changed to a default different to the store settings.
One of the main reasons we made this app is to solve the problem of different content between stores!
If an unpublished product page was included in the hreflang tags on the same SKU of another store, it would generate a 404. That’s not good for SEO.
Any product, collection, page, article, or blog not live will not be linked to via other hreflang tags. Additionally, items marked with Shopify’s seo.hidden metafield (noindex) are automatically excluded from hreflang tags, since pages hidden from search engines shouldn’t appear in hreflang annotations.
If you have a unique type of content on one store but no other, you can add it as a mapping (with it as the only entry) so that it has hreflang tags that point to itself. Some experts may argue this is unnecessary. Without any mapping, there are no tags on the page. If the store has multiple languages, adding the store as the only mapping adds the correct hreflang tags to it.
Pagination is a sequence of numbers for content. In ecommerce, it’s primarily a usability feature that lets people navigate between multiple pages of a product category. The alternative is to have all paginated products displayed on one page, which can cause confusion and excessive load times.
Shopify often paginates collection and blog content. How should you best handle hreflang tags for these pages to maximize your international SEO?
Shopify canonicalizes paginated URLs to themselves. The page /collections/all?page=2 will have a canonical tag of:
<link rel="canonical" href="https://example.com/collections/all?page=2">
Google’s John Mueller said hreflang tags must agree with that canonical:
Make sure any rel=canonical you specify matches one of the URLs you use for the hreflang pairs. If the specified canonical URL is not a part of the hreflang pairs, then the hreflang markup will be ignored.
The app follows this guidance by carrying the page number through every hreflang tag on paginated pages. Each paginated page declares itself and the matching paginated page in every other language or store:
<link rel="canonical" href="https://example.com/collections/all?page=2"> <link rel="alternate" href="https://example.com/collections/all?page=2" hreflang="en"> <link rel="alternate" href="https://example.com/collections/alle?page=2" hreflang="de-de">
Every paginated page gets a valid self-referencing hreflang tag that matches its canonical, along with reciprocal return tags on each alternate version. This is the structure Google expects.
What if the stores don’t match page for page? An English store may show products D, E, and F on page 2 while the German store shows F, G, and H, and a smaller store may have no page 2 at all. Neither breaks the markup. Hreflang on a category page tells Google “this is the equivalent category for this language or region”. It doesn’t require the two pages to list identical products, any more than translated pages have identical text. Shopify also never returns a 404 for a paginated URL. A page beyond the last simply renders with no products and still emits its canonical and reciprocal hreflang tags, so the tag pairs stay valid. At worst, Google quietly ignores a pair it can’t use. There is no penalty.
On the first page, the canonical drops the page parameter, so hreflang tags do too. The page /collections/all?page=1 has the following canonical and hreflang tags:
<link rel="canonical" href="https://example.com/collections/all"> <link rel="alternate" href="https://example.com/collections/all" hreflang="en"> <link rel="alternate" href="https://example.com/collections/alle" hreflang="de-de">
Shopify canonicalizes product variant URLs to the product URL. The page /products/product-name?variant=1234567890Â will have a canonical tag of:
<link rel="canonical" href="https://example.com/products/product-name">
Variants URLs have hreflang tags that point to the primary URL, not the variant. This is called a “non-self referencing canoncial tag”. Following Google’s advice revealed in the FAQ “How is paginated content handled?“, this is done in order that hreflang tags match the rel=canonical link.
When auto-mapping products, the app expects your chosen match value—SKU, barcode, or a custom metafield—to be unique within each store. It links one product per store together into a single set of hreflang tags.
If it finds duplicates, such as two products in the same store sharing one SKU, it does not guess. It will not pick the first one it sees, and it will never generate multiple or conflicting hreflang tags from the ambiguity. Instead, it first tries to break the tie using the product’s URL handle. If exactly one of the duplicates has a URL handle matching the product being mapped, that one is mapped.
If the handle still can’t tell them apart, the app skips those products and leaves them for you to map manually. You’ll see an entry in the app’s Activity log, for example: "Couldn't auto-map [product] — sku [value] matched multiple items and the handle didn't uniquely resolve. Map manually if needed."
If a product is duplicated such that it shares the same SKU, barcode, or custom metafield of another, an existing mapping of the original product is unaffected.
You can map any flagged items by hand the same way you would in a spreadsheet, or switch your match method in Settings if another field is more reliably unique across your catalog.
New products and collections and their titles or URL changes sync almost instantly via webhooks.
Pages, blogs, and articles update daily by itself or instantly when you sync from the dashboard. Shopify does not provide webhooks for these content types, so this daily or manual sync is needed to pick up changes.
If your Weglot domains are configured as sub-folders with standard region and language folder names, the app will work.
If you have unique domains or sub-domains configured in Weglot, you cannot have perfect hreflang tags between Shopify accounts. Weglot’s domain configurations are a black box. They do not use Shopify’s APIs nor do they make the data easily available. A third-party app has no idea what these settings are in Weglot.
The alternative to achieve perfect hreflang tags for good SEO is setting up your domains in Shopify Markets or open new Shopify accounts. The domain and regions can be resynced through the app to the correct settings. Shopify makes the language, regions, and domains available.
Semrush and ahrefs always give an error of “Conflicting hreflang and rel=canonical” or “No self-referencing hreflang” for well-implemented hreflang tags in Shopify.
These messages are wrong with SEO best practices for hreflang tags. The errors occur because pages that are not the canonicalized version have hreflang tags that point to the canonicalized version.
This is the correct way to set up hreflang tags as Google’s John Mueller famously advised:
Make sure any rel=canonical you specify matches one of the URLs you use for the hreflang pairs. If the specified canonical URL is not a part of the hreflang pairs, then the hreflang markup will be ignored.
You may see a fluctuation of visibility report in Semrush or performance metrics in Google Search Console. This can happen the day the app is implemented as Google begins to correctly shuffle traffic between stores.
There are plenty of tools that will check tags on a page-by-page basis to confirm the errors reported in Semrush or ahrefs.com are false. The most reliable, comprehensive way to double-check your hreflang tags is with Screaming Frog. You can run a crawl of one of your stores then click the “Hreflang” tab at the top to see your tags.
For the ultimate resource to understand hreflang tags and fix errors in Google Search Console, ahrefs.com, Semrush, and Screaming Frog, read “How to Add Flawless Hreflang Tags in Shopify At Last“.
For help with the app, please reach out to our support by filling in the support form. Share your question(s) or issues, and share as much detail as possible to stop emails going back-and-forth. If it helps to include screenshots, you can include screenshots that are privately hosted online because attachments through the form are not possible.
I Need Further Help
For the ultimate resource to understand hreflang tags and fix errors in Google Search Console, ahrefs.com, Semrush, and Screaming Frog, read our guide “How to Add Flawless Hreflang Tags in Shopify At Last“.
For help with the app, please reach out to our support by filling in the support form. Share any questions or issues.