Slug Generator

Type a title and get a clean URL slug instantly — accents transliterated, punctuation stripped, optional stopword removal, and a length trim that never cuts mid-word. Paste multiple lines for batch mode. Live, in your browser.

To make a URL slug: type a title below — it’s lowercased, accents are transliterated to plain letters (é→e, ü→u, ß→ss), punctuation becomes hyphens, and runs of hyphens collapse to one. Toggle remove stopwords to drop a, the, of… and set a max length that trims at a word boundary, never mid-word.

Your text never leaves this page — no uploads, no servers, works offline once loaded.

[ Ad slot — replace with AdSense / Ezoic code ]

What makes a good slug

A slug is the human-readable tail of a URL, and good ones share five properties. Lowercase — URL paths can be case-sensitive, so mixed case invites duplicate-URL problems. Hyphen-separated — search engines read hyphens as word boundaries (see the FAQ on underscores). ASCII — accented and non-Latin characters are legal in modern URLs but get percent-encoded when shared (café becomes caf%C3%A9 in many contexts), so transliterating to plain letters keeps links readable everywhere. Meaningful but short — the words a person would use to describe the page, minus the filler; three to six words covers most titles. Stable — a slug is an address, so pick one you won’t want to change; changing it later means redirects.

How transliteration works

Most accented letters decompose in Unicode into a base letter plus a combining accent — é is e + ´ — so the accent can be stripped mechanically (Unicode NFD normalization), leaving the base letter. But a set of letters are their own characters with no decomposition, and each needs an explicit mapping. This tool carries those mappings:

CharacterBecomesNotes
é è ê ë á ü ñ ç …e e e e a u n cAccent stripped via Unicode decomposition
ßssGerman sharp s
æ / ÆaeLigature expanded
œ / ŒoeLigature expanded
ø / ØoNo Unicode decomposition — mapped directly
åaDecomposes normally
đ / Đ, ðdStroke and eth
þ / ÞthThorn
ł / ŁlPolish stroke l
ħ ŧ ŋh t ngStroked/engma forms
&andWritten out rather than dropped
Other scripts (Cyrillic, CJK…)removedHonest limit: no romanization is attempted — see FAQ

Batch mode

Paste multiple lines — one title per line — and the tool switches to batch mode automatically: each line becomes its own slug, listed with its source title, with per-row copy, copy-all, and a .txt download. Typical use: converting a content calendar’s worth of headlines, generating slugs for a CMS import, or renaming a folder of drafts consistently. All the same options (stopwords, max length, separator) apply to every row.

Frequently asked questions

Underscores or hyphens?

Hyphens. Search engines treat a hyphen as a word separator (blue-widgets reads as “blue widgets”) but treat an underscore as a word joiner (blue_widgets reads as one token, “blue_widgets”). That convention dates to how programming identifiers use underscores, and it’s never been reversed. The underscore option exists here for systems that require it — not because it’s ever the better choice for a public URL.

How long should a slug be?

There’s no ranking cutoff — the practical guidance is “as short as stays meaningful.” Three to six words is typical; beyond roughly 60 characters, slugs get truncated in shares and look unwieldy. The max-length option trims at a word boundary so a limit never leaves half a word (how-to-brew-espre) at the end.

Should I remove stopwords?

Optional, and the trend has moved away from it. Removing a/the/of made sense when URLs were length-constrained displays; today, readability wins, and how-to-train-a-puppy reads better than train-puppy. Remove them when a title is long and the filler genuinely adds nothing; keep them when they carry meaning (on vs. off, with vs. without — this tool’s stopword list deliberately excludes meaning-bearing prepositions like those).

What happens to text in other alphabets?

It’s removed, and the tool is honest about that rather than pretending: proper romanization (Cyrillic → Latin, pinyin for Chinese) is language-specific and lossy, and a bad automatic guess is worse than none. For non-Latin titles, either write the slug’s words in Latin yourself, or keep the native-script URL — modern browsers display them fine, at the cost of percent-encoding when the link is copied around.

Is my text uploaded anywhere?

No — slugging runs in your browser tab with no server or network request, and the page works offline once loaded.

[ Ad slot — replace with AdSense / Ezoic code ]

Related tools