Skip to content
Motifuse
Free browser tool
SEO & Marketing

Slug Generator

Turn any title into a clean, hyphen-separated URL slug — accents converted, special characters stripped, lowercase by default.

  • Free public tool
  • No sign-up for this tool
  • Processing clearly labeled
  • Instant results

Content last reviewed

my-awesome-blog-post-title

Overview

Clean URL slugs, and the letters that quietly do not survive

The whole conversion is one Unicode normalisation and four replacements, applied in a fixed order on every keystroke. What catches people out is not what it changes but what it deletes: every character the allow-list does not name is removed outright rather than turned into a word break.

Four replacements, always in the same order

Normalise, strip combining marks, delete anything outside a-z A-Z 0-9 space hyphen, collapse whitespace runs to one hyphen, collapse hyphen runs to one. The same title always produces the same slug, which matters when two people generate a URL for the same page.

Deleted, not replaced

Punctuation does not become a word break. Ampersands, slashes, dots and underscores are removed and the words on either side fuse, so my_post_name gives mypostname. Put a space where you want a hyphen.

Lowercase changes casing and nothing else

With the switch off, MiXeD CaSe gives MiXeD-CaSe and Cafe Creme still loses its accents. It is a casing toggle, not a raw passthrough mode.

Casing is the only choice

One switch decides whether the result is lowercased. Everything else — which characters survive, where the hyphens land, how the accents resolve — is fixed, so the same title always produces the same slug.

How it works

Using Slug Generator, start to finish

Three steps, in the order the tool above actually takes them.

  1. 1

    Type or paste the title

    The field opens on a seeded example, and the slug rebuilds on every keystroke. There is no button and no delay.

  2. 2

    Look at what vanished

    Symbols are removed rather than hyphenated. If two words fused, put a space around the symbol that joined them.

  3. 3

    Decide on casing

    Lowercase is on by default. Switch it off only when a system needs the original capitals preserved.

Use cases

What people bring here

The jobs this page is usually opened for, and the setting that makes each one quick.

A blog headline heading for a permalink

The everyday case: a sentence with capitals, an apostrophe and some brackets, needing a lowercase hyphenated tail.

Leave Lowercase on, then edit the title down inside the field until the output box shows only the words you want.

A title built around symbols

Ampersands, slashes and plus signs read as word separators to a human and as nothing at all to this pipeline.

Replace each symbol with a space in the Title or sentence field first, or rock&roll arrives as rockroll.

A German, Danish, Polish or Vietnamese title

Letters whose form is not an accent over a base letter are removed rather than converted, and the tool gives no warning.

Type ss for the eszett, oe for the slashed o and l for the barred l in the field yourself; the Lowercase switch has no bearing on it.

What the pipeline actually does

Deletion is silent, and that is the whole risk

Each row below produces a slug that is valid, copies without complaint, and is not the one you meant. Every example was produced by running the exact expression from the source, not reasoned about.

Accents are converted to plain letters

Every non-ASCII letter gets an ASCII equivalent, so any European title converts cleanly.

Only letters that decompose into a base plus a combining mark survive. Anything whose form is baked in is deleted by the allow-list: Strasse written with an eszett gives strae, Aether Oeuvre Aeroe written with ligatures gives ther-uvre-r, Lodz written with a barred L gives odz. Substitute those letters yourself before converting.

Punctuation marks a word boundary

Symbols such as &, / and _ turn into hyphens, the way most CMS slug fields behave.

They are deleted, so the words on either side fuse. rock&roll gives rockroll, my_post_name gives mypostname, and 2026/07/15 report gives 20260715-report with the date run together. Replace the symbol with a space in the field first.

Non-Latin scripts are romanised

A Cyrillic, Greek or CJK headline comes back as readable Latin text.

Those characters are removed, not transliterated, so a title written entirely in one produces an empty string. The output box is blank and Copy then does nothing at all — no clipboard write and no error toast, because the button returns early on empty text.

Stray hyphens at the ends are tidied away

The result never begins or ends with a hyphen.

Trimming runs on whitespace, before spaces become hyphens, and nothing runs after the collapse. "Hello -" gives hello- and "- Hello" gives -hello. Both are rejected or silently rewritten by several CMS slug fields, so check the last character before pasting.

Something enforces a sensible length

The tool caps the slug, or at least warns when it grows unwieldy.

There is no length limit anywhere in the path and nothing truncates, so a long headline gives a slug exactly as long. There is no character counter and no stop-word removal either — the, and and of all survive. Shorten the title in the field instead.

Privacy

Where your work is processed

The conversion runs entirely in this tab with no request carrying the title you type and nothing written to storage, while the page shell separately sends one POST to /api/tool-usage per view whose body is the literal tool name and no part of your input, skipped altogether when the browser sets Do Not Track or Global Privacy Control.

The work happens as you type

Every result on these pages is computed by JavaScript in this tab while you type. There is no submit step, no job, and no request that carries what you entered.

Nothing is kept

No draft, history or recent list is written to storage. Closing the tab discards the lot, and a reload brings back the built-in example rather than your work.

The view counter is the only request

Each tool page records that it was opened, sending the tool's slug and nothing else. It carries no text you typed, and it is skipped when your browser signals Do Not Track or Global Privacy Control.

One caveat on that

The endpoint behind the counter is rate-limited like any other, which records a requesting address briefly to enforce the limit. It is never joined to what you typed, because none of it is sent.

More detail in how processing works and our privacy policy.

Limits

The whole of the transformation

The values this tool actually enforces, not a rounded-up version.

Normalisation form
NFKD
Compatibility decomposition, not NFD. It folds ligatures, fractions and fullwidth forms as well as accents.
Characters kept
a-z A-Z 0-9 space -
Everything outside that set is deleted rather than replaced, which is why symbol-joined words merge.
Combining marks removed
U+0300 to U+036F
The Combining Diacritical Marks block. This range is the entirety of the accent handling.
Separator
Hyphen only
Whitespace runs collapse to one hyphen, hyphen runs collapse to one. There is no underscore, dot or camelCase mode.

Worth knowing before you publish the URL

Transliteration covers accented Latin characters only — non-Latin scripts are stripped rather than romanized, so titles in Cyrillic, Arabic, or CJK need a manually written slug. There is no stop-word removal: the, and, and of pass straight through, so trim filler words from the input yourself if you want a keyword-dense slug. Punctuation is deleted rather than hyphenated, which can merge symbol-joined words. The tool converts text; it does not check whether the slug is unique on your site or set up redirects for changed URLs.

FAQ

Slug questions

The ones that actually come up.

Guides

Reading that goes deeper

Find this useful? Share it.