Avisos
Vaciar todo

Problema con URLs parametrizadas generadas en WooCommerce  

 
María
 María
Usuario experto

Hola de nuevo,

Quería consultaros por un problema que llevo arrastrando desde hace meses con una tienda en WordPress + WooCommerce. Desde octubre más o menos, he estado viendo en Google Search Console que, aunque tengo bloqueadas ciertas URLs en el robots.txt, se siguen generando e indexando URLs parametrizadas de este tipo:

Son solo un ejemplo. La segunda, además, me desconcierta especialmente porque no tiene mucho sentido: es una paginación de un listado, no un producto.

Para intentar solucionar esto, y de paso optimizar el enlazado interno, he hecho varios cambios:

  1. Eliminé el plugin de lista de deseos.
  2. Quité también el botón de "Añadir al carrito" en los listados de productos, dejándolo solo en las páginas de producto, donde funciona con AJAX (y por tanto, no genera URLs rastreables).
  3. Cambié el plugin de filtros por uno que también trabaja con AJAX y no genera enlaces parametrizados.

Actualmente, he hecho una prueba quitándoles el bloqueo en robots.txt y añadiendo la etiqueta noindex para intentar que Google las desindexe, pero esto no es una solución definitiva, ya que sigo viendo que se generan nuevas URLs parametrizadas todos los días.

El sitio tiene unas 1500 URLs válidas indexadas, pero estas URLs parametrizadas ya suman más de 1500, lo que claramente está afectando al presupuesto de rastreo y puede perjudicar el SEO.

¿Os ha pasado algo similar? ¿Sabéis por qué podrían seguir generándose estas URLs?

Agradezco mucho cualquier consejo o experiencia que podáis compartir.

Un saludo y gracias de antemano.

Contenido solo visible a usuarios registrados

Citar
Respondido : 02/01/2025 9:25 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Que tal María,

El comportamiento que nos comentas es totalmente normal y relacionado a las URL dinámicas que se generan al consultar acciones como añadir al carrito, a la lista de deseos o la paginación del listado de productos

Una posible solución que se puede contemplar es añadir parte de la ruta dinámica al archivo de robots.txt para que dichas URL que contienen esos parámetros no sean reconocidas por los motores de búsqueda, por ejemplo

Disallow: /?add-to-cart
Disallow: /*?add-to-cart
Disallow: /?add_to_wishlist
Disallow: /*?add_to_wishlist

Por otro lado el tema de la paginación es un poco mas complejo ya que la primera pagina de resultados si que es tomada en cuenta 

Existen fragmentos de código como por ejemplo el siguiente pero solo ha sido probado bajo sitios web que utilizan Yoast SEO 

add_filter('we_robots', 'yoast_no_noindex_paginacion', 999);
function yoast_no_noindex_paginacion($string= "") {
if (is_paged()) {
$string= "noindex,follow";
}
return $string;
}

Para usar este código debes incluirlo en el contenido del archivo funtions.php o preferiblemente usando el plugin de Code snippets 

https://wordpress.org/plugins/code-snippets/

Vale la pena echarle un vistazo a las impresiones del propio plugin al respecto

https://yoast.com/pagination-seo-best-practices/

Echale un vistazo 

Saludos!

ResponderCitar
Respondido : 02/01/2025 11:27 pm

Cursos Gratuitos WordPress

María
 María
Usuario experto

Hola,

Muchas gracias por la respuesta.

Creo que quizá no me expliqué bien al plantear la consulta. Esos disallow han estado añadidos al archivo robots.txt durante más de un año. Sin embargo, desde octubre he visto que esas páginas parametrizadas han empezado a aparecer en el Search Console y se han indexado (pasando olímpicamente del disallow del robots).

Como comentaba, ahora mismo estoy haciendo una prueba y eliminé los disallow para permitir el rastreo y he implementado una etiqueta noindex en todas esas páginas parametrizadas con el objetivo de gestionar la desindexación.

Mi consulta, sin embargo, no va tanto sobre cómo tratar estas URLs en Google (que creo tener claro), sino sobre por qué WordPress o WooCommerce sigue generando estas URLs si hace meses ya realicé los siguientes cambios:

  • Eliminé hace el plugin de "Añadir a la lista de deseos", que era responsable de generar el parámetro add_to_wishlist.
  • Quité el botón de "Añadir al carrito" en los listados de productos, dejando únicamente el de las páginas de productos, que funciona con AJAX y no genera URLs rastreables.
  • Sustituí el sistema de filtros y facetas por uno nuevo que no genera URLs parametrizadas (también funciona con AJAX).

A pesar de estos cambios, estas URLs parametrizadas siguen apareciendo en Google Search Console a diario. De hecho están indexadas el doble de las URLs que envío al índice de Google.

Os confirmo también que no hay enlaces en el sitio a ese tipo de URLs.

¿Podría haber algún elemento residual en WordPress o WooCommerce que esté generando estas URLs automáticamente?

Gracias de nuevo por vuestra ayuda.

Un saludo.

ResponderCitar
Respondido : 03/01/2025 10:20 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola María.

Estas URLs son normales y necesarias para el funcionamiento de WooCommerce. Suele venir si en algún momento tenías botón que dirigiera directamente a la página de checkout de Woocommerce, o botones personalizados para la compra.

Puedes añadir lo siguiente en el archivo robots.txt para que no se indexen:

Disallow: /*?add-to-cart=

Ten en cuenta que esto no elimina las páginas que tengas indexadas sino que dejarán de indexar a partir del momento en el que lo añadas.

 

Desde Search Console -> Retirada de URLs podrás eliminarlas de la búsqueda:

screenshot search google com 2025 01 03 12 10 40

 

Un saludo

ResponderCitar
Respondido : 03/01/2025 11:12 am

wpdoctor-revisa-la-salud-de-tu-wordpress

María
 María
Usuario experto

Hola @pepesoler

Gracias por tu respuesta.

Como comentaba, ya tenía añadido el Disallow en el robots.txt, pero de un día para otro las URLs comenzaron a indexarse igualmente. Como se ha ido de madre, he optado por añadir una etiqueta noindex y quitar el Disallow, permitiendo así que Google pueda rastrearlas nuevamente, detectar el noindex y proceder a eliminarlas del índice.

Hasta donde sé, la funcionalidad de Retirada de URLs en Search Console solo permite eliminar URLs específicas o las que compartan un prefijo, pero creo que no es posible eliminar todas las que contienen /*?add-to-cart=. ¿Es correcto? Por ese motivo, y por razones obvias de operatividad, no me queda más remedio que facilitar el rastreo a Google para que detecte el noindex.

Lo que me trae de cabeza es por qué, después de tanto tiempo y con los plugins que generaban estas URLs eliminados hace meses, siguen generándose e indexándose nuevas URLs de este tipo cada día (pasando por completo del disallow del robots que tenía puesto), incluso cuando no hay ningún enlace que apunte a ellas.

¿Podría haber algún proceso interno en WooCommerce o en la configuración de WordPress que siga generándolas automáticamente? ¿Hay alguna forma de comprobarlo?

Gracias de nuevo por tu tiempo.

Un saludo.

ResponderCitar
Respondido : 03/01/2025 11:36 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Maria.

pero creo que no es posible eliminar todas las que contienen /*?add-to-cart=. ¿Es correcto? 

Correcto, tienes que eliminar la URL completa, por ejemplo:

Contenido solo visible a usuarios registrados

¿Podría haber algún proceso interno en WooCommerce o en la configuración de WordPress que siga generándolas automáticamente?

No no hay nada, es una URL normal de WooCommerce para añadir el producto al carrito.

La estructura ?add-to-cart=59115 corresponde a la acción que WooCommerce utiliza para añadir un producto al carrito.

  • 59115 es el ID del producto en la base de datos de WordPress.
  • Cuando visitas una URL con este formato, WooCommerce ejecuta automáticamente el proceso de añadir ese producto al carrito.

Para que no se indexe a partir de ahora tienes que añadir la etiqueta Disallow: /*?add-to-cart= en el archivo robots.txt

 

Un Saludo

ResponderCitar
Respondido : 03/01/2025 12:19 pm