URL Slug Generator

SEO-Friendly Paths

Turn titles and phrases into clean URL and filename slugs. Choose separator, lowercase, and max length with live preview in your browser.

This conversion runs only in your browser — nothing is uploaded.

0 = unlimited

Latin accents become ASCII (café → cafe). Hangul, CJK, and most non-Latin letters are removed — not romanized. Best for Latin titles and filenames.

  • Input0
  • Output0
  • Separator-

Input

Output

What is this tool?

This URL slug generator converts titles and phrases into clean path segments for pages, posts, docs, products, and filenames. It normalizes Latin text, strips punctuation, joins words with your separator (hyphen, underscore, or dot), optionally lowercases, and can enforce a maximum length.

Latin combining accents are flattened to ASCII via NFKD (cafécafe). Hangul, CJK, and most other non-Latin letters are removed, not romanized—so multilingual titles need a Latin form first if you want readable slugs.

A good slug is short, readable, and stable. Changing a published slug usually needs a redirect to keep SEO signals and bookmarks.

Common use cases

  • Turn a blog or docs title into a /blog/... or /docs/... path segment
  • Normalize product or CMS import titles before publish
  • Build safe-ish filenames from Latin headings (note: dots in extensions are stripped unless you choose . as separator)

How to use

  1. Paste a title or phrase. Results update as you type.
  2. Choose separator (-, _, or .), keep lowercase on for typical URLs, and set max length if needed (0 = unlimited).
  3. Use Sample to see accent stripping and CJK removal.
  4. Copy the slug. Check uniqueness in your CMS before publishing.

Examples

Input / settingOutputNotes
Hello, World!hello-worldPunctuation removed; default hyphen + lowercase.
Crème brûlée recipecreme-brulee-recipeLatin accents → ASCII.
Café Résumé — Hello 안녕하세요 世界!cafe-resume-helloHangul/CJK dropped; em dash removed (Sample).
My Report (Final).PDF · max 12my-report-fiExtension dots stripped; length cut without trailing separator.

Practical pitfalls

  • Slugs are not unique: two titles can collide after punctuation/CJK removal or max-length truncation—resolve collisions in your app.
  • CJK/Hangul input without prior romanization often becomes empty or Latin-only fragments; this tool does not transliterate.
  • Adjacent words joined only by punctuation (Hello—World) can collapse to helloworld with no separator—prefer spaces between words.

References

Last reviewed: 2026-07-27

Frequently asked questions

What characters stay in the slug?
After NFKD normalization, letters A–Z/a–z, digits, underscores, spaces, and hyphens are kept; other punctuation is stripped. Spaces and underscores become your chosen separator.
Are Hangul or Chinese characters romanized?
No. Hangul, CJK ideographs, and most non-Latin scripts are removed. Only Latin letters with combining accents are flattened to ASCII (café → cafe). Paste Latin titles or transliterate first.
Does a slug guarantee uniqueness?
No. Different titles can produce the same slug (for example after CJK removal or max-length truncation). Check collisions in your CMS or add a numeric suffix yourself.
Is text uploaded?
No. Slug generation runs only in your browser.