# URL Slug Generator

> Turn a title into a URL slug: lowercase, hyphenated, accents folded to plain letters and whitespace normalised. Free slug generator, no signup.

- Canonical URL: https://www.zyff.app/tools/slug-generator
- Status: working
- Price: free, no signup, no watermark
- Processing: runs on Zyff's servers; input is held in memory for the request and never stored

Zyff's URL slug generator turns a title into the lowercase hyphenated form a URL wants, and the part that matters is what it does beyond hyphenating: accented Latin letters are folded to their base letters, so Café Münchner Straße becomes cafe-munchner-strasse rather than a slug carrying combining accent marks. Whitespace is normalised and line breaks are joined, because a slug is one line by definition. Kebab-case on its own is not a slug — a URL has to survive being typed from memory, copied out of an email and stored on a filesystem, and a precomposed accented character reliably does none of those.

## How to generate a URL slug

1. **Paste the title** — One title per line for a batch. Punctuation, accents, multiple spaces and stray line breaks are all fine — normalising them is the job.
2. **Check the four preset options** — This page opens with accent folding, whitespace trimming, space collapsing and line-break removal all on, which together are what separates a slug from plain kebab-case. Each is still a switch you can turn off.
3. **Shorten it** — Cut the slug to the three to five words that carry the meaning. A slug's job is to be readable in a search result and typable in an address bar, and neither improves past about sixty characters.
4. **Copy it into your CMS** — Set it before the page is published if you can. Changing a live slug means a redirect, and a redirect chain is a real cost that a moment's thought at publish time avoids.

## Features

- **Accents folded, not dropped**: café becomes cafe, Zürich becomes Zurich, Łódź becomes Lodz. Letters with no Unicode decomposition are transliterated explicitly — ß becomes ss, ø becomes o — because they are distinct letters rather than accented ones.
- **Latin script only**: Greek, Cyrillic and Arabic are neither romanised nor re-spelled. Romanising is a language-specific judgement where a wrong guess is worse than the original, and quietly stripping their accents instead is worse than either.
- **One line, always**: Line breaks are joined and runs of whitespace collapsed, so a title pasted out of a document does not produce a slug with a newline in it.
- **Batch by line**: Paste a content plan and get a slug per row, ready to paste back into a spreadsheet.
- **Nothing is invented**: The slug is derived from your words. No stop-word list quietly deletes half your title and no keyword is added.

## Specifications

| Property | Value |
| --- | --- |
| Output form | Lowercase words joined by single hyphens |
| Accent handling | Latin diacritics folded to base letters; ß, ø, ł, đ, þ, æ, œ transliterated |
| Non-Latin scripts | Not romanised and not re-spelled — a mark is only dropped from a Latin base letter |
| Whitespace | Trimmed, collapsed, and line breaks joined |
| Text limit | 100,000 characters per conversion, enforced on the server |
| Practical slug length | Three to five meaningful words; readability falls off past about 60 characters |

## Frequently asked questions

**What is a URL slug?**

The human-readable part of a URL that identifies one page — the how-to-generate-a-url-slug in /guides/how-to-generate-a-url-slug. A good one is lowercase, hyphenated, made of words a person would recognise, and short enough to read in a search result.

**Should a slug use hyphens or underscores?**

Hyphens. Google has stated for years that it treats a hyphen as a word separator and an underscore as a word joiner, so my_great_page can be read as one token while my-great-page is read as three words. Underscores in URLs are a legacy of filesystem naming, not a web convention.

**What happens to accented characters in a URL?**

They have to be percent-encoded to travel, so café-menu becomes caf%C3%A9-menu on the wire — which is valid, ugly in a search result, and fragile when someone retypes it or a system normalises the Unicode differently. Folding the accent to a plain letter avoids all of that, which is why it is preset on here. Folding is confined to the Latin script, so a Greek or Cyrillic title is left for you to decide about rather than re-spelled.

**How long should a slug be?**

Long enough to be meaningful and no longer. Three to five substantive words is a good target; past about sixty characters a slug is truncated in search results and stops being typable. Drop the articles and conjunctions and keep the nouns.

**Can I change a slug after publishing?**

You can, but the old URL is now a 404 for every link and bookmark pointing at it, so it needs a 301 redirect to the new one. Redirects work, but they accumulate — and a chain of them is slower and loses a little at each hop. Getting the slug right before publishing is much cheaper than fixing it after.

**Should the slug match the page title exactly?**

It should overlap, not match. A title is written for a human reading a list of results and can be long; a slug should be the two or three words from it that identify the page. Slugs that reproduce a full sentence, stop words and all, are harder to read rather than more descriptive.

## Related tools

- [Case Converter](https://www.zyff.app/tools/case-converter): Title, Sentence, UPPER, lower, camelCase, snake_case.
- [Snake Case Converter](https://www.zyff.app/tools/snake-case-converter): snake_case, camelCase, kebab-case, PascalCase and CONSTANT_CASE.
- [Word Counter](https://www.zyff.app/tools/word-counter): Count words, characters, sentences, reading time and readability.
- [Title Case Converter](https://www.zyff.app/tools/title-case-converter): Title case by AP, APA, Chicago, MLA, NYT or Wikipedia rules.
