{"id":8191,"date":"2026-07-10T09:00:00","date_gmt":"2026-07-10T07:00:00","guid":{"rendered":"https:\/\/inspace.io\/?post_type=insight&#038;p=8191"},"modified":"2026-07-24T15:21:07","modified_gmt":"2026-07-24T13:21:07","slug":"everything-shopify-store-owners-get-wrong-with-translate-adapt-en-ie","status":"publish","type":"insight","link":"https:\/\/inspace.io\/en-ie\/insights\/everything-shopify-store-owners-get-wrong-with-translate-adapt-en-ie","title":{"rendered":"Everything Shopify store owners get wrong with Translate &amp; Adapt (and the one important thing they don&#8217;t)"},"content":{"rendered":"<p>Let&#8217;s start with the one thing Translate &amp; Adapt genuinely gets right, because it&#8217;s the reason to use it at all. It serves multiple languages from a <strong>single domain<\/strong>. No fragmented <em>.be<\/em>, <em>.nl<\/em> and <em>.de<\/em> TLDs each fighting for their own authority, no duplicate stores to keep in sync. One domain, subfolders per market, all the link equity pooling in one place.<\/p>\n<h2>Shopify sets the rules, you play inside them<\/h2>\n<p>That is the correct architecture for the overwhelming majority of stores, and Shopify makes it the default. The catch is that Shopify also decides <em>how<\/em> that architecture behaves, and you only get to play inside those rules. Most of the problems I&#8217;m called in to fix start when someone assumes installing the app was the same as finishing the job.<\/p>\n<h2>The failures I actually see<\/h2>\n<p>When a multilingual Shopify store underperforms, it&#8217;s almost never the engine. It&#8217;s the configuration sitting on top of it. Three issues account for nearly everything:<\/p>\n<p><strong>Untranslated URL handles.<\/strong> The visible copy is translated, but the URL slug is still English, or worse, still a random Shopify handle. To a search engine the page reads as half-localised, and the market it&#8217;s meant to serve never fully trusts it.<\/p>\n<p><strong>Too many language variants.<\/strong> This is the big one, and it deserves its own section below. Stores add every plausible locale &#8220;to be safe&#8221;, and quietly cannibalise themselves.<\/p>\n<p><strong>Broken hreflang pointers.<\/strong> Variants reference each other incorrectly, or point at pages that no longer exist. Google can&#8217;t build a clean cluster, so it picks a winner for you, and it rarely picks the one you wanted.<\/p>\n<h2>Fixing the handles: it&#8217;s in there, but it wasn&#8217;t always<\/h2>\n<p>Here&#8217;s the one thing most people don&#8217;t know: handle translation <em>exists<\/em> in Translate &amp; Adapt. You can localise the slug per market. The reason so many stores never do it is timing, not capability.<\/p>\n<p>Stores set up before early 2023 predate the feature being obvious, so the habit never formed. The English handle became the permanent handle, and nobody went back. If that&#8217;s you, the fix isn&#8217;t manual page-by-page editing. Export your content, translate the handles in bulk, and re-import with a <strong>CSV<\/strong>. It&#8217;s the difference between an afternoon and a quarter.<\/p>\n<blockquote>\n<p>The tool isn&#8217;t the thing that breaks. The assumption that installing it finished the work is.<\/p>\n<\/blockquote>\n<h2>The language trap, specifically<\/h2>\n<p>Now the expensive mistake. Faced with a Dutch-speaking audience across the Netherlands, Belgium and the wider EU, the instinct is to create a variant for each: <em>nl<\/em>, <em>nl-BE<\/em>, <em>nl-EU<\/em>. It feels thorough. It&#8217;s actually three near-identical pages competing for the same queries, splitting signals and confusing Google about which one to rank.<\/p>\n<p>Add a variant only when it earns its place with genuinely differentiated content, pricing or shipping. Otherwise you&#8217;re not covering more ground, you&#8217;re diluting the ground you already own.<\/p>\n<table>\n<thead>\n<tr>\n<th>Variant<\/th>\n<th>Differentiated?<\/th>\n<th>Verdict<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>nl<\/td>\n<td>Core market, full catalogue<\/td>\n<td>Keep<\/td>\n<\/tr>\n<tr>\n<td>nl-BE<\/td>\n<td>Own pricing, shipping, BTW<\/td>\n<td>Keep, if real<\/td>\n<\/tr>\n<tr>\n<td>nl-EU<\/td>\n<td>Duplicate of nl<\/td>\n<td>Drop<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p>One good variant beats three anxious ones. Every time.<\/p>\n<\/blockquote>\n<h2>Where the app itself hits a ceiling<\/h2>\n<p>To be fair to the tool, there&#8217;s a point where the problem stops being your configuration and starts being the app&#8217;s limits. Translate &amp; Adapt handles core content well, but it thins out around the edges: <strong>third-party app content<\/strong>, <strong>collection filters<\/strong>, and <strong>image metadata<\/strong> often slip through untranslated.<\/p>\n<p>If you&#8217;re hitting those walls, that&#8217;s not failure. It usually means you&#8217;ve outgrown a plug-in and into a real localisation workflow, with proper translation memory and coverage of everything the app can&#8217;t reach.<\/p>\n<h2>So, keep it or leave it?<\/h2>\n<p>Keep it, for almost everyone. For a store that wants many languages on one domain without running a localisation stack, Translate &amp; Adapt is the right default and does the hard part well. Just treat installing it as the <em>start<\/em> of the work: translate your handles, be ruthless about variants, and check your hreflang cluster is actually clean.<\/p>\n<p>Leave it only when you&#8217;ve genuinely outgrown it, when third-party content, filters and metadata matter enough that the ceiling is costing you real revenue. Reaching that point isn&#8217;t a failure of the tool. It&#8217;s a sign you&#8217;re winning.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The app&#8217;s real strength is one domain, many languages. Most broken multilingual stores don&#8217;t fail because of the tool. They fail on the assumptions it quietly lets you keep.<\/p>\n","protected":false},"featured_media":8170,"template":"","insight_category":[545,546],"class_list":["post-8191","insight","type-insight","status-publish","has-post-thumbnail","hentry","insight_category-ecommerce","insight_category-multilingual"],"meta_all":{"rank_math_internal_links_processed":"1","insight_dek":"The app's real strength is one domain, many languages. Most broken multilingual stores don't fail because of the tool. They fail on the assumptions it quietly lets you keep.","insight_tldr":"The app does one thing brilliantly: many languages on a single domain, instead of fragmented country TLDs.\nMost failures are configuration, not the tool: untranslated handles, too many language variants, broken hreflang.\nHandle translation exists, but stores set up before 2023 never noticed it. Fix it in bulk with a CSV import.\nOutgrowing the app is a good sign. Know where its ceiling is before you hit it.","insight_read_min":"8","insight_author_name":"Simon Verwaal","insight_author_role":"Strategist \u00b7 InSpace","insight_author_bio":"Simon untangles multilingual and international SEO for InSpace's ecommerce clients, and has fixed more broken hreflang clusters than he'd care to count.","insight_author_photo":""},"meta_all_flat":{"rank_math_internal_links_processed":"1","insight_dek":"The app's real strength is one domain, many languages. Most broken multilingual stores don't fail because of the tool. They fail on the assumptions it quietly lets you keep.","insight_tldr":"The app does one thing brilliantly: many languages on a single domain, instead of fragmented country TLDs.\nMost failures are configuration, not the tool: untranslated handles, too many language variants, broken hreflang.\nHandle translation exists, but stores set up before 2023 never noticed it. Fix it in bulk with a CSV import.\nOutgrowing the app is a good sign. Know where its ceiling is before you hit it.","insight_read_min":"8","insight_author_name":"Simon Verwaal","insight_author_role":"Strategist \u00b7 InSpace","insight_author_bio":"Simon untangles multilingual and international SEO for InSpace's ecommerce clients, and has fixed more broken hreflang clusters than he'd care to count.","insight_author_photo":false},"acf":[],"_links":{"self":[{"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/insight\/8191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/insight"}],"about":[{"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/types\/insight"}],"version-history":[{"count":1,"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/insight\/8191\/revisions"}],"predecessor-version":[{"id":8192,"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/insight\/8191\/revisions\/8192"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/media\/8170"}],"wp:attachment":[{"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/media?parent=8191"}],"wp:term":[{"taxonomy":"insight_category","embeddable":true,"href":"https:\/\/inspace.io\/en-ie\/wp-json\/wp\/v2\/insight_category?post=8191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}