Free URL Slug Generator Online
Convert any title into a clean URL slug. Choose the separator, transliterate accents and Cyrillic, and drop stop words. 100% client-side — your text stays private.
What is a URL slug? A slug is the human-readable part of a web address that identifies one page — the how-to-bake-bread in example.com/blog/how-to-bake-bread. By convention it uses lowercase ASCII letters, digits and hyphens only, with no spaces, accents or punctuation, because those characters either need percent-encoding or behave inconsistently across systems. A good slug is short, stable and describes the page in words a reader would recognise.
How to Use the Slug Generator
- Paste the title — Type or paste the headline, product name or heading. The slug and the URL preview update on every keystroke, so you can watch a long title shrink as you edit it.
- Keep Lowercase switched on — The safe-character filter recognises lowercase letters only, so unchecking Lowercase does not preserve capitals — it deletes them. Leave it on unless you have a specific reason and are checking the output character by character.
- Pick a separator — Hyphen is the default and the one Google's own URL guidance recommends. Underscore suits filenames and code identifiers. Space is for when you want the cleaned words back without joining them.
-
Decide on transliteration and stop words — Transliterate maps accented Latin and Cyrillic letters onto ASCII —
ütoue,ßtoss,жtozh. Remove stop words drops a fixed list of 14 common English words such as the, of and to. -
Add custom replacements for the rest — The custom box takes comma-separated pairs written as
from -> to, for example& -> and, % -> percent. Leave the right-hand side empty to delete a character — useful for the apostrophe, which otherwise turnsJohn'sintojohn-s. - Copy and check it against your site — Copy puts the slug on your clipboard and the character count sits above the output. Before publishing, confirm the slug is not already in use on your site — this tool cannot know that.
How the Slug Is Built
The conversion is a fixed pipeline, and knowing the order explains most of the surprises. Each stage runs on the output of the one before it:
| # | Stage | Effect on Café & Bar — München's Best! |
|---|---|---|
| 1 | Lowercase | café & bar — münchen's best! |
| 2 | Transliterate | cafe & bar — muenchen's best! |
| 3 | Custom replacements | applied here, so patterns must match the lowercased text |
| 4 | Unsafe characters become spaces | cafe bar muenchen s best |
| 5 | Whitespace and underscores become the separator | cafe-bar-muenchen-s-best- |
| 6 | Collapse repeats, trim the ends | cafe-bar-muenchen-s-best |
| 7 | Remove stop words (optional) | splits on the separator and drops any word on the list |
Stage four is the one that does the heavy lifting. Anything outside the set a-z, 0-9,
whitespace, hyphen, underscore and full stop is replaced with a space, which then becomes a separator. Note the full
stop: dots survive, so Version 2.0 Release produces version-2.0-release rather than
version-2-0-release. Add a custom replacement if you want dots gone.
Unchecking Lowercase does not give you a capitalised slug. The safe-character filter only allows a-z, so every uppercase letter is treated as unsafe and replaced by a space — My Blog Post comes out as y-log-ost. Keep the option enabled.
What transliteration covers
Transliteration uses a fixed lookup table, not a general Unicode normalisation, so its coverage is specific. It handles
German (ä→ae, ö→oe, ü→ue, ß→ss), the Nordic letters
(å→aa, ø→oe, æ→ae), accented vowels from French, Spanish, Portuguese and Italian,
ñ→n, a set of Central European letters such as ł, č, ž,
đ→dj and ş, and the full Russian Cyrillic alphabet in both cases.
It does not cover Greek, Turkish ı and ğ, Vietnamese tone marks, Arabic, Hebrew, Thai, or
Chinese, Japanese and Korean. Characters outside the table are unsafe at stage four, so they become separators and
effectively vanish — a title written entirely in one of those scripts produces an empty slug. For those languages, write
a transliterated or English slug by hand, or store the native title as the page heading and use a stable identifier in
the URL.
Stop words and the URL bar
The stop-word list is exactly fourteen English words: the, a, an, and, or, but, in, on, at, to, for, of, is, it. Removal happens after the slug is assembled, so it only drops whole words, never fragments inside a longer one. It is deliberately small — an aggressive list would mangle titles such as "How to Be a Better Manager" into something no reader would recognise.
One behaviour worth knowing: as you type, the tool mirrors your input text and option settings into this page's own query string so a slug can be bookmarked or reloaded. Nothing is sent to a server, but the title you are drafting is visible in the address bar — clear the field before sharing your screen if it is an unannounced product name.
Writing Slugs That Hold Up
Hyphens, not underscores
Google's own URL structure guidance recommends hyphens between words in a URL and advises against underscores, because a hyphen is read as a word boundary while an underscore is not. That is the whole of the argument, and it is enough: use hyphens for anything public-facing, and keep underscores for filenames, database keys and code identifiers where the convention runs the other way.
Short, but not cryptic
There is no official character limit for a slug, and no search engine publishes one. The practical constraints are human: a slug that fits in a chat message without wrapping is easier to share, and one that can be read aloud is easier to dictate. Three to six meaningful words is a workable target. Trimming a fifteen-word headline down to its two keywords is usually a gain in clarity, not just in length.
Treat a published slug as permanent
The slug is part of the page's identity. Once it is live, every link, bookmark and citation points at it, so changing it breaks those links and discards whatever ranking history the old address accumulated. If you must change one, publish a 301 redirect from the old slug to the new one and keep it indefinitely. This is the strongest argument for keeping dates, version numbers and words like "new" out of slugs — they are guaranteed to be wrong later.
Plan for collisions
Two different titles can produce the same slug: "Report: 2024" and "Report 2024" both become report-2024.
Most content systems resolve this by appending a number, which produces the ugly report-2024-2. It is better
to notice the clash while writing and pick a distinct title. This tool converts a single string in isolation and has no
knowledge of your other pages, so uniqueness is a check you have to do on your own site.
Apostrophes, ampersands and numbers
Three cases catch people out. An apostrophe becomes a separator, so John's Guide becomes
john-s-guide — add a custom replacement mapping the apostrophe to nothing. An ampersand disappears entirely
unless you map it to and. And a decimal point survives, which is right for
python-3.12 but wrong for a price, so check any title with numbers in it before publishing.
Frequently Asked Questions
Google's published URL structure guidance recommends hyphens between words and advises against underscores, because a hyphen is treated as a word boundary and an underscore is not — so red-shoes reads as two words while red_shoes can read as one token. Use hyphens for any public URL. Underscores remain the right choice for filenames, database columns and code identifiers, where the surrounding conventions differ.
Stop words are very common function words that carry little meaning on their own. This tool removes a fixed list of fourteen: the, a, an, and, or, but, in, on, at, to, for, of, is and it. Removing them shortens a slug — "The Best Way to Learn Code" becomes best-way-learn-code — but it can also make a title read oddly, and it changes meaning in phrases where the preposition matters. Turn it on for long headlines and leave it off for short ones.
A fixed table covering German umlauts and ß, the Nordic letters å, ø and æ, accented vowels from French, Spanish, Portuguese and Italian, ñ, a set of Central European letters including ł, č, ž, đ and ş, and the whole Russian Cyrillic alphabet. Greek, Turkish ı and ğ, Vietnamese, Arabic, Hebrew, Thai, Chinese, Japanese and Korean are not covered — those characters are dropped, so a title written only in one of those scripts yields an empty slug.
Because the safe-character filter allows lowercase letters only, and it runs after the lowercase step. With the Lowercase option enabled this never matters, since there are no capitals left by then. Switch the option off and every uppercase letter is treated as an unsafe character and replaced with a separator, so "My Blog Post" becomes y-log-ost. Keep Lowercase on — which is also the right convention for URLs, since paths are case-sensitive on most servers.
There is no published limit from any search engine, so treat length as a readability question rather than a ranking one. Three to six meaningful words is a practical target: short enough to share in a message without wrapping, long enough to describe the page. The character counter above the output helps you compare options. Cutting filler words matters more than hitting any particular number.
Use the custom replacement box, which takes comma-separated pairs in the form from -> to. Enter & -> and to turn an ampersand into the word, and enter the apostrophe followed by -> with nothing after it to delete it, so John's becomes johns instead of john-s. Replacements run after lowercasing, so write the left-hand side in lowercase.
You can, but every existing link and bookmark to the old address breaks, and the page starts over as a new URL as far as search engines are concerned. If a change is unavoidable, add a permanent 301 redirect from the old slug to the new one and leave it in place indefinitely. The best defence is writing slugs that will not need changing: no dates, no version numbers, no "new" or "latest".
No request carries it. The conversion runs in JavaScript in your tab. One thing to be aware of: as you type, the tool writes your input and option settings into this page's query string so the result can be bookmarked or reloaded, which means the text is visible in the address bar and would travel with the link if you copied it. Clear the field before sharing your screen if the title is not public yet.
Use Cases
SEO-Friendly URLs
Create URL-friendly slugs from titles that improve SEO by including relevant keywords in your page addresses.
Page URL Generation
Generate SEO-friendly page URLs for blog posts, products, and landing pages that search engines can easily understand.
Anchor Link Creation
Convert headings to anchor links for table of contents navigation and in-page linking that improves user experience.
Messy URL Cleanup
Clean up messy URLs with special characters, spaces, or encoding issues into clean, readable permalink structures.
Permalink Structures
Create consistent permalink structures for your entire website to maintain URL hygiene and brand consistency.