Text to slug

Turn a heading into a clean URL segment, or a whole list at once.

Your inputs stay on your deviceFREE · NO SIGN-UP
Word separator
Other scripts

Accents are transliterated — ü becomes u, ß becomes ss, ø becomes o — and anything with no Latin equivalent is dropped. Everything is lowercased, apostrophes close up (Tom’s → toms), & becomes and, and punctuation becomes the separator. One line in, one slug out, so a whole list of headings converts at once. Up to 200,000 characters.

Result

Start typing and the result appears here. No button needed.

THE LITTLE DETAILS

Text to slug, without the extra steps.

Turn a headline into the part of a URL that goes after the slash. Accents are transliterated, punctuation becomes your separator, and everything is lowercased. Paste one heading or a whole list — every line becomes its own slug, and repeated slugs, which would collide as URLs, are counted for you.

How to use this tool

  1. 1Paste a heading, or one heading per line for a whole list of pages.
  2. 2Choose hyphens or underscores, and whether letters from other scripts are kept or transliterated. The result updates automatically.
  3. 3Check the slugs and any warning about repeats, then select Copy result.

When Text to slug is the right tool

  • A CMS asks for the URL segment of a new article and you would rather not invent the hyphenation by hand for forty drafts.
  • A migration needs a slug column beside a spreadsheet of existing page titles, in the same order, ready to paste back.
  • A German or Nordic headline contains ß, ø, or æ, and the URL has to stay readable rather than losing those letters.
  • Two sections both have a heading called Introduction, and you need to know that before the second page overwrites the first.

One line in, one slug out

A slug tool that handles a single heading fails the person with a content inventory. Every line is converted independently and stays in its own position, so a pasted column of titles comes back as a column of slugs that lines up row for row — including blank lines, which stay blank rather than closing the gap. A line whose characters cannot form a slug comes back blank too, and is named in a warning, precisely so the alignment between your list and the result never silently shifts.

Transliteration is not the same as stripping accents

Unicode decomposition turns é into e, but it cannot help with ß, æ, ø, þ, or ł, which are letters in their own right rather than accented forms. Those are mapped explicitly — ss, ae, o, th, l — so a Straßenbahn heading becomes strassenbahn instead of strae or strabahn. Ampersands become and and the euro sign becomes eur, because dropping them loses meaning that readers expect in a URL. Apostrophes close up, so Tom's becomes toms rather than tom-s.

A repeated slug is a collision, not a duplicate line

Two headings that reduce to the same slug cannot both live at the same path. Most generators silently append a number; this one counts the repeats and says so, because the right fix depends on the site. Sometimes the second page belongs under a different path prefix, sometimes the heading itself should be more specific, and only rarely is a numeric suffix the answer a reader would want to see in a URL.

GOOD TO KNOW

A few quick answers.

Yes. Every line becomes its own slug and the lines stay in the same positions, so a pasted column of forty headings comes back as forty slugs you can paste into a spreadsheet beside the originals. Blank lines stay blank, which is what keeps the two columns aligned.

Latin letters only transliterates accents and the letters decomposition cannot handle — ß becomes ss, æ becomes ae, ø becomes o — and drops what has no Latin form, reporting how many letters went. Keep any script instead keeps letters as written, so über stays über and a Cyrillic heading keeps its own alphabet.

Two headings such as Introduction under different sections produce the same slug, and two pages cannot share a URL. The tool counts the repeats rather than quietly appending -2, because the right fix is usually a more specific heading or a path prefix, and only you know which.

No. Long headings produce long slugs, and you can trim the result by hand where a sensible break exists. Automatic truncation cuts mid-word or drops the part of a heading that carried the meaning, which is worse than a long URL — and length limits differ per platform anyway.

Paths are case-sensitive on most servers, so Introduction and introduction would be two different URLs pointing at the same content. Lowercasing removes an entire class of broken link, and it is the convention every major site follows. If a platform genuinely needs mixed case, adjust the copied result.

Those are the two separators in common use: hyphens are what search engines and readers expect in a URL path, underscores are what some file-based systems and anchors use. Other characters either need percent-encoding or read as punctuation inside a path, so they are not offered.

Back to all tools