About Text to URL Slug
A URL slug is the readable part of an address — the words that identify a page in a form both humans and search engines can interpret. This converts arbitrary text into one: lowercased, with spaces and punctuation replaced by single hyphens, and with accents folded down to their base letters so that a word like café becomes cafe rather than dropping the character.
The accent folding is done by Unicode normalisation, which decomposes an accented letter into its base letter plus a combining mark, and then removes the marks. That is more robust than a lookup table of accented characters, because it works for any letter in the Latin range rather than only the ones someone thought to enumerate.
One consequence is worth stating plainly, because it surprises people constantly: only the characters a–z and 0–9 survive. Text in a non-Latin script — Chinese, Arabic, Cyrillic — produces an empty slug, and the punctuation between words collapses to single hyphens with any leading or trailing ones removed.
The rules are fixed rather than configurable, so the common variations people ask for cannot be produced here. There is no underscore style, no option to keep existing hyphens or dots, no capitalisation of any kind, and no maximum length — a long headline produces a correspondingly long slug that you would have to truncate yourself. Roman numerals are not converted, so a title using them keeps them in Latin form, and no transliteration is performed for scripts outside the Latin alphabet. Because the result is returned on its own with no comparison against the original, it is worth reading the slug against the title once before using it, particularly for titles that mix languages.
How to use Text to URL Slug
- 1 Paste the page title or headline.
- 2 The slug appears immediately, lowercased with hyphens between words.
- 3 Check the result if your title is not in a Latin script — those characters do not survive the conversion.
Frequently asked questions
My Chinese title produced an empty result. Why?
Because the conversion keeps only the characters a–z and 0–9 after folding accents, and Chinese characters fall outside that set. For non-Latin titles you need to supply a Latin transliteration yourself, or use an identifier derived from the content rather than from the title.
How are accented characters like é and ü handled?
They are folded to their base letters, so é becomes e and ü becomes u, giving cafe and uber. This uses Unicode decomposition rather than a fixed table, so it works across the whole Latin range.
What happens to punctuation and repeated spaces?
They collapse into a single hyphen each. A run of spaces, a slash, or a colon between two words all produce one hyphen, and any hyphen appearing at the very start or end of the slug is removed.
Why do hyphens matter rather than underscores?
Search engines treat a hyphen as a word separator, so /how-to-format-json is read as separate words. Underscores are not universally treated that way, which is why hyphens became the convention for URL paths.
Free, online, and private
Free to use
Text to URL Slug is completely free. There is no account to create, no login, and no hidden charge or usage limit.
Runs online in your browser
It is a free online tool that runs entirely in your browser. Nothing to download or install — open the page and start using it right away.
Your data stays private
All processing happens locally on your device. Your input is never uploaded, stored, or tracked, so it never leaves your browser.
How Text to URL Slug behaves in detail
These are the specifics of this implementation — the exact ranges, defaults and fixed settings you are working with.
| Parameter | Value |
|---|---|
| Pipeline | NFKD normalise, strip combining marks, lowercase, replace runs of disallowed characters with one hyphen, trim edge hyphens |
| Accent folding | real — é becomes e and ó becomes o, because combining marks are removed after the NFKD step |
| Allowed characters | a to z and 0 to 9 only; a space, an underscore or a dot becomes a hyphen |
| Run collapsing | any run of disallowed characters becomes exactly one hyphen, so foo___bar---baz gives foo-bar-baz |
| Case | always lowercased — there is no option to keep the original casing for a path segment |
Compiled from the implementation of this tool and checked against it by itoolnet.
What Text to URL Slug does not do
Knowing the edges of a tool saves more time than another list of its features. These are the cases where it will not do what you might expect.
- Non-Latin scripts are deleted rather than transliterated: Chinese, Cyrillic, Greek and Arabic input all reduce to an empty string, because the only characters the pipeline keeps are a to z and 0 to 9.
- Letters that NFKD cannot decompose become hyphens instead of Latin equivalents, so Straße slugs to stra-e and Søren to s-ren — a stray hyphen boundary left where the original letter used to be.
- There is no length cap and no uniqueness check. A long title produces a long slug, two different titles can produce the same slug, and nothing is truncated, hashed or disambiguated.
- The separator is hard-coded to a hyphen. There is no option to use an underscore, to keep dots for a filename-style slug, or to leave the capitalisation intact.
Tested and documented by itoolnet, the team that builds and maintains this site.