Skip to main content

Free Slug Generator

Convert any title or text into a URL-friendly slug. Perfect for blog posts, CMS pages, and SEO-optimised URLs.

Works offline once loaded
Separator
Generated slug
my-blog-post-title
18 characters4 words

Quick examples

Common uses

  • Generate URL Slugs for Blog PostsConvert blog post titles into clean, SEO-friendly URL slugs for WordPress, Ghost, and any CMS.
  • Generate Safe File Names from TitlesConvert document titles, photo names, or asset names into filesystem-safe filenames without spaces or special characters.
  • Optimise URL Slugs for SEOCreate keyword-rich, concise URL slugs that help search engines understand and rank your pages.
  • Generate Slugs for CMS and Headless SystemsCreate consistent slugs for Contentful, Sanity, Strapi, and other headless CMS content entries.
  • Generate Product URL Slugs for E-commerceCreate clean, keyword-rich product page slugs for Shopify, WooCommerce, and e-commerce stores.

How It Works

The slug generator runs entirely in your browser with zero external libraries. It converts text to URL-safe slugs using a hand-written transliteration table for Cyrillic, Greek, and Latin special characters, combined with the browser's built-in Unicode normalization (NFKD) for accent stripping.

  1. 1
    Transliteration pass
    Each character is looked up in a built-in CHARMAP table that maps non-ASCII scripts to Latin equivalents — Cyrillic (а→a, ж→zh, ш→sh), Greek (θ→th, ψ→ps), and Latin specials (æ→ae, ß→ss, ð→d). Characters with dedicated mappings like ё→yo are handled here before any further processing.
  2. 2
    Unicode normalization and accent stripping
    The browser's native String.normalize('NFKD') decomposes precomposed characters — so á becomes a + combining acute accent. A regex then strips all combining marks (Unicode range U+0300–U+036F), reducing accented Latin letters like é, ñ, and ț to their plain ASCII base.
  3. 3
    Word splitting and stop-word filtering
    Remaining non-alphanumeric characters are replaced with spaces and the text is split into words. If stop-word removal is enabled, common English function words (the, and, of, in, …) are dropped from the word list. The words are then joined with your chosen separator (hyphen, underscore, or dot).
  4. 4
    Length truncation and output
    If a max-length limit is set, the slug is cut at the nearest word boundary before the limit — never mid-word — by scanning back to the last separator. The final slug is displayed instantly as you type, with character and word counts shown below.

Related Tools

Frequently Asked Questions