Skip to content

Slugify · Utilities

Turn any title into a clean URL slug.

Transliterate accents, strip punctuation and join the words with your chosen separator — bounded to a max length — then copy the slug or a ready-made link. Free, no signup, and your text never leaves your device.

Runs in your browser — nothing you paste leaves this page. How we prove that

Runs in your browser Accent-aware No signup Updated Jul 28, 2026

Slugify playground

Examples

Accented characters are transliterated (café → cafe); punctuation is dropped and runs of separators are collapsed.

Results update as you type — press Enter to run now.

Options
Separator
Slug

Type a title or pick an example to see its URL-safe slug here.

The Gap

One stray accent, a broken permalink.

A title looks harmless until it becomes a URL. Leave an accented é in place and some systems percent-encode it into %C3%A9; keep the spaces, capitals and punctuation and you get a link nobody can read, share or index cleanly.

This slugify tool normalizes the text as Unicode NFKD, strips every combining mark so accents disappear instead of exploding into escapes, drops the punctuation, and joins the words with the separator you choose — bounded to a max length so the slug stays concise. Everything runs in the browser, with nothing to install and no text ever leaving your device.

Need a different transform instead of a slug? The Case Converter switches text between camelCase, snake_case, kebab-case and more.

The Pipeline

How it works.

Four deterministic steps run on every keystroke — all inside your browser tab, Unicode normalized before a single character is dropped.

  1. Normalize the Unicode.

    The title is decomposed to NFKD form so accents, diacritics and ligatures separate from their base letters — café becomes cafe, fi becomes fi.

  2. Strip what URLs reject.

    Combining marks and every character outside letters and digits — punctuation, symbols, emoji — are removed, leaving only URL-safe words.

  3. Join and collapse.

    Words are joined with your chosen separator; runs of separators collapse to one and any leading or trailing separator is trimmed.

  4. Bound the length.

    If a max length is set, the slug is cut at the last word boundary at or before the limit — or hard-cut when a single word overruns it.

Slug Rules

What makes a clean slug.

Every title runs through the same four rules — normalize, strip, join, bound. Here is exactly what each one does and how the max-length limit decides where to cut.

The four rules

Normalize to NFKD, strip combining marks with \p{M}, optionally lowercase, then map everything outside a–z 0–9 to the separator.

slug-rules
input   "Blog post: Héllo Wörld! (2026)"

step 1  NFKD      Blog post: Héllo Wörld! (2026)
step 2  strip \p{M}   Blog post: Hello World! (2026)
step 3  lowercase     blog post: hello world! (2026)
step 4  non-alnum → - blog-post-hello-world-2026

separators   -  _  .        (single char, collapsed)
kept chars   a–z 0–9         (A–Z 0–9 if lowercase off)
max length   cut at last "-" boundary ≤ limit

Where max length cuts

The limit prefers the last separator boundary at or before it; a single over-long word is hard-cut at the limit with the trailing separator removed.

max-length
slug     hello-world-again          (17 chars)

max 12   hello-world                cut at "-" boundary ≤ 12
max 5    hello                      "hello-…" trimmed
max 60   hello-world-again          within the limit

no boundary before the limit → hard cut:
supercalifragilistic  max 5  →  super

Next Step

Not a slug — a case change? Convert it.

Slugify is for URLs. When you need to rename a variable or a file instead, the Case Converter switches text between camelCase, snake_case, kebab-case and more — and the Base64 Encoder / Decoder handles the encoding side, all in your browser.

slug.txt
Héllo Wörld!        ←  title
hello-world         ←  slug (kebab)
hello_world         ←  slug (underscore)
hello.world         ←  slug (dot)

FAQ

Questions, answered.

Tap a question to expand the answer.

A slug is the human-readable part of a URL that identifies a page in words rather than an opaque id — the "hello-world" in /blog/hello-world. A good slug uses only lowercase letters, digits and a single separator, so it is safe to type, share and index. Slugify turns any title or heading into one in your browser.

The title is Unicode-normalized (NFKD) and every combining mark is stripped, so accents and diacritics are removed rather than dropped: café becomes cafe, Zürich becomes zurich, and typographic ligatures like fi decompose to fi. Characters with no ASCII letter or digit underneath — emoji, symbols, CJK — are removed, and the remaining words are joined with your separator.

A hyphen (-), an underscore (_) or a dot (.). Hyphen is the convention for web URLs and the one search engines treat as a word break, so it is the default. Whichever you pick, any run of disallowed characters collapses to a single separator and leading or trailing separators are trimmed.

It caps the slug at a number of characters. Slugify prefers to cut at the last separator boundary at or before the limit so the slug ends on a whole word; if a single word is already longer than the limit it hard-cuts at the limit and removes any trailing separator. Leave it empty (or 0) for no limit.

URLs are case-sensitive on most servers, so /Hello-World and /hello-world can resolve to different pages — a common source of duplicate-content and broken-link problems. Lowercasing keeps every slug canonical and predictable. The Lowercase toggle is on by default; turn it off if you specifically need to preserve case.

No. Slugify runs 100% client-side in your tab — there is no server, no account and no logging. You can paste draft titles, internal headings or private content; it never travels over the network.

Yes. Short, lowercase, hyphen-separated slugs that contain the page keywords are the format search engines and users read best. Slugify strips stop punctuation and accents so the words survive intact, and the max-length option keeps the slug concise instead of a wall of hyphenated text.

Not reliably — slugifying is lossy. Case, punctuation, accents and separators are all normalized away, so hello-world could have come from "Hello, World!" or "hello world". Keep the original title as your source of truth and generate the slug from it, not the other way around.

More free, private DevOps tools.

Slugify is one tool in OpsCanopy — a growing canopy of browser-based validators, converters and testers that never touch a server.

39 free tools, every one offline-capable — opscanopy.com works with no signup and nothing uploaded.

Related text tools: the Case Converter and the Base64 Encoder / Decoder, or browse the full tools directory.

Provided as-is for convenience; slugifying is lossy — keep the original title as your source of truth. OpsCanopy is free and open.