Slug Generator

Beliebigen Text in einen sauberen URL-freundlichen Slug umwandeln

Beispiel ausprobieren
Trennzeichen

Eingabetext

Slug

Läuft lokal · Sicher zum Einfügen von Secrets
Slug erscheint hier…

Was ist ein URL-Slug?

Ein URL-Slug ist der Teil einer Webadresse, der eine bestimmte Seite in menschenlesbarer Form identifiziert. In der URL https://example.com/blog/mein-erster-beitrag ist der Slug mein-erster-beitrag. Ein Slug Generator wandelt einen Seitentitel oder eine Beschreibung in eine Zeichenkette um, die nur Kleinbuchstaben, Ziffern und Bindestriche (oder ein anderes gewähltes Trennzeichen) enthält. Dabei werden Leerzeichen entfernt, Akzente und Diakritika bereinigt, Sonderzeichen gelöscht und Leerzeichen durch einzelne Trennzeichen ersetzt.

Die Slug-Generierung ist ein Standardschritt in Content-Management-Systemen, statischen Website-Generatoren, Blog-Plattformen und jeder Anwendung, die URLs aus Benutzereingaben ableitet. WordPress, Ghost, Hugo, Next.js und Django enthalten alle eine Slug-Logik, weil lesbare URLs sowohl die Benutzerfreundlichkeit als auch die Suchmaschinenoptimierung verbessern. Ein korrekt geformter Slug teilt dem Nutzer mit, was eine Seite enthält, bevor er den Link anklickt.

Der Begriff „Slug“ stammt aus dem Zeitungsdruck, wo er ein kurzes Kürzel zur Identifizierung eines Artikels während der Produktion bezeichnete. In der Webentwicklung erfüllt der Slug dieselbe Funktion: Er ist ein kompakter, eindeutiger, URL-sicherer Bezeichner, der aus einem längeren Titel oder Namen abgeleitet wird. Da Slugs programmgesteuert erzeugt werden, sorgt ein zuverlässiger Slug Generator für Konsistenz auf jeder Seite und in jeder Sprache.

Warum diesen Slug Generator verwenden?

Das manuelle Erstellen von URL-Slugs ist fehleranfällig. Ein vergessener Akzent, ein doppelter Bindestrich oder ein Sonderfall bei Unicode-Eingaben können zu fehlerhaften oder unschönen URLs führen. Dieses Tool behandelt diese Probleme automatisch.

Sofortige Umwandlung
Text einfügen oder eingeben und den Slug in Echtzeit aktualisieren sehen. Kein Formular, kein Seitenneustart. Praktisch, wenn Slugs für eine Reihe von Artikeltiteln oder Produktnamen benötigt werden.
🔒
Datenschutzfreundliche Verarbeitung
Die gesamte Slug-Generierung läuft im Browser. Der Text verlässt die Seite nie, sodass Entwurfstitel, interne Projektnamen oder unveröffentlichte Produktnamen sicher umgewandelt werden können.
⚙️
Konfigurierbares Ergebnis
Zwischen Bindestrich-, Unterstrich- oder Punkt-Trennzeichen wählen. Kleinschreibung ein- oder ausschalten. Dies deckt die gängigsten Slug-Konventionen verschiedener Frameworks und CMSes ab.
🌐
Unicode- und Akzentbehandlung
Der Generator wendet NFD-Normalisierung an, um Diakritika aus Zeichen mit Akzenten zu entfernen. Café wird zu cafe, naïve wird zu naive. Nicht-lateinische Zeichen, die nicht transliteriert werden können, werden sauber entfernt.

Anwendungsfälle des Slug Generators

Frontend-Entwickler — Routen-Planung
Konsistente Slugs für Seitenrouten in React Router, Next.js oder Nuxt generieren, bevor dynamische Routensegmente verdrahtet werden. Prüfen, ob Titel mit Sonderzeichen saubere Pfade erzeugen.
Backend-Entwickler — Datenbank-Bezeichner
URL-sichere Slugs für Datenbankeinträge erstellen, die menschenlesbare Bezeichner benötigen. Slugs eignen sich gut als Sekundärschlüssel neben numerischen IDs für REST-API-Endpunkte wie /api/products/wireless-headphones.
DevOps — Konfigurationsdatei-Benennung
Dienstnamen oder Umgebungsbezeichnungen in dateisystemsichere Zeichenketten für Konfigurationsdateien, Docker-Image-Tags oder Kubernetes-Ressourcenamen umwandeln, wo Sonderzeichen nicht erlaubt sind.
QA-Entwickler — Testdaten-Generierung
Schnell Slug-Varianten aus Testfalltiteln generieren, um URL-Routing, Weiterleitungsregeln und Canonical-Tag-Verhalten in Staging-Umgebungen zu überprüfen.
Data Engineer — Spalten-Normalisierung
Unordentliche Spaltenköpfe aus CSV- oder Excel-Importen in konsistente snake_case- oder kebab-case-Bezeichner für Datenbankschemata oder Datenpipelines normalisieren.
Studierende — CMS- und Blog-Projekte
Verstehen, wie Slug-Generierung funktioniert, beim Aufbau eines Blogs mit WordPress, Jekyll oder einem eigenen CMS. Dieses Tool verwenden, um manuell erstellte Slugs mit einer Referenzimplementierung zu vergleichen.

Slug-Generierungsregeln und Zeichenbehandlung

Die Slug-Generierung folgt einer vorhersehbaren Abfolge von Umwandlungen. Das Verständnis jedes Schritts hilft dabei, unerwartete Ausgaben zu debuggen oder eine eigene slugify-Funktion zu bauen.

  1. 1. Unicode-Normalisierung (NFD)
    Zusammengesetzte Zeichen in Basiszeichen + kombinierendes Zeichen zerlegen. Zum Beispiel wird é (U+00E9) zu e + kombinierendem Akut (U+0301). Dies macht Diakritika im nächsten Schritt entfernbar.
  2. 2. Diakritika entfernen
    Alle Zeichen im Unicode-Block Combining Diacritical Marks (U+0300–U+036F) entfernen. Nach diesem Schritt wird café zu cafe und Ñ zu N.
  3. 3. Sonderzeichen entfernen
    Jedes Zeichen, das kein Buchstabe, keine Ziffer, kein Leerzeichen und kein Bindestrich ist, durch ein Leerzeichen ersetzen. Dabei werden Satzzeichen, Symbole und Zeichen ohne ASCII-Äquivalent gelöscht.
  4. 4. Leerzeichen kürzen und zusammenfassen
    Führende und nachfolgende Leerzeichen entfernen, dann alle aufeinanderfolgenden Leerzeichen, Unterstriche oder Bindestriche in ein einzelnes gewähltes Trennzeichen zusammenfassen.
  5. 5. Schreibweise und Trennzeichen anwenden
    In Kleinbuchstaben umwandeln (optional) und Wörter mit dem gewählten Trennzeichen verbinden: Bindestrich (-), Unterstrich (_) oder Punkt (.).

Zeichenumwandlungs-Referenz

Die folgende Tabelle zeigt, wie häufige Zeichen bei der Slug-Generierung behandelt werden:

EingabeAusgabeAngewendete Regel
Hello Worldhello-worldLowercase + space → hyphen
Café au Laitcafe-au-laitNFD normalization strips é → e
naïve résuménaive-resumeMultiple diacritics removed
Price: $9.99!price-9-99Symbols ($, !, :) removed
too many too-manyWhitespace trimmed and collapsed
one--two___threeone-two-threeMixed separators collapsed
Привет мирprivet-mirCyrillic (if transliteration) or removed
file_name.txtfile-name-txtDots and underscores replaced
React & Vuereact-vueAmpersand removed
2026-03-302026-03-30Digits and hyphens preserved

Code-Beispiele

Slug-Generierung in gängigen Sprachen und Frameworks. Jedes Beispiel behandelt Unicode-Normalisierung, Diakritika-Entfernung und Trennzeichen-Einfügung.

JavaScript
function slugify(text, separator = '-') {
  return text
    .normalize('NFD')                   // decompose accented chars
    .replace(/[\u0300-\u036f]/g, '')    // strip diacritics
    .toLowerCase()
    .replace(/[^\w\s-]/g, ' ')          // drop special chars
    .trim()
    .replace(/[\s_-]+/g, separator)     // collapse whitespace → separator

  // slugify('Café au Lait')      → "cafe-au-lait"
  // slugify('Hello World', '_')  → "hello_world"
}

// Node.js alternative using the `slugify` npm package:
// npm install slugify
// const slugify = require('slugify')
// slugify('Hello World', { lower: true, strict: true }) → "hello-world"
Python
import re
import unicodedata

def slugify(text: str, separator: str = '-') -> str:
    """Convert text to a URL-safe slug."""
    text = unicodedata.normalize('NFD', text)
    text = text.encode('ascii', 'ignore').decode('ascii')  # strip non-ASCII
    text = text.lower()
    text = re.sub(r'[^\w\s-]', ' ', text)
    text = text.strip()
    text = re.sub(r'[\s_-]+', separator, text)
    return text

# slugify('Café au Lait')      → "cafe-au-lait"
# slugify('Hello World', '_')  → "hello_world"

# Alternative: python-slugify (pip install python-slugify)
# from slugify import slugify
# slugify('Café au Lait')  → "cafe-au-lait"
Go
package main

import (
	"regexp"
	"strings"
	"unicode"

	"golang.org/x/text/unicode/norm"
	"golang.org/x/text/transform"
	"golang.org/x/text/runes"
)

func slugify(text string) string {
	// NFD normalize and strip diacritics
	t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
	result, _, _ := transform.String(t, text)

	result = strings.ToLower(result)
	re := regexp.MustCompile(`[^\w\s-]+`)
	result = re.ReplaceAllString(result, " ")
	result = strings.TrimSpace(result)
	re = regexp.MustCompile(`[\s_-]+`)
	result = re.ReplaceAllString(result, "-")
	return result
}

// slugify("Café au Lait") → "cafe-au-lait"
// slugify("Hello World")  → "hello-world"
PHP
function slugify(string $text, string $separator = '-'): string {
    // Transliterate non-ASCII characters
    $text = transliterator_transliterate(
        'Any-Latin; Latin-ASCII; Lower()', $text
    );
    // Remove anything that is not a word char, space, or hyphen
    $text = preg_replace('/[^\w\s-]/', ' ', $text);
    $text = trim($text);
    $text = preg_replace('/[\s_-]+/', $separator, $text);
    return $text;
}

// slugify('Café au Lait')      → "cafe-au-lait"
// slugify('Hello World', '_')  → "hello_world"

Häufig gestellte Fragen

Was ist der Unterschied zwischen einem Slug und einem URL-Pfad?
Ein URL-Pfad ist das vollständige Segment nach der Domain, etwa /blog/2026/mein-beitrag. Ein Slug ist der menschenlesbare Teil, der eine bestimmte Ressource innerhalb dieses Pfads identifiziert – typischerweise das letzte Segment: mein-beitrag. Slugs werden häufig aus Titeln abgeleitet, während der Rest des Pfads die Routenstruktur der Website widerspiegelt.
Wie behandelt die Slug-Generierung nicht-lateinische Schriften wie Chinesisch oder Arabisch?
Standard-Slug-Generatoren, die NFD-Normalisierung und Diakritika-Entfernung verwenden, können nicht-lateinische Schriften nicht transliterieren. Zeichen wie chinesische Schriftzeichen oder arabische Buchstaben haben kein ASCII-Äquivalent und werden daher beim Bereinigungsschritt entfernt. Um nicht-lateinische Inhalte in Slugs zu erhalten, wird eine Transliterationsbibliothek wie limax (JavaScript), python-slugify mit dem unidecode-Backend oder eine eigene Zuordnungstabelle benötigt.
Sollte ich Bindestriche oder Unterstriche in URL-Slugs verwenden?
Google behandelt Bindestriche als Worttrennzeichen, Unterstriche hingegen als Verbinder. Der Slug my-first-post wird als drei Wörter (my, first, post) gelesen, während my_first_post als ein Token gilt. Für SEO-Zwecke sind Bindestriche die Standardwahl bei URL-Slugs. Unterstriche sind bei Dateinamen, Datenbankspalten und Programmierbezeichnern üblich, wo sie als variablensichere Verbinder dienen.
Wie lang sollte ein URL-Slug sein?
Google zeigt in den Suchergebnissen etwa 60 Zeichen einer URL an, bevor sie abgeschnitten wird. Kürzere Slugs sind leichter zu lesen, zu teilen und einzutippen. Drei bis sechs Wörter anstreben. Füllwörter (der, die, das, ein, eine, und, oder, in) entfernen, wenn sie die Bedeutung nicht verändern: wie-nextjs-app-bauen ist besser als wie-man-eine-nextjs-app-im-jahr-2026-baut.
Ist Slug-Generierung dasselbe wie URL-Kodierung?
Nein. URL-Kodierung (Prozent-Kodierung) ersetzt unsichere Zeichen durch Prozentzeichen-Triplets wie %20 für ein Leerzeichen. Die Slug-Generierung entfernt oder ersetzt unsichere Zeichen vollständig und erzeugt eine saubere Zeichenkette ohne Kodierungsartefakte. Ein Slug enthält niemals Prozentzeichen, Leerzeichen oder Sonderzeichen. URL-Kodierung bewahrt den Originalinhalt; die Slug-Generierung wandelt ihn in etwas Neues um.
Können zwei verschiedene Titel denselben Slug erzeugen?
Ja. Titel, die sich nur in Satzzeichen, Akzenten oder Groß-/Kleinschreibung unterscheiden, können zum selben Slug zusammenfallen. Zum Beispiel erzeugen Résumé-Tipps und Resume-Tipps beide resume-tipps. In CMS- oder Datenbankumgebungen wird eine Eindeutigkeitsprüfung benötigt, die bei einer Kollision ein numerisches Suffix anhängt (resume-tipps-2).
Wie generiere ich Slugs in WordPress oder Django?
WordPress generiert Slugs automatisch aus dem Beitragstitel mit sanitize_title(). Der Slug kann im Beitragseditor bearbeitet werden. Django stellt die Funktion slugify() in django.utils.text bereit, die ASCII-Eingaben gut verarbeitet. Für Unicode-Unterstützung allow_unicode=True übergeben. Beide Plattformen speichern Slugs in der Datenbank zusammen mit dem vollständigen Titel.