Skip to content

Everything for WordPress, web development — and beyond

Transliterating Cyrillic titles into URL slugs

Transliteration for URLs: Cyrillic titles into slugs

Paste a list of titles and get ready-made slugs using the official Ukrainian transliteration or the scheme used by WordPress plugins. The tool immediately shows collisions: when two different titles produce the same URL.

One per line. Drop a .txt or .csv here — the file is read locally. Percent-encoded strings (%D0%BA%D0%BE%D0%B4) are decoded automatically, so you can paste addresses straight from the browser.
These are four different ways of writing the same letters.
Truncated at a word boundary, not in the middle of a word
Processing гh (KMU-55) or g (Russian, GOST); хkh / h / x; щshch / sch / shh; иy or i. This is exactly why English slugify libraries are unsuitable for Ukrainian: a single table is hard-wired inside them, usually the Russian one, and Ukrainian text ends up transliterated by foreign rules. KMU-55 additionally drops the soft sign and the apostrophe and writes зг as zgh, to keep it apart from ж.
OriginalSlugLength
Paste the headings — one per line.

Your headings never leave your browser — transliteration runs locally, with nothing sent to a server.

Why ordinary transliterators are not suitable for URLs

Ukrainian online transliteration services are made for documents: they render the name «Олександр» as «Oleksandr» and stop there. For a page address that is not enough — you also need lower case, spaces and punctuation replaced by hyphens, trimming on a word boundary and a check for duplicates. The second problem is that English-language slugify libraries do not tell Ukrainian and Russian apart. That matters, because the same Cyrillic letters transliterate differently: Ukrainian «г» is h, Russian is g; Ukrainian «и» is y, Russian is i. A library tuned for Russian turns «Гриби» into «Griby» instead of «Hryby». Third come collisions. If two headings produce the same slug, WordPress silently appends «-2». You only find out when you see a strange address in the search results. The tool highlights such cases in advance. The official Ukrainian transliteration is laid down in Cabinet of Ministers Resolution No. 55 of 27 January 2010. Under it the soft sign and the apostrophe are not rendered at all, and the combination «зг» is rendered as «zgh», to distinguish it from «ж».

Frequently asked questions