SEO en Drupal: módulos, URLs y configuración base

Instalar Drupal no configura el SEO por defecto: de fábrica cada nodo se sirve en una ruta interna como /node/348, no hay redirecciones cuando cambias un alias, no existen metadatos sin un módulo dedicado y el sitemap XML no se genera solo. No es un defecto del núcleo, es una decisión de diseño: Drupal separa el almacenamiento del contenido de su representación pública y deja que tú decidas cómo exponerla. El problema se nota más en sitios de gobierno y universidades, donde decenas de editores sin formación en SEO cargan contenido, las secciones del menú cambian con cada reorganización departamental y nadie revisa qué pasa con las URLs antiguas cuando eso ocurre.
Esta guía cubre la configuración base que corrige eso: Pathauto, Metatag, Redirect y el sitemap XML, el problema concreto de las rutas /node/NN duplicadas, y cómo configurar un sitio multilingüe sin que cada idioma compita contra sí mismo en el índice. El orden importa: define los patrones de Pathauto antes de cargar contenido masivo, porque cambiarlos después obliga a regenerar miles de alias y a gestionar redirecciones en cascada. Todo lo demás, metadatos, sitemap y canonical, se apoya en que la estructura de URLs ya sea estable.
El problema de partida: node NN y por qué existe
Drupal guarda cada nodo con un identificador numérico interno, el nid. La ruta del sistema es siempre /node/ seguida de ese número, exista o no un alias amigable como /noticias/nueva-convocatoria-becas, y esa ruta interna nunca deja de existir: sigue siendo accesible, y ahí empieza el problema. Si un enlace externo, un feed antiguo o el buscador interno referencian la ruta numérica en lugar del alias, un motor de búsqueda puede indexar las dos versiones como si fueran páginas distintas con el mismo contenido.
En sitios universitarios y de gobierno esto se agrava porque el contenido migrado desde un gestor anterior conserva a menudo enlaces internos que apuntan a la ruta numérica, y porque algunos temas visuales y vistas construidas con Views generan enlaces usando el identificador del nodo cuando no se configuran explícitamente para respetar el alias.
La solución no es desactivar la ruta numérica, no se puede, forma parte del enrutamiento del núcleo, sino asegurarse de que apunte de vuelta a su alias mediante una etiqueta canonical, y de que nada en el sitio genere enlaces internos hacia ella. Ambas piezas se resuelven revisando Pathauto y el tema visual, no instalando un módulo específico contra duplicados, porque ese módulo no existe como tal.
Pathauto: patrones de alias antes que nada
Pathauto genera el alias de URL a partir de un patrón que se define por tipo de contenido, taxonomía o usuario, desde Configuration, Search and metadata, URL aliases, Patterns. Para un tipo de contenido como Noticia, un patrón razonable combina el tipo y el título, y produce algo como /noticia/nueva-convocatoria-becas; para páginas informativas suele bastar con el título.
La decisión que más cuesta revertir es el patrón para taxonomías. Si una universidad organiza el contenido por facultad y programa, y el patrón usa solo el nombre del término sin incluir a su padre en la jerarquía, dos programas con nombres parecidos en facultades distintas, por ejemplo Administración en dos campus, generan una colisión de alias que Pathauto resuelve con un sufijo numérico ilegible. Conviene anticiparlo incluyendo el término padre en el patrón desde el inicio, no después de publicar miles de páginas con el patrón incompleto.
Pathauto no toca el contenido ya publicado cuando cambias el patrón: solo se aplica al contenido nuevo, salvo que se ejecute la generación masiva de alias. Ese es exactamente el momento en que Redirect debe estar activo, porque cada alias antiguo que cambia tiene que convertirse en una redirección permanente hacia el nuevo, o se pierde cualquier enlace externo o posición ya ganada.
Patrones habituales que funcionan bien en la práctica:
- Noticias y comunicados: tipo de contenido más título
- Páginas informativas estáticas: solo el título
- Taxonomía jerárquica de facultad y programa: término padre más término hijo
- Perfiles públicos de personal, solo si el sitio los expone: nombre de usuario
El módulo Redirect: no perder lo que ya posicionaba
Redirect guarda un mapa de URL antigua a URL nueva y devuelve una redirección permanente en cada petición que coincide con una regla registrada. Cuando Pathauto detecta que cambió el título de un nodo, y por tanto su alias, puede crear automáticamente una redirección desde el alias anterior si esa opción está activada junto con el submódulo de integración; conviene confirmarlo, porque en instalaciones donde solo se activó Pathauto sin revisar esa casilla, los alias antiguos simplemente dejan de resolver y devuelven un error de página no encontrada.
El caso típico en sitios institucionales es una reorganización de secciones: admisiones pasa de una ruta corta a vivir anidada bajo estudiantes, porque se reestructura el menú general. Si eso se hace moviendo nodos o alterando patrones sin regenerar antes los alias con sus redirecciones, cada enlace externo, cada PDF institucional y cada resultado ya indexado hacia la ruta anterior queda roto. Redirect también admite reglas por expresión, útiles cuando se migra una sección entera de una vez en lugar de nodo por nodo.
Un error frecuente es encadenar redirecciones sin darse cuenta: A redirige a B, y meses después B se redirige a C, sin que nadie actualice la primera regla para que A vaya directo a C. Cada salto añade latencia, y pasado cierto número de saltos algunos rastreadores dejan de seguir la cadena. Redirect no detecta esto solo; hace falta revisar el listado periódicamente y aplanar las cadenas a un único salto.
Metatag: metadatos por tipo de contenido, no por página suelta
El núcleo de Drupal no genera etiquetas de título más allá del título del nodo, y no produce meta descripción salvo que alguien la escriba a mano. Metatag resuelve esto con plantillas por tipo de entidad, nodo, término de taxonomía o vista, desde su propio panel, de modo que el resultado no depende de que cada editor rellene manualmente cada campo.
Una plantilla eficaz para Noticia combina el título del nodo con el nombre del sitio para el título, y construye la meta descripción a partir del campo resumen, recortada si tiende a ser largo. El riesgo de depender solo de eso es que muchos editores dejan el resumen vacío, y Drupal recorta el cuerpo completo del artículo como alternativa, cortando descripciones a mitad de frase; conviene hacer obligatorio ese campo para los tipos con mayor volumen de publicación.
Metatag también gestiona las etiquetas para redes sociales, y su plantilla de imagen suele apuntar al campo de imagen destacada del nodo; si un tipo no tiene ese campo, la tarjeta social sale sin imagen. Conviene revisar la plantilla de cada tipo por separado, no solo la global, porque una configuración correcta en Página básica no se hereda automáticamente a Evento o Programa académico: cada tipo parte de la plantilla global pero puede sobrescribirla parcial o totalmente, y con frecuencia nadie revisa esa herencia tipo por tipo.
El orden de prioridad al depurar un problema de metadatos:
- Plantilla global, aplica a todo si nada la sobrescribe
- Plantilla de portada, específica para la página principal
- Plantilla por tipo de contenido, sobrescribe la global para ese tipo
- Valores introducidos a mano en un nodo concreto, con prioridad máxima
XML sitemap: qué incluir y qué excluir
El módulo de sitemap XML genera el archivo a partir de las entidades marcadas como incluidas, con control por tipo de contenido, taxonomía y entidad individual. Por defecto suele incluir todos los nodos publicados, lo que en un sitio universitario significa páginas huérfanas, convocatorias ya cerradas o contenido de prueba nunca despublicado.
La decisión operativa es excluir del sitemap lo que no debería ofrecerse activamente para rastreo: páginas temporales de una convocatoria vencida, tipos internos como plantillas o bloques reutilizables modelados como nodos, y cualquier término de taxonomía sin página pública real detrás. Incluirlo todo sin criterio no perjudica de forma directa, pero diluye la señal de qué páginas se quiere priorizar, sobre todo en sitios con miles de nodos históricos.
Tras generar el sitemap hay que enviarlo desde Search Console y revisar el informe de indexación de páginas: es la forma más directa de detectar si el sitemap anuncia direcciones que luego devuelven un error o una redirección, señal de que la tarea que lo regenera no corre con la frecuencia suficiente frente al ritmo real de publicación del sitio.
Configuración multilingüe sin canibalizar idiomas
Un sitio con contenido en varios idiomas necesita el módulo de idioma del núcleo junto con traducción de contenido, y casi siempre también traducción de configuración, para que menús, campos y textos de bloques se traduzcan y no queden anclados en el idioma base. Esa combinación, junto con Pathauto y la traducción de interfaz, es lo que suele llamarse el conjunto multilingüe del núcleo.
El punto donde más sitios fallan es hreflang: si cada idioma vive en una ruta con su propio prefijo pero las traducciones no están vinculadas como traducciones de la misma entidad, sino creadas como nodos independientes sin relación entre ellos, Drupal no puede generar automáticamente las etiquetas que indican a los motores de búsqueda que esas páginas son equivalentes. El buscador las trata entonces como contenido no relacionado, y puede indexar solo una, o dejar que compitan entre sí por la misma consulta si el contenido es parecido.
Pathauto necesita además un patrón diferenciado por idioma, porque si el patrón es idéntico para todos los idiomas y el contenido traducido comparte el mismo título en dos idiomas, habitual con nombres propios de programas o siglas institucionales, se generan colisiones de alias entre idiomas que Pathauto resuelve con sufijos numéricos, perdiendo justo la limpieza de URL que hace falta para diferenciar un idioma del otro.
Errores frecuentes en sitios públicos y universitarios
Estos fallos aparecen una y otra vez en auditorías de sitios institucionales sobre Drupal, casi siempre porque se configuraron en el orden equivocado o porque nadie volvió a revisarlos después del lanzamiento.
Ninguno de estos errores es exclusivo de Drupal, pero la plataforma los hace más probables porque separa deliberadamente el contenido de su URL pública, y esa separación exige una configuración explícita que alguien debe mantener con el tiempo, no solo definir una vez en el lanzamiento.
- Migrar contenido sin tener Redirect activo antes de mover las primeras páginas, perdiendo el histórico de enlaces externos hacia las rutas antiguas
- Dejar indexable la ruta numérica porque el tema construye enlaces internos con el identificador del nodo, en lugar de usar el alias
- Definir el patrón de Pathauto después de cargar miles de nodos migrados, lo que obliga a una regeneración masiva sin haber comprobado antes cuántas colisiones va a producir
- Meta descripción vacía por depender solo del campo resumen, que en la práctica queda sin rellenar en los tipos de menor prioridad editorial
- Sitemap que sigue anunciando convocatorias o eventos cerrados meses después de vencer, porque nadie los despublicó ni los excluyó a mano
- Traducciones creadas como nodos independientes en lugar de traducciones vinculadas de la misma entidad, lo que impide generar hreflang automáticamente
Preguntas frecuentes
¿Es necesario instalar Pathauto para tener URLs amigables en Drupal?
No es obligatorio, pero sin él Drupal muestra únicamente la ruta interna del nodo, algo como /node/348, salvo que definas cada alias a mano uno por uno. Pathauto automatiza esa tarea aplicando un patrón por tipo de contenido, algo imprescindible en sitios con cientos o miles de nodos. En instalaciones pequeñas con pocas páginas fijas, definir los alias a mano es viable, pero deja de serlo en cuanto el volumen de contenido crece.
¿Qué diferencia hay entre el módulo Redirect y una regla de reescritura en el servidor?
Redirect vive dentro de Drupal y se gestiona desde el propio panel de administración, sin tocar la configuración del servidor, lo que lo hace accesible a un editor sin acceso técnico. Una regla en el servidor cubre patrones más generales y no depende de que Drupal esté funcionando, pero requiere acceso a esa configuración. Para el mantenimiento diario de alias que cambian por edición de contenido, Redirect es la herramienta pensada para ese trabajo.
¿Metatag sirve también para taxonomías y vistas, o solo para nodos?
Metatag cubre cualquier tipo de entidad que el sitio use para generar páginas: nodos, términos de taxonomía, usuarios y vistas configuradas como página propia. Cada tipo de entidad tiene su propia plantilla dentro del panel de Metatag, independiente de la de los nodos. Esto importa en sitios universitarios donde las páginas de facultad o programa suelen ser páginas de término de taxonomía, no nodos, y por tanto necesitan su propia plantilla de metadatos.
¿Cambiar el patrón de Pathauto rompe las URLs que ya están indexadas?
Solo si además ejecutas la generación masiva de alias sobre el contenido existente; cambiar el patrón por sí solo afecta únicamente al contenido nuevo. Si decides regenerar los alias antiguos para aplicar el nuevo patrón de forma retroactiva, cada URL que cambie debe quedar cubierta por una redirección permanente hacia la nueva, gestionada con el módulo Redirect. Saltarse ese paso es la causa más común de que un sitio pierda posicionamiento justo después de una reestructuración de URLs.