Plugin profile · Languages and translation Hidden with WP Masquerade Pro

Cyr-To-Lat: review, strengths and recommended settings

Cyr-To-Lat turns Cyrillic, Greek, Georgian or Armenian letters in slugs and file names into Latin letters, for readable addresses. Our take on this free plugin, its per-language tables, converting old slugs without breaking your links and the settings worth checking.

The essentials

  • Best for Russian, Ukrainian or Bulgarian sites that want readable addresses in Latin letters.
  • Main caveat: converting old slugs cannot be undone and leaves category addresses without redirects.
  • Free, with no paid version: converter, per-language tables and WooCommerce support included.

Key facts

Category
Languages and translation
Vendor
KAGG Design
Price
Free Free, with no paid version
Active installations
300,000+
WordPress.org rating
4.7/5 (98 reviews)
Last updated
(Version 7.2.0)
Requirements
WordPress 6.0+, PHP 7.4+
Analyze a site

Figures: WordPress.org

Cyr-To-Lat: review, strengths and recommended settings

What Cyr-To-Lat does on your site

Out of the box, WordPress keeps Cyrillic, Greek or Georgian letters in slugs: a post titled "Пиво" gets an encoded address like %D0%9F%D0%B8..., which turns unreadable as soon as it is pasted into an email or a spreadsheet. Cyr-To-Lat transliterates those characters into Latin letters when you save: the same post becomes /pivo/. The plugin works on the slugs of posts, pages, custom post types and terms (categories, tags, taxonomies), and on the names of files uploaded to the Media Library.

Conversion follows a mapping table picked from the site language: a default table (ISO 9), also used for Russian, plus dedicated tables for Belarusian, Ukrainian, Bulgarian, Macedonian, Serbian, Greek, Armenian, Georgian, Kazakh, Hebrew and Chinese. Every table can be edited in the admin, pair by pair. On a multilingual site run with Polylang or WPML, the plugin uses the language of each piece of content: "Пиво" becomes pivo in Russian and pyvo in Ukrainian. A converter also handles slugs that already exist, in a background process or with the wp cyr2lat regenerate command in WP-CLI.

Cyr-To-Lat is free, with no paid version. It is published on wordpress.org by Sergey Biryukov, Mikhail Kobzarev and Igor Gergel, and its official page is hosted by KAGG Design. The plugin also handles WooCommerce products, categories and attributes, and WPML lists it as officially compatible.

Diagram: Cyr-To-Lat works on visitors and bots, wordpress, database and files. Public traces: no known public trace.

Which sites Cyr-To-Lat is a good fit for

The plugin pays off as soon as your titles use a non-Latin alphabet:

  • Blogs and business sites in Russian, Ukrainian, Bulgarian or Serbian: short, readable addresses that are easy to share, without typing every slug by hand.
  • WooCommerce stores in Cyrillic: products, their categories and new attributes get Latin slugs.
  • Multilingual sites: an English and a Ukrainian version, for example, each transliterated with its own language table.
  • Media libraries full of files with Cyrillic names: uploaded files get a Latin name that is easier to handle outside WordPress.

It is not useful on a site written only in English or French: WordPress already strips accents from slugs. And if your site has been indexed for years with Cyrillic addresses, converting the old slugs needs planning: without redirects, you would lose inbound links.

Cyr-To-Lat strengths and limitations

Strengths

  • Fully editable table. You add, remove or change pairs such as "Я" to "Ya", or even a whole word, without touching code.
  • One table per language. With Polylang or WPML, each piece of content is transliterated according to its own language.
  • Converts existing content. The converter processes old slugs in the background or through WP-CLI, and keeps each post's old slug for WordPress's own redirect.
  • Free and maintained. No paid version, regular updates and detailed WooCommerce support.

Limitations

  • Conversion cannot be undone. The plugin warns you itself: back up the database, and your media too if you convert attachments.
  • No redirects for terms. Old addresses of converted categories and tags are not redirected by the plugin.
  • Existing WooCommerce attributes stay as they are. Attributes created before version 7.0 keep their slugs, as there is no migration tool.
  • English-only screens in many languages. The settings are not translated into French, German, Italian or Brazilian Portuguese.

The settings we recommend for Cyr-To-Lat

The settings live under Settings > Cyr To Lat, in two tabs, "Tables" and "Converter". On a new site there is almost nothing to do: transliteration of new content works as soon as the plugin is activated.

SettingRecommended valueWhy
Active table
Settings > Cyr To Lat > "Tables"
The one marked "(current)", which should match the site languageThe table follows the site language; without a dedicated table, the default ISO 9 table applies.
Table pairs
Same tab
Adjust before you publishA change only affects new slugs: settle your choices ("й", "щ"...) before writing.
"Post Types"
Settings > Cyr To Lat > "Converter"
Defaults (posts, pages, menu items)Check "attachment" only with a copy of your media: files are renamed on disk.
"Post Statuses"
Same tab
Defaults (published, scheduled, private)These items already have an address; drafts will get their slug when published.
"Convert Existing Slugs"
Same tab
Only after a database backupThe operation cannot be undone and changes addresses that are already indexed.
Redirects for pages and terms
Redirect plugin
One redirect per important old addressWordPress redirects old post slugs, but not those of hierarchical pages or categories.
Thumbnail regeneration
WP-CLI
wp media regenerate --skip-plugins=cyr2latThe developers note that regenerating with the plugin active can break image links in older posts.
  • Create a draft with a Cyrillic title: the slug suggested under the title should be in Latin letters.
  • Before converting existing content, take a full site backup and note a few addresses to test.
  • After the conversion, open the old address of a post: it should send you to the new one. For pages and categories, add 301 redirects, for example with Redirection.
  • On a large database, use wp cyr2lat regenerate --post_type=post,page rather than the admin button.

Cyr-To-Lat security: a clean record so far

As of this review, the Patchstack database lists no published vulnerability for Cyr-To-Lat. Version 7.1.0 hardened filename transliteration, multisite settings and data validation in the admin. Do not confuse it with Cyr to Lat Enhanced, a different plugin with a similar name, for which an SQL injection usable by accounts able to create terms was made public in 2023.

The useful step is the same as for any plugin: turn on automatic updates for Cyr-To-Lat under Plugins, after reading our guide to automatic plugin updates. WP Masquerade Pro replaces the plugin folder (cyr2lat) with an alias in file addresses: that makes it harder for bots to spot, without replacing updates.

What WP Masquerade hides for Cyr-To-Lat

Pro Handled by WP Masquerade Pro only

The free version does not know the traces specific to Cyr-To-Lat: without Pro, only generator tags are removed, as for any plugin.

Free version

Handled by WP Masquerade Pro only

With Pro

Nothing more

Still visible

No known trace

Hide Cyr-To-Lat with ProCompare free and ProSee the 250 camouflaged plugins

Cyr-To-Lat FAQ

Does Cyr-To-Lat change the addresses of my old posts?

Not on activation: only new content and content you save get a Latin slug. Old slugs only change if you run the converter or the WP-CLI command.

Is there a paid version of Cyr-To-Lat?

No. Every feature, including the converter and support for WooCommerce, Polylang and WPML, is in the free plugin on wordpress.org.

Can I force my own transliteration for a word?

Yes. Add the pair in the "Tables" tab, for example "Пиво" to "Beer". Developers can also use the ctl_table and ctl_pre_sanitize_title filters.

My site is in Russian, but there is no "Russian" table. Is that normal?

Yes: Russian uses the default table, ISO 9, like any language without a dedicated table. You can edit it in the "Tables" tab like the others.

All camouflaged plugins

WordPress security, without the noise

One e-mail when something matters: new attacks seen in the wild, plugin updates and practical guides. No spam, unsubscribe in one click.

Start free, go Pro when you’re ready

The free version already hides WordPress and moves the login page. Pro adds aliases, two-factor authentication and monitoring.