Cómo eliminar, sustituir y personalizar los mapas del sitio XML nativos de WordPress

Como ya sabrás, desde la versión 5.5, WordPress incorpora la funcionalidad de mapas del sitio XML nativos. De este modo, desde tusitio.com/wp-sitemap.xml verás el mapa del sitio de los contenidos de tu web.

Los mapas del sitio nativos de WordPress son bastante completos, pero básicos. Incorporan todas las taxonomías (etiquetas, categorías) y tipos de contenido (entradas, páginas, personalizados) y usuarios, no permiten mucha personalización, pero algo se puede hacer.

Es posible que querrás seguir usando el mapa del sitio más personalizable que ya tenías con tu plugin de SEO ¿no?

Pero antes de llegar a eso, que también, vamos a darles una oportunidad también a los mapas del sitio XML nativos de WordPress.

Para ello vamos a ver cómo desactivar y personalizar los mapas del sitio XML nativos de WordPress, e incluso cómo sustituirlos por otros mejores, más personalizables.

¡Vamos a ello!

Desactiva completamente los mapas del sitio XML nativos de WordPress

La misma documentación de WordPress nos ofrece 2 métodos para desactivar completamente sus mapas del sitio XML nativos.

El primer método sería añadir el siguiente filtro a tu plugin de personalizaciones:

add_filter('wp_sitemaps_enabled', '__return_false');

O, si lo prefieres, mediante una acción:

remove_action( 'init', 'wp_sitemaps_get_server' );

En ambos casos desactivas completamente la característica de mapas del sitio XML nativos de WordPress.

Otro método de eliminar completamente los mapas del sitio XML nativos de WordPress sería mediante un plugin, como este…

Disable WP Sitemaps

Solo tienes que instalarlo y activarlo, únicamente tiene una línea de código, la del filtro que hemos visto en el primer truco de arriba.

Desactiva selectivamente mapas del sitio XML nativos de WordPress

Ahora bien, si prefieres desactivar solamente la creación de partes del mapa del sitio hay varias funciones que puedes utilizar.

Quitar del mapa del sitio XML nativo páginas, entradas o tipos de contenido personalizados

Si, por ejemplo, quieres que no se añadan los tipos de contenido personalizado project a tu mapa del sitio XML nativo de WordPress puedes añadir esta función a tu plugin de utilidad:

//Quitar CPT project del mapa del sitio de WP
add_filter(
	'wp_sitemaps_post_types',
	function( $post_types ) {
		unset( $post_types['project'] );
		return $post_types;
	}
);

Puedes quitar del mapa del sitio cualquier otro tipo de contenido como entradas (post), páginas (page), productos (product), etc, modificando, cambiando o añadiendo $post_types sobre la base del código anterior.

Quitar del mapa del sitio XML nativo taxonomías

De igual modo, puedes quitar taxonomías del mapa del sitio, con una función como la siguiente:

//Quitar tags del mapa del sitio de WP
add_filter(
	'wp_sitemaps_taxonomies',
	function( $taxonomies ) {
		unset( $taxonomies['post_tag'] );
		return $taxonomies;
	}
);

En este ejemplo quitamos las etiquetas de las entradas (post_tag) pero puedes usarlo para quitar las categorías o cualquier otra taxonomía.

Quitar elementos concretos del mapa del sitio XML nativo

Otra situación sería cuando quieras quitar del mapa del sitio elementos concretos (contenidos, taxonomías, etc.).

Quitar contenidos mediante su ID

Por ejemplo, podrías querer que la página con ID 21 no aparezca en el mapa del sitio. Lo haríamos así:

//Quitar pagina con ID 21 del mapa del sitio de WP
add_filter(
	'wp_sitemaps_posts_query_args',
	function( $args ) {
		$args['post__not_in'] = isset( $args['post__not_in'] ) ? $args['post__not_in'] : array();
		$args['post__not_in'][] = 21;
		return $args;
	}
);

O una categoría, también por su ID:

//Quitar categoria con ID 12 del mapa del sitio de WP
add_filter(
	'wp_sitemaps_taxonomies_query_args',
	function( $args ) {
		$args['exclude'] = isset( $args['exclude'] ) ? $args['exclude'] : array();
		$args['exclude'][] = 12;
		return $args;
	}
);

O incluso usuarios…

//Quitar usuario con ID 1 del mapa del sitio de WP
add_filter(
	'wp_sitemaps_users_query_args',
	function( $args ) {
		$args['exclude'] = isset( $args['exclude'] ) ? $args['exclude'] : array();
		$args['exclude'][] = 1;
		return $args;
	}
);

Cómo personalizar los mapas del sitio XML nativos de WordPress

Antes de seguir, incluso de tomar la decisión de eliminar los mapas del sitio XML nativos de WordPress, debes saber que no son «tan» limitados, pues permiten algunas personalizaciones adicionales, además de la posibilidad que hemos visto de añadir o quitar elementos.

También puedes personalizar algunos parámetros de los mapas del sitio XML nativos de WordPress.

Por defecto el mapa del sitio XML nativo mostrará la fecha de publicación de tus contenidos, pero con esta función puedes hacer que muestre la fecha de la última modificación:

//Fecha de modificacion en mapa del sitio de WP
add_filter(
    'wp_sitemaps_posts_entry',
    function( $entry, $post ) {
        $entry['lastmod'] = $post->post_modified_gmt;
        return $entry;
    },
    10,
    2
);

Para ello dispones de los filtros wp_sitemaps_posts_entry / wp_sitemaps_users_entry / wp_sitemaps_taxonomies_entry con los que añadir atributos adicionales como changefreqpriority o lastmod, como hemos visto en el ejemplo anterior, a cualquier elemento del mapa del sitio.

Cómo sustituir los mapas del sitio XML nativos de WordPress por otros

Si, visto lo anterior, consideras que no es suficiente lo que ofrecen los mapas del sitio XML de WordPress, puedes entonces optar por utilizar mapas del sitio XML más avanzados, que suelen ser los que ofrecen los plugins WordPress especializados en SEO.

All in One SEO Pack

Este veterano plugin de SEO para WordPress se ha actualizado recientemente para omitir los mapas del sitio nativos XML de WordPress, pero creo que se han equivocado, y me explico.

Es cierto que si tienes este plugin SEO ya no estará disponible el mapa del sitio XML nativo de WordPress en la dirección habitual (tudominio.com/wp-sitemap.xml) pero para mi gusto han sido demasiado radicales.

Directamente esa dirección genera un error 404, y esta situación no es la mejor, pues te puedes encontrar en la situación de que ya estuviese enviado el mapa del sitio a la consola del buscador de Google o Bing, y esto provocaría todos los errores y problemas del mundo.

Vale que puedes crear por tu cuenta una redirección desde la URL del mapa del sitio XML nativo a la de All in One SEO Pack (tudominio.com/sitemap.xml), pero habría sido más inteligente aplicar la estrategia que han utilizado otros desarrolladores de plugins SEO.

Rank Math SEO

Este es un caso de trabajo bien hecho, pues aunque tarde pues la actualización para cubrir esta situación salió varios días después de la actualización de WordPress 5.5, han solucionado bien el asunto.

Así que, con la última versión del plugin, lo que han hecho es que la URL del mapa del sitio XML nativo de WordPress redireccione automáticamente a la URL del mapa del sitio que crea Rank Math (tudominio.com/sitemap.xml)

Yoast SEO

Quienes mejor y más pronto se adaptaron a esta nueva funcionalidad de los mapas del sitio XML de WordPress fueron la gente de Yoast SEO, que ya unos días antes de salir WordPress 5.5 su plugin estaba preparado para que no hubiese conflictos entre el mapa del sitio nativo y los propios del plugin.

Como ya hacían hace tiempo para evitar errores 404 por mapas del sitio XML de plugins antiguos, incluyeron una redirección del mapa del sitio XML de WordPress al del plugin (tudominio.com/sitemap_index.xml o tudominio.com/sitemap.xml).

De este modo, da igual si habías enviado previamente a la GSC el mapa del sitio nativo de WordPress (wp-sitemap.xml) o el de cualquier otro plugin SEO (sitemap.xml), nunca tendrás errores pues hay una redirección al que genera Yoast SEO.


Resumiendo

Como espero hayas visto, los mapas del sitio XML nativos de WordPress no son tan incompletos como podrías pensar a priori, y permiten bastantes personalizaciones, aunque todas pasan por el uso de ganchos.

Ahora bien, si prefieres controlar más los mapas del sitio XML de tu web, e incluso generar mapas del sitio XML adicionales (imágenes, vídeos, noticias, etc.) entonces la opción más recomendable es utilizar un plugin de SEO como los que te he citado.

De todos ellos el que ofrece un mapa del sitio más personalizable es All in One SEO Pack, pero en el resto de funcionalidades se queda muy corto frente a Rank Math o Yoast SEO.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(6 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

2 comentarios en “Cómo eliminar, sustituir y personalizar los mapas del sitio XML nativos de WordPress”

  1. Genial el artículo, como siempre. Hace muhco tiempo que sigo tus publicaciones y creo que nunca has comentado nada del plugin de SEO «SEOPress». Creo que es un buen plugin, pero desde mis limitados conocimientos y experiencia. ¿Tienes alguna opinión o análisis sobre él? ¿Qué te parece? Saludos a todos.

    1. Y aunque no viene a cuento con la temática del post… también un plugin de seguridad que me parece bueno y que nunca lo veo mencionado ni publicado nada sobre el, es el plugin All In One WP Security. No es por nada, pero los suelo utilizar y al no ver nada sobre ellos me empiezo a cuestionar la eficiencia de ellos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido