Slug generator
Turn any string into a clean slug: transliterates Unicode, lowercases, replaces separators, trims length. Batch-friendly for migrations.
How to use
- Paste a single title or a list (one per line).
- Pick a Preset (WordPress, Ghost, Hugo, Jekyll, GitHub anchor) or configure manually:
- Separator (
-,_, none) - Case (lower / preserve)
- Max length (with smart word boundary)
- Transliterate (German
ü → ue, Cyrillic, Greek, etc.)
- Separator (
- Output appears in the same order. For batch input, get a two-column table (title → slug) ready to copy as CSV.
Preset cheatsheet
- WordPress / Ghost / Hugo / Jekyll —
kebab-case, lower, transliterated, 100-char cap. - GitHub anchor — same case rules as the heading but symbols stripped. Leading numbers are kept. No transliteration (anchors match the rendered heading text).
FAQ
What about Cyrillic / Chinese / Arabic input?
Cyrillic and Greek transliterate by built-in rules. Chinese / Japanese / Arabic don't have a standard romanization — turn off transliteration and the tool will strip them, leaving you with hyphens between numeric / Latin segments. Add a manual romanization step for those languages.
Why does my slug get cut off at a weird place?
The max-length trim is smart-boundary — it backs off to the previous separator if the cut would happen mid-word. Increase the max if the slug still gets too short.
Does WordPress preset match WordPress exactly?
It matches the default behaviour. Some plugins (like Yoast SEO) change the rules — verify against your site if migrating large numbers of slugs.
Can I export the title→slug table?
Yes — copy the tab-separated output and paste into a spreadsheet, or save the textarea content to a .tsv file.