Checklist on clipboard representing website migration steps

How to Migrate from WPML to GPTranslate Without Losing Your Translations

Why People Leave WPML (And Why It Makes Sense)

WPML is one of the oldest multilingual WordPress plugins — and one of the most expensive. At $99–$199 per year depending on the tier, it adds up fast, especially for agencies managing multiple sites or store owners who just need solid translations without enterprise-level complexity. The most common reasons users migrate away from WPML:

  • Cost. WPML renews annually, and the Multilingual CMS tier (required for WooCommerce and full plugin compatibility) runs $199/year. For sites with tight budgets, that’s a significant recurring cost.
  • Translation management overhead. WPML’s translation workflow requires manual management of translation jobs, string packages, and the WPML Translation Editor. For sites relying on AI translation, this adds friction that automated tools can eliminate.
  • Lock-in. WPML stores translations in custom database tables that aren’t natively portable, making switching feel daunting. It doesn’t have to be.

The good news: migrating from WPML to GPTranslate is a documented, tested process. With the right preparation, you can migrate a site translated in 22 languages without manually re-translating a single page.

Gray laptop computer, representing a comparison of multilingual WordPress plugins

Before You Start: What You Need

Before touching anything on your live site, make sure you have:

  1. A staging site (WPStaging, Duplicator, or your host’s staging tool). Running the migration on staging first is mandatory for large sites. Mistakes on a 22-language site are expensive to reverse.
  2. GPTranslate Pro installed and activated. You’ll specifically need the WP Export add-on, which handles the XLIFF/CSV import of existing translations.
  3. Your DeepL Pro API key (if you’re migrating to DeepL as your translation engine). Get it from deepl.com/pro-api — it starts with sk- (free) or your account’s paid API key.
  4. A full database backup. Export via phpMyAdmin or your host’s backup tool before you begin.
  5. The WPML Translation Export. From WPML → Translation Management → Export, you can export all existing translations as XLIFF files per language pair.

Step 1: Export Your Existing Translations from WPML

WPML stores translations in its own database tables (icl_translations, icl_string_translations). To bring that content into GPTranslate, you export it in a standard format that GPTranslate’s WP Export add-on can read.

Via XLIFF export (recommended for posts and pages):

  1. Go to WPML → Translation Management.
  2. Select all your posts, pages, and custom post types.
  3. Click Send to Translation, select Export as XLIFF.
  4. Download the XLIFF files per language — one bundle per target language.

Via CSV export (recommended for WooCommerce product data and strings):

  1. Use WPML’s String Translation module to export translated strings as CSV.
  2. For WooCommerce, use the WooCommerce Multilingual export under WooCommerce Multilingual → Products → Export.

For a 22-language site, you’ll end up with 22 XLIFF bundles plus any CSV exports. Keep them organized by language code (e.g., xliff_fr.zip, xliff_de.zip). This is the most time-consuming step, but it’s one-time work.

Step 2: Install and Configure GPTranslate (Before Removing WPML)

Do not deactivate WPML yet. Install GPTranslate Pro alongside WPML first — they can coexist temporarily, and this lets you verify GPTranslate is configured correctly before the switchover.

  1. Upload and activate GPTranslate Pro from your JExtensions Store account.
  2. Go to GPTranslate → Settings → Languages and add all 22 language codes that were active in WPML. Use the same ISO codes (WPML and GPTranslate both use standard ISO 639-1 codes).
  3. Under Settings → AI Models, select DeepL and paste your DeepL Pro API key. GPTranslate will validate the key immediately — a green check confirms it’s working.
  4. Set your source language (typically English) and configure slug translation settings. GPTranslate can translate URL slugs into each target language automatically, generating clean native-language URLs.
  5. Under Settings → Routing, confirm the language switcher placement. GPTranslate uses a subdirectory routing model (/fr/, /de/, /ja/), the same format used by most WPML configurations.

Step 3: Import Your Existing Translations into GPTranslate

With GPTranslate Pro active and the WP Export add-on installed:

  1. Go to GPTranslate → WP Export → Import.
  2. Select the import format: XLIFF for post/page content, CSV for strings.
  3. Upload the XLIFF bundle for the first language (e.g., French). The importer matches translations to existing posts by post ID and slug.
  4. Review the import preview — it shows which posts were matched, which are new, and which have conflicts (usually posts deleted from WPML but still in the export).
  5. Confirm the import. Repeat for each of the 22 languages.

After importing, GPTranslate stores translations directly in the WordPress post table as separate post entries per language (similar to how Polylang works), each with its own URL. This is the architecture that makes GEO citations possible — translated content lives at its own indexed URL, not inside a database table invisible to crawlers.

Tip for large imports: If you’re importing 22 languages across thousands of posts, run imports in batches of 3–4 languages at a time, clearing the object cache between batches with wp cache flush (WP-CLI) or via a cache management plugin. This prevents memory exhaustion on shared hosting.

Step 4: Verify, Then Remove WPML

Before uninstalling WPML, do a manual spot-check:

  • Browse 5–10 translated pages in different languages. Confirm the content matches what was in WPML.
  • Check product pages in WooCommerce for 2–3 languages. Verify attributes, descriptions, and checkout strings are translated.
  • Run the URL Inspection tool in Google Search Console on 3–4 translated pages. Confirm they return HTTP 200 and have the correct hreflang tags.
  • Test the language switcher in the front end — it should cycle through all 22 languages without errors.

Only after this verification: go to Plugins → Installed Plugins, deactivate and delete WPML Multilingual CMS and all associated WPML plugins (WPML String Translation, WPML Translation Management, WooCommerce Multilingual, etc.). WPML’s database tables remain but are now inactive — you can remove them manually later with a SQL query if you want to clean up, but they don’t cause problems left in place.

Step 5: Set Up DeepL Pro for Ongoing Translation

If you migrated existing translations from WPML, your imported content doesn’t need to be re-translated — GPTranslate imports the human-reviewed (or AI-reviewed) translations as-is. DeepL Pro kicks in for new content you publish going forward, and for any posts you mark for re-translation.

GPTranslate’s AI Agent Crawler™ handles ongoing translation automatically: when you publish a new English post, the crawler detects it and translates it into all active languages using DeepL Pro (or whatever model you’ve set as default). You can also set per-category model preferences — for example, use DeepL for product descriptions and Claude for technical documentation.

DeepL Pro vs DeepL Free via GPTranslate: The Free tier works for testing but has character limits and is not suitable for production sites with frequent content updates. DeepL Pro API (starting at ~€5.99/month for the Starter plan) has no hard character cap per month on pay-as-you-go billing — you pay per character translated. For a site updating a few dozen posts per month across 22 languages, the cost typically runs €2–€8/month in API charges.

Post-Migration SEO Checklist

After the migration is live on your production site:

  1. Submit your sitemap to Google. GPTranslate generates a multilingual sitemap at /wp-json/gptranslate/v1/sitemap.xml. Submit it in Google Search Console under Sitemaps.
  2. Inspect 5–10 translated URLs in GSC. Confirm each returns PASS and that Google’s selected canonical matches your URL (not a redirect or the English version).
  3. Check hreflang in a browser. View source on any translated page and search for hreflang. You should see one tag per active language, all pointing to the correct language-prefixed URLs.
  4. Set up 301 redirects if your WPML configuration used a different URL structure (e.g., WPML domains or parameters) compared to GPTranslate’s subdirectory model. Most WPML installs use subdirectories already, so redirects often aren’t needed.
  5. Monitor impressions for 4–6 weeks in GSC. Translated pages that were previously indexed under WPML should retain their search presence — Google treats the same-URL content as an update, not a new page.

What About Orphaned Pages?

Orphaned pages — translated pages that exist in WPML but have no matching source post in WordPress — are the main risk of a migration. They arise when source-language posts are deleted but their translations were never cleaned up in WPML.

GPTranslate’s import process flags these during the preview step: any XLIFF entry that can’t be matched to an existing post ID or slug shows as “unmatched.” You have two options: skip them (they won’t be imported) or create stub posts to match against, then import. For most migrations, skipping is the right call — orphaned pages from WPML were usually not contributing search traffic.

To check whether any orphaned pages in WPML were actually receiving search traffic before you skip them, run a quick GSC export filtered by language (filter by country or URL prefix) and sort by impressions descending. Any orphaned translated URL with meaningful impressions deserves a stub post and import rather than a skip.

Frequently Asked Questions

Can I migrate from WPML to GPTranslate without re-translating everything?

Yes. The XLIFF import process in GPTranslate’s WP Export add-on imports your existing WPML translations verbatim. You only need to re-translate content that wasn’t translated in WPML, or that you decide to update with a new AI model like DeepL Pro.

Does GPTranslate support DeepL Pro natively?

Yes. DeepL Pro API is a first-class translation provider in GPTranslate — no plugin or extension needed beyond the base GPTranslate Pro install. Just paste your DeepL Pro API key in Settings → AI Models.

Will my Google rankings be affected by the migration?

If both WPML and GPTranslate use the same subdirectory URL structure (e.g., /fr/, /de/), Google sees the same URLs with updated content — not a site migration. Rankings typically remain stable. If you’re changing URL structure (e.g., from WPML’s language parameter format ?lang=fr to subdirectories), implement 301 redirects for all translated URLs and submit an updated sitemap.

How long does the migration take for a 22-language site?

On a staging environment, plan for 2–4 hours for the full migration: 30–60 minutes for the XLIFF export from WPML, 60–90 minutes for the GPTranslate import across 22 languages, and 30–60 minutes for verification. The production cutover (deactivating WPML, activating GPTranslate with the imported translations already in place) takes under 5 minutes.

👉 Ready to migrate? Download GPTranslate Pro — the WP Export add-on is included. If you have a specific configuration question, use the contact form on the JExtensions Store support page.

Leave a Comment

Your email address will not be published. Required fields are marked *