Elementor Multilingual Sites: Search & Replace Tips for WPML & Polylang

Introduction
Running a multilingual Elementor site with WPML or Polylang adds a layer most search-and-replace guides don't cover: every translation is its own separate copy of your Elementor content, stored as its own post with its own wp_postmeta entry. Update your English homepage and the French, German, and Spanish versions won't change — each one needs to be caught individually, or your translations drift out of sync.
This guide covers how to search and replace across every language version of your site without missing any.
What you'll learn:
- How WPML and Polylang store translated Elementor content
- Updating text one language at a time
- Catching all languages in a single bulk pass
- Avoiding a common mistake that breaks translation links
How Translations Are Stored
Both WPML and Polylang create a separate WordPress post for each language version of a page, linked together behind the scenes through their own translation tables. Each of those posts has its own independent Elementor data in wp_postmeta — there's no shared source that automatically propagates a change across languages.
The Problem: A search/replace that only targets one post ID, or that assumes there's a single copy of your content, will only fix the language you're currently looking at.
Method 1: Update Each Translation Manually
When to Use This Method
- You have 2-3 languages and a small change
- The wording needs to genuinely differ per language (not just a straight text swap)
Step-by-Step Process
- Use the language switcher in the WordPress admin (WPML) or the language column (Polylang) to open each translation
- Edit the text in Elementor for that specific language version
- Repeat for every language
✅ Pros: Full control over the correct wording per language, no risk of breaking translation links.
❌ Cons: Multiplies your workload by the number of languages you support.
Method 2: Bulk Replace Across All Language Posts
When to Use This Method
- The same string (a brand name, a URL, a phone number) appears identically across every translation
- You support several languages and manual editing isn't practical
Step-by-Step Process
- Back up your database
- Install Better Search Replace
- Search for the exact string across
wp_postmeta— this naturally catches every translated post since each is its own row - Dry run, confirm the match count roughly matches (languages × instances), then run for real
- Spot-check at least one page in each language
✅ Pros: One pass covers every language automatically, since translations are just separate rows in the same table.
❌ Cons: Only works when the replacement text is identical across languages — not suitable for content that needs different wording per language.
Method 3: Search & Replace Inside the Elementor Editor
Search & Replace for Elementor works on whichever translated post you're currently viewing in the editor, the same way it works on any other page — a practical middle ground when you want to review each language's wording individually without a full manual edit.
✅ Pros: Visual preview per language, safe for multilingual sites since it doesn't touch translation linking.
❌ Cons: Still needs to be run once per language, like Method 1, just faster per instance.
A Mistake to Avoid
Never run a database search/replace against WPML's or Polylang's own translation-linking tables (like icl_translations) unless you know exactly what you're changing. Stick to wp_postmeta for content text, and leave the translation relationship tables alone.
Frequently Asked Questions
Q: Will a bulk search/replace break the link between translated pages? A: Not if you only replace text content in wp_postmeta — translation relationships are stored separately and aren't affected by a text-only change.
Q: How do I know how many translations exist for a page? A: Check the language switcher in the post editor — WPML and Polylang both show which languages have a translation and which don't.
Q: Can I use this for untranslated fallback content? A: If a language falls back to the default language's content rather than having its own post, updating the default language post covers it.
Q: Does this affect WPML's String Translation module? A: No, that module stores theme and plugin strings separately from post content — it needs to be updated through its own interface.
Q: Should I test on one language before running it on all of them? A: Yes — verify your search/replace on a single translated page first, then scale up to the full bulk run.
For the general in-editor method, see how to do search and replace in Elementor.
New to search and replace in Elementor generally? Start with how to search and replace text in Elementor.
Managing a multilingual site? Tell us which plugin you use in the comments!