How to make a URL slug, free and without uploading
To make a URL slug, type or paste a title into the Input Text box, or click Load Sample. The Generated Slug box fills in as you type, so How to Build a Modern Web Application with TypeScript becomes how-to-build-a-modern-web-application-with-typescript. Adjust Separator, Non-Latin text, Maximum length (characters), Remove English stopwords and Lowercase if needed, then click Copy. For many titles, click Batch (one per line), paste one title per line, and click Copy or CSV to download slugs.csv.
It runs in your browser; nothing is uploaded (you can check the Network tab in DevTools). Slugs, batch mode and the CSV file are all made on your device. There is no account and nothing to install.
A slug is the readable last part of a page address, such as hello-world in example.com/blog/hello-world. Google Search Central recommends hyphens over underscores, a consistent letter case because /APPLE and /apple are different URLs, and percent-encoding for non-ASCII characters (URL structure guidance, as of October 2026). Once the slug is ready, describe the page with the meta tag generator and list it with the XML sitemap generator.
Table of Use: titles and the slugs they become
| Title you type | Setting | Slug you get | Note |
|---|---|---|---|
| How to Build a Modern Web Application with TypeScript | Default | how-to-build-a-modern-web-application-with-typescript | Lowercase, hyphens, 60 characters at most |
| How to Build a Modern Web Application with TypeScript | Remove English stopwords | how-build-modern-web-application-typescript | Drops 25 filler words such as a, to and with |
| Café & Crème Brûlée: A Recipe | Default | cafe-creme-brulee-a-recipe | Accents become plain letters, & and : disappear |
| It's a Dog's Life — 10 Tips! | Default | its-a-dogs-life-10-tips | Apostrophes are removed, not turned into hyphens |
| Größe & Maße | Default | grosse-masse | ß becomes ss |
| Привет мир: первые шаги | Transliterate | privet-mir-pervye-shagi | Cyrillic to Latin |
| नमस्ते दुनिया | Transliterate | namaste-duniya | Devanagari to Latin |
| 안녕하세요 | Transliterate | annyeonghaseyo | Hangul to Latin |
| Привет мир | Keep original letters | привет-мир | 55 characters once percent-encoded; the tool shows both forms |
| 東京タワー | Transliterate | 東京タワー | Kanji stay, and the tool lists the characters it kept |
| The Ultimate Guide to TypeScript in 2026 | Maximum length 20 | the-ultimate-guide | Cut at the last whole word, not mid-word |
| Hello World | Underscore (_) | hello_world | Google recommends hyphens, and the tool says so |
Features
- Single and batch modes. Single slug shows the slug, its length in characters, the word count and a Preview URL. Batch (one per line) shows a table of titles and slugs with a count of repeats, shortened and empty rows.
- Separator. Hyphen (-) or Underscore (_).
- Non-Latin text. Transliterate converts accented Latin, Cyrillic, Greek, Arabic, Persian, Urdu, Hebrew, nine Indic scripts, Korean and Japanese kana. Keep original letters leaves every script as it is.
- Maximum length. From 0 (no limit) to 2000 characters, 60 by default, cut at a word boundary.
- Remove English stopwords. Drops 25 filler words, and keeps them if a title is nothing but stopwords.
- Lowercase. On by default, because URLs are case-sensitive.
- Unique slugs in batches. Repeated titles get
-2,-3and so on, or can be left unchanged by unticking the box. - Safe CSV. The CSV has title and slug columns, and cells that start with =, +, - or @ are prefixed so a spreadsheet does not run them as formulas.
- Honest about what it cannot convert. Characters kept as Unicode are listed under the output, and a note appears when a title has no letters or digits.
How to use the slug generator
- Choose Single slug for one title, or Batch (one per line) for a list.
- Type or paste your text into the Input Text box (or Titles (one per line) in batch mode). Click Load Sample for an example, or the bin icon (Clear input) to empty the box.
- Under Options, pick Hyphen (-) or Underscore (_) as the Separator.
- Choose Transliterate or Keep original letters under Non-Latin text.
- Set Maximum length (characters), switch on Remove English stopwords if you want shorter slugs, and keep Lowercase ticked.
- In batch mode, leave Make repeated slugs unique (-2, -3, ...) ticked if two titles can match.
- Click Copy, or CSV in batch mode to save slugs.csv, and use the slug in your page address.
Who can use it
- Bloggers and editors turning a headline into a permalink, after checking length with the character counter.
- Developers and site migrators who paste hundreds of titles in batch mode and download the CSV, then build redirects with the .htaccess generator.
- Online shops that need unique product addresses, which they can mark up with the schema markup generator.
- Multilingual teams producing Latin-letter URLs from Russian, Greek, Hindi or Korean titles, and encoding any Unicode slug they keep with the URL encoder.
- Content teams who clean a title list first with the remove duplicate lines tool or reshape it with the text case converter.
- SEO specialists auditing old addresses against new ones in the text diff tool.
FAQs
How do I create a URL slug from a title?
Type or paste the title into the Input Text box. The Generated Slug box shows the result as you type: lowercase words joined by hyphens, with punctuation removed and accents converted to plain letters. Change the options if you need to, then click Copy. For example, Hello World! becomes hello-world. Click Load Sample to see it work.
Should I use hyphens or underscores in a slug?
Use hyphens. Google Search Central recommends hyphens instead of underscores to separate words in URLs, because they help users and search engines identify the individual words. The generator uses Hyphen (-) by default. Choose Underscore (_) only when a system you work with requires it, and a short note appears when you do.
Can it make slugs from Russian, Hindi, Arabic or Chinese text?
Yes for most scripts. Transliterate converts Cyrillic, Greek, Arabic, Persian, Urdu, Hebrew, nine Indic scripts, Korean and Japanese kana to Latin letters, so Привет мир becomes privet-mir. The result is a rule-based approximation, so check names. Chinese characters, kanji and Thai stay as they are, and the tool tells you which ones it kept.
How long should a slug be?
Short enough to read at a glance, usually a handful of meaningful words. The generator limits slugs to 60 characters by default through Maximum length (characters), and you can set any value up to 2000 or 0 for no limit. Long slugs are cut at the last whole word, so the slug never ends in half a word.
What happens to special characters like & and apostrophes?
Apostrophes are removed, so Don't Stop becomes dont-stop. Other punctuation and symbols, including & and %, act as word breaks and are replaced by the separator, so Rock & Roll becomes rock-roll. If a symbol carries meaning, spell it out in the title first, for example Rock and Roll, and the slug will keep it.
Can I change a slug after the page is published?
You can, but avoid it when possible, because links from other sites, bookmarks and search results point to the old address. If you must change it, set up a 301 redirect from the old URL to the new one at the same time. On Apache servers, the .htaccess generator on this site can write that redirect rule.
Is my text sent to a server?
It runs in your browser; nothing is uploaded (you can check the Network tab in DevTools). Slugs, batch mode and the CSV download are all made by a script that ships with the page, so your titles stay on your device. There is no account, and the tool needs no installation.