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.

La entrada Cómo eliminar, sustituir y personalizar los mapas del sitio XML nativos de WordPress la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Como desactivar los emails de actualizaciones automáticas de plugins y temas

Desde WordPress 5.5 tenemos disponibles las actualizaciones automáticas de plugins y temas, pero también los correos electrónicos que se envían cada vez que se realizan.

Y seguro que ya estás harto de recibir correos electrónicos de cada cosa que hace WordPress ¿no?

Bueno, pues vamos a ver cómo desactivar estos molestos correos…

Desactivar emails de actualizaciones automáticas de plugins y temas con un solo código

Si eres – como yo – de los que les gusta hacer las cosas sencillas y efectivas, y tener todo controlado y personalizado, entonces con este sencillo código desactivas todos estos molestos emails:

//Desactivar emails de actualizaciones automaticas de plugins
add_filter('auto_plugin_update_send_email', '__return_false');
//Desactivar emails de actualizaciones automaticas de temas
add_filter('auto_theme_update_send_email', '__return_false');

El código anterior lo añades al final del archivo functions.php del tema activo o a tu plugin de personalizaciones y utilidades y ya está, se acabaron los emails de actualizaciones automáticas de plugins y temas.

Por supuesto, si lo prefieres, puedes usar solo una de las líneas, si quieres recibir avisos de actualizaciones de plugins, o de temas, tú mismo.

Desactivar emails de actualizaciones automáticas de plugins y temas con un solo código

Por otra parte, si prefieres un plugin que añada estos códigos por ti automáticamente (cuántos automatismos hoy ¿verdad?) entonces instala y activa el plugin siguiente:

Disable auto-update Email Notifications

La entrada Como desactivar los emails de actualizaciones automáticas de plugins y temas la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

¿Cómo desactivar completamente las actualizaciones automáticas de plugins y temas?

Desde WordPress 5.5 se pueden activar las actualizaciones automáticas de plugins y temas, algo que se complementará en WordPress 5.6 con la actualización del núcleo de WordPress, pero de eso ya hablaremos otro día.

Bien, pues aunque es – normalmente – buena idea tener siempre todo actualizado en tu sitio WordPress, no todos los plugins y temas deben actualizarse automáticamente, que es la cuestión.

Tanto si eres un administrador responsable como si mantienes sitios de otros, en ocasiones es mejor controlar una a una las actualizaciones de plugins y temas, comprobar qué cambia en cada versión, qué dependencias se generan, qué posibles problemas podrían generar, etc.

Si estás en alguno de estos perfiles es muy fácil desactivar la posibilidad de activar o desactivar las actualizaciones automáticas de plugins y temas de WordPress.

Simplemente tienes que recurrir al veterano truco de añadir la siguiente constante a tu archivo wp-config.php:

define('AUTOMATIC_UPDATER_DISABLED', true);

Cuando guardes los cambios ya no se mostrará la posibilidad de activar o desactivar actualizaciones automáticas de plugins y temas en tu WordPress.

La entrada ¿Cómo desactivar completamente las actualizaciones automáticas de plugins y temas? la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Errores tras actualizar a WordPress 5.5 ¿hay solución?

La noticia WordPress de este verano ha sido la actualización a la versión 5.5 que ha traído incontables novedades de todo tipo, la mayoría bastante obvias y visibles para los usuarios.

Me refiero a los mapas del sitio nativos, los patrones de bloques, actualizaciones automáticas de plugins y temas, además de montones de cambios visuales el en el editor.

Pero todos estos cambios, gusten o no, no han sido lo que ha provocado más atención y noticia, sino la multitud de sitios WordPress que han tenido problemas, debido a un cambio interno: la desactivación de la herramienta llamada jQuery Migrate.

Miles de sitios WordPress rotos o con problemas

El resultado de este cambio ha sido que cientos de miles de sitios WordPress han tenido todo tipo de problemas o incluso su web se ha roto del todo. Y todo ha sido debido a que parte de su instalación funcionaba gracias a jQuery Migrate a pesar de tener código obsoleto.

¿Qué es eso de jQuery Migrate?

jQuery Migrate es una biblioteca de JavaSCript que durante años ha permitido a desarrolladores de temas y plugins a usar código jQuery obsoleto.

Lo que hace es permitir usar código obsoleto independientemente de la versión de jQuery instalada por defecto en WordPress. De este modo, los desarrolladores de temas y plugins no tenían que estar pendientes de la versión de jQuery de WordPress, pero esto no tenía mucho sentido en un sistema en el que siempre estamos insistiendo en tener todo actualizado ¿verdad?

¿Por qué en WordPress 5.5 se ha quitado jQuery Migrate?

Pues porque ya tocaba, ya va siendo hora de que el software que funcione bajo WordPress utilice las últimas versiones de JavaScript, y para ello el equipo de desarrollo de WordPress definió un cambio en 3 fases, de las que eliminar la herramienta jQuery Migrate es la primera.

  • 1ª fase: Eliminar la versión anterior de jQuery Migrate para forzar a los desarrolladores a actualizar sus códigos obsoletos.
  • 2ª fase: Actualizar la versión de jQuery incluida en WordPress de la 1.4.1 a la 1.9+
  • 3ª fase: Actualizar la versión de jQuery Migrate incluida en WordPress para permitir versiones de jQuery de la 1.12.4 a la 3.5+

¿Cómo saber si puedo actualizar sin problemas a WordPress 5.5?

Para comprobar si tu sitio no tendrá problemas al actualizar a WordPress 5.5 puedes/debes instalar el plugin Test jQuery Updates.

Este plugin desactiva la herramienta jQuery Migrate de WordPress sin tener que actualizar a WordPress 5.5, de modo que compruebes si tu sitio sigue funcionando correctamente o genera errores.

Si instalas y activas el plugin y todo parece ir bien y no se generan errores en la consola del navegador es que estás preparado para migrar a WordPress 5.5.

¿Cómo puedo actualizar a WordPress 5.5 teniendo aún código obsoleto?

En muchas ocasiones no podrás actualizar inmediatamente todo el código obsoleto, ya sea de plugins, el tema o personalizado, y eso no implica que no puedas actualizar a WordPress 5.5, afortunadamente.

Como solución temporal con la que dar tiempo a gestores de sitios y desarrolladores a actualizar sus códigos obsoletos, el equipo de WordPress ha desarrollado un plugin que reactiva la herramienta jQuery Migrate Helper anterior a WordPress 5.5.

Solo tienes que instalar y activar Enable jQuery Migrate Helper y todo debería volver a funcionar correctamente.

Este plugin y su crecimiento de instalaciones es un claro síntoma de que había muchos WordPress con códigos JavaScript obsoletos.

Una vez activo, navega por las distintas pantallas de administración de tu WordPress y, en caso de error, se mostrará una advertencia del código que debería actualizarse.

A continuación deberías empezar a tomar medidas para actualizar los códigos obsoletos…

  • Contactando con el desarrollador del tema o plugin.
  • Modificando el código si fuese personalizado.
  • Actualizando plugins y tema.

jQuery Migrate Helper no muestra advertencias pero tengo errores

Si con el plugin jQuery Migrate Helper no se muestran advertencias pero detectas errores de funcionamiento en tu WordPress también puedes revisar la consola para desarrolladores del navegador.

Solo tienes que hacer clic derecho en cualquier parte de la pantalla donde haya errores y activar la consola.

En la consola se mostrarán los posibles errores, identificando el código que los genera.

¿Puedo usar jQuery Migrate Helper y olvidarme?

¡Ni se te ocurra!

Este plugin es solo una solución temporal y para WordPress 5.6 cambiará todo de nuevo, así que no te duermas en los laureles porque con este plugin activo puedas seguir usando normalmente tu web WordPress.

Este plugin solo te concede un periodo de gracia para que actualices plugins, el tema, todo el código obsoleto.

Además, recuerda que utilizar plugins y temas sin actualizar supone un alto riesgo de seguridad, comprometiendo tus datos y toda tu web.

Una vez detectes qué plugins, tema o códigos personalizados generan errores tienes que…

  1. Comprobar si hay actualizaciones del tema y plugins compatibles con las nuevas versiones de jQuery.
  2. Actualizar cualquier código personalizado a las nuevas versiones de jQuery.

El error de paginación tras actualizar a WordPress 5.5

Un error bastante recurrente ha sido el de la paginación que dejaba de funcionar. Esto ha sido debido al modo en que muchos temas aplicaban el parámetro de paginación.

Según el informe en el registro de errores de WordPress era debido al modo de hacer la consulta.

En esta caso la solución pasa claramente por pedir al desarrollador de tu tema que lo actualice.

La entrada Errores tras actualizar a WordPress 5.5 ¿hay solución? la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Los 10 Mejores Bancos de Imágenes Gratuitas

Sea cual sea tu objetivo, sabes que una buena imagen vale más que mil palabras. Por eso es tan importante saber elegir las adecuadas para tu sitio web, y en este artículo, vamos a detallar los bancos de imágenes y vídeos que más nos han gustado a nosotros. Pero antes, no viene mal recordar algunos conceptos básicos de la fotografía para no fallar en nuestra búsqueda. Respecto al formato, se suele recomendar .jpg para fotografías […]

La entrada Los 10 Mejores Bancos de Imágenes Gratuitas se publicó primero en Ciudadano 2.0.