Mapas del sitio XML nativos en WordPress … pronto, muy pronto

¿Te acuerdas cuando planteábamos la necesidad – o no – de incluir mapas del sitio nativos en WordPress? Sí, que WordPress generase sin necesidad de plugins un sitemap XML.

¡Pues el proyecto está ya en marcha!

Se ha iniciado el proceso de desarrollo, a través de un plugin de prueba de características, de añadir la funcionalidad nativa de mapas del sitio en WordPress.

Aunque está en fase temprana de desarrollo, ya se puede empezar a descargar de aquí, pero sobre todo a probarlo, y avisar de fallos, proponer mejoras, al estilo comunidad WordPress.

Y ¿sabes qué? Pues que funciona, a la primera.

Solo tienes que descargarlo, instalarlo como cualquier otro plugin que te hayas descargado, y activarlo. Luego vas a tu sitio, le añades /sitemap.xml a la URL de tu sitio y ahí está.

Un bonito mapa del sitio XML generado de manera nativa por WordPress. Y cada subpágina también funciona perfectamente.

Eso sí, no busques página de ajustes o similar, que no hay, al menos de momento, aunque supongo que tarde o temprano se incluirán en los ajustes de lectura, enlaces permanentes, o generales, quién sabe.

Pero mejor te cuento qué hace, hará y cómo se va a desarrollar todo este proceso hasta que esté disponible en alguna actualización de WordPress…

Qué tiene/tendrá el mapa del sitio XML nativo de WordPress

esquema sitemap xml

Los mapas del sitio XML nativos incluyen los siguientes submapas:

  • Portada
  • Página de entradas
  • Tipos de contenido por defecto (páginas y entradas)
  • Tipos de contenido personalizados
  • Taxonomías por defecto (etiquetas y categorías)
  • Taxonomías personalizadas
  • Usuarios (autores)

Un ejemplo lo tienes en la captura de arriba.

El índice del sitemap

Una característica fundamental del plugin del sitemap es el índice del mapa del sitio.

Es el archivo XML principal, que contiene el listado de todas las páginas del mapa del sitio visibles en tu sitio WordPress, y la hora en que se modificó cada una por última vez.

Por defecto, el se crea un índice del mapa del sitio en /sitemap.xml, que incluye los mapas de sitio para todo el contenido incluido, separado en grupos por tipos de contenido, taxonomías y usuarios.

Páginas del sitemap

Cada página del índice del sitemap estará disponible en una URL que seguirá esta estructura: sitemap-{object-type}-{object-subtype}-{page}.xml.

Por ejemplo:

  • Tipo de contenido – entradas: sitemap-posts-post-1.xml 
  • Tipo de contenido – páginas: sitemap-posts-page-1.xml
  • Taxonomía – categorías: sitemap-taxonomies-category-1.xml
  • Usuarios – sitemap-users-1.xml (fíjate que el objeto WP_User no es compatible con subtipos.

El protocolo oficial de los mapas de sitio establece que cada mapa de sitio puede contener un máximo de 50.000 URLs y no debe ser mayor de 50MB (52.428.800 bytes).

Sin embargo, en la práctica, se ha detectado que el rendimiento comienza a degradarse cuando se intenta generar una consulta que devuelve más de unas pocas miles de URLs, por lo que se ha decidido limitar la implementación por defecto a un máximo de 2.000 URLs por mapa de sitio, que puede modificarse utilizando un filtro en el gancho core_sitemaps_max_urls.

Se generarán páginas de mapa del sitio para cada tipo de contenido público (excepto de los archivos adjuntos), que incluirán las URL de las páginas individuales.

Asimismo, se generarán sitemaps para todas las taxonomías públicas, que incluirán las URL de las páginas de archivo de cada taxonomía, y se generarán sitemaps para todos los usuarios con contenido publicado, incluyendo la URL de la página de archivo del autor de cada usuario.

La lista de subtipos de contenidos y taxonomías compatibles se puede filtrar usando los filtros core_sitemaps_post_typescore_sitemaps_taxonomies respectivamente.

Además, se pueden añadir o quitar URLs de cualquier tipo de objeto usando los siguientes filtros:

  • Tipos de contenido: core_sitemaps_posts_url_list
  • Taxonomías: core_sitemaps_taxonomies_url_list
  • Usuarios: core_sitemaps_users_url_list

Como puedes adivinar, estos ganchos y filtros van a permitir a los plugins SEO existentes, y a cualquier plugin o tema añadir a los sitemaps otros tipos de objetos (taxonomías, tipos de contenido, etc.)

Rendimiento y escalabilidad

sitemap xml

Añadir un mecanismo de caché a los mapas del sitio XML figuraba específicamente como un objetivo no deseado del proyecto, por lo que no se ha incluido.

Sin embargo, había que asegurar que la versión inicial del plugin tuviese en cuenta la escalabilidad, por lo que se han investigado los principales problemas de escalabilidad existentes en las instalaciones actuales y las formas de resolverlos.

Utilizando las mejores prácticas para conseguir que nuestras principales consultas fueran eficaces, se ha logrado eliminar la mayoría de los problemas de escalabilidad de las páginas individuales del mapa del sitio.

Sin embargo, el principal problema de rendimiento es la generación de las últimas modificaciones para cada página en el índice del mapa del sitio.

No es escalable calcular estos valores de forma dinámica, por lo que en su lugar se ha empezado con una implementación que actualiza estos valores utilizando una tarea WP_Cron que se ejecuta dos veces al día, y guarda estos valores en la tabla de opciones.

También se ha empezado a investigar y a escribir una implementación para un mecanismo de caché de páginas de mapas de sitio más robusto, usando tipos de contenido personalizados para almacenar y actualizar los datos de los mapas de sitio, que pueden explorarse más a fondo si la implementación inicial resulta ser insuficiente como implementación inicial para el núcleo.

¿Y ahora qué?

El anuncio de la primera versión de este plugin de características es ya un hito importante, pero es sólo un primer paso en el proceso de incluir esta característica en el núcleo de WordPress.

Ahora es cuando hace falta tu ayuda para probar, validar y mejorar lo que ya se está creando, para asegurar de que cumple con las necesidades de la amplia comunidad de WordPress.

También se ha animado a los autores de plugins con mapas de sitios a que se integren con el plugin, aprovechando específicamente la API de mapas de sitios para ampliar sus características principales.

Como siempre, habrá reuniones semanales en el Slack de WordPress.

Mientras tanto, si estás interesado, apúntate al equipo ya mismo, para empezar a debatir sobre esta característica.

Además, puedes dejar tus preguntas y comentarios en la sección de comentarios de esta entrada o como nuevos avisos en el repositorio de GitHub.

Pues me parece bien

En serio, estoy totalmente de acuerdo en incluir mapas del sitio en el núcleo de WordPress, es un básico imprescindible que vengo reclamando hace años, y que ya tienen el resto de CMS con todo el sentido, no considero que sea «territorio plugin».

¿Y a ti, qué te parece?

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(7 votos, promedio: 5)
¿Te gustó este artículo? ¡No sabes lo que te estás perdiendo en YouTube!

Autor: Fernando Tellado

Fernando Tellado, apasionado de WordPress, profesor, consultor y ponente. Maquero cansino, padre de tres hijos y de una perrita Beagle, Bilbaíno de nacimiento, Español de corazón y ciudadano de donde me quieran. Mi último libro es WordPress - La guía completa. Mi blog personal es Navegando con red, donde he crecido como escritor en la red y ofrezco mis visiones acerca de la Web 2.0 y la blogosfera. Sigue a @fernandot en Twitter

Comparte esta entrada en
468 ad
Ir al contenido