ToolzYard

Fast, practical, browser-based developer tools

SEO Tool • Free Online • No Signup

Slug Generator Online

Convert titles, headings, product names, and phrases into clean SEO-friendly URL slugs instantly. Choose your preferred separator and casing style, then copy the result for your website, blog post, landing page, or content workflow.

Ready to generate slugs.
Fast • Free • Browser-Based

Turn text into clean SEO-friendly URL slugs instantly

Clean slugs improve readability, link quality, and website structure. This tool helps remove unwanted characters, replace spaces, normalize text, and create consistent URL-friendly output in seconds.

✅ SEO-friendly slugs
✅ Custom separator
✅ Lowercase option
✅ Instant conversion

Your text stays in the browser

This slug generator is designed to work directly in your browser during normal use. That makes it useful for fast URL cleanup, content publishing, blog workflows, and SEO preparation.

For more details about site usage and analytics, read our Privacy Policy.

How to use this Slug Generator

Enter your title, heading, or phrase, choose a separator, decide whether you want lowercase output, and generate the slug instantly. You can then copy the result for use in your URL, article path, or page slug field.

  1. Enter your title or phrase.
  2. Choose a separator style.
  3. Select lowercase or keep original casing.
  4. Click Generate Slug or use live conversion.
  5. Copy the result into your website or CMS.

Example conversion

Input:  Best SEO Tips for Blog Posts 2026
Output: best-seo-tips-for-blog-posts-2026

Common use cases

  • Blog post URLs
  • Landing page paths
  • Product page slugs
  • Category and tag URLs
  • CMS publishing workflows

How a slug is actually built — and why the order matters

A robust slug pipeline runs in a specific order: normalize to NFD first, then strip the combining marks (Unicode U+0300U+036F), then lowercase, then replace every run of non-alphanumeric characters with a single hyphen, and finally trim any hyphens off the ends. This tool performs the NFD-and-strip step before cleaning up separators.

The NFD step is the part people skip, and skipping it quietly corrupts accented text. In its normal (NFC) form, café stores the é as a single code point. A plain [a-z0-9] filter cannot match that code point, so it simply deletes it — leaving caf. Normalizing to NFD first decomposes é into a base e plus a separate combining accent, so you can drop just the accent and keep the letter, yielding the correct cafe.

Stripping accents is not the same as transliterating

Removing combining marks is a Latin-script shortcut, not real transliteration — and transliteration is language-dependent, with no locale-free correct answer. German expands umlauts: öoe (Schönschoen), and likewise äae, üue, ßss. Swedish does the opposite: öo (Örebroorebro), because Swedish treats ö as a distinct letter, not an o wearing an umlaut.

So the same glyph ö has a different correct slug depending on the source language. A generic accent-stripper — including the mark-removal this tool uses — produces o for both: correct for Swedish, wrong for German. If your content is in a language that expands its diacritics, you need a transliteration step that actually knows the language, not a blanket accent remover.

What happens to a Chinese, Arabic, or Cyrillic title

NFD decomposition plus mark-stripping does nothing for scripts that aren't Latin. Chinese, Arabic, Hebrew, and Cyrillic characters have no combining accents to remove and no ASCII fallback, so an ASCII-only filter deletes all of them and you are left with an empty slug. That is a real failure mode for multilingual sites, and it usually surfaces as a pile of URLs like /post/ or auto-numbered fallbacks.

There are two honest fixes. Either run true transliteration for the script — for example, Chinese to pinyin — so the words survive in Latin letters, or keep the Unicode in the URL directly. Modern browsers accept percent-encoded UTF-8 slugs (this is how Wikipedia serves non-Latin article URLs), the trade-off being that a raw copied link shows %E2%80%-style escapes. ASCII slugs stay the most portable across old systems, analytics tools, and manual sharing.

Never regenerate a published slug from the title

Once a page is live, its slug is the URL — the target of every inbound link, bookmark, social share, and search-engine result. If your CMS regenerates the slug from the title on each save, then editing a typo in the headline silently changes the URL and 404s every one of those references at once. That is one of the most common self-inflicted SEO wounds.

The fix is to treat the slug as its own piece of data: store it in a dedicated database column, generate it once at creation time, and keep it even after the title changes. If you genuinely must change a published slug, add a 301 redirect from the old path to the new one so links and ranking carry over. When two titles produce the same slug, disambiguate by appending a numeric suffix — -2, -3, and so on.

Small rules that keep slugs from breaking

A few habits prevent the subtle bugs that show up later:

  • Keep slugs lowercase. URL paths are case-sensitive on many servers, so /My-Post and /my-post are two different URLs — a mismatch that can split link equity or hand visitors a 404.
  • Collapse consecutive separators. Two spaces, a space next to a hyphen, or stray punctuation should become a single separator, never best--seo--tips.
  • Strip or map symbols. Emoji, punctuation, and characters like the sharp S should be removed or transliterated, not left to be percent-encoded into noise.
  • Trim the ends. A title that begins or ends with a symbol shouldn't leave a leading or trailing hyphen on the slug.

Frequently Asked Questions

Why normalize to NFD before stripping accents?

Because an accented letter like é is usually stored as a single precomposed code point that a plain [a-z0-9] filter can't match — so the filter deletes it, turning café into caf. Normalizing to NFD first splits é into a base e plus a separate accent, so you drop only the accent and keep the letter, giving cafe.

Should "ö" become "o" or "oe"?

It depends on the language. Swedish treats ö as its own letter, so the slug is o (Örebroorebro). German expands it, so the slug is oe (Schönschoen). A generic accent-stripper always gives o, which is right for Swedish and wrong for German — correct results need language-aware transliteration.

What happens to a Chinese or Arabic title?

An ASCII-only slugger produces an empty slug, because those scripts have no combining marks to strip and no Latin fallback, so every character is removed. You either transliterate the script (for example, Chinese to pinyin) or keep the Unicode in the URL as percent-encoded UTF-8, the way Wikipedia does.

If I edit a post's title, should its slug change?

No. The slug is the live URL, so regenerating it from the title 404s every existing link, share, and search result to that page. Store the slug once at creation and keep it after the title changes; if you truly must change it, add a 301 redirect from the old path to the new one.

How should I handle two posts that produce the same slug?

Append a numeric suffix to make each one unique — my-post, my-post-2, my-post-3. Check for an existing slug at creation time and increment until the value is free, then store that final value rather than recomputing it later.

Can a URL slug contain Unicode or non-ASCII characters?

Yes. Modern browsers accept percent-encoded UTF-8 in the path, so a non-Latin slug is valid and renders correctly in the address bar. The catch is portability: a copied link shows %-escapes, and some older tools mishandle it, so ASCII slugs remain the safest default.