URL-sluggenerator
Förvandla en titel till en ren, URL-säker sökväg — kebab-case, gemener, inga accenter
Titel eller text
Slug
Vad är URL-sluggeneratorn?
Du har skrivit ett blogginlägg med titeln "Hur du parsar en URL i JavaScript — En kafégaregars guide (2026 års utgåva)" och nu behöver du en URL-väg för det. Du vill inte ha %E2%80%94 där, du vill inte ha mellanslag, du vill inte ha versaler som går sönder på case-känsliga servrar. Du vill ha hur-du-parsar-en-url-i-javascript-en-kafegares-guide-2026-ars-utgava. Det är vad det här gör. Klistra in titeln, kopiera sluggen. Termen själv kommer från förlagsvärlden — se Wikipedias artikel om sluggar för etymologin.
Algoritmen är den vanliga. Gör om till gemener, kör sedan String.prototype.normalize('NFD') för att dekomponera Unicode-tecken till basbokstav plus kombinerande märken. Ta bort märkena (så é blir e, å blir a, ö blir o). Hantera några vanliga ligaturer för hand — æ blir ae, ø blir o, ß blir ss, ł blir l. Ersätt varje följd av icke-alfanumeriska tecken med ett enda bindestreck. Klipp bort ledande och avslutande bindestreck. Begränsa till 80 tecken vid en ordgräns så du inte slutar med en slug avhuggen mitt i ett ord.
Varför kebab-case? För att bindestreck är konventionen. Googles riktlinjer för URL-struktur rekommenderar bindestreck framför understreck för ordsärskiljning i URL:er — sökmotorer parsar bindestreck som ordgränser. RFC 3986 definierar de oreserverade tecknen i en URL-väg (bokstäver, siffror, bindestreck, punkt, understreck, tilde) och de flesta sluggkonventioner håller sig till en delmängd av dessa. Snake_case (mitt_inlagg_titel) och Title-Case-Slug (Mitt-Inlagg-Titel) är alternativ man ser, men kebab-case med gemener är default överallt, från praktiken med rena URL:er till de flesta CMS-defaults.
Hur du använder sluggeneratorn
Tre steg. Varje matchar en knapp på den här sidan.
Klistra in en titel eller ladda exemplet
Släng in en titel, rubrik, produktnamn eller valfri text i vänsterpanelen. Klicka på Exempel för att ladda ett realistiskt exempel med långa tankstreck, accenter och parenteser — den sortens titel som knäcker naiv sluggkod. Exempelinmatning:
Hur du parsar en URL i JavaScript — En kafégaregars guide (2026 års utgåva)Allt går — emoji, accenttecken, smarta citationstecken, långa tankstreck, dubbla bindestreck, flera mellanslag. Sluggen kommer ut ren.
Läs sluggen
Högerpanelen visar sluggen medan du skriver. Gemener, med bindestreck, endast ASCII, begränsad till 80 tecken vid en ordgräns. Om indata inte innehöll några slug-bara tecken (t.ex. bara emoji eller bara skiljetecken) ser du en vänlig notis istället för ett förvirrande tomt resultat.
Kopiera eller ladda ner
Klicka på Kopiera för att skicka sluggen till urklipp, eller på Ladda ner för att spara den som en .txt-fil. Använd Rensa i inmatningspanelen för att börja om med en ny titel.
När du faktiskt skulle använda detta
URL:er för blogginlägg
Ditt CMS genererar sluggar automatiskt men de är fula — tar bort accenter fel, lämnar understreck, hanterar inte smarta citationstecken. Du klistrar in titeln här, får en ren slug, klistrar tillbaka i URL-fältet. Funkar för WordPress, Ghost, handbyggda Next.js-bloggar, allt som låter dig skriva över sluggen.
Produkt- eller kategori-URL:er i e-handel
Marco Rivera lägger till en ny produkt som heter "Crème Brûlée Set — 4-pack (Begränsad Upplaga)". URL:en behöver vara /produkter/creme-brulee-set-4-pack-begransad-upplaga, inte /produkter/Crème+Brûlée+Set+%E2%80%94+4-pack+%28Begränsad+Upplaga%29. Slugga, plugga.
Filnamn från användarinmatade titlar
Du sparar uppladdade dokument till disk och kunden skrev "Q4-rapport — Slutlig (v3).docx" som titel. Det vill du inte ha som filnamn. Slugga titeln, lägg på .docx, skriv filen. Funkar likadant för S3-nycklar, GitHub-branchnamn från issue-titlar, och Slack-kanalnamn från projektnamn.
Migrera innehåll från ett annat CMS
Priya Patel flyttar 800 artiklar från ett gammalt CMS till ett nytt och källtitlarna har inkonsekvent kodning — vissa accentuerade, vissa inte, vissa med emoji från en omdesign 2018. Kör varje titel genom sluggern, deduplicera, och du har din nya URL-karta klar för redirect-tabellen.
Vanliga frågor
Varför tar ni bort accenter istället för att procent-koda dem?
För att sluggen är tänkt att vara läsbar för människor. café i sluggen blir %C3%A9 i den faktiska URL:en, vilket ser hemskt ut i en webbläsarrad, knäcker copy-paste i chatt, och förvirrar icke-tekniska läsare. Att reducera till ASCII håller URL:en läsbar och SEO-vänlig. NFD-normalisering är standardsättet att göra den dekompositionen.
Vad gäller för icke-latinska skriftsystem — kinesiska, arabiska, hindi?
NFD dekomponerar inte ideogram eller skriftsystem som inte har bas+kombinerande-märke-struktur. Så en titel på kinesiska producerar en tom slug här, och du ser meddelandet "inga slug-bara tecken". För icke-latinska skriftsystem har du två alternativ: translitterera först (med ett bibliotek som ICU eller unidecode), eller använd originalskriften i URL:en — moderna webbläsare och Google hanterar Unicode i URL:er problemfritt, bara mindre snyggt.
Varför begränsa till 80 tecken?
Ingen hård regel, men URL:er som överstiger ~80 tecken i vägsegmentet börjar bryta sig fult i e-postmeddelanden, sociala förhandsvisningar och tryckmedia. Googles vägledning sätter ingen siffra men rekommenderar "enkla, beskrivande" URL:er — långa är varken eller. Begränsningen hittar det sista bindestrecket före 80 tecken för att undvika ett snitt mitt i ett ord.
Hanterar den emoji?
Ja. Emoji tas bort tillsammans med andra icke-alfanumeriska tecken. Så "🎉 Ny Lansering! 🚀" blir ny-lansering. Om din slug slutar tom (bara emoji-input) får du den vänliga tom-slug-notisen istället för en trasig URL.
Vad är skillnaden mellan detta och URL-kodning av titeln?
URL-kodning behåller varje tecken men escape:ar de osäkra — så mellanslag blir %20, accenter blir procent-escaped UTF-8-byte. Resultatet är en giltig URL men oläslig. En slug är något annat: ett människovänligt vägsegment som slänger tecknen som inte hör hemma. Använd URL-kodning för query-parametrar, sluggar för vägsegment. WHATWG URL Standard har de exakta definitionerna för båda.
Ska jag använda kebab-case eller snake_case?
Kebab-case (mitt-inlagg-titel) för URL:er — det är konventionen och det är vad sökmotorer behandlar som ordsärskiljare. Snake_case (mitt_inlagg_titel) är okej för variabelnamn och databasidentifierare, men i URL:er behandlas understreck ofta som del av ordet, vilket skadar SEO. Det här verktyget använder kebab som default. Om du behöver snake, gör find-and-replace av bindestreck i utdatan.
Andra URL- och textverktyg
En slug är en del av en URL. Här är vad mer som passar med: