La page d'accueil d'un site que nous avons développé contient quatre éléments de contenu: la page parent et trois autres "pages" de texte que nous intégrons dans la page parent à l'aide de PHP. Appelez-les Foo, Bar1, Bar2, Bar3 si vous voulez.
C’est peut-être la bonne façon de résoudre le problème d’une page complexe, mais cela fonctionne pour nous et pour le client et il y est habitué maintenant.
Le petit problème est que ces pseudo-mini-pages Bar1, Bar2 et Bar3 sont indexées par Google et peuvent être présentées comme des pages à part entière. Ils ne paraissent pas terribles lorsqu'ils sont servis de cette façon, mais nous aimerions éviter cela si possible.
Je pense pouvoir résoudre ce problème en:
1) rediriger mysite/bar1 vers mysite/foo dans htaccess
OU
2) via notre plugin SEO ( Yoast ) appliquer un robot noindex
Mais je demande ici quelle approche est la plus correcte ou s'il existe une meilleure solution?
Eh bien, ce sont deux choses différentes:
Une redirection signifie qu'ils ne sont plus accessibles du tout.
noindex signifie simplement que les moteurs de recherche l'ignorent tant qu'il est accessible si vous accédez à l'URL.
Je recommanderais donc l’option 1. C’est un moyen simple de le faire que vous pouvez améliorer. (Par exemple, cela suppose d'avoir un jeu de pages de garde statique et ne gère aucune autre situation)
function wpse_211889_template_redirect()
{
if ( ! is_page() ){
return;
}
$frontpage_ID = get_option('page_on_front');
global $post;
if( $post->post_parent && $frontpage_ID === $post->post_parent )
{
wp_redirect( home_url() );
exit();
}
}
add_action( 'template_redirect', 'wpse_211889_template_redirect' );
Les pages ne doivent pas être indexées s'il n'y a pas de liens directs vers celles-ci. Les moteurs de recherche ne devinent pas les URL, alors je suppose qu'une grande partie de votre problème réside ici avec votre propre code - c'est-à-dire que vous générez des liens quelque part que les moteurs peuvent suivre.
Si c’était moi, je créerais un nouveau type de message pour cet usage et l'enregistrerais avec 'public'->false
afin que les "pages" ne soient accessibles que si vous écrivez explicitement du code pour les afficher. Cela devrait éviter les problèmes liés à de tels objets, tels que les résultats de recherche, les flux RSS et d’autres problèmes potentiels, car le code principal permet de contrôler ce qui est affiché.