Shopify says the translation is up to date — is it?
Shopify keeps an outdated marker for every
translated field: edit the source after translating and the translation gets
flagged for review. It is a good record — when it works. We measured a class
of translations where it never fires at all.
How the flag works
When a translation is written through Shopify's API — which is what translation apps do — it is registered together with a digest of the source content it translated. Edit the source later and the digests no longer match: the field shows as outdated in the language editor, and apps surface it for re-translation. No guessing is involved; it is Shopify's own bookkeeping.
The measurement: CSV imports never get flagged
Translations can also enter Shopify without an app: the admin's language screen exports and imports CSV files. We measured what that path does to the flag:
- We imported 15 translations by CSV, then edited their source content. Zero of the 15 were ever flagged — the language screen kept reporting them as up to date.
- As the control, we re-translated one of the same products through Translate & Adapt (which writes through the API), edited the source again — and the flag appeared on the description field immediately.
The mechanism follows from the design: a CSV import stores the translated text but no source digest, and a translation without a digest has nothing to compare against, ever. It is not marked "unknown". It is reported as up to date — permanently, no matter how many times the source changes.
The CSV path has a second quiet behaviour worth knowing while you are here: importing an empty translation cell does not store an empty translation — it stores nothing at all, and the storefront then falls back to the source language for that field. We met this on our own test store, where it manufactured a German title over an English description (that shape, measured). Two separate reasons to treat CSV round-trips as something to verify, not trust.
When the flag does fire, believe it
None of this is an argument against the flag. When it fires, it is not a guess or a threshold judgement — it is Shopify's own record that the source changed after the translation was written, and in our checks we pass it through without any inference of our own. The asymmetry is the point: flagged means stale; unflagged means nothing unless you know every translation on the store went in through the API.
Who this affects
If every translation on your store was written by an app — Translate & Adapt, or a third-party translation app writing through the API — the flag covers you. If translations were ever imported by CSV — an agency handoff, a migration, a one-time bulk fix — those fields are invisible to the flag, and there is no error, no warning, and no way to tell from the language screen which fields are in that state.
The practical consequence: "no outdated translations" on the language screen is evidence about API-written translations only. For a store with any CSV history it is not evidence at all.
What a real check looks like
A check that does not depend on the digest has to compare the texts themselves: put the current source next to the current translation and look for the shapes a stale pair produces. Two are measurable from the outside. A translation much shorter than its source — in our measurement across 27,140 product comparisons, a weighted length ratio under 0.6 on sources of 300+ characters — reads as a translation that stopped keeping up. And a source that has grown far past its translation (ratio above 1.8) reads as the mirror case: the source moved, the translation did not. Both thresholds were tuned on that 27,140-comparison corpus specifically to keep false alarms near zero (the full measurement).
The one-minute manual version: take a product whose source description you edited recently, open its translation in each published language, and read whether the edit is reflected.
Related measurements
Check your own store in one minute.
Our free scanner reads your public storefront in every published language and lists the products where the translation stopped matching the source — with links to your own pages, so you judge the evidence yourself. No install, no login.
To hear about it first — a weekly watch with an email when a translation breaks — that's LocaleWatch on the Shopify App Store.