Pasar al contenido principal

Problemas de SEO a cuenta del módulo domains en Drupal

En una instalación multidominio de Drupal se presenta un problema que en ocasiones pasa desapercibido, pero que tarde o temprano emerge como un inconveniente de posicionamiento: múltiples secciones vacías a cuenta de secciones que solo se usan en un dominio.
Ilustración de un personaje que simula un navegador web que camina con ayuda de un bastón en la calle, pero que va hacia señor.
Ilustración de un personaje que simula un navegador web que camina con ayuda de un bastón en la calle, pero que va hacia señor.

Texto Equipo Pixel / Nicolás Rey.

Sucede porque las taxonomías por defecto no cuentan con un control que les permita diferenciar sus repuestas por dominio y, en consecuencia, por ejemplo, una taxonomía “frutas” con contenido en el dominio “misitio.com” pero no en el dominio “miotrositio.com”, presenta dos URLs con comportamientos muy diferentes. Por un lado, la URL “misitio.com/frutas” mostraría correctamente información útil para el usuario, mientras que su par “miotrositio.com/frutas” simplemente aparecería como una página vacía.

La página que se muestra vacía se considera un error desde la perspectiva del posicionamiento orgánico, pues ofrece un recurso que carece de valor semántico. En la práctica encontrar una página vacía que no aporta información alguna para el usuario supone una especie de “pérdida de tiempo” que genera frustración y una percepción de baja calidad.  

En este caso lo correcto sería que la página simplemente no existiera y para ello la respuesta del servidor debería ser de tipo HTTP 404, con lo cual se omitiría su indexación por parte de los distintos bots de recopilación y sería fácilmente identificable por los usuarios como una dirección errada.

Esto último es lo que no sucede en una instalación tradicional multidominio construida a partir del módulo contribuido Domain, por lo que se hace necesario crear un módulo a la medida que gestione adecuadamente las taxonomías que no tienen contenido asignado en un dominio específico. 

Con esto en mente, la solución se parece mucho a la siguiente: un sencillo módulo que hemos denominado Taxonomy Domain 404 y que hemos creado desde Pixel para compensar esta deficiencia.

¿Cómo funciona?

Este módulo ejecuta una validación que comprueba si existe al menos un nodo publicado asociado a la taxonomía en cuestión para un dominio en específico. Si esta validación es verdadera, Drupal muestra la página correspondiente como de costumbre, pero si falla, lanza una excepción de tipo NotFoundHttpException, la cual desencadena la respuesta HTTP 404 correspondiente.

¿Cómo se configura?

Este módulo no tiene interfaz de usuario UI, pues en el código del evento es donde se definen algunos parámetros que deberás ajustar según tus necesidades.

En primera instancia la validación solo se dispara si el Theme corresponde con un determinado valor, por lo que debes ajustar este dato en la línea 49 al nombre de máquina del Theme que utilices para mostrar tu sitio Web a los usuarios.

if ($active_theme !== 'mitema') {…

Esto garantiza que la petición solo se ejecute en el contexto de ese Theme y no por ejemplo dentro del Theme de administración, lo cual sería innecesario y además constituiría un gasto de recursos adicionales. 

Más adelante, el código también limita que la validación solo se ejecute cuando se carguen URLs relacionadas con taxonomías y cuando el cache se haya invalidado apropiadamente o éste no exista, con lo cual se logra un mejor desempeño y una menor carga de procesamiento.

A continuación, en la línea 76, el script genera un arreglo con el nombre de los campos que se utilizan en el contenido para asociar a los nodos con sus correspondientes términos de taxonomía. Esto permite especificar los campos de interés para la correspondiente validación y evita hacer este proceso por todos los campos que existan de este tipo por defecto dentro de la instalación.

$taxonomy_fields = ['field_mis_temas_1', 'field_mis_temas_2'];

Finalmente, en la línea 89 se define el nombre del campo que se utiliza para asignar el dominio a los nodos.

Cuando las condiciones se dan, se ejecuta la validación antes explicada que constituye el núcleo del módulo. 

¿Dónde puedo descargarlo?

Aquí y por ahora, la instalación es completamente manual.

Si tienes sugerencias, preguntas o comentarios, no dudes en contactarnos en el correo nicolas@pixelclubcolombia.com