Turn any title or heading into a clean, URL-safe slug. Strips accents and punctuation, collapses spaces to hyphens, and runs entirely in your browser.
Runs entirely in your browser — your data never leaves your device.
How to use Slug Generator
What it does & when you need it
You have a title — a blog post headline, a product name, a documentation
heading — and you need the URL-safe version of it: lowercase, hyphenated, and
stripped of anything that would look ugly or break in a link. This tool turns
How to Deploy Next.js on a VPS in 2026 into how-to-deploy-next-js-on-a-vps-in-2026
as you type, so you can paste a clean slug straight into your CMS, your router,
or a filename.
Everything runs in your browser. Nothing you type is uploaded, so you can
slugify unpublished titles and internal names without them leaving your machine.
How to use
Type or paste your text in the left panel — the slug updates live on the
right.
Pick a Separator. Hyphen is the default and the SEO convention; switch to
an underscore or dot, or choose none to remove separators entirely.
Leave Lowercase on for URLs, or turn it off to preserve the original
casing.
Set a Max length if you want to cap long titles — the cut is pulled back
to a word boundary so you never get a chopped-off fragment.
Press Copy slug or Ctrl/Cmd + Enter to grab the result.
Things worth knowing
Accents are transliterated, not deleted. The tool applies Unicode NFKD
normalisation, which decomposes an accented letter such as é into a plain e
plus a combining mark, then removes the mark. So Café Münster becomes
cafe-munster rather than losing those letters. Characters with no ASCII base —
ß, €, emoji — have no plain equivalent, so they are treated as separators and
dropped.
Hyphens beat underscores for the web. Google reads a hyphen as a word
boundary but treats an underscore as a joiner, so my_first_post can be indexed
as the single token myfirstpost. Keep public URLs hyphenated and reserve
underscores for filenames and code.
Runs collapse to a single separator. Multiple spaces, stray punctuation, and
leading or trailing junk all fold into one clean separator, and the ends are
trimmed — ***Hello, World!!!*** becomes simply hello-world. Pair this
with the Case Converter for a different casing style, or
the URL Encoder when a value belongs in a query string.
Examples
Blog post title
How to Deploy Next.js on a VPS in 2026
A typical article headline becomes how-to-deploy-next-js-on-a-vps-in-2026, ready to drop into a permalink.
Title with accents
Crème Brûlée & Café Recipes
Accents are transliterated and the ampersand dropped, giving creme-brulee-cafe-recipes.
Messy input with punctuation
***Hello, World!!!***
Leading, trailing, and repeated punctuation collapse away to a clean hello-world.
Frequently asked questions
What is a URL slug and why does it matter?+
A slug is the human-readable tail of a URL — the my-first-post in /blog/my-first-post. A clean, keyword-rich slug is easier to read, share, and remember, and search engines treat descriptive slugs as a small ranking and click-through signal. This tool derives one from your title so every URL stays lowercase, hyphenated, and free of stray characters.
How are accented characters like é or ü handled?+
They are transliterated to their closest ASCII letter. The tool applies Unicode NFKD normalisation, which splits an accented letter such as "é" into a plain "e" plus a combining mark, then removes the mark. So "Café Münster" becomes cafe-munster. Letters with no ASCII base, like ß or emoji, are treated as separators and dropped.
Can I use an underscore instead of a hyphen?+
Yes. Switch the separator to an underscore and "Hello World" becomes hello_world. Hyphens are the SEO convention because Google treats them as word boundaries while it reads underscores as joiners, so prefer hyphens for public URLs and reserve underscores for filenames or code identifiers.
What does the maximum length option do?+
It caps the slug so long titles do not create unwieldy URLs. Rather than chopping a word in half, the tool pulls the cut back to the nearest separator, so a 30-character limit on "the quick brown fox jumps" yields the-quick-brown-fox rather than a truncated fragment.
Is my text sent to a server?+
No. The entire conversion — normalising, stripping, and joining — happens locally in your browser with JavaScript. Nothing is uploaded, so you can safely slugify unpublished post titles, internal project names, or client work before it goes live.