Common Mistakes When Tracking Conversions by Language (And How to Fix Them)
The most common mistakes are missing language parameters, confusing browser language with page language, blending all languages into one report, ignoring bot traffic, using inconsistent locale labels, and assuming one test result applies to...
The most common mistakes when tracking conversions by language are missing language parameters, mixing browser language with page language, viewing all languages in one report, ignoring bot traffic, using inconsistent locale labels, and assuming one test result applies to every language. Each of those mistakes makes a language look better or worse than it really is.
This article lists each mistake with a quick fix and a verification step. Use the diagnosis order first, then check the quick reference table when you are short on time.
Start with the symptoms
Imagine this: your French pages convert well, your German pages convert poorly, and your Spanish pages are blank. Your first instinct is to rewrite the German copy. But the data may be lying.
The German number might be low because bots clicked through, because the language dimension was never recorded, or because “German” traffic includes people reading an English page. The Spanish number might be blank because the conversion event has no language label, not because no one converted.
Look for these patterns before you change anything:
- One language has zero or almost zero conversions while others look normal.
- A language’s conversion rate changes sharply after a small analytics fix.
- The same visitor appears in multiple language rows.
- Paid traffic for one language has very short sessions or high bounce rates.
Diagnose in this order
Work through these steps in order. Each step removes one layer of noise.
- Confirm the language dimension exists and is being populated on every event.
- Check whether you are segmenting by page language or browser language.
- Split by language and compare conversion rate, not conversion count.
- Apply bot filters and exclude internal traffic.
- Standardize language and locale labels.
- Test changes per language before scaling.
Mistake 1: Not capturing a language dimension at all
Without a language parameter on each event, your analytics tool has nothing to group by. You can still look at a URL like /fr/merci, but that breaks when URLs are translated, when a page is shared across languages, or when you use one URL and swap content by language.
Quick fix: Add a language dimension to your analytics. In tools like GA4, create a custom dimension and send the language value with every event. Use the language of the page the visitor read, not the browser language.
Verify: Open a debug view or test event and confirm the language value appears. Then run a report grouped by that dimension. If the dimension is empty, the fix is not working yet.
Mistake 2: Confusing browser language with content language
Browser language is the language your visitor’s device is set to. Content language is the language of the page they actually read. They are not the same.
A French speaker in Belgium may have their browser set to English but read your Dutch page. If you track browser language, you credit a Dutch conversion to English.
Quick fix: Send the language of the page, not the browser setting. If your translation tool already knows the page language, use that value.
Verify: Compare a report by browser language with a report by page language for the same period. They should not match. The page-language report is the one you make decisions on.
Mistake 3: Viewing all languages in one report
Tracking conversions by language means segmenting by language. A blended conversion rate hides which language is underperforming.
If your report shows one “conversions” number, it tells you nothing about French versus German. You need a separate row or filter for each language, and you need to compare conversion rate, not conversion count.
Quick fix: Build one report per language or add a language filter. Use the same conversion definition, time range, and campaign types for every language.
Verify: Sort the report by conversion rate. Each language should have its own row. If one language is missing, go back to the dimension.
Mistake 4: Letting bot traffic into per-language conversion data
Bots rarely buy, but they can trigger events that look like conversions or bounce off pages. In paid traffic, invalid clicks are common. If bots are concentrated in one language campaign, that language’s conversion rate looks worse than it really is.
Quick fix: Turn on bot filtering in your analytics tool, exclude internal traffic, and keep evidence of suspicious sessions if you plan to request refunds from Google or Meta.
Verify: Compare paid conversion rate with and without bot exclusion for the same dates. If the rate moves, bots were in the data.
Mistake 5: Using inconsistent language and locale labels
“en”, “en-US”, “EN”, “English”, and “en_gb” all mean slightly different things. If your site sends one label from the page, another from the browser, and another from a URL parameter, your reports split one language into several rows.
Quick fix: Pick one scheme, such as BCP 47 locale codes like en-US and de-DE, and use it everywhere. Decide whether you care about country variations. If you do, keep the locale. If not, use only the language part.
Verify: List all distinct language values in your data. Fix anything that is not in your chosen scheme, and merge any duplicate labels.
Mistake 6: Assuming one test result applies to every language
A headline that wins in English may lose in Japanese. A CTA that works in Spanish may feel pushy in German. If you A/B test only in English and roll out the winner to all languages, you are making a decision for every language based on one audience.
Quick fix: Test per language, or at least validate the translation and cultural fit before scaling. Watch for literal translations that change the intent of a headline or CTA.
Verify: Check that a winning variant has data from more than one locale before you scale it. If it was tested only in English, treat the result as a hypothesis, not a fact.
Quick reference: mistakes, fixes, and checks
| Mistake | Quick fix | How to verify |
|---|---|---|
| No language dimension | Add a language parameter to every event | Check a debug event and confirm the language value appears |
| Browser language used | Track page language, not browser language | Compare browser-language and page-language reports |
| All languages in one view | Segment by language and compare conversion rate | Confirm each language has its own row |
| Bots in the data | Enable bot filters and exclude internal traffic | Compare conversion rates with and without bot exclusion |
| Inconsistent labels | Standardize on BCP 47 locale codes | List all distinct language values and merge duplicates |
| One test scaled everywhere | Test per language or validate localized variants | Check that winners have data from more than one locale |
What “tracking conversions by language” actually means
It means attaching a language label to each visit and conversion, then comparing conversion rates across those labels. The label can come from the page URL, a content management system field, or a translation tool. It is not the same as tracking by country, by browser setting, or by ad campaign.
Key facts about SEATEXT’s language tracking setup
The table below comes from SEATEXT’s product pages. Use it as a reference for what a language tracking setup should cover.
| Fact from SEATEXT | Why it matters for per-language conversion data |
|---|---|
| SEATEXT detects each visitor’s language. | You can segment by a consistent language signal instead of guessing from URLs. |
| It translates WordPress pages instantly and keeps new posts, products, and updates translated in the background. | New content does not sit untranslated, so your language data is not comparing old and new pages. |
| It translates every page, headline, button, and offer into up to 125 languages. | A visitor in a new market sees the whole page in their language, not just the body text. |
| No page limits, no language limits, and no manual translation work. | You can cover many languages without a manual project queue. |
| Automatic does not mean uncontrolled; you can edit translations, preserve brand voice, and review key pages. | You can fix a translation before it distorts per-language conversion rates. |
| Seatext detects bots in paid traffic and builds refund-ready reports. | Cleaner paid data means invalid clicks are less likely to drag down one language. |
Limitations: when this advice does not apply
This advice assumes you can add a language dimension to your analytics. If you cannot edit your site code or tag manager, URL-based segmentation is a partial fallback. It fails when URLs are translated or when content is swapped without a URL change.
Language-level conversion data also cannot tell you why a language converts poorly. It can only tell you where to look. Use it with source, campaign, device, and page data before you rewrite copy or change your offer.
Terms worth knowing
- Conversion rate: conversions divided by sessions or visitors in a language group.
- Locale: language plus region, such as de-AT for Austrian German.
- BCP 47: the standard for language tags like en-US.
- Custom dimension: a label you attach to events so analytics can group by it.
- Invalid traffic: clicks and sessions from bots or accidental clicks.
Frequently asked questions
Why do my per-language conversion rates look wrong even though my tag is working?
Most likely one of these: you are segmenting by browser language, bots are included, or the language label is inconsistent. Run the diagnosis order above and compare the same date range.
Should I track browser language or page language?
Track page language for business decisions. Browser language can be useful for personalization, but it is not the same as what the visitor read.
Can I recover historical conversion data by language?
Usually not. A custom dimension starts collecting when you add it. If you have URLs with language prefixes, you can rebuild a partial history from page paths, but translated or dynamically swapped URLs will be missing.
Do I need a separate conversion goal for each language?
No. Use one conversion event and segment it by a language dimension. Separate goals are useful only if the conversion action itself differs by market.
How can I tell if bots are hurting a language?
Compare conversion rate with and without bot filters, and look for suspicious signals like very short sessions or traffic from data centers. Keep a report of invalid clicks for refund claims.
What should I do before comparing conversion rates across languages?
Make sure every language has the same conversion definition, the same page coverage, and the same time period. Then compare rates, not totals.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.