ALLYX ONE
Tools Writing URL Slug Generator Writing
100% browser · zero uploads

URL Slug Generator

Turn any headline into a clean, SEO-friendly URL slug — lowercase, hyphenated, stop-words stripped, with full Unicode transliteration. Free, instant, and runs entirely in your browser.

0 characters in0 characters out

Preset

Separator

0 = no cap

URL slug

your-slug-appears-here

How It Works

1

Paste your title

Drop in a blog headline, video title, or product name. Your text stays in browser memory — nothing is transmitted anywhere.

2

Transliterate Unicode

German ä → ae, ö → oe, ß → ss; Nordic æ/ø/þ; French é/è/ê → e; Polish ł → l. Then Unicode NFKD strips remaining combining diacritics to pure ASCII.

3

Normalise & separate

Apostrophes are deleted, & becomes "and", everything else non-alphanumeric collapses into your separator (hyphen by default).

4

Strip & truncate

Optional: drop English stop-words (the, a, of, in, on…) and truncate to a max length at the nearest word boundary, so the slug never ends mid-word.

How to Use the URL Slug Generator

  1. Pick Single title for one slug, or Bulk mode to paste a list of titles (one per line).
  2. Paste or type your title into the input area. The slug updates live as you type.
  3. Choose a preset — SEO blog post, GitHub / npm, Python / DB column, or Tweet / short URL — or tune the four options individually.
  4. Verify the URL-safe badge under the output. It turns red if any non-ASCII character would need percent-encoding.
  5. Click Copy slug (or Copy all slugs in bulk mode) to send the result to your clipboard.

Why Slug Quality Matters for SEO and UX

Search engines use the URL slug as one signal of what the page is about. Human readers use it as a preview — when a slug reads /blog/how-to-bake-sourdough/ they can predict the content before they click; when it reads /posts?id=42 they can't. Google's John Mueller has publicly recommended hyphen-separated, lowercase, keyword-rich slugs since 2011, and the rule has held up across every major ranking-factor study run by Ahrefs, Backlinko, and Moz. The slug is a single low-effort lever that compounds across every internal link, social share, and search snippet for the life of the URL — so it is worth getting right the first time, because changing it later means a permanent 301 redirect.

Preset Comparison

Preset Separator Lowercase Stop-words Max length Best for
SEO blog post-YesStripped60Blog, marketing, news
GitHub / npm-YesKeptNoneRepos, package names
Python / DB column_YesKeptNoneVariable names, database schemas
Tweet / short URL-YesStripped30Social media, tracking links

Examples — Input → Slug

Input title SEO blog preset Python / DB preset
How to Bake Sourdough at Homehow-bake-sourdough-homehow_to_bake_sourdough_at_home
Über den Wolken: Eine Reise nach Münchenueber-wolken-eine-reise-nachueber_den_wolken_eine_reise_nach_muenchen
Crème Brûlée & 100% Pure-Beefcreme-brulee-and-100-pure-beefcreme_brulee_and_100_pure_beef
10 Reasons "Why" Slugs Matter for SEO10-reasons-why-slugs-matter-seo10_reasons_why_slugs_matter_for_seo

When to Pick Which Separator

  • Hyphen (-) — Google's official recommendation for web URLs. Treated as a word separator by every modern search engine. Use this for blog posts, product pages, and anything you want to rank.
  • Underscore (_) — Treated as a letter joiner, not a word break, so search engines see hello_world as one token. Use this for Python and Ruby variable names, database column names, and SQL identifiers — anywhere a hyphen would be parsed as subtraction.
  • Dot (.) — Useful for hierarchical configuration keys, namespaced JavaScript module names, and Clojure namespaces. Avoid in web URLs — many systems trim or reinterpret trailing dots.

How Unicode Transliteration Works

Naïvely lowercasing a title in another language usually produces a slug that still contains characters outside the URL-safe set, forcing the browser to percent-encode them and turning /münchen into the unreadable /m%C3%BCnchen. This tool applies a two-stage transliteration:

  1. Explicit map for compound substitutions — German ä → ae, ö → oe, ü → ue, ß → ss; ligatures æ → ae, œ → oe; Nordic þ → th, ð → d, ø → o; Polish/Slavic ł → l.
  2. Unicode NFKD normalisation — Decomposes accented letters into a base letter plus combining diacritic, then strips the combining mark. é becomes e, ñ becomes n, č becomes c, and so on.

The final pass replaces any character outside [a-z0-9] with the chosen separator, producing a slug that is safe in any URL, file system path, or DNS label.

Common Mistakes to Avoid

  • Don't stuff keywords. A slug like best-cheap-budget-affordable-laptop looks spammy and rarely outranks budget-laptop-2026.
  • Don't include the year unless the page will be updated annually. A 2024 slug looks stale by 2026 and forces a 301 redirect to refresh.
  • Don't change a published slug. Every change requires a permanent redirect, leaks a fraction of link equity, and breaks bookmarks. Get it right before you publish.
  • Don't mix separators. Pick hyphens or underscores and stay consistent across the site — mixed URLs confuse crawlers and humans equally.
  • Don't slugify identifiers. If your CMS already exposes a numeric ID, treat the slug as a vanity layer — and accept either /posts/42-how-to-bake-sourdough/ or /posts/how-to-bake-sourdough/ in the router.

Frequently Asked Questions

What is a URL slug and why does it matter for SEO?

A URL slug is the part of a URL that identifies a specific page — for example "url-slug-generator" in "/tools/writing/url-slug-generator/". Search engines use it as one signal for the page topic, and human visitors use it to predict the content before clicking. A clean, keyword-rich, hyphen-separated, all-lowercase slug typically improves click-through rate and ranking compared to a long auto-generated URL.

How is the slug generated?

The generator runs entirely in your browser. It transliterates accented characters (ä → ae, é → e, ß → ss), strips combining diacritics via Unicode NFKD normalisation, removes apostrophes, expands "&" to "and", lowercases the result if asked, replaces any non-alphanumeric run with the chosen separator, trims leading and trailing separators, optionally drops English stop-words, and truncates at a word boundary when a max length is set.

Why are stop-words stripped from the slug?

Short, common words like a, an, the, and, of, in, on, and with rarely add SEO value and push more meaningful keywords beyond the URL truncation point in search results. Disable the toggle if you need to keep the exact phrasing — for example, for branded titles.

Which separator should I use — hyphen, underscore, or dot?

Google has recommended hyphens for URL slugs since 2011 — they are treated as word separators, while underscores are treated as letter joiners. Use hyphens for blog posts and marketing pages, underscores for Python and database column names, and dots for hierarchical config keys.

How does Unicode transliteration work?

The tool maps German umlauts (ä → ae, ö → oe, ü → ue, ß → ss), Nordic æ/œ/ø/þ/ð, and Polish ł explicitly, then applies Unicode NFKD normalisation to decompose accents like é, ñ, and č into a base letter plus combining mark before stripping the mark. The result is pure ASCII that survives every URL encoder.

How long should a URL slug be?

There is no hard limit, but search engines truncate URLs in result snippets around 50–60 characters, and human readability degrades fast above that. The SEO preset caps at 60 characters; the Twitter preset caps at 30. The tool truncates at the nearest separator before the cap so the slug never ends mid-word.

Is my text uploaded anywhere?

No. Every conversion runs locally in your browser using JavaScript. Your input text is never sent to or stored on any server, and the tool works fully offline once the page has loaded.

Can I generate many slugs at once?

Yes. Switch to Bulk mode at the top of the tool, then paste one title per line. Every non-empty line is converted to its own slug using the current options. Click Copy all slugs to copy the full list to your clipboard as plain text.

Privacy & Security

All slug generation happens locally in your browser using JavaScript. Your text is never transmitted to any server — no upload, no API call, no logs.