URL slug generator
Turns a headline into a clean, lowercase, hyphenated URL slug.
Paste a title and get a slug you can drop straight into a URL: lowercase, spaces replaced with hyphens, punctuation removed.
Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.
How to use it
- Paste the page title.
- Press Make slug.
- Copy the result into your CMS URL field.
What a slug is and what this tool does
A slug is the human-readable part of a URL that identifies one page. In https://example.com/blog/how-to-bake-sourdough/ the slug is how-to-bake-sourdough. It is the part you choose; the rest is site structure.
Paste a title and this tool produces a slug by lowercasing everything, replacing spaces and underscores with single hyphens, stripping punctuation, and collapsing repeated or trailing hyphens. The output is safe to drop straight into a CMS URL field.
| Title | Slug |
|---|---|
| How to Bake Sourdough at Home! | how-to-bake-sourdough-at-home |
| 10 Best Laptops (2026 Edition) | 10-best-laptops-2026-edition |
| What’s New in v2.1? | whats-new-in-v2-1 |
| Café & Bar Review — Part 3 | cafe-bar-review-part-3 |
What makes a good slug
- Lowercase only. URLs are case sensitive on most servers, so
/About/and/about/can serve as two different pages and split your signals. - Hyphens, not underscores. Search engines treat a hyphen as a word separator and an underscore as a joiner, so
red_shoescan be read as one token. - Three to six meaningful words, roughly 40–60 characters. Long enough to describe the page, short enough to survive being pasted into a chat message.
- Front-load the important word.
/sourdough-recipe/beats/a-guide-to-making-sourdough-at-home-for-beginners/. - No dates unless the content genuinely expires. A slug with
2026in it looks stale in 2027 and cannot be updated without a redirect. - No stop-word padding. Drop
a,the,of,andwhen the meaning survives without them — but keep them where removing them changes the sense, as instate-of-the-artorthe-who. - Unique across the site. Two pages competing for the same slug means the CMS silently appends
-2, which nobody wants in a URL.
Non-Latin characters, numbers and punctuation
A URL can technically contain any Unicode character, encoded as percent escapes. In practice a Cyrillic or Greek slug turns into something like %D1%81%D1%82%D0%B0%D1%82%D1%8C%D1%8F the moment it is copied into a chat message, an email or an analytics report — unreadable, and three to six times longer.
Two workable approaches:
- Keep the native script if your audience is entirely in that language and shares links inside apps that display Unicode URLs properly. Modern browsers show them correctly in the address bar.
- Transliterate to Latin for anything international, for links that will be pasted into documents, or where a legacy system may mangle the encoding. This is the safer default.
Other characters to handle deliberately:
| In the title | Recommended in the slug |
|---|---|
| & | and, spelled out |
| %, +, #, ? | Remove — each has a reserved meaning in a URL |
| Apostrophes | Remove, not replace: whats-new, not what-s-new |
| Accented letters | Fold to the base letter: é to e |
| German ß and ü | Expand: ss and ue |
| Digits | Keep — they are fine and often carry meaning |
| Spaces | Hyphen. Never leave a literal space, which becomes %20 |
Never change a published slug without a redirect
Once a page is live, its URL is an address other people rely on. Editing the slug creates a new page at a new address and leaves the old one returning 404. What breaks:
- Inbound links. Every external link to the old URL now points at an error page, and the ranking value those links carried is lost.
- Search rankings. The new URL starts from zero. Recovery after an uncontrolled change typically takes weeks.
- Bookmarks and shares. Old links in chats, emails and documents stop working with no way to fix them.
- Analytics history. The page becomes two rows in every report, so trends break at the change date.
- Internal links. Anything hardcoded in older articles now points nowhere.
If a change is genuinely necessary, do it in this order: publish the new URL, add a 301 permanent redirect from the old slug to the new one, update your internal links to point at the new URL directly rather than through the redirect, resubmit the sitemap, and leave the redirect in place permanently. Do not use a 302, which tells search engines the old URL is still the real one.
The practical conclusion: get the slug right before you press publish, because that is the only moment it is free to change.
Doing it without this tool
- WordPress: the permalink field under the title on the edit screen. Edit it before the first publish; afterwards WordPress can create a redirect only if a plugin such as Redirection is installed.
- Excel or Google Sheets:
=LOWER(SUBSTITUTE(TRIM(A1)," ","-"))covers the basics. Wrap it in nestedSUBSTITUTEcalls to strip commas, colons and question marks, and useREGEXREPLACE(LOWER(A1),"[^a-z0-9]+","-")in Sheets for a one-formula version. - Notepad++: Search → Replace in regular expression mode, find
[^A-Za-z0-9]+and replace with-, then use Edit → Convert Case to → lowercase. - Command line:
echo "Your Title Here" | iconv -t ascii//TRANSLIT | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+|-+$//g'— theiconvstep handles accented letters. - In code: most frameworks ship a helper —
slugify()in Django,Str::slug()in Laravel,parameterizein Rails.
Privacy: your text never leaves your browser
The slug is built by a regular expression running in JavaScript on this page. Nothing is uploaded, nothing is stored, and there is no account or history.
That matters because the titles being slugged are usually unpublished — a content calendar, a product launch, an announcement with a date attached. Generating the URL locally means the plan does not leave your machine before the page does.
Related tools
Frequently asked questions
It is the readable part of a URL that identifies one page, like how-to-bake-sourdough in example.com/blog/how-to-bake-sourdough/. It is the part you choose yourself.
Three to six meaningful words, roughly 40 to 60 characters. Long enough to describe the page, short enough to stay readable when someone pastes the link.
Usually drop a, the, of and and when the meaning survives without them. Keep them where removing them changes the sense, as in state-of-the-art.
Hyphens. Search engines treat a hyphen as a word separator and an underscore as a joiner, so red_shoes can be read as a single token.
They can stay, but they get percent-encoded into unreadable text when the link is copied elsewhere. Transliterating to Latin is the safer default for anything international.
Only with a 301 permanent redirect from the old URL to the new one. Without it every inbound link and bookmark returns a 404 and the ranking of the page starts from zero.
Only if the content genuinely expires. A slug containing 2026 looks stale a year later and cannot be updated without a redirect.