devtools

Slug Generator

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

  1. Type or paste your text in the left panel — the slug updates live on the right.
  2. Pick a Separator. Hyphen is the default and the SEO convention; switch to an underscore or dot, or choose none to remove separators entirely.
  3. Leave Lowercase on for URLs, or turn it off to preserve the original casing.
  4. 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.
  5. 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.