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: https://es.wordpress.org/plugins/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; } );
Quitar URLs según el slug
Imagina que tienes páginas o entradas privadas, o con slugs concretos que no quieres que aparezcan en el mapa del sitio. Pues puedes excluirlas con un snippet como este.
/* Quitar urls del mapa del sitio nativo de WP por slug */
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
// Tipos de contenido a los que aplicar el filtro
$allowed_types = array( 'post', 'page' );
if ( ! in_array( $post_type, $allowed_types, true ) ) {
return $args;
}
// Cadenas de slug que quieres excluir
$patterns = array( 'borrador-', 'privado-', 'lorem-' );
$posts = get_posts( array(
'post_type' => $post_type,
'fields' => 'ids',
'numberposts' => -1,
'post_status' => 'any',
) );
$exclude_ids = array();
foreach ( $posts as $id ) {
$slug = get_post_field( 'post_name', $id );
foreach ( $patterns as $pattern ) {
if ( str_starts_with( $slug, $pattern ) ) {
$exclude_ids[] = $id;
break;
}
}
}
if ( $exclude_ids ) {
$args['post__not_in'] = $exclude_ids;
}
return $args;
}, 10, 2 );
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 changefreq, priority o lastmod, como hemos visto en el ejemplo anterior, a cualquier elemento del mapa del sitio.
También, por ejemplo, puedes cambiar la cantidad de URLs requerida para crear submapas, que por defecto es de 2.000. Con este filtro lo cambiamos a 500 urls, con lo que habrá más submapas por tipo pero cargarán todos más rápido:
/* Cambiar cantidad de URLs para generar submapas */
add_filter( 'wp_sitemaps_max_urls', function() {
return 500;
});
¿No hay un plugin para hacer estas cosas?
Pues no lo había, así que lo hice yo y lo tienes gratis en WordPress.org o en tu instalador de plugins.
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.
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.
Afortunadamente me lié la manta a la cabeza, porque usar el mapa del sitio nativo de WordPress tiene montones de ventajas, y tienes un plugin para personalizarlo de manera sencilla, visual, y compatible con los principales plugins de SEO, así que no hay excusas.
Ahora bien, si prefieres generar mapas del sitio XML adicionales (imágenes, vídeos, noticias, etc.) entonces la opción más recomendable es utilizar el plugin de configurar el mapa del sitio nativo, y sino uno de SEO como los que te he citado.
De lejos mi recomendación es usar el mapa del sitio nativo de WordPress, que está ahí, es gratis, no tienes que instalar nada, y funciona perfecto siempre.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!







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.
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.
¡Hola Fernando!
¡Aquí una superfan tuya! He leído tu post pero no me queda claro del todo dónde podría eliminar una página concreta del sitemap nativo. ¿Es necesario un plugin o se puede hacer manualmente?
He instalado un plugin de galería de imágenes y crea, por defecto, una página para cada galería (que no quiero que se indexen). En el plugin he puesto que evite que los motores de búsqueda indexen y aparecen correctamente como noindex.
Ahora, «el problema», el sitemap nativo de WordPress sí coge esas páginas y Search Console está reportando un conflicto por lo que quiero eliminarlas del sitemap nativo.
Gracias,
Carmen
Hola Carmen 🙂
Te estás complicando la vida, instala un plugin como SEOPress y ahí puedes fácilmente especificar qué quieres indexar, qué no, y qué quieres mostrar en el mapa del sitio (por lógica si algo no lo quieres indexar no debería aparecer en el sitemap). Activa el nuevo mapa del sitio que genera el plugin (con lo que el nativo ya no existe, redirige al nuevo), y comprueba que está como tú quieras.
A continuación ve a la GSC, retira el sitemap actual, envía el nuevo (cambia el nombre, pasa con todos los plugins de SEO) y así fuerzas un re-rastreo de tu web, pero ya con el nuevo sitemap, y los errores ya no serán los antiguos (puede que otros, pero nuevos), y al menos ya más fácilmente controlables, desde el plugin de SEO.
Los plugins existen por una buena razón: hacer fácil lo que no lo es tanto.
¡Mil gracias! Sí, es que era por si podía hacerlo sin plugins ya que ya tenía toda la política de cookies revisada y redactada… jajaja, ¡y por curiosidad también!
Un saludo,
Carmen
¡Mil gracias! Sí, es que era por si podía hacerlo así de manera sencilla, sin plugins ya que tenía la política de cookies revisada y redactada, jajajaja, ¡y por curiosidad!
Un saludo,
Carmen