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.

Slug Generator

Generated Slug 0 chars
https://example.com/

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

  1. 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.
  2. 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.
  3. Pick a separatorHyphen 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.
  4. Decide on transliteration and stop wordsTransliterate maps accented Latin and Cyrillic letters onto ASCII — ü to ue, ß to ss, ж to zh. Remove stop words drops a fixed list of 14 common English words such as the, of and to.
  5. 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 turns John's into john-s.
  6. Copy and check it against your siteCopy 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:

#StageEffect on Café & Bar — München's Best!
1Lowercasecafé & bar — münchen's best!
2Transliteratecafe & bar — muenchen's best!
3Custom replacementsapplied here, so patterns must match the lowercased text
4Unsafe characters become spacescafe bar muenchen s best
5Whitespace and underscores become the separatorcafe-bar-muenchen-s-best-
6Collapse repeats, trim the endscafe-bar-muenchen-s-best
7Remove 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.