Sitemaps en Multisites de WordPress

¿Cómo solucionar los sitemaps en multisites de idiomas en WordPress? Este será un post muy breve porque trata de una limitación que encuentro en los plugins SEO del ecosistema WordPress y les doy mi solución para los sitemaps XML por idiomas.

Los sitemaps son uno de los archivos más relevantes de cara a SEO porque es un tipo de contenido que como podremos comprobar, los robots de búsqueda los suelen visitar con mucha frecuencia.

Ofrecen un listado de las principales URLs de un sitio que se mandan a indexar.

No solo lo podemos aprovechar para tipos de contenidos, sino incluso para imágenes, vídeos, noticias. La documentación de Google es muy clara al respecto. Ayuda a rastrear mejor un sitio.

Yo suelo ser muy estricto con los sitemaps. Creo que es un archivo que debemos tener al 100% en códigos 200 y sólo con el contenido que queremos que nos indexen.

Plugins SEO famosos como:

Todos generan su propio sitemap en función del tipo de contenido que tú le indiques para que se mande a indexar en Google.

En las siguientes capturas podemos comprobar algunos de ellos:

Sitemap XML de Yoast SEO
Sitemap XML de Yoast SEO
Sitemap XML de RankMath
Sitemap XML de RankMath

El problema es que para webs multi idiomas se generan dos limitaciones en función de las casuísticas:

  1. Un WordPress habitual con cualquier plugin de idiomas como: Polylang, WPML, WeGlot, TranslatePress, etc.
  2. Un multisite de WordPress con MultilingualPress donde cada idioma se genera en la subcarpeta del idioma correspondiente.

En la primera opción, no habría problema.

Una cosa que NO me gusta de los plugins SEO es que generan el sitemap genérico mezclando todos los idiomas. No me parece positivo. Creo que cada idioma debería de tener por separado los sitemaps.

La única excepción es el veterano All in One SEO, un plugin que desde mi punto de vista se quedó atrás en muchas funcionalidades que nos ofrecen los plugins SEO más modernos.

Pero justo en esta funcionalidad, lo hacen mejor que el resto. Fíjate en captura:

Sitemap XML de All in One SEO
Sitemap XML de All in One SEO respetando el orden de los idiomas

Para un friki del orden, tener los idiomas separados en el sitemap es de agradecer.

La segunda opción (el multisite) es muy cómoda para muchas empresas porque permite tener cada idioma como una web diferente. Es escalable, funciona bien, pero genera un problema absurdo.

Vamos a imaginar el siguiente dominio ficticio:

  • https://misexyweb.com/ > Lo destinamos al idioma principal en este caso ingles.
  • https://misexyweb.com/es/ > Para el español
  • https://misexyweb.com/fr/ > Para el francés y así sucesivamente.

El problema es que los plugins SEO por defecto establecerán un sitemap.xml por web.

Esto significa que en español tendremos por ejemplo:

https://misexyweb.com/es/sitemap.xml

Y esto, como es habitual, mostrará el sitemap solo del idioma español.

Es obvio que podemos enviarle cada sitemap a Google y listo, utilizando para ello la funcionalidad en Search Console.

Envio de sitemaps.xml a Search Console
Envío de sitemaps.xml a Search Console

Pero no creo que debemos confiar solo en eso porque Google u otros buscadores irán por defecto al dominio principal y visitarán solo el sitemap del idioma principal, en este caso del ingles:

https://misexyweb.com/sitemap.xml

Por lo tanto no tendrán conocimiento del resto de idiomas y esto es un «paquete» en términos de indexación y rastreo.

Lo que suelo hacer en estos casos, es crear (manualmente) un sitemap de sitemaps en el dominio principal.

Esto es útil porque nos permite sobrescribir el comportamiento por defecto del plugin SEO de turno. Por ejemplo, algo así:

<?xml version="1.0" encoding="UTF-8"?>

<sitemapindex    xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

<sitemap>
     <loc>https://misexyweb.com/sitemap_index.xml</loc>
     <lastmod>2023-08-22 17:00 +02:00</lastmod>
</sitemap>
<sitemap>
     <loc>https://misexyweb.com/es/sitemap_index.xml</loc>
     <lastmod>2023-08-22 17:00 +02:00</lastmod>
</sitemap>
<sitemap>
     <loc>https://misexyweb.com/it/sitemap_index.xml</loc>
     <lastmod>2023-08-22 17:00 +02:00</lastmod>
</sitemap>
<sitemap>
     <loc>https://misexyweb.com/fr/sitemap_index.xml</loc>
     <lastmod>2023-08-22 17:00 +02:00</lastmod>
</sitemap>
<sitemap>
     <loc>https://misexyweb.com/pl/sitemap_index.xml</loc>
     <lastmod>2023-08-22 17:00 +02:00</lastmod>
</sitemap>
<sitemap>
     <loc>https://misexyweb.com/ru/sitemap_index.xml</loc>
     <lastmod>2023-08-22 17:00 +02:00</lastmod>
</sitemap>

</sitemapindex>

Como ves es muy sencillo, solo estoy generando un índice de los sitemaps de cada idioma. Creo el archivo: sitemap.xml y lo subo a la carpeta raíz.

De esta forma cada sitemap de cada carpeta se actualiza solo. En realidad lo hace el plugin SEO. Yo lo único que hago es dejarle el listado completo y además, ordenado por idioma, que creo es lo más positivo.

Espero te sirva esta solución. Si tienes otra, estaré encantado de leerte en los comentarios.

Y espero esto lo tomen en cuenta los distintos plugins SEO de WordPress para que vayan mejorando estas funcionalidades de los sitemaps. Les haré estas observaciones cuando tenga la oportunidad.

Algo tan simple como una modificación manual del sitemap por defecto no es viable en la actualidad sin poner algo de código, cómo nos enseña por ejemplo Fernando Tellado en su artículo sobre SEOPress y cómo añadir URLs adicionales al mapa de sitio XML.

Así que la gestión de los sitemaps por parte de los plugins SEO es francamente buena, exceptuando estos detalles, que esperemos puedan mejorar en futuras ediciones.

Prometo crear una guía SEO sobre sitemaps muy pronto en vídeo, que creo, es un archivo esencial y que no le prestamos mucha atención

¡Larga vida y prosperidad a WordPress!

Leave this field blank

¿Te suscribes a mi lista?

Te reirás, lo disfrutarás y te puedes borrar cuando quieras. Contenido chachi y anti aburrimiento. El SEO no tiene por qué ser un coñazo. Consejos, promociones y mucho más. Nos vemos dentro. ¡Larga vida y prosperidad!

Deja un comentario