qTranslate X Cleanup and WPML Import


This plugin can either cleanup the qTranslate X meta-HTML tags from your site and leave just one ‘clean’ language, or migrate all languages to WPML’s format.

Very important: This plugin will modify the entire content of your database. You must backup your database before attempting to use it.

For complete documentation, please refer to the qTranslate uninstall and WPML importer documentation.

qTranslate X uninstall and cleanup mode

Must-read: All the issues mentioned in the reviews are solved. We are happy to announce the reintroduction of the clean-up mode with plugin version 2.0

This mode is intended if you just want to keep one language in your site and you want to clean up the language meta-tags that qTranslate added. For this mode, you don’t need WPML.


  1. Save all qTranslate X settings
  2. Go to the Plugins admin page and de-activate qTranslate X
  3. Install & activate QT Importer
  4. Go to Options -> QT Importer, select language to keep and click Start.

Migrate all languages from qTranslate X to WPML

In this mode, the QT import plugin will convert the language information from qTranslate’s language tags format to WPML’s post-per-language format. For this to work, you must have WPML active in the site (but not necessarily configured).


  1. Save all qTranslate settings
  2. Go to the Plugins admin page and de-activate qTranslate X
  3. Have WPML activated, but not yet configured (just activated)
  4. Install & activate QT Importer
  5. Go to Options -> QT Importer and click Start
  6. Add redirects from old URLs to new URLs

The import runs in small batches so it doesn’t have timeout issues with large databases. You can run it on sites of any size.

During the import process, the plugin generates a set of URL redirect rules. These rules tell visitors and search engines that the URLs in your site have changed (from qTranslate’s format to WPML’s format). When the import completes, you’ll be able to export these rules either as rewrite directives for your .htaccess file or as a PHP file to add to the theme.

You can skip the redirect rules, but then, incoming links to internal pages may lead to 404 pages.

The import tool converts posts, meta data and taxonomy. We tried to take every possible scenario in mind, but there’s no alternative to manual testing. Please consider spending time reviewing the final result and possible doing some last touch-ups before relaunching the site with WPML.


  • Import screen


Upload the plugin to your blog, activate it.


Which version of WPML can I use this import with?

It’s been tested on WPML 3.5.3 and above. Previous versions might work, but might have unpredictable behavior.

Do I have to get WPML to use this?

This plugin has two modes of operation. Without WPML, it will let you clean the qTranslate X language codes from your content and keep just one language. With WPML, you’ll be able to keep all languages.

How long does the import take?

It should be a few seconds for every 100 posts (depending on your server’s CPU and database access). If the import runs for 10 minutes, it probably means that something is wrong. You should contact us in WPML technical forum and get help.


November 1, 2022 1 reply
Thanks for your plugin, it help me to clean up qtranslate-x tags on all of my posts and custom post types. I found that this plugin does not clean up qtranslate-x tag on WP Navigation ( appearance->menu ), and taxonomy descriptions. It would be nice and more helpful if it can be improved to that direction. Thanks again for the plugin.
May 24, 2019
Plugin seem to do it’s job, but never completes since the browsers gets unresponsive after some minutes of processing. I’m using this plugin on a site with a few thousand posts and pages. Started over a few times but it’s unclear if the plugin starts over or continues the overal process.
September 20, 2018
This must not considered as a plugin, it is a complete destroyer of sites, after the “cleaning” you have no titles, no content, and only in very few pages there are only the languages brackets left… Where did you tried it? i tried it in 2 test sites because i couldn`t dare to use it in a proper site, and i tried it with native wordpress themes. You should be a shame that you still have this killer crap in your repository, remove this immediately. Everybody keep away, don`t even bother to download it!
July 23, 2018
It does’nt translate all the medias, so half of yours posts will be without images or videos in the second language. Besides, on certain posts it removes totally what’s before the more link. In qtranslate you don’t need to translate the categories so after using the plugin, you will have to translate some taxonomies and then you will need to set the categories for the posts in second language. So if you have only a couple of posts go for it, if you have hundreds and hundreds posts, pick a translation system at the beginnig.
Read all 26 reviews

Contributors & Developers

“qTranslate X Cleanup and WPML Import” is open source software. The following people have contributed to this plugin.




  • Add a security check to the cleanup process.
  • Fix importing posts when QTranslate language code is uppercase.
  • Fix importing posts with a title that is 3 characters long.


  • Bump tested WordPress version.


  • Fixed the display of the notice to disable qTranslate before the import process.
  • Moved scripts into separate directory.
  • Updated documentation link.
  • Fixed not created htaccess redirects.


  • Fixed PHP Fatal error: Uncaught ArgumentCountError when importing taxonomy terms ( wpmlbridge-198 )


  • fixed readme file


  • cleanup mode reintroduction, you can use this plugin again to clean posts after disabling qTranslate plugin (wpmlbridge-189)


  • fixed issue when all posts are bing imported to default language (wpmlbridge-188)

  • added information about WP tested version


  • added support for Greek language import (wpmlbridge-184)


  • Fixed accidental cutting last three letters from titles if the titles are not translated (wpmlbridge-180)


  • Fixed migration when qTranslate uses default url structure (wpmlbridge-178)

  • Fixed the issue with import containing tags (wpmlbridge-172)


  • Fixed the issue with import containing tags (wpmlbridge-172)


  • Fixed PHP warning about invalid argument for join() (wpmlbridge-153)


  • Fixed issues with empty language names (wpmlbridge-146)
  • More descriptive instructions how to update qTranslate settings before migration (wpmlbridge-145)


  • Fixed warnings (wpmlbridge-139)


  • Better handling uppercased language codes (wpmlbridge-136)
  • Handling empty titles (wpmlbridge-138)
  • Fixed missing language information about primary language (wpmlbridge-137)
  • Removed notices during metadata import (wpmlbridge-139)


  • Fixed issue with uppercased language codes (wpmlbridge-103)


  • Added support for legacy qTranslate (without X) syntax


  • Changed notice to report issues in our forum


  • Added notice to report any issue to our forum


  • Plugin updated to be compatible with WPML 3.5 and newer


  • qTranslate name updated to qTranslate X to avoid confusions (old qTranslate, without X is not supported)


  • Tested with WP 4.6 and 4.7-nightly
  • Updated to use current WPML functions (as in WPML


  • Tested with WP 4.1
  • Changed title format to “%Original title% (%lang_code%)” if title not translate
  • Bug fix: terms not synchronized when used uppercase codes in qTranslate X
  • Bug fix: translated posts not imported if title not translated


  • Tested with WP 4.0
  • Added dependency for disable qTranslate X before import to WPML
  • Added compatibility with WPML 3.1.8.*
  • Bug fix: convert language codes from uppercase to lowercase


  • Tested with WP 3.9.1
  • Feature: using batches for taxonomies
  • Bug fix: import custom post types
  • Bug fix: copy content/title/excerpt to default language if translations don’t exists
  • Added “No” and “cz” codes to language mapping


  • Bug fix: correct language mapping for Hebrew.


  • Bug fixes: contents not being visible after import in some circumstances and others.


  • Bug fixes


  • Adds all custom fields to posts. If they have no translation, they are added to posts in all languages.
  • Fixes cases where the importer was stuck.


  • More bug fixes: importing terms, handling posts without titles, posts without translation in the default language and more


  • Initial release