About this slug generator
URL Slug Generator is a free SEO tool that runs entirely in your web browser. Type a title and the slug renders live: accents transliterated to plain ASCII (café becomes cafe, ß becomes ss), apostrophes collapsed (you'll becomes youll), reserved characters stripped, words joined with your chosen separator, optional stopword removal, and a max-length cap that cuts at a word boundary instead of mid-word. Bulk mode converts a whole list of titles at once with per-row copy and .txt or .csv export. Because everything happens locally on your device, the titles you paste are never uploaded and there is no sign-up. Like every HeroTool by Digital Heroes, it is 100% free with no limits.
Five rules of a good slug
Rule 1: Hyphens, never underscores. Google's URL structure guidance has been clear since 2008: hyphens read as word separators, underscores read as one concatenated word. For SEO and human readability, hyphens win.
Rule 2: Lowercase only. URL paths are case-sensitive on most servers, so /About/ and /about/ are technically different pages, which causes duplicate-content headaches with Google. Lowercase everywhere is the safest default.
Rule 3: ASCII only. URLs with non-ASCII characters technically work via percent-encoding (münchen becomes m%C3%BCnchen) but render as alphabet soup when shared. Transliterate to the closest ASCII at slug time (münchen becomes munchen, café becomes cafe). This tool uses NFD normalization plus an explicit map for characters NFD cannot decompose (ß, æ, œ, ø, đ, ł, ð, þ); non-Latin scripts such as Cyrillic, Arabic or Hindi need a real transliteration pass.
Rule 4: A 60-character soft cap. Long URLs truncate badly in social link previews, email clients and bookmark managers. Most modern publications keep slugs under 60 characters, and the max-length option here cuts at the nearest word boundary so you never get mid-word amputations. Treat 60 as a guideline: some brands go shorter for snappier sharing, some longer for category-rich URLs.
Rule 5: Stable slugs forever. Once a slug ships, never change it. Google indexes the URL, backlinks point at it, share buttons cache it. If you must rename, set up a 301 redirect from the old slug to the new one; every CMS supports this. Verify the redirect after deploy with our Redirect Chain Checker.
Four jobs this tool covers
Job 1: Slugs for new blog posts. Type the headline, copy the slug into your CMS's URL field. Your CMS probably auto-generates slugs already, but they often include stopwords or follow odd truncation rules. This tool gives you explicit control over separator, stopwords and the length cap.
Job 2: Migrating from a legacy CMS. Moving from a slug pattern like post_id_12345 to clean descriptive slugs? Switch to Bulk mode, paste the whole title list, and export the new slugs as .txt or .csv. Then set up 301 redirects from the old paths to the new ones.
Job 3: URLs for marketing landing pages. Campaign landing pages need descriptive URLs that are brand-safe and keyword-rich. Type the page concept, get a clean slug, paste it into your routing config. Pair with our UTM Builder for the tracking-parameter side.
Job 4: Folder and file names. Use the underscore separator for filesystem-friendly names. Most modern shells and IDEs handle hyphens too, but some legacy tooling (Make, certain shell pipelines) chokes on hyphens at the start of filenames. Underscore is the safer default for filesystem use; hyphen for URLs.
Frequently asked questions
Why hyphens instead of underscores?
Google's URL structure guidance has been clear since 2008: hyphens are interpreted as word separators, underscores are not. So 'sticky-tape-stripping' reads to Google as three words; 'sticky_tape_stripping' reads as one long word. For SEO, hyphens win every time. Underscores are still common in code identifiers (Python, SQL), file names and a handful of legacy CMSes. Pick the underscore separator only if your existing URL structure already uses them and you cannot migrate.
What does accent transliteration do?
The tool uses the JavaScript String.normalize('NFD') technique to decompose accented characters into a base letter plus a combining diacritic, then strips the diacritics: café becomes cafe, naïve becomes naive, München becomes munchen. On top of that it maps characters NFD cannot decompose, so ß becomes ss, æ becomes ae, œ becomes oe and ø becomes o. The result is an ASCII-only slug that works universally in URLs without percent-encoding. For non-Latin scripts (Cyrillic, Arabic, Hindi, Chinese), NFD does not transliterate; those need a real transliteration library, or an English version of the title supplied manually.
Should I remove stopwords?
Optional, and the answer depends on your URL strategy. SEO conventional wisdom says remove stopwords (a, the, of, in, on) to keep the slug short and keyword-dense. Modern Google handles either form fine: content matters more than slug length. Reasons to keep stopwords: a shorter slug can lose semantic clarity ('manual-bike-tune-up' vs 'a-manual-on-bike-tune-ups'), and the small words help users understand the URL when scanning. The toggle defaults to off because preserving meaning beats keyword-density theatre. Switch it on for the more SEO-conventional behaviour.
Why does the slug get truncated?
Long URL slugs are harder to share, easier to truncate in social-media link previews, and harder for users to recognise. Set the max-length slider and the tool cuts at the nearest word boundary, so you never end up with 'best-shopify-themes-for-fashion-brands-in-the-bro' chopped mid-word. The slider defaults to no limit; 60 characters is a sensible cap for most publications, though some go up to 80 and some keep under 40 for branding reasons.
What characters get stripped?
Anything outside a-z, 0-9 and the chosen separator. Punctuation, brackets, quotes (straight and smart), ampersand, hash, percent, plus, slash, colon, semicolon, equals and question mark would all either need percent-encoding in URLs or carry reserved meanings, so they are replaced with the separator. Apostrophes are removed entirely first, so you'll becomes youll rather than you-ll. Spaces and tabs collapse to a single separator, repeated separators collapse to one, and leading and trailing separators get trimmed (both behaviours can be toggled).
Is the text I paste sent anywhere?
No. Slug generation is plain JavaScript embedded in this static page, so it runs entirely on your device. Your titles are never uploaded to Digital Heroes servers and never logged, and no network request carries your content. Safe for unpublished article titles or anything else you would not want to ship to a third party.