URL-slug-generator
Gjør om en tittel til en ren, URL-trygg sti — kebab-case, små bokstaver, ingen aksenter
Tittel eller tekst
Slug
Hva er URL-slug-generatoren?
Du har skrevet et blogginnlegg med tittelen "Slik parser du en URL i JavaScript — En kafeeiers guide (2026-utgaven)" og nå trenger du en URL-sti til det. Du vil ikke ha %E2%80%94 der inne, du vil ikke ha mellomrom, du vil ikke ha store bokstaver som knekker på case-sensitive servere. Du vil ha slik-parser-du-en-url-i-javascript-en-kafeeiers-guide-2026-utgaven. Det er det dette gjør. Lim inn tittelen, kopier sluggen. Selve termen kommer fra forlagsverdenen — se Wikipedia-oppføringen om slugs for etymologien.
Algoritmen er den standard. Gjør om til små bokstaver, kjør så String.prototype.normalize('NFD') for å dekomponere Unicode-tegn til basisbokstav pluss kombinerende merker. Fjern merkene (så é blir e, æ blir ae, å blir a, ø blir o). Håndter et par vanlige ligaturer manuelt — ß blir ss, ł blir l. Erstatt enhver rekke ikke-alfanumeriske tegn med en enkelt bindestrek. Klipp bort innledende og avsluttende bindestreker. Begrens til 80 tegn ved en ordgrense, slik at du ikke ender med en slug avskåret midt i et ord.
Hvorfor kebab-case? Fordi bindestreker er konvensjonen. Googles retningslinjer for URL-struktur anbefaler bindestreker fremfor understreker for ordadskillelse i URL-er — søkemotorer parser bindestreker som ordgrenser. RFC 3986 definerer de ureserverte tegnene i en URL-sti (bokstaver, sifre, bindestrek, punktum, understrek, tilde) og de fleste slug-konvensjoner holder seg til en delmengde av disse. Snake_case (mitt_innlegg_tittel) og Title-Case-Slug (Mitt-Innlegg-Tittel) er alternativer du ser, men kebab-case med små bokstaver er default overalt, fra praksis med rene URL-er til de fleste CMS-defaultene.
Slik bruker du slug-generatoren
Tre trinn. Hvert matcher en knapp på denne siden.
Lim inn en tittel eller last eksempelet
Slipp en tittel, overskrift, produktnavn eller hvilken som helst tekst i venstre panel. Klikk Eksempel for å laste et realistisk eksempel med tankestreker, aksenter og parenteser — den typen tittel som knekker naiv slug-kode. Eksempel-input:
Slik parser du en URL i JavaScript — En kafeeiers guide (2026-utgaven)Alt går — emoji, aksenttegn, smarte anførselstegn, tankestreker, doble bindestreker, flere mellomrom. Sluggen kommer ut ren.
Les sluggen
Høyre panel viser sluggen mens du skriver. Små bokstaver, med bindestreker, kun ASCII, begrenset til 80 tegn ved en ordgrense. Hvis input ikke inneholdt noen slug-bare tegn (f.eks. bare emoji eller bare tegnsetting), ser du en vennlig melding i stedet for et forvirrende tomt resultat.
Kopier eller last ned
Klikk Kopier for å sende sluggen til utklippstavlen, eller Last ned for å lagre den som en .txt-fil. Bruk Tøm i input-panelet for å starte på nytt med en ny tittel.
Når du faktisk ville brukt dette
URL-er for blogginnlegg
CMS-en din genererer slugs automatisk, men de er stygge — fjerner aksenter feil, lar understreker stå, håndterer ikke smarte anførselstegn. Du limer inn tittelen her, får en ren slug, limer den tilbake i URL-feltet. Funker for WordPress, Ghost, hjemmelagde Next.js-blogger, alt som lar deg overstyre sluggen.
Produkt- eller kategori-URL-er i e-handel
Marco Rivera legger til et nytt produkt som heter "Crème Brûlée Sett — 4-pakning (Begrenset Utgave)". URL-en må være /produkter/creme-brulee-sett-4-pakning-begrenset-utgave, ikke /produkter/Crème+Brûlée+Sett+%E2%80%94+4-pakning+%28Begrenset+Utgave%29. Slug, plug.
Filnavn fra brukerinntastede titler
Du lagrer opplastede dokumenter på disk og kunden skrev "Q4-rapport — Endelig (v3).docx" som tittel. Det vil du ikke ha som filnavn. Slug tittelen, legg på .docx, skriv filen. Funker likt for S3-nøkler, GitHub-branchnavn fra issue-titler, og Slack-kanalnavn fra prosjektnavn.
Migrere innhold fra et annet CMS
Priya Patel flytter 800 artikler fra et gammelt CMS til et nytt og kildetitlene har inkonsistent koding — noen aksentuerte, noen ikke, noen med emoji fra et redesign i 2018. Kjør hver tittel gjennom sluggeren, dedupliser, og du har det nye URL-kartet klart for redirect-tabellen.
Vanlige spørsmål
Hvorfor fjerner dere aksenter i stedet for å prosent-kode dem?
Fordi sluggen er ment å være lesbar for mennesker. café i sluggen blir %C3%A9 i den faktiske URL-en, som ser forferdelig ut i en nettleserlinje, knekker copy-paste i chat og forvirrer ikke-tekniske lesere. Å redusere til ASCII holder URL-en lesbar og SEO-vennlig. NFD-normalisering er standardmåten å gjøre den dekomposisjonen.
Hva med ikke-latinske skriftsystemer — kinesisk, arabisk, hindi?
NFD dekomponerer ikke ideogrammer eller skriftsystemer som ikke har en basis+kombinerende-merke-struktur. Så en tittel på kinesisk produserer en tom slug her, og du ser meldingen "ingen slug-bare tegn". For ikke-latinske skriftsystemer har du to alternativer: translitterer først (med et bibliotek som ICU eller unidecode), eller bruk det opprinnelige skriftsystemet i URL-en — moderne nettlesere og Google håndterer Unicode i URL-er uten problemer, bare mindre pent.
Hvorfor begrense til 80 tegn?
Ingen hard regel, men URL-er som overskrider ~80 tegn i sti-segmentet begynner å brytes stygt i e-poster, sosiale previews og trykte medier. Googles veiledning setter ikke et tall, men anbefaler "enkle, beskrivende" URL-er — lange er ingen av delene. Begrensningen finner den siste bindestreken før 80 tegn for å unngå et kutt midt i et ord.
Håndterer den emoji?
Ja. Emoji blir fjernet sammen med andre ikke-alfanumeriske tegn. Så "🎉 Ny Lansering! 🚀" blir ny-lansering. Hvis sluggen din ender tom (bare emoji-input), får du den vennlige tom-slug-meldingen i stedet for en ødelagt URL.
Hva er forskjellen mellom dette og URL-koding av tittelen?
URL-koding beholder hvert tegn men escape:r de usikre — så mellomrom blir %20, aksenter blir prosent-escaped UTF-8-bytes. Resultatet er en gyldig URL, men uleselig. En slug er noe annet: et menneskevennlig sti-segment som kaster tegnene som ikke hører til. Bruk URL-koding for query-parametre, slugs for sti-segmenter. WHATWG URL Standard har de presise definisjonene av begge.
Skal jeg bruke kebab-case eller snake_case?
Kebab-case (mitt-innlegg-tittel) for URL-er — det er konvensjonen og det søkemotorer behandler som ordadskillere. Snake_case (mitt_innlegg_tittel) er greit for variabelnavn og databaseidentifikatorer, men i URL-er behandles understreker ofte som del av ordet, noe som skader SEO. Dette verktøyet bruker kebab som default. Hvis du trenger snake, gjør find-and-replace av bindestreker i outputen.
Andre URL- og tekstverktøy
En slug er én del av en URL. Her er hva annet som passer med: