A slug is the readable part of a URL — the "url-slug-generator" at the end of this address. Turning a headline into one is mostly obvious: lowercase it, replace the spaces, drop the punctuation. The part that is not obvious, and where most generators get it wrong, is what to do with a character that is not in the English alphabet.
Über uns, not uber-uns
Strip the diaeresis from ü and you get u. That is what the standard Unicode decomposition does, and it is what nearly every slug generator does, so "Über uns" comes out as "uber-uns".
For German that is wrong. The convention — older than the web, from typewriters and telegrams that had no umlauts — is to write the vowel followed by an e: ü becomes ue, ö becomes oe, ä becomes ae. "Über uns" is "ueber-uns" and "Grüße" is "gruesse". Any German reader recognises the first form as a foreign tool’s output.
It cannot be right for every language at once: in Turkish and Estonian ü is a letter in its own right and u is the correct reduction, which is why "Üsküdar" should be "uskudar" and not "ueskuedar". So it is a switch rather than a silent decision, on by default and one click from the other behaviour.
- ß is always ss, in either mode. There is no other reading of it, and dropping it would change the word.
- Letters whose stroke is part of the shape — ø, ł, đ, þ, æ, œ — cannot be decomposed at all, so without an explicit transliteration they vanish. "Smørrebrød" becomes "smorrebrod" here, not "smrrebrd".
Scripts with no Latin form
Cyrillic, Greek, Arabic, Chinese and Japanese have no accent to strip and no letter to fall back to. A generator that quietly drops what it does not understand hands back an empty slug and no explanation, which is the worst of the available behaviours.
Here it is a choice. Drop them, and a title made entirely of one of those scripts produces nothing — and the page says so, rather than showing you an empty box. Keep them, and the characters go into the slug as they are: a URL is allowed to carry them, percent-encoded on the wire and displayed readably by every modern browser.
Keeping them is usually right for a site whose readers use that script, and dropping them is right when the URL has to survive systems that predate Unicode. Neither answer is universal, which is why the tool asks rather than assumes.
Length, and where to cut
There is no rule that says a slug must be short, and length is not a ranking factor. But a slug that spans two lines in a search result gets truncated with an ellipsis, and one that is pasted into a chat window is easier to read at five words than at fifteen.
Setting a maximum cuts at a word boundary rather than mid-word, so a limit never leaves you with "the-quick-bro". If the very first word is longer than the limit there is no boundary to use and it is cut where the limit falls — the only case where that happens.
Stop words
Dropping the, of, and, for and their relatives shortens a slug without losing much meaning, and search engines have ignored them for two decades. "The Best of the Year" becomes "best-year".
It is off by default, because it is a judgement about a specific title rather than a rule. Sometimes the stop word is the title: removing it from "To Be or Not to Be" leaves nothing worth having, and the tool keeps the original rather than handing back an empty slug.
Changing a slug later
A published URL is a promise. Changing a slug breaks every link anyone has made to that page and resets whatever ranking it had earned, so the fix is not to change it but to redirect: a 301 from the old slug to the new one passes the accumulated signals across and keeps existing links working.
The practical consequence is to spend a moment on the slug before publishing rather than after. The date and the category do not belong in it — those live in the path or the metadata, and a slug carrying a date ages badly the moment the article is updated.
FAQ
How should German umlauts be handled in a URL?
As ue, oe and ae, with ß as ss. That is the established German convention and what readers expect: "Über uns" becomes "ueber-uns". Simply removing the dots gives "uber-uns", which is what a generator written for English produces and what a German reader reads as a mistake. This tool does the former by default and offers the latter for languages where ü really does reduce to u.
Can a URL contain non-Latin characters?
Yes. The address is percent-encoded when it travels, and browsers display it in its readable form. It works well for a site whose readers use that script; it goes wrong when a URL has to survive an older system, an email client that mangles the encoding, or being copied into a plain-text document. Choose per site, not per page.
Hyphen or underscore?
Hyphen, for a public URL. Search engines have treated hyphens as word separators for a long time and underscores as part of a word, so "url_slug_generator" can be read as one long token. Underscores are fine for filenames and internal identifiers, which is why the option exists.
How long should a slug be?
Long enough to describe the page, short enough to read at a glance — three to six words suits most titles. There is no penalty for a longer one, but search results truncate it and people share it, and both favour brevity.
Can I convert a whole list of titles at once?
Yes. Paste one title per line and you get one slug per line, in the same order, which is what you want when preparing a batch of posts or migrating a site. Blank lines are skipped rather than producing empty slugs.