Most Shopify stores that translate their catalogue stop at the visible text. The German product page has a German title and a German description — and a URL that still reads /products/charcoal-wool-throw.
That is a missed signal on the one part of the page search engines weigh before they have read a word of it. Shopify lets you translate the handle. Almost nobody does, which is exactly why it is worth doing.
Why the handle matters
- The URL is a ranking signal in its own right. Modest, but real, and it compounds across a whole catalogue.
- It is what gets shared. A URL pasted into a forum, a WhatsApp message or a supplier email is read by a human. In their language it reads as a local store; in English it reads as an import.
- It affects click-through. The URL sits under the title in the results page. A German shopper scanning results sees a German path or an English one.
- It is the cheapest localisation you will ever do. The translation already exists in your title. The handle is a slugified version of a string you have already paid to translate.
- Competitors skip it. Translation apps overwhelmingly handle body copy and leave handles alone, so this is one of the few places left where small effort still buys differentiation.
Why it is painful in the admin
Shopify's translation editor shows you one resource at a time, one language at a time, with the handle buried under the content fields. For 500 products in four languages you are looking at 2,000 individual edits through a UI built for correcting one or two.
So it does not get done — not because anyone decided against it, but because nobody was ever going to find the week.
The spreadsheet approach
SheetSync creates one tab per language, named Product Data (<locale>), with the same rows in each. Handle is a standard column alongside Title and Description, so translating it is just filling a column.
Derive the handle from the translated title
You already translated the title. Slugify it:
=LOWER(SUBSTITUTE(TRIM(F2), " ", "-"))
That gets you most of the way. For languages with accents or non-Latin characters you will want a character-replacement layer on top — a small lookup table mapping ä→ae, ö→oe, ü→ue, ß→ss for German, or transliteration for languages that do not use the Latin alphabet at all.
Keep an identifier if you need one
If your handles carry a SKU or model number, keep it: =LOWER(SUBSTITUTE(TRIM(F2)," ","-")) & "-" & C2. Model numbers are frequently what people actually search for, and they do not need translating.
Check for collisions before you sync
Handles must be unique within a locale. =COUNTIF(D:D, D2) flags duplicates instantly — two differently-named products that slugify to the same string, which happens more than you would expect once accents are stripped.
Spot what is still in English
Compare the German handle column against the primary one. Anything identical is either untranslated or a genuine international term like a brand name. Filtering to matches gives you a short list to check rather than a catalogue to read.
Step by step
- Open Product Info Sync and create a product spreadsheet with your languages enabled.
- Export. You get a
Product Data (<locale>)tab per language. - On each non-primary tab, build the handle column from the translated title.
- Check for duplicates within that locale.
- Paste as values, sync back, and review the log.
- Open a product on the localized storefront and confirm the URL.
Rules worth knowing before you change URLs
- Lowercase, hyphens, no spaces. Handles are URL slugs. Keep them ASCII where you reasonably can — an encoded URL full of
%C3%BCis ugly when it is pasted anywhere. - Changing a handle changes a live URL. If a localized page already has traffic or inbound links, treat this as a migration: do it deliberately, and check Shopify's URL redirects afterwards rather than assuming.
- Do it before the traffic exists, if you can. Translating handles on a language you launched last week costs nothing. Doing it on three years of accumulated rankings is a project.
- Leave brand and model names alone. They are what people search for, in every language.
- Be consistent per locale. Half-translated handles look worse than none, and they make your own reporting harder to read.
- Pair it with the rest of the localized page. A translated URL over an English description is a worse experience than either done properly.
Who this is for
Any store already running Shopify Markets with more than one language, especially if you have translated copy but never looked at the URLs. It is a finite, one-afternoon job with a permanent effect, which is a rarer thing in SEO than it sounds.
Before you start, it is worth knowing which product fields Shopify treats as translatable — the list is shorter than most people assume.
Localize your URLs, not just your copy
Translate handles for every language you sell in, from one spreadsheet.
Try SheetSync today