Text Slugify (URL)
Una herramienta profesional de slugify que normaliza el texto a slugs aptos para URL, con soporte para conversión a minúsculas, separadores personalizados y eliminación de palabras vacías en inglés. Utiliza la normalización Unicode para manejar caracteres de la mayoría de idiomas, asegurando que los slugs generados sigan las mejores prácticas de SEO. Ideal para URLs de entradas de blog, nombres de archivos, identificadores de base de datos y otros escenarios. Procesamiento 100% local para proteger tu privacidad; no se requiere registro. Ofrece guías detalladas de uso y recomendaciones de buenas prácticas para ayudarte a generar slugs de alta calidad.
¿Por qué usar Slugify?
🔍 Optimización SEO
Las palabras clave en las URLs ayudan a los motores de búsqueda a entender el contenido de la página y mejorar su posicionamiento. Por ejemplo, example.com/blog/how-to-learn-javascript es más efectivo que example.com/blog/123.
👁️ Legibilidad y compartición
Los usuarios pueden comprender instantáneamente el contenido desde la URL. Los slugs son más fáciles de compartir en redes sociales y de recordar o escribir manualmente.
💻 Compatibilidad del sistema
Evita errores causados por caracteres especiales en nombres de archivo o URLs. Garantiza la compatibilidad entre plataformas (Windows/Linux/macOS) y previene problemas de codificación.
🗄️ Amigable con bases de datos
Úsalos como identificadores únicos (p. ej., nombres de usuario, etiquetas) para reducir riesgos de inyección SQL y mejorar el rendimiento de indexación y consultas.
¿Qué es Slugify?
Un slug es una versión abreviada y estandarizada de un texto utilizada como URL, nombre de archivo o identificador. El procesamiento común incluye estandarizar mayúsculas/minúsculas, eliminar puntuación y unir palabras con separadores.
- Prioridad ASCII: Elimina acentos y símbolos, manteniendo solo caracteres alfanuméricos y espacios
- Compatible con Unicode: Normaliza caracteres de la mayoría de idiomas usando NFKD antes del procesamiento
- Seguro para URL: La salida contiene solo letras, números y separadores, lista para usar directamente en rutas
Preguntas frecuentes
P: ¿Cómo se manejan los caracteres chinos?
R: Por defecto, se eliminan los diacríticos y se conservan las letras pinyin. El texto puramente chino puede quedar vacío; se recomienda convertirlo manualmente a pinyin antes de generar el slug, o usar una herramienta de conversión de pinyin al chino.
P: ¿Por qué mi resultado está vacío?
R: Tu entrada puede consistir exclusivamente en puntuación, símbolos o espacios, o todas las palabras pueden haber sido eliminadas por el filtro de stopwords. Intenta desactivar la opción de stopwords o ajustar tu entrada.
P: ¿Debo usar - o _ como separador?
R: Para SEO, usa - (guion), ya que Google lo trata como un espacio; _ (guión bajo) se trata como un símbolo de concatenación, lo cual dificulta la separación de palabras. Para nombres de archivo, ambos son aceptables.
P: ¿Hay un límite de longitud para los slugs?
R: No hay un límite técnico, pero se recomienda mantener los slugs por debajo de 50 caracteres para una mejor visualización de la URL y SEO. Los slugs excesivamente largos pueden ser truncados por los motores de búsqueda.
Mejores prácticas
Prácticas recomendadas
- ✓ Mantenlo breve (recomendado < 50 caracteres)
- ✓ Evita caracteres especiales; usa solo letras, números y separadores
- ✓ Usa minúsculas para evitar problemas de sensibilidad a mayúsculas/minúsculas
- ✓ Elimina palabras vacías para mejorar la densidad semántica
Evita estas prácticas
- ✗ No incluyas información sensible (p. ej., IDs, correos electrónicos, contraseñas)
- ✗ No uses caracteres especiales (p. ej., @#$%^&*)
- ✗ No mantengas espacios ni separadores consecutivos
- ✗ No repitas la misma palabra
Detalles técnicos
Utiliza la descomposición NFKD + eliminación de diacríticos combinantes (\p{M}), convirtiendo Café en Cafe. Admite la mayoría de los caracteres basados en el alfabeto latino.
Basada en palabras comunes en inglés (a/an/the/and/or/of/to/in/on/for/at/by/with); personalizable. Las palabras vacías en chino requieren un manejo aparte.
Requiere soporte ES6+ y regex Unicode (\p{...}). Admitido en navegadores modernos: Chrome 64+, Firefox 78+, Safari 11.1+.
¿Cómo generar un slug mediante un lenguaje de programación?
JavaScript
function slugify(text) {
return text
.toLowerCase()
.normalize("NFKD")
.replace(/[\u0300-\u036f]/g, "")
.replace(/[^\w\s-]/g, "")
.trim()
.replace(/[\s_-]+/g, "-")
.replace(/^-+|-+$/g, "");
}
PHP
function slugify($text) {
$text = mb_strtolower($text);
$text = iconv("UTF-8", "ASCII//TRANSLIT", $text);
$text = preg_replace("/[^\w\s-]/", "", $text);
$text = preg_replace("/[\s_-]+/", "-", $text);
return trim($text, "-");
}
Python
import re
import unicodedata
def slugify(text):
text = text.lower()
text = unicodedata.normalize("NFKD", text)
text = text.encode("ascii", "ignore").decode("ascii")
text = re.sub(r"[^\w\s-]", "", text)
text = re.sub(r"[\s_-]+", "-", text)
return text.strip("-")
Go
import (
"regexp"
"strings"
"golang.org/x/text/unicode/norm"
)
func Slugify(text string) string {
text = strings.ToLower(text)
text = norm.NFKD.String(text)
re := regexp.MustCompile(`[^\w\s-]`)
text = re.ReplaceAllString(text, "")
re = regexp.MustCompile(`[\s_-]+`)
text = re.ReplaceAllString(text, "-")
return strings.Trim(text, "-")
}
Ruby
require "unicode"
def slugify(text)
text = text.downcase
text = Unicode.nfkd(text).gsub(/[^\x00-\x7F]/, "")
text = text.gsub(/[^\w\s-]/, "")
text = text.gsub(/[\s_-]+/, "-")
text.strip.gsub(/^-+|-+$/, "")
end
Java
import java.text.Normalizer;
public static String slugify(String text) {
text = text.toLowerCase();
text = Normalizer.normalize(text, Normalizer.Form.NFKD);
text = text.replaceAll("[^\\w\\s-]", "");
text = text.replaceAll("[\\s_-]+", "-");
return text.replaceAll("^-+|-+$", "");
}