Skip to content
GPLWP Guides

How to export and import translations in WordPress

Multilingual Time About 45 minutes, plus translation time 6 steps Updated 17 Sep 2026

MULTILINGUAL
The short answer

For translation jobs, WPML can export XLIFF files and import the completed translations. For strings, use PO files. Moving posts, custom post types, taxonomies, and their language links between sites needs a WPML-aware import workflow because the standard WordPress importer does not preserve translation relationships.

The route
  1. 01Decide what you are moving
  2. 02Prepare both WordPress sites
  3. 03Use the built-in file workflow
  4. 04Export multilingual site content
  5. 05Import and connect translations
  6. 06Check the result, then use the fast way

What you need

  • WPML configured with the source and target languages
  • Administrator or Translation Manager access
  • A full backup of both WordPress sites
  • A CAT tool or text editor if translators will work outside WordPress

Decide what you are moving

Separate the job into content and strings. Posts, pages, products, custom post types, and taxonomies are handled as multilingual content. Theme labels, plugin text, widget titles, and similar interface text are handled through String Translation.

If you are only sending translation work to a translator, the built-in XLIFF workflow is usually enough. If you are moving existing multilingual content between WordPress sites, use a multilingual import workflow rather than relying on the standard WordPress importer.

Prepare both WordPress sites

Back up the source and destination sites before exporting or importing anything. On the destination site, configure WPML and create every language that will be imported under WPML > Settings > Languages.

Make sure the relevant post types and taxonomies are translatable. Custom post types and custom taxonomies often default to not translatable, so check Post Types Translation and Taxonomy Translation before looking for missing content.

Use the built-in file workflow

For posts and pages sent to an external translator, open WPML > Translations, select the translation jobs, choose an XLIFF export action, and download the files. The translator can edit them in a compatible CAT tool and return individual XLIFF files or a ZIP. Upload completed files from the Import / Export XLIFF section on the same screen.

For theme and plugin strings, register the strings first, then use the PO import/export utility in the Strings area. Importing the translated PO file merges its translations into the string table. This route is fine for translation hand-offs, but it does not copy a complete multilingual site to another WordPress installation.

Export multilingual site content

For a site-to-site move, export the content with a supported WordPress export tool. A WPML-aware workflow adds language information to the export so the destination can identify each item and connect it to its source translation.

If your export tool is not supported, prepare the file with the required language data: a shared translation-group value, the row language code, and the source-language code on translation rows. Do not guess these values or omit them; otherwise imported items can be placed in one language or remain unlinked.

Import and connect translations

Import the posts, pages, products, custom post types, and taxonomies into the destination site using your chosen importer. Then run the WPML import process so it assigns languages and connects translations. Until that step is complete, imported content can appear under the default language and mixed languages may show on the front end.

For WooCommerce products, install the WPML WooCommerce integration as well. Keep imported content unpublished or otherwise hidden until the language assignment and translation-linking process has finished.

Check the result, then use the fast way

Review the front end and the WordPress admin in every language. Check translated URLs, menus, custom fields, taxonomy terms, product variations, SEO text, and strings from themes or plugins. A custom post type that is missing usually needs to be set to translatable; missing interface text may need registration in String Translation.

For repeated or large migrations, WPML Export and Import is the faster route. It adds language information to supported exports, connects translated content after import, supports custom post types and taxonomies, and can process multilingual content in batches. It is useful when the standard XLIFF or PO workflow is too narrow for a complete site-to-site transfer.

The fast route

Let WPML Export and Import do it

Batch export and import for WPML translations, custom post types, and taxonomies across multilingual sites.

Get WPML Export and Import

Sources

  1. wpml.org /documentation/translating-your-contents/using-desktop-cat-t…
  2. wpml.org /documentation/translating-your-contents/strings/?utm_source…
  3. wpml.org /documentation/translating-your-contents/multilingual-conten…
  4. wpml.org /documentation/related-projects/wpml-export-and-import/manag…
  5. wpml.org /documentation/related-projects/wpml-export-and-import/?utm_…

Questions

Can I export WordPress translations without a plugin?
You can export translation files manually only when your multilingual system already provides that function. WPML includes XLIFF export and import for translation jobs and PO export and import for strings, but WordPress itself does not preserve WPML language links when you move multilingual content between sites. A complete site-to-site transfer therefore needs a multilingual import process.
What is the difference between XLIFF and PO files?
XLIFF files are used for translation jobs such as posts and pages sent to a translator or CAT tool. PO files are used mainly for interface strings from themes, plugins, widgets, and site settings. Exporting the wrong file type is a common mistake: a PO file will not carry a complete post translation workflow, and an XLIFF file is not the normal format for String Translation.
Why are imported translations showing in the wrong language?
Imported translations show in the wrong language when the importer has moved the content but has not assigned language data or connected each translation to its source. Keep the imported content hidden, configure the destination languages first, and run the WPML language-assignment and linking process before publishing. Also check that custom post types and taxonomies are set as translatable.
Why is my custom post type missing from the translation list?
A custom post type is usually missing because WPML has it set to Not translatable. Go to WPML settings, open Post Types Translation, select the required translatable option, and save. Check Taxonomy Translation for related custom terms. If the type still lacks translatable fields, its theme or plugin may need compatible WPML configuration.