Skip to content
Server-sideDeleted in 30 minutes

URL Slug Generator

Paste a title and get a clean, lowercase, hyphenated URL slug — accents folded to plain letters, punctuation removed, and length trimmed at a word boundary rather than mid-word. Paste a whole list and every line is converted at once, which is what you want when you are planning a site rather than a single page.

Use this without the search next time. Prathom Workbench puts Prathom's tools in your toolbar.

Add to Chrome — free
Input (one per line)
Slugs

What it does

  • Accent folding via Unicode decomposition
  • Optional German umlaut expansion
  • Length limiting that truncates at word boundaries
  • Batch conversion of one title per line

How to use Slug Generator

  1. 1

    Paste one or more titles

    Put one title per line. Each line becomes its own slug, so a content plan pasted straight out of a spreadsheet converts in a single step.

  2. 2

    Choose a separator and length

    Hyphens are the right default for the web. Set a maximum length if your CMS or your own house style caps it; zero disables the limit.

  3. 3

    Decide about stop words

    Leave this off unless you have a reason. It shortens slugs but can change what the title means.

  4. 4

    Copy the result

    Copy the whole block out. The stats show how many slugs were produced and how long the longest one is.

How it works

The conversion is a short pipeline, and the order of the steps matters.

First, optional lowercasing. Then German umlaut expansion, if enabled — this has to happen before the next step, because once a diaeresis has been stripped the information needed to write "ue" is gone.

Then a small table of hard cases: ß, æ, œ, ø, ł, đ and a few others. These cannot be handled automatically because they are not an ASCII letter with a mark attached; they are separate letters in their own right, and mapping them takes a human decision.

Then the general case: the string is normalized to NFD, which decomposes a character like é into a plain e followed by a combining acute accent. Every character in Unicode's Mark category is then deleted, leaving the base letters behind. One rule handles the large majority of Latin diacritics without a per-letter table.

Finally, every run of characters that is neither a letter nor a number becomes a single separator, repeated separators collapse, and — if a maximum length is set — the result is cut at the last separator before the limit rather than mid-word.

Why the truncation rule matters

Cutting a slug at a fixed character count is the kind of shortcut that looks fine in testing and produces embarrassing URLs in production. A title truncated at 60 characters might end /how-to-build-a-community-around-your-newslett, which is worse than the shorter, whole-word version.

Trimming back to the last separator costs a few characters and always yields something that reads as finished. Where no separator exists inside the limit — a single very long word — the hard cut is used, because there is no better option available.

When you'd use this

The single-title case is the obvious one: you have a headline, you need the URL.

The batch case is where it earns its place. Planning a content cluster usually starts as a list of thirty or forty working titles in a spreadsheet. Converting those to slugs one at a time is tedious enough that people skip it, publish with whatever their CMS auto-generated, and end up with a site whose URLs are inconsistent — some with stop words, some without, some truncated, some enormous. Converting the whole column in one paste makes consistency the easy option rather than the disciplined one.

A note on permanence

A slug is the most permanent decision in a piece of content. The title can be rewritten, the copy can be updated, the images can be replaced — none of that disturbs anything pointing at the page. The slug cannot be changed without breaking every existing link to it.

That is worth thirty seconds of thought before publishing, and it is the real argument for generating slugs deliberately rather than accepting whatever a CMS derives from the first draft of a headline.

Examples

A title with accents

How to Make Crème Brûlée at Home
how-to-make-creme-brulee-at-home

The accented letters fold to their plain equivalents rather than being deleted, so the slug stays readable and still matches how people type the phrase into a search box. Deleting them instead would produce "crme-brle", which is both ugly and unsearchable.

German, with and without umlaut expansion

Straßenbahn für Anfänger
Umlauts expanded: strassenbahn-fuer-anfaenger Umlauts folded: strassenbahn-fur-anfanger

German convention writes ü as ue when the umlaut is unavailable, which is why the option exists. The folded version is not merely less idiomatic — "fur" is a different word from "für", so the second slug reads as nonsense to a German speaker while the first reads correctly.

Frequently asked questions

Why do accented letters become plain letters instead of being removed?

Because a slug should stay recognizable. Technically a modern browser can handle a URL containing é, but it gets percent-encoded into something like %C3%A9 the moment it is copied or logged, which makes links unreadable and awkward to share. Folding to a plain e keeps the URL both valid and legible everywhere.

Should I remove stop words from my slugs?

Usually not, and it is off by default. The shortening is real but small, and the risk is that meaning changes: strip "not" from a title and the slug now says the opposite of the article. It is worth turning on for long, keyword-stuffed titles where the small words genuinely carry nothing, and worth leaving alone otherwise.

What length should a slug be?

Short enough to read in a search result, which in practice means roughly three to six words. The default cap here is 60 characters. There is no technical limit anywhere near that, and length is not a direct ranking factor — the reason to keep slugs short is that people scan and share them, and a slug that wraps across two lines does neither well.

Can I change a slug after publishing?

You can, but treat it as a one-way decision. The old URL immediately breaks for anyone who bookmarked or linked to it, and any ranking that page had accumulated is attached to the old address. If you must change one, set up a permanent 301 redirect from the old slug to the new one at the same time, not afterwards.

Does it handle non-Latin scripts?

Not by transliterating them. Cyrillic, Greek, Arabic, and CJK text passes through as-is rather than being converted to Latin letters, because a correct transliteration is language-specific and a wrong one is worse than none. For those languages, either write the slug by hand or keep the native script, which search engines handle fine.