Slugify

Turn any title into a clean URL slug, with proper Turkish handling

Runs entirely in your browser. Your data never leaves this device.

Input · one slug per line
Output

How to use it

  1. Paste one or more titles — one per line, one slug per line out.
  2. Pick a separator and decide whether Turkish or German transliteration applies.
  3. Copy the result.

The Turkish i problem

This is the part most slug generators get wrong, and it is worth being precise about.

The usual approach to accents is Unicode normalisation: decompose each character into a base letter plus combining marks (NFD), then delete the marks. It works beautifully for é → e and ñ → n. It fails for Turkish, because Turkish has four distinct letters where other Latin alphabets have two.

İ (capital dotted i, U+0130) decomposes into I plus a combining dot above. Strip the mark and you get I — correct, by luck. But ı (lowercase dotless i, U+0131) does not decompose at all: it is an atomic character with no combining mark to strip. Generic code leaves it as-is, and it then falls foul of the ASCII filter and disappears entirely. A title like Yılın En İyisi becomes yln-en-iyisi — a word silently lost.

Turkish also has the reverse problem in case conversion. Lowercasing I in Turkish gives ı, not i. Any pipeline that lowercases with the invariant culture and then transliterates will produce different results from one that uses the Turkish culture. This tool maps the letters explicitly before any case change, so the outcome does not depend on locale.

The same explicit approach handles German, where the convention is expansion rather than substitution: ä → ae, ö → oe, ü → ue, ß → ss. Note that German and Turkish disagree about ö and ü — hence the separate toggle.

What makes a good slug

Hyphens, not underscores. Google treats a hyphen as a word separator and an underscore as a joiner, so remove-line-breaks is three words and remove_line_breaks risks being read as one.

Lowercase only. The path portion of a URL is case-sensitive. /About and /about are distinct URLs, and serving the same content at both is the simplest way to create duplicate content for yourself.

Short, and front-loaded. The important words go first, because search results truncate. Drop filler — the, a, how-to — unless it carries the search intent.

Stable. Changing a slug breaks every existing link to it. If you must change one, keep the old path working with a 301 redirect; a slug change without a redirect throws away whatever ranking the page had earned.

One slug per line

The input is processed line by line, which makes bulk work practical: paste a list of article titles exported from a CMS and get the full set of slugs in one pass, ready to paste back. The status bar reports the longest result so you can spot the ones that need trimming before they reach production.

Frequently asked questions

Why do Turkish characters need special handling?

Generic Unicode stripping mishandles the dotted and dotless i. Decomposing `İ` yields `I` plus a combining dot, and naive code leaves the dot behind, producing `i̇`. This tool maps Turkish letters explicitly: ç→c, ğ→g, ı→i, İ→I, ö→o, ş→s, ü→u.

Should slugs use hyphens or underscores?

Hyphens. Google has stated it treats hyphens as word separators and underscores as word joiners, so `red-shoes` reads as two words while `red_shoes` may read as one.

How long should a slug be?

Short enough to read in a search result. Under about 60 characters is comfortable; over 75 the tool warns you. Length is not a direct ranking factor, but a truncated URL in the SERP costs clicks.

What happens to apostrophes and ampersands?

Apostrophes are deleted rather than replaced, so `don't` becomes `dont` and not `don-t`. Ampersands become the word `and`, because `&` in a path is legal but confusing.

Are non-Latin alphabets supported?

Cyrillic, Greek, Arabic and CJK text is left untouched rather than mangled — transliterating them well needs language-specific rules this tool does not claim to have. Turn off ASCII only to keep those characters in the slug.

Can I keep uppercase letters?

You can, but do not. URLs are case-sensitive in their path, so `/About` and `/about` are two different pages as far as a crawler is concerned — an easy way to create duplicate content.

Related tools

browse category →

Last updated: