No sé si te habrá pasado – seguro que sí – que cuando tecleas o llegas a una dirección en tu web que no existe, WordPress intenta mostrarte otra dirección parecida. Esto son las denominadas redirecciones canónicas automáticas de WordPress, y son importantísimas para el SEO.
¿Que son las URLs canónicas?
Una URL canónica es la URL principal de otra serie de URLs con contenido igual o muy similar, que podrían considerarse duplicadas por parte de los motores de búsqueda.
Esto es muy común sobre todo en tiendas en línea, donde para un mismo producto puede haber varias URLs casi iguales, en las que la única diferencia es un parámetro en la URL que identifica ese producto en otro color, tamaño, etc., pero donde la mayoría de la URL y, sobre todo, del contenido, es prácticamente igual.
Lo mismo pasa con las subpáginas de una entrada, o la paginación en comentarios.
En estos casos se hace uso de las URLs canónicas (o canonical en inglés) para indicar a los motores de búsqueda cuál es la URL principal, o padre, del resto.
De este modo los robots de los buscadores, cuando visitan una web, intentan determinar cuál es el contenido principal de cada página. Si detectan que en una misma web hay varias páginas con contenido similar, marcan como canónica la que consideren como más completa y útil. Es por este motivo que a veces verás en Google Search Console identifica una URL como «Duplicada: Google ha elegido una versión canónica diferente a la del usuario»
A partir de ese momento la URL elegida como canónica será la que se rastreará con mayor frecuencia, y las otras no se rastrearán tan a menudo para reducir la carga de rastreo de Google de la web.
Esto es así también para las versiones con y sin www de tu web, http y https, y por supuesto todas las URLs muy muy similares.
¿Qué pasa con las URLs canónicas si uso WordPress?
¡Enhorabuena, has elegido el software correcto para crear tu web!
WordPress tiene un sistema de redirecciones canónicas automáticas que lamentablemente no está muy bien documentado, pero que es muy importante para el SEO de tu web.
Lo que hace WordPress, por defecto, es determinar automáticamente la URL canonical de todas tus páginas, y añade la etiqueta rel="canonical"
en la cabecera del código fuente de cada una de ellas, tal que así:
<link rel="canonical" href="https://midominio.com/slug-de-pagina/" />
En caso de existir varias subpáginas o URLs similares, de este modo, los motores de búsqueda encontrarán mediante esta etiqueta qué URL canónica indexar preferentemente, frente a otras. De este modo, WordPress trata de evitar ofrecer distintas URLs con contenido igual o muy parecido, para no incurrir en contenido duplicado, o el error conocido como Soft 404.
¿Y qué pasa con las redirecciones aleatorias automáticas que hace WordPress?
Además de lo anterior, WordPress, para evitar en lo posible mostrar errores 404 en tu web, cuando alguien teclea o accede a una URL que no existe, trata de «adivinar» otra URL parecida que pueda ofrecer al visitante, sea humano o robot.
Estas redirecciones las realiza normalmente utilizando la URL que no existe como si fuese un prefijo de la que entrega. O sea, busca una URL que termine como la que se ha tecleado.
Por ejemplo, si la URL que no existe es https://midominio.com/seo/
en vez de mostrar un error 404, busca URLs similares, y si existe la URL https://midominio.com/seo-para-comidistas/
redirige a esta última, que vendría a convertirse, de hecho, en una especie de URL canónica de la que da error.
Por resumir, WordPress asume que la URL está incompleta y trata de adivinar cómo completarla, ofreciendo otra URL que sí tenga contenido, completando la URL.
Esto lo hace mediante la función redirect_canonical() que ejecuta la sub-función redirect_guess_404_permalink(), para devolver una URL «completa». En el mismo archivo /wp-includes/canonical.php
en el que están incluidas las funciones lo explica:
Redirige los enlaces entrantes a la URL adecuada en función de la url del sitio.
Y, en concreto, cuando dice…
También intentará encontrar el enlace correcto cuando un usuario introduzca una URL que no existe basándose en una consulta exacta de WordPress. En su lugar, intentará procesar la URL o la consulta para encontrar la página correcta a la que ir.
¿Es malo que WordPress haga estas redirecciones aleatorias?
Por fin, ya llegó, ya está aquí el mantra que no puede faltar en todo artículo, libro o ponencia sobre SEO…
¡¡¡Depende!!!
😀
De nuevo, es verdad que … depende … pues dependiendo de tu estrategia y compromiso con el SEO de tu web será bueno o malo, y me explico… con unas verdades, curiosamente, contradictorias…
«Cualquier resultado con contenido es mejor que un error 404»
«Un contenido que no satisfaga la búsqueda del usuario penaliza el SEO»
«Un error 404 puedes arreglarlo, una redirección aleatoria que no sabes que existe no»
Entonces ¿qué es mejor, dejar que WordPress ofrezca siempre «algo» al usuario o permitir los errores 404 y redirigir uno a uno?
En mi opinión, y siempre pensando en el usuario, lo mejor, sin duda, es no dejar que se hagan las redirecciones aleatorias de WordPress, vigilar los errores 404 y crear redirecciones a otros contenidos que, de verdad, sean un sustituto adecuado del contenido que buscaba el usuario.
De este modo, si volvemos a utilizar el ejemplo que vimos arriba, y el usuario teclea o llega a la URL inexistente https://midominio.com/seo/
, en vez de que WordPress redirija a un artículo muy concreto, que solo satisfará a un tipo de usuario, como https://midominio.com/seo-para-comidistas/
, si desactivamos las redirecciones aleatorias automáticas de WordPress, tras detectar el error 404, podemos crear una redirección desde la URL inexistente, a otra que sí exista, y satisfaga a los usuarios, como por ejemplo https://midominio.com/basicos-de-seo/
, o incluso https://midominio.com/category/seo/
.
¿Cómo evito que WordPress «adivine» URLs canónicas?
Si has llegado hasta aquí y, además de aprender algo más sobre WordPress, o incluso de SEO, que no sabías, y te has decidido a evitar estas redirecciones aleatorias automáticas de WordPress, vamos a ver cómo deshacernos de ellas rápida y fácilmente.
Evitar las redirecciones aleatorias de WordPress con código
Aprovechando las mismas funciones que realizan las redirecciones podemos aplicar filtros que las desactiven.
Podrías directamente desactivar la función redirect_canonical()
añadiendo este código al final del archivo functions.php
del tema hijo activo, o como prefieras:
add_filter('redirect_canonical', 'no_redirect_on_404'); function no_redirect_on_404($redirect_url) { if (is_404()) { return false; } return $redirect_url; }
Otro modo de hacer lo mismo sería mediante este otro código:
add_filter( 'redirect_canonical', '__return_false' );
Ahora bien, este filtro tiene un problema, y es que desactiva completamente la función redirect_canonical()
que no solo crea las redirecciones aleatorias de URLs «incompletas», sino también otras redirecciones canónicas de WordPress, como las de los feeds RSS, de www a sin www, trackbacks, comentarios y otras, con lo que aplicando este filtro puedes destrozar completamente el SEO de tu web.
Así que, vale, ya conoces el filtro, pero NO LO USES, solo lo he puesto para que sepas algo más, pero no para el objetivo de esta guía.
Para conseguir que WordPress deje de «adivinar» URLs con las que «completar» las URLs lo adecuado es utilizar la sub-función que se ocupa en concreto de esta característica: redirect_guess_404_permalink()
.
Lo que sí podemos hacer es añadir este otro filtro:
/* Desactivar redirecciones aleatorias de WP */ add_filter('do_redirect_guess_404_permalink', '__return_false');
Esa sencilla línea de código evitará que WordPress deje de tratar de adivinar URLs alternativas a las que no existen, y tendrás, eso sí, que empezar a solucionar los errores 404 que vayan apareciendo, para lo que te recomiendo que utilices un plugin como Redirection.
Evitar las redirecciones aleatorias de WordPress con plugins
¿El código no es lo tuyo?, ¿prefieres dedicar tu vida a otra cosa que a romper webs haciendo cosas que solo los programadores deberían tocar?, pues afortunadamente hay algunos de estos programadores que han pensado en ello y ofrecen plugins que te permiten conseguir el mismo objetivo, pero de una manera más simple, con un simple ajuste, sin tener que andar tocando archivos de código.
Por ejemplo, con SEOPress PRO, en la sección de ajustes de redirecciones, tienes una opción específica que puedes activar que desactiva las redirecciones aleatorias de WordPress.
Solo tienes que activar la herramienta y la opción y WordPress dejará de tratar de adivinar URLs, y podrás empezar a hacer las redirecciones adecuadas desde la propia herramienta de detección de errores 404 y redirecciones de SEOPress.
Otros plugins como Yoast SEO no tienen esta opción ni siquiera en la versión de pago, y en el resto de plugins SEO que he utilizado no he visto esta posibilidad, así que en principio no hay más posibilidades, pero si sabes de alguno me lo cuentas en los comentarios y lo añado 😉
El artículo Cómo evitar las redirecciones aleatorias canónicas de WordPress lo publicó Fernando Tellado previamente en Ayuda WordPress. Lo que ves aquí es una copia de dicho contenido :/
0 Commentaires