Turn any text into an SEO-friendly slug
A URL slug is the human-readable part of a URL that identifies a specific page — usually the last segment after the final slash. For example, a blog title like My First Blog Post! becomes the slug my-first-blog-post. The term comes from newspapers (a "slug" was a metal type line carrying an article's short identifier) and was adopted by content-management systems like WordPress. A good slug is short, lowercase, uses hyphens instead of spaces, and contains the most important keywords of the page. Special characters, accents, and non-Latin letters are transliterated or removed so the URL works reliably in every browser and email client.
Slugs improve several aspects of a website at once. SEO: search engines treat keywords in the URL as a ranking signal. /blog/seo-basics-2024 is clearer to Google than /blog/post?id=4837. Click-through rate: studies show descriptive URLs in search results get clicked more often. Readability: when shared via messenger, email, or social media, users can already identify the topic from the URL alone. Browser tabs & bookmarks: instead of a cryptic ID, a meaningful slug appears in the tab bar. Maintenance: logs, analytics reports, and cache keys become more readable. From a UX and SEO perspective, slugs are essentially mandatory — even if a CMS could technically work with IDs.
The following rules have established themselves as best practice:
%20 and are unwieldy. Google explicitly recommends hyphens (-) over underscores (_).?, #, &, =, comma, or quotes. These collide with URL parameters or must be escaped.ä → ae, ö → oe, ü → ue, ß → ss, é → e. URLs with diacritics technically work via Punycode/IDN but are hard to share.Transliteration converts characters from one script to another without losing the sound. For German umlauts there are two schools: ä → ae (the German tradition, which this tool uses) or ä → a (Unicode NFD stripping, which some tools use). For Cyrillic, ISO 9 or scholarly transliteration is typical: Москва → Moskva. For Chinese characters, Pinyin is used: 北京 → beijing. For Japanese kana, the Hepburn system: 東京 → tokyo. Arabic and Hebrew have their own standards. Be aware: different standards can produce different slugs from the same input — pick one for your site and apply it consistently!
With this tool's default settings (lowercase, hyphen separator), the following slugs are produced:
| Language | Input | Slug |
|---|---|---|
| DE | Schöne Grüße aus München! | schoene-gruesse-aus-muenchen |
| EN | The Quick Brown Fox | the-quick-brown-fox |
| ES | ¿Cómo está el niño? | como-esta-el-nino |
| FR | L'Été à Paris & Côte d'Azur | l-ete-a-paris-cote-d-azur |
| PT | Açaí na Praia do Leblón | acai-na-praia-do-leblon |
Where do slugs come up in the daily life of a web developer or content creator?
/products/red-wool-sweater-xl beats /p/8472./blog/category/web-development or /shop/tag/sale often rank well themselves.id="slug" anchors in rendered HTML (GitHub READMEs, MkDocs, Docusaurus).No. All slug generation happens directly in your browser using JavaScript. There are no network requests, no server logs, no storage. You can verify this yourself by checking the DevTools network tab — nothing happens there while you type. The page even works completely offline once loaded.
Emojis and all special characters are removed. In its final step, the tool replaces every non-alphanumeric sequence with the chosen separator, and trailing/leading separators are trimmed. So Hello 🚀 World!! & more 😀 becomes hello-world-more. This is intentional — emojis in URLs aren't portable and break many email clients.
This tool uses the German tradition: ä → ae, ö → oe, ü → ue, ß → ss (plus uppercase variants Ä → Ae, etc.). Example: Schöne Grüße aus Köln becomes schoene-gruesse-aus-koeln. This variant is more common on German websites — it preserves more readable information than purely stripping via Unicode NFD, which would turn ü into just u.
Not directly right now. The tool doesn't auto-truncate — it returns the full result. If you want to cap the slug at, say, 60 characters, copy the output and trim it manually — ideally at a hyphen so no word gets cut mid-way. We'd add a length option if this is asked for often — feedback welcome on the homepage.
A URL (Uniform Resource Locator) is the complete address of a resource: https://example.com/blog/my-first-post?utm=newsletter. A slug is just the human-readable part — usually the last segment of the path (my-first-post), though sometimes several segments. Other URL parts are: scheme (https), host (example.com), path (/blog/my-first-post), query (?utm=newsletter), and fragment (#section). When you generate a slug, you later compose a URL by prepending the scheme, host, and path.
A URL slug is more than a technical requirement — it is a meaningful ranking signal. Studies from Backlinko and Moz in recent years show that URLs with relevant keywords in the slug get measurably higher click-through rates in search results. Google itself confirms this in Search Central documentation: "URLs are an important piece of information about your page's content". The ideal slug is three to five words long, contains the primary keyword, drops filler words and is readable at a glance. /blog/python-list-comprehension-vs-for-loop outperforms /blog/post-id-4823, even though both technically work.
Technically, RFC 3986 (Uniform Resource Identifier) defines which characters can appear unmodified in a URL: ASCII letters, digits and the four so-called "unreserved" characters - . _ ~. Everything else — spaces, umlauts, emojis — must be percent-encoded (%20 for a space). That is technically allowed but ugly: /uber-uns often appears as /%C3%BCber-uns in the browser address bar, and the URL looks foreign to end users in link tooltips. That's why professional CMS like WordPress, Strapi and Ghost transliterate umlauts to ASCII automatically.
Length matters too: Google's search snippet shows about 70-75 characters of the URL before truncating with .... For https://calcsi.com/de-de/tools/slug-generator, only around 30 characters remain for the actual slug after subdomain, TLD and locale. Ignoring this wastes valuable snippet space. A second threshold is 2048 characters — the de-facto maximum URL length in most browsers (Microsoft Edge enforces it strictly). But that concerns tracking parameters more than slugs. Stay at 3-5 words and you'll be well under all limits. Internationalized Domain Names (IDN) factor in too: via Punycode munchen.de internally becomes xn--mnchen-3ya.de. Slugs in IDN domains work, but the raw URL form (e.g. in email clients) looks unreadable. For that reason professional .de sites almost always use ASCII domains.
A systematic workflow avoids typical slug mistakes:
How to build a REST API in 5 minutes.how-build-rest-api-5-minutes.rest-api-tutorial — more compact, sharper keyword signal.2026) or a version (v2) instead of -2 or -copy.How the generator handles typical inputs with special characters:
"Uber uns!" → ueber-uns — German umlauts become ae/oe/ue, exclamation marks dropped."50% off" → 50-off — percent sign removed, digits preserved."Cafe & Bar" → cafe-bar — accent dropped, ampersand removed, double hyphens collapsed."Doppel--Bindestrich" → doppel-bindestrich — consecutive separators collapse to one."---Test---" → test — leading and trailing separators are trimmed (RFC 3986 normalized).The most common SEO mistake with slugs is changing them later without a 301 redirect. If /old-slug becomes /new-slug without a server-side 301, you lose all backlinks and ranking signals for that URL. WordPress handles this automatically, many custom CMS do not — verify before every URL change. Second common error: too-short slugs without context (/p/1234) are not SEO-friendly. Third error: stopword filter too aggressive — if vs gets dropped, react-vs-vue loses its meaning. Always inspect the tool result manually. Fourth error: date-based slugs (/2024/06/09/post) become inflexible because you cannot turn them into timeless content without breaking URLs. Fifth common error: multilingual sites using identical slugs for different languages — Google often reads this as duplicate content. Recommendation: per-language slug or clear locale prefix (/de/ueber-uns vs. /en/about-us), and always set hreflang.
- as a word separator and _ as a word joiner. black-cat is indexed as two words, black_cat as one. Matt Cutts (formerly Google) confirmed this officially in 2011./About and /about are different URLs. Many web servers normalize to lowercase — others don't. Stick to lowercase.%F0%9F%98%80) and search engines don't understand them semantically. Avoid them in URLs; use them only in the page title./2024/06/09/post-title for evergreen content. Date URLs signal "outdated" and are inflexible for later updates. Better: /blog/post-title. Use dates only for news content.