Saltar al contenido
AldeaCode Logo
Generador de Slugs / Ghost Generadores 100% local

Generador de slugs para Ghost CMS: posts, redirects y la Admin API

Ghost genera el slug a partir del título en el momento en que empiezas a escribir. El slug es editable en los ajustes del post, vive en la URL y se comporta de forma ligeramente distinta a WordPress en aspectos que importan cuando migras o automatizas ediciones.

Los slugs salen del título y se actualizan en vivo

Abre un post nuevo en el Admin de Ghost, escribe un título y el campo de slug bajo Ajustes del post se actualiza mientras escribes. La conversión quita acentos (normalize NFD más strip de diacríticos), pasa a minúsculas, reemplaza espacios por guiones y descarta lo que no sea alfanumérico o guion. Los números se preservan.

Una vez dejas de editar el título, el campo slug deja de auto-actualizarse. A partir de ahí, cualquier cambio posterior en el título deja el slug intacto. Este comportamiento se acerca más a Shopify que a WordPress: la URL queda decidida temprano y se mantiene estable, lo que es amigable para SEO pero implacable con las erratas.

Si quieres un slug distinto al auto-generado, pulsa el campo slug en Ajustes del post y sobrescríbelo. El campo acepta el mismo set de caracteres que produce el slugifier, así que cualquier cosa que pegues queda normalizada al guardar.

Comportamiento con tildes y unicode

Ghost aplica una normalización más estricta que otras plataformas. Un título tipo Cómo posicionar tu blog en 2026 produce como-posicionar-tu-blog-en-2026 de forma fiable. Los scripts no latinos (cirílico, CJK, árabe) se transliteran cuando se puede, se descartan en otro caso. El resultado siempre es ASCII-safe.

Buena noticia para la portabilidad en hostings y edges de CDN que se portan mal con paths percent-encoded. Mala noticia si llevas un blog en idioma no inglés y quieres el script original en la URL: Ghost simplemente no te deja, y no hay un toggle para optar por mantenerlo. Si tu audiencia espera URLs en script nativo, el campo slug acepta unicode escrito a mano y Ghost lo percent-encodeará en la respuesta, pero pierdes la auto-sugerencia y tienes que teclear cada uno.

Los números pasan sin modificación, lo que va bien para slugs por fecha (resumen-2026) e identificadores de versión (lanzamiento-v2).

Cambiar slugs tras publicar

Ghost tiene un ajuste en Settings, Labs (o Settings, Advanced en versiones nuevas) para redirects al cambiar slug. Cuando está activo, editar el slug de un post publicado crea un redirect desde la URL vieja a la nueva. El redirect es un 301 y lo sirve el propio Ghost, sin necesidad de tocar Nginx.

Si el ajuste está apagado (lo predeterminado en versiones antiguas), la URL vieja devuelve 404 el momento en que guardas el nuevo slug. Los enlaces entrantes se rompen, el sitemap se actualiza en la próxima regeneración y Google se entera. Comprueba siempre ese ajuste antes de operar slugs en un blog en vivo.

Para migraciones desde WordPress, la herramienta de migración de Ghost intenta preservar los slugs originales cuando el slug de origen ya es ASCII-safe. Si tus slugs de WordPress tienen acentos por algún plugin antiguo, espera que se renormalicen en la importación. Planifica un mapa de redirects con antelación.

Edición masiva vía Admin API

Para cambios de slug en lote (rebrand, limpieza de taxonomía, migración) la Admin API de Ghost expone el campo slug en posts y páginas. Autentícate con una clave de Admin API, descarga el post, fija el nuevo slug y haz PUT de vuelta. La API pasa el slug por el mismo normalizador, así que puedes mandar una cadena limpia y confiar en el round-trip.

# Pseudo-flujo con curl. Usa el Admin SDK en producción.
TOKEN=$(node sign-jwt.js)
curl -X PUT https://example.com/ghost/api/admin/posts/POST_ID/ \
  -H "Authorization: Ghost $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "posts": [{ "slug": "nuevo-slug-limpio", "updated_at": "..." }] }'

El updated_at del cuerpo tiene que coincidir con el valor del servidor para evitar carreras de sobrescritura. Ghost rechaza la petición con un error de conflicto si otro editor guardó el post mientras tanto. Mete reintentos en cualquier script en lote.

Ejemplo completo

json
{
  "posts": [
    {
      "id": "63f4a2b1c0e5d6f7a8b9c0d1",
      "title": "Cómo posicionar tu blog en 2026",
      "slug": "como-posicionar-tu-blog-en-2026",
      "status": "published",
      "visibility": "public",
      "feature_image": null,
      "created_at": "2026-05-08T10:14:00.000Z",
      "updated_at": "2026-05-10T08:00:00.000Z",
      "published_at": "2026-05-09T12:00:00.000Z",
      "url": "https://example.com/como-posicionar-tu-blog-en-2026/",
      "primary_tag": {
        "name": "SEO",
        "slug": "seo"
      },
      "primary_author": {
        "name": "Aldea",
        "slug": "aldea"
      }
    }
  ]
}

¿Solo necesitas el resultado?

Cuando estás planificando un calendario editorial en una hoja de cálculo y quieres slugs compatibles con Ghost listos por adelantado, el generador de slugs en aldeacode.com aplica el mismo NFD normalize y strip ASCII que Ghost. Pega una lista de títulos, copia la lista de slugs de vuelta, pégalos en el campo slug de Ajustes del post en estado borrador. Sin renombrados de última hora, sin ventanas de 404 sorpresa.

Abrir Generador de Slugs para URLs →

Preguntas frecuentes

¿Ghost auto-actualiza el slug cuando renombro un post publicado?

No. El auto-update solo corre mientras el campo slug no se ha tocado a mano y el post está en borrador. Una vez publicas o tocas el campo slug, el slug se queda hasta que lo cambies explícitamente.

¿Puedo conservar tildes o script no latino en un slug de Ghost?

No vía el auto-generador. La normalización por defecto quita diacríticos y translitera scripts no latinos. Puedes teclear unicode a mano en el campo slug y Ghost lo percent-encodeará en la respuesta, pero el motor de sugerencias no te lo va a producir.

¿Los slugs viejos redirigen tras un cambio?

Solo si el ajuste de redirects al cambiar slug está activo, bajo Settings Labs o Advanced según la versión. Con él apagado, la URL vieja devuelve 404 al guardar. Confirma siempre el ajuste antes de ediciones bulk.