Slug Generator

Zet elke tekst om naar een nette URL-vriendelijke slug

Probeer een voorbeeld
Scheidingsteken

Invoertekst

Slug

Draait lokaal · Veilig om secrets te plakken
Slug verschijnt hier…

Wat is een URL-slug?

Een URL-slug is het gedeelte van een webadres dat een specifieke pagina op een voor mensen leesbare manier identificeert. In de URL https://example.com/blog/mijn-eerste-artikel is de slug mijn-eerste-artikel. Een slug generator zet een paginatitel of beschrijving om naar een reeks die alleen kleine letters, cijfers en koppeltekens (of een ander gekozen scheidingsteken) bevat. Dit proces verwijdert spaties, strips accenten en diakritische tekens, verwijdert speciale tekens en normaliseert witruimte naar enkelvoudige scheidingstekens.

Slug-generatie is een standaardstap in contentmanagementsystemen, statische sitegeneratoren, blogplatforms en elke toepassing die URL's afleidt van gebruikersinvoer. WordPress, Ghost, Hugo, Next.js en Django bevatten allemaal slug-generatielogica omdat leesbare URL's zowel de bruikbaarheid als de zoekmachineoptimalisatie verbeteren. Een goed gevormde slug laat de gebruiker zien wat een pagina bevat nog voordat ze op de link klikken.

De term "slug" is afkomstig uit de krantenwereld, waar hij verwees naar een kort label dat werd gebruikt om een artikel tijdens de productie te identificeren. In webontwikkeling vervult de slug dezelfde functie: het is een compacte, unieke, URL-veilige identificator die is afgeleid van een langere titel of naam. Omdat slugs programmatisch worden gegenereerd, zorgt een betrouwbare slug generator voor consistentie op elke pagina en in elk taalgebied.

Waarom deze Slug Generator gebruiken?

Handmatig URL-slugs aanmaken is foutgevoelig. Een accent vergeten te verwijderen, een dubbel koppelteken laten staan, of een randgeval met Unicode-invoer missen kan gebroken of lelijke URL's opleveren. Dit hulpmiddel verwerkt die problemen automatisch.

Directe omzetting
Plak of typ tekst en zie de slug direct bijwerken. Geen formulierindiening, geen pagina herladen. Handig wanneer u slugs nodig heeft voor een reeks artikeltitels of productnamen.
🔒
Privacy-eerst verwerking
Alle slug-generatie verloopt in uw browser. Uw tekst verlaat de pagina nooit, dus u kunt veilig concepttitels, interne projectnamen of nog niet uitgebrachte productnamen omzetten.
⚙️
Configureerbare uitvoer
Kies tussen koppelteken, onderstrepingsteken of punt als scheidingsteken. Schakel kleine letters in of uit. Dit dekt de meest voorkomende slug-conventies voor verschillende frameworks en CMSen.
🌐
Unicode- en accentverwerking
De generator past NFD-normalisatie toe om diakritische tekens van geaccentueerde letters te verwijderen. Café wordt cafe, naïef wordt naief. Niet-Latijnse tekens die niet getranslitereerd kunnen worden, worden netjes verwijderd.

Toepassingen van de Slug Generator

Frontend-ontwikkelaar — Routeplanning
Genereer consistente slugs voor paginaroutes in React Router, Next.js of Nuxt voordat u dynamische routesegmenten aansluit. Verifieer dat titels met speciale tekens schone paden opleveren.
Backend-engineer — Database-identificatoren
Maak URL-veilige slugs voor databaserecords die voor mensen leesbare identificatoren nodig hebben. Slugs werken goed als secundaire sleutels naast numerieke ID's voor REST API-eindpunten zoals /api/producten/draadloze-hoofdtelefoon.
DevOps — Naamgeving van configuratiebestanden
Zet servicenamen of omgevingslabels om naar bestandssysteem-veilige reeksen voor configuratiebestanden, Docker-imagetags of Kubernetes-resourcenamen waar speciale tekens niet zijn toegestaan.
QA-engineer — Genereren van testgegevens
Genereer snel slug-varianten uit testcasetitels om URL-routing, doorstuurregels en canonical-taggedrag in stagingomgevingen te verifiëren.
Data-engineer — Kolomnormalisatie
Normaliseer rommelige kolomkoppen uit CSV- of Excel-imports naar consistente snake_case- of kebab-case-identificatoren voor gebruik in databaseschema's of gegevenspijplijnen.
Student — CMS- en blogprojecten
Leer hoe slug-generatie werkt bij het bouwen van een blog met WordPress, Jekyll of een aangepast CMS. Gebruik dit hulpmiddel om uw handmatige slugs te vergelijken met een referentie-implementatie.

Slug-generatieregels en tekenverwerking

Slug-generatie volgt een voorspelbare reeks transformaties. Inzicht in elke stap helpt u onverwachte uitvoer te debuggen of uw eigen slugify-functie te bouwen.

  1. 1. Unicode-normalisatie (NFD)
    Ontbind gecombineerde tekens in basisteken + combinatiemerk. Zo wordt é (U+00E9) opgesplitst in e + combinerend accentteken (U+0301). Hierdoor kunnen diakritische tekens in de volgende stap worden verwijderd.
  2. 2. Diakritische tekens verwijderen
    Verwijder alle tekens in het Unicode Combining Diacritical Marks-blok (U+0300–U+036F). Na deze stap wordt café cafe en Ñ wordt N.
  3. 3. Speciale tekens verwijderen
    Vervang elk teken dat geen letter, cijfer, witruimte of koppelteken is door een spatie. Hiermee worden leestekens, symbolen en tekens zonder ASCII-equivalent verwijderd.
  4. 4. Witruimte inkorten en samenvoegen
    Verwijder voorloopende en navolgende witruimte, en vouw vervolgens alle reeksen van opeenvolgende spaties, onderstrepingstekens of koppeltekens samen tot één gekozen scheidingsteken.
  5. 5. Hoofd­letters en scheidingsteken toepassen
    Zet om naar kleine letters (optioneel) en verbind woorden met het gekozen scheidingsteken: koppelteken (-), onderstrepingsteken (_) of punt (.).

Referentie voor tekentransformaties

De onderstaande tabel laat zien hoe veelvoorkomende tekens worden verwerkt tijdens slug-generatie:

InvoerUitvoerToegepaste 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

Codevoorbeelden

Slug-generatie in populaire talen en frameworks. Elk voorbeeld verwerkt Unicode-normalisatie, het verwijderen van diakritische tekens en het invoegen van scheidingstekens.

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"

Veelgestelde vragen

Wat is het verschil tussen een slug en een URL-pad?
Een URL-pad is het volledige segment na het domein, zoals /blog/2026/mijn-artikel. Een slug is het voor mensen leesbare gedeelte dat een specifieke resource binnen dat pad identificeert, doorgaans het laatste segment: mijn-artikel. Slugs worden vaak afgeleid van titels, terwijl de rest van het pad de routestructuur van de site weerspiegelt.
Hoe verwerkt slug-generatie niet-Latijnse schriften zoals Chinees of Arabisch?
Standaard slug generators die NFD-normalisatie en het verwijderen van diakritische tekens gebruiken, kunnen niet-Latijnse schriften niet translitereren. Tekens zoals Chinese hanzi of Arabische letters hebben geen ASCII-equivalent en worden daarom verwijderd tijdens de opschooningstap voor speciale tekens. Om niet-Latijnse inhoud in slugs te bewaren, heeft u een transliteratiebibliotheek nodig zoals limax (JavaScript), python-slugify met de unidecode-backend, of een aangepaste toewijzingstabel.
Moet ik koppeltekens of onderstrepingstekens gebruiken in URL-slugs?
Google behandelt koppeltekens als woordscheidingstekens maar behandelt onderstrepingstekens als woordverbinders. De slug mijn-eerste-artikel wordt gelezen als drie woorden (mijn, eerste, artikel), terwijl mijn_eerste_artikel wordt gelezen als één token. Voor SEO-doeleinden zijn koppeltekens de standaardkeuze voor URL-slugs. Onderstrepingstekens zijn gebruikelijk in bestandsnamen, databasekolommen en programmeeridentificatoren waar ze dienen als variabelveilige verbinders.
Hoe lang moet een URL-slug zijn?
Google toont ongeveer 60 tekens van een URL in zoekresultaten voordat er wordt afgekapt. Kortere slugs zijn gemakkelijker te lezen, te delen en in te typen. Streef naar 3 tot 6 woorden. Verwijder stopwoorden (de, een, het, en, of, in) wanneer ze de betekenis niet veranderen: hoe-nextjs-app-bouwen is beter dan hoe-een-next-js-app-te-bouwen-in-2026.
Is slug-generatie hetzelfde als URL-codering?
Nee. URL-codering (percent-codering) vervangt onveilige tekens door percent-drietallen zoals %20 voor een spatie. Slug-generatie verwijdert of vervangt onveilige tekens volledig, wat een schone reeks zonder coderingartefacten oplevert. Een slug bevat nooit procenttekens, spaties of speciale tekens. URL-codering bewaart de oorspronkelijke inhoud; slug-generatie zet het om naar iets nieuws.
Kunnen twee verschillende titels dezelfde slug opleveren?
Ja. Titels die alleen verschillen in leestekens, accenten of hoofd­letters komen vaak samen op dezelfde slug uit. Zo leveren Résumé Tips en Resume Tips allebei resume-tips op. In CMS- of databasecontexten heeft u een uniekheidscontrole nodig die een numeriek achtervoegsel toevoegt (resume-tips-2) wanneer een conflict optreedt.
Hoe genereer ik slugs in WordPress of Django?
WordPress genereert slugs automatisch van de berichttitel met behulp van sanitize_title(). U kunt de slug bewerken in de berichteditor. Django biedt de functie slugify() in django.utils.text, die ASCII-invoer goed verwerkt. Voor Unicode-ondersteuning geeft u allow_unicode=True mee. Beide platformen slaan slugs op in de database naast de volledige titel.