WordPress va apparemment résoudre les URL partielles vers la page "correcte" lorsqu’il est entré au niveau parent. Google inclut cette URL partielle dans ses résultats de recherche. Par exemple, il y a des années, j'ai écrit un article sur un site appelé Bookeo:
http://www.example.com/2011/04/bookeo/
Si vous tapez ceci, cela résoudra à l'URL ci-dessus.
http://www.example.com/book/
Pour une raison quelconque, Google a effectivement mis en cache l'URL /book/
, comme s'il s'agissait de sa propre page. Si vous effectuez une recherche dans mon nom de site + livre, l'URL abrégée et incorrecte est renvoyée. C’est la dernière chose que je veux, car les gens peuvent s’y rendre et s’attendre à prendre rendez-vous ou quelque chose du genre.
En tant que aparté, WP résout le premier résultat correspondant. Donc, si vous aviez des articles de blog avec /book1/
et /book2/
, il choisirait le premier.
Existe-t-il un moyen de faire en sorte que Google ne mette en cache que l'URL de destination correcte? Le plan du site n'inclut que celui de droite et est lié à robots.txt
. Je viens de le soumettre manuellement au webmaster de Google.
Est-ce que ma seule option est de mettre à jour robots.txt
pour bloquer /book
. Ou imaginez comment désactiver cette fonctionnalité de résolution d'URL dans WordPress?
Le premier commentaire suggère que je devrais comprendre comment désactiver la fonction de détection d'URL dans WordPress. Je pense que c'est la meilleure solution. Une façon de le faire est répondu ici.
https://wordpress.stackexchange.com/questions/92103/disable-wordpress-url-auto-complete
remove_filter('template_redirect', 'redirect_canonical');
Mais il est accompagné d'avertissements sur les raisons pour lesquelles vous ne devriez pas, car cela désactive l'intégralité de la fonctionnalité qui comporte de nombreux avantages en matière de référencement, tels que la prévention des pénalités pour les URL en double. La partie de ce que je ne veux pas est:
Je tenterai également de trouver le lien correct lorsqu'un utilisateur entre une URL inexistante basée sur une requête exacte WordPress. Essayera à la place d'analyser l'URL ou la requête pour tenter de déterminer la page à utiliser.
Apparemment, il y a un ticket WordPress ouvert. Une solution de contournement peut être trouvée ici, ainsi qu'une solution similaire dans le lien ci-dessus.
https://core.trac.wordpress.org/ticket/16557
function remove_redirect_guess_404_permalink( $redirect_url ) {
if ( is_404() )
return false;
return $redirect_url;
}
add_filter( 'redirect_canonical', 'remove_redirect_guess_404_permalink' );