Toolsy

URL slug generator

Turn a title into a clean URL — including titles that are not in Latin script.

Runs entirely in your browser. Nothing you paste is uploaded or stored.

Separator
Rules
Slug Type a title on the left.

What this tool does

It converts a human title into the part of the URL that people and crawlers actually read, applying the rules that most content systems get subtly wrong: transliteration for non-Latin scripts, diacritic stripping for accented Latin, controlled truncation that does not cut a word in half, and duplicate detection when you process a batch.

Why the slug is worth a minute of attention

It is the one piece of a URL a person reads before deciding to click. In a search result the URL sits above the title, and a slug full of numbers, dates or half-words reads as an automated page.

It is also permanent in a way the title is not. You can rewrite a title fifty times at no cost. Change the slug after the page has been indexed and you either set up a redirect or throw away whatever the old URL had earned.

Keep the shape stable. Decide once whether dates, categories or product IDs belong in the URL. A site where some slugs carry a date and some do not is a site where nobody can guess a URL, including you.

Trim, but not to nothing. Sixty characters is a reasonable ceiling. Three words is usually too few to be unique across a growing site — that is how you end up with duplicates and numbered suffixes.

Questions

Hyphens or underscores?

Hyphens. Google has said for years that it treats a hyphen as a word separator and an underscore as a joiner, which means blue_widget reads as a single token while blue-widget reads as two words. Underscores are only worth using when an existing system forces them.

Should I remove small words like "the" and "of"?

Usually yes for long titles, because the slug gets shorter without losing meaning. But do not strip them when they change the sense — "state of the art" and "state art" are not the same phrase, and the slug is the one part of the URL a human reads.

How does it handle Russian or Ukrainian titles?

With an explicit transliteration table, because Cyrillic has no Unicode decomposition to Latin the way accented Latin letters do. Accented Latin — é, ñ, ç — is handled separately by stripping the diacritic.

Why do I get "ae" instead of "a" for German umlauts?

Only if you switch on German style. German convention expands ä to ae and ß to ss, while the default rule would give a and ss respectively. Both are used in practice; the toggle exists because it depends on the audience.

What happens if two titles produce the same slug?

In bulk mode the tool flags them. Left alone, most CMSs will silently append a number, which is how you end up with /pricing-2 competing against /pricing in search.

Last updated 19 Aug 2026