URL slug generator — clean slugs from any title

Turn titles into URL-safe slugs. Accented characters are transliterated rather than dropped, so Café becomes cafe. One title per line for bulk conversion.

  • Handles accents
  • Bulk lines
  • No signup

How this tool fits your workflow

More in this category →

What a slug is for

A slug is the human-readable part of a URL that identifies a page: the "url-slug-generator" in this page own address. It needs to survive being typed, copied, shared in a message, and printed, which rules out spaces, punctuation, and anything requiring percent-encoding.

A good slug is also a small piece of user interface. Someone deciding whether to click a link in a search result or a chat message reads the URL, and /how-to-convert-heic-to-jpg tells them more than /post?id=4821.

Worked example: awkward titles

The interesting cases are the ones with punctuation, accents and casing:

  1. Paste one or more titles into the left pane, one per line.
  2. Read the slugs on the right. Punctuation is removed, accents transliterated, and runs of separators collapsed to one.
  3. Switch to underscores if you need them for a filename rather than a URL.
  4. Check the C++ row before using it: distinguishing characters can be lost, which is discussed below.
TitleSlug
How to Convert HEIC to JPG — A Beginner's Guide (2026)how-to-convert-heic-to-jpg-a-beginners-guide-2026
Café Münchén: 10 Best Résumé Tips!cafe-munchen-10-best-resume-tips
Understanding React's useEffect Hookunderstanding-reacts-useeffect-hook
C++ vs Rust: Which Is Faster?c-vs-rust-which-is-faster
Multiple Spaces Here multiple-spaces-here

Why hyphens beat underscores

Google has been explicit that hyphens are word separators and underscores are word joiners. That means my_great_article is read as one long token, while my-great-article is read as three words — and matching those words is how the URL contributes to relevance at all.

Underscores still have a place in filenames, database identifiers, and anywhere the value is also used as a code identifier. For public URLs, use hyphens.

Common mistakes

  • Changing a slug on a published page. The old URL breaks, along with every link and bookmark pointing at it. If you must change one, add a 301 redirect from the old slug to the new one.
  • Including dates or numbers you will regret. /2026-guide-to-x needs rewriting next year; /guide-to-x does not.
  • Letting two titles produce the same slug. "React Hooks" and "React hooks!" both slugify identically. Check for collisions before saving, and append a discriminator rather than silently overwriting.
  • Stuffing keywords. A slug of ten hyphenated keywords looks like spam to readers and does not help rankings.
  • Forgetting that slugs are case-sensitive on many servers. Generate lowercase and keep it consistent, or /My-Post and /my-post become two different pages serving the same content.

When not to use this

Related workflow

Slugs usually come from titles you are also checking for length. The word counter gives live character counts, which is useful when a title has to fit a meta-title limit as well.

If the title casing is inconsistent because it came from a spreadsheet export, run it through the case converter first.

When slugs become URL parameters rather than paths, the URL encoder and decoder handles the encoding.

Frequently asked questions

What happens to accented characters?
They are transliterated to their base letter, so Café becomes cafe and Münchén becomes munchen. Characters are not simply deleted, which would give "caf" and lose meaning.
Hyphens or underscores?
Hyphens. Google has stated it treats hyphens as word separators and underscores as word joiners, so my-article reads as two words and my_article reads as one. Use hyphens for anything public.
Can I convert many titles at once?
Yes. Put one title per line and each is converted independently, with blank lines preserved so the output lines up with your input.
Does it handle non-Latin scripts?
Letters and numbers from any script are kept, so Cyrillic or Greek text produces a slug in that script. It does not romanise them — converting Russian to Latin characters needs a transliteration library.
Should slugs be short?
Reasonably. Three to six meaningful words is a good target. Very long slugs get truncated in search results and are awkward to share, but there is no penalty for length itself.