How to make a URL slug
- Type or paste a title in the top box, or a whole list with one title per line.
- Choose the separator (hyphen for web addresses, underscore for code and database names). Optionally untick lowercase or enter a max length.
- The slugs update as you type. Click Copy to take them with you.
What a slug is and why it matters
A slug is the readable last part of a URL that identifies a page: best-coffee-in-seoul in example.com/blog/best-coffee-in-seoul. A clean slug uses only letters, digits and a separator, so it never needs percent-encoding and works in links, file names, CSS classes and database keys. Readers and search engines both scan the words in a URL, and 10-best-resume-tips says far more than ?p=4821. Short slugs that keep the main keywords are easier to read, share and remember, and changing a slug after publishing usually means setting up a redirect.
Exactly how the text is converted
Each line goes through the same steps. Accents are removed by splitting letters from their marks, then lowercase is applied if ticked. Every run of characters that is not an English letter or digit becomes one separator, repeated separators collapse, and separators at the start or end are trimmed. Examples:
10 Best Résumé Tips for 2026becomes10-best-resume-tips-for-2026.Rock & Roll: The Story!becomesrock-roll-the-story.Don’t Stopbecomesdon-t-stop, because the apostrophe is a separator, not deleted. Remove apostrophes in your title first if you wantdont-stop.snake_case_namewith a hyphen separator becomessnake-case-name; underscores in the input count as symbols too.
Limits you should know about
- Non-Latin scripts are dropped. Only A to Z and 0 to 9 survive, so a title written entirely in Korean, Chinese, Arabic or Cyrillic produces an empty line. Mixed titles keep only their Latin and numeric parts. Write an English or romanised version first.
- Some letters have no accent form to strip. Characters such as ß, ø, æ and ł are not split into a base letter plus a mark, so they act as separators:
Straßebecomesstra-e. Replace them by hand (ss, o, ae, l) beforehand. - Max length cuts at the last separator inside the limit. This avoids half words, but it can also drop a final word that would have fitted exactly, and if the first word alone is longer than the limit it is cut mid-word.
- Duplicates are not detected. Two identical titles give two identical slugs, so check for clashes before importing. Blank input lines are skipped, so a bulk list can come back shorter than it went in.
Practical uses
Bloggers and SEO writers turn headlines into permalinks. Shop owners create product handles from product names. Developers generate route names, file names or database identifiers, using the underscore option for the last two. Switching lowercase off keeps the original capitalisation, which suits identifiers that are case-sensitive.
Is it private?
Yes. Slugs are generated in your browser, so unpublished titles and product names are never uploaded.
Related guides
Characters that fall outside a clean slug are what URL encoding handles; see how to URL-encode text or use the URL encoder. For headline capitalisation before you slugify, try the case converter, and for title lengths see the character limits cheat sheet.
Frequently asked questions
What is a slug?
A slug is the URL-safe identifier for a page: a short string of words joined by hyphens, with no spaces, accents or special characters. In example.com/blog/best-coffee-in-seoul, the slug is best-coffee-in-seoul.
How are accents and symbols handled?
Accents are stripped, so an accented e becomes a plain e and Café becomes cafe. Every other symbol, emoji and punctuation mark becomes a separator, and runs of them collapse into one. Apostrophes also act as separators, so Don't becomes don-t.
What happens to Korean, Chinese or other non-Latin text?
It is removed, because only English letters and digits are kept. A title written entirely in another script gives an empty result. Add a romanised or English version of the title first.
Should I use a hyphen or an underscore?
Hyphens are the usual choice for web URLs because search engines treat them as word separators. Underscores suit code, file names and database identifiers, where hyphens can be awkward or invalid.
How does the max length setting work?
The slug is cut to the limit and then trimmed back to the last separator, so it does not end on a partial word. This can drop a last word that would have fitted exactly, and a single first word longer than the limit is cut mid-word.
Can it slugify multiple lines at once?
Yes. Put one title per line and you get one slug per line, ready for a CMS import or spreadsheet column. Blank input lines are skipped, and duplicate slugs are not detected.
Should I change a slug after a page is published?
Avoid it where possible. Existing links and search results point to the old address, so a changed slug needs a redirect from the old one to keep that traffic and ranking.
Is my text private?
Yes. Every slug is generated locally in your browser and nothing you type is uploaded.