Last updated
Text to Slug Converter Examples
The Text to Slug Converter transforms text into URL-friendly slugs by lowercasing, removing special characters, and replacing spaces with hyphens. Below are practical examples for blog posts, products, and multilingual content.
Basic Slug Generation
// Input → Output
"Hello World" → "hello-world"
"My Blog Post Title" → "my-blog-post-title"
"10 Tips for Better Code" → "10-tips-for-better-code"
"What is REST API?" → "what-is-rest-api"
"Node.js vs Python" → "nodejs-vs-python"
"C++ Programming Guide" → "c-programming-guide"
"100% Free Tools" → "100-free-tools"
Transformation Steps
// Input: "My Top 10 JavaScript Tips for 2024!"
// Step 1: Lowercase
"my top 10 javascript tips for 2024!"
// Step 2: Remove/replace special characters
"my top 10 javascript tips for 2024"
// Step 3: Replace spaces with hyphens
"my-top-10-javascript-tips-for-2024"
// Step 4: Collapse multiple hyphens
"my-top-10-javascript-tips-for-2024" (no change needed)
// Step 5: Trim leading/trailing hyphens
"my-top-10-javascript-tips-for-2024" (no change needed)
// Final slug: "my-top-10-javascript-tips-for-2024"
Diacritic Handling (Accented Characters)
// Accented characters → ASCII equivalents
"Café au Lait" → "cafe-au-lait"
"Résumé Writing Tips" → "resume-writing-tips"
"Über die Straße" → "uber-die-strase"
"Señor García" → "senor-garcia"
"Naïve Approach" → "naive-approach"
"Ångström Units" → "angstrom-units"
"Ñoño" → "nono"
"Üniversität" → "universitat"
Special Character Handling
// Ampersand → "and"
"Salt & Pepper" → "salt-and-pepper"
"Terms & Conditions" → "terms-and-conditions"
// At sign → "at"
"Email @ Work" → "email-at-work"
// Punctuation removed
"Hello, World!" → "hello-world"
"What's New?" → "whats-new"
"It's a Test..." → "its-a-test"
// Slashes removed or replaced
"HTML/CSS Guide" → "html-css-guide"
"2024/01/15" → "2024-01-15"
// Multiple spaces/hyphens collapsed
"Hello World" → "hello-world"
"Hello---World" → "hello-world"
Hyphen vs Underscore Separator
// Hyphens (recommended for URLs — Google SEO preference)
"my blog post" → "my-blog-post"
// Underscores (for file names and database identifiers)
"my blog post" → "my_blog_post"
// Google treats hyphens as word separators in URLs
// "my-blog-post" → words: my, blog, post (good for SEO)
// "my_blog_post" → treated as one word: myblogpost (worse for SEO)
Maximum Length Truncation
// Input (very long title):
"The Complete Guide to Building Scalable Microservices with Docker and Kubernetes in 2024"
// Without limit:
"the-complete-guide-to-building-scalable-microservices-with-docker-and-kubernetes-in-2024"
// Length: 88 characters
// With max length 60 (truncate at word boundary):
"the-complete-guide-to-building-scalable-microservices-with"
// Length: 58 characters (truncated at last complete word)
Blog Post URL Examples
// Blog post titles → URL slugs
"Getting Started with React Hooks"
→ /blog/getting-started-with-react-hooks
"10 Best Practices for REST API Design"
→ /blog/10-best-practices-for-rest-api-design
"How to Deploy a Node.js App to AWS"
→ /blog/how-to-deploy-a-nodejs-app-to-aws
"Understanding OAuth 2.0 and JWT Tokens"
→ /blog/understanding-oauth-20-and-jwt-tokens
"CSS Grid vs Flexbox: When to Use Each"
→ /blog/css-grid-vs-flexbox-when-to-use-each
E-commerce Product Slugs
// Product names → URL slugs
"Apple iPhone 15 Pro Max 256GB"
→ /products/apple-iphone-15-pro-max-256gb
"Nike Air Max 270 - Black/White"
→ /products/nike-air-max-270-black-white
"Sony WH-1000XM5 Wireless Headphones"
→ /products/sony-wh-1000xm5-wireless-headphones
"Levi's 501 Original Fit Jeans (32x30)"
→ /products/levis-501-original-fit-jeans-32x30
JavaScript Slug Generation
function toSlug(text) {
return text
.normalize('NFKD') // decompose accented chars
.replace(/[\u0300-\u036f]/g, '') // remove combining marks
.toLowerCase()
.trim()
.replace(/[^\w\s-]/g, '') // remove special chars
.replace(/[\s_-]+/g, '-') // spaces/underscores → hyphens
.replace(/^-+|-+$/g, ''); // trim leading/trailing hyphens
}
toSlug("Hello World!") // "hello-world"
toSlug("Café au Lait") // "cafe-au-lait"
toSlug("My Top 10 Tips for 2024") // "my-top-10-tips-for-2024"
toSlug(" Multiple Spaces ") // "multiple-spaces"
Python Slug Generation
import unicodedata
import re
def to_slug(text):
# Normalize and remove diacritics
text = unicodedata.normalize('NFKD', text)
text = ''.join(c for c in text if not unicodedata.combining(c))
# Lowercase and clean
text = text.lower().strip()
text = re.sub(r'[^\w\s-]', '', text)
text = re.sub(r'[\s_-]+', '-', text)
text = text.strip('-')
return text
to_slug("Hello World!") # "hello-world"
to_slug("Café au Lait") # "cafe-au-lait"
to_slug("My Top 10 Tips") # "my-top-10-tips"
SEO Best Practices for Slugs
- Use hyphens as word separators (not underscores)
- Keep slugs short and descriptive (3–5 words ideal)
- Include the primary keyword in the slug
- Remove stop words (a, the, and, of) for shorter slugs
- Use lowercase only — avoid mixed case
- Avoid special characters and percent-encoding
- Keep slugs under 60 characters for clean URLs
- Never change a slug after publishing — it breaks existing links
Enter your text in the slug converter and get a clean, SEO-friendly URL slug ready to use in your application.