Google favorise l’indexation des pages avec iframe plutôt que les contenus d’origine

Mathieu Chartier 6 juillet 2017 à 09:20 SEO 2 commentaires

Google : indexation de contenus et de pages web

John Mueller a répondu à une question fort intéressante sur l'indexation des contenus intégrés dans des iframes (à 21'16 dans la vidéo ci-dessous). En effet, nous sommes en droit de nous demander ce qu'il se passe lorsqu'une page utilise une iframe pour afficher du contenu externe ou interne. Et le moins que l'on puisse dire, c'est que la réponse du porte-parole de Google a été plus ou moins ambigüe.

Pour rappel, la question posée était celle-ci :

Si je syndiquer mon contenu sur un autre site web avec une iframe, comment puis-je m'assurer que l'URL de l'iframe obtient de la valeur au lieu de la page intégrant l'iframe ?

Voici la réponse relativement longue et complexe de John Mueller, donc je vous la traduis (au mieux...) dans son intégralité, ce sera plus simple pour vous faire votre propre opinion à ce sujet :

Dans la version courte, vous ne pouvez pas (être assuré d'obtenir de la valeur, NDLR).

En particulier si une page est intégrée dans une iframe, au sein d'une plus grosse page externe, alors il est possible d'indexer cette page telle quelle. Et lorsque nous affichons cette page, nous observons évidemment votre contenu, puisqu'il est également visible dans l'iframe. Et dans une certaine mesure, nous pouvons dire qu'il s'agit d'une page entière avec ce contenu en elle, donc nous l'indexerons comme cela. Nous pourrions donc l'afficher dans les résultats de recherche ainsi.

En général, nous trouvons la connexion entre la page intégrée et la version utilisant l'iframe. Et nous essayons d'afficher correctement cela dans la recherche, pour vraiment mettre en évidence la page d'origine plutôt que l'iframe unique. Mais ce n'est pas quelque chose pour laquelle vous pouvez dire "Je veux que les deux soient visibles dans la recherche ou d'une façon générale sur le web, et je préfère que cette page spécifique soit affichée".

Donc, vous ne pouvez le faire que si vous êtes en contact avec l'autre site utilisant l'iframe vers cette page intégrée, qui pointe vers la version du contenu réelle que vous souhaitez afficher. Parallèlement, si vous ne souhaitez pas que vos pages soient affichées dans une iframe, il existe des options que vous pouvez mettre, dans l'entête d'une page il me semble avec une balise meta spéciale pour dire que vous ne souhaitez pas que vos pages soient utilisées par des iframes. Et c'est une chose que les navigateurs vont appliquer, les modernes tout du moins. Et c'est aussi quelque chose que nous respectons de notre côté. Si nous constatons qu'une URL est affichée dans une iframe mais qu'en fait, cette URL ne devrait pas fonctionner dans une iframe, nous respecterons également ça dans la recherche.

Cette réponse a le mérite d'être longue, mais parfois un peu difficile à suivre tant John Mueller part dans plusieurs directions. Je vais donc tenter d'amorcer une traduction de la traduction pour expliquer ce qu'il me semble avoir compris (vous aurez noté que je prends beaucoup de gants ^^). En résumé :

  • Google peut indexer une page qui utilise une iframe, tout en lui accordant la valeur des contenus intégrés dans l'iframe. C'est en substance ce que le porte-parole indique dans le premier paragraphe de sa réponse. En d'autres termes, on peut vous voler votre contenu via une iframe, et que cette page de plagiat soit indexée comme si de rien n'était, tout en profitant de la valeur des contenus volés. Merci Google...
  • Google arrive à déterminer la liaison entre la page utilisant l'iframe et la page du contenu original. John Mueller insiste encore (2e paragraphe) pour dire que le moteur de recherche n'affichera pas les deux versions du contenu dans les SERP. Et dans ce cas, il privilégie plutôt la page utilisant l'iframe (car plus importante à ses yeux) à celle proposant les contenus originaux.
  • Il est possible d'interdire l'usage d'iframe par un autre site, et Google semble respecter cela. En d'autres termes, mettez absolument l'entête anti-iframe pour éviter que quelqu'un vous vole vos contenus et en profite nettement.

En soi, j'avoue ne pas être surpris que Google s'intéresse plutôt à la page plus "grosse" qui contient les iframes, plutôt qu'à un contenu unique d'une iframe. Toutefois, cela encourage nettement les plagieurs à insérer tout ou partie des contenus d'autres sites au sein d'iframe. Il est en effet plus difficile de déceler du plagiat avec cette technique, donc vous pourriez avec des pages non indexées tout simplement parce que d'autres profitent de vos contenus. Et ça, je trouve lamentable que Google ne fasse rien pour qu'on puisse au moins s'en plaindre ou l'indiquer dans la Search Console par exemple. Certes, il existe des formulaires généraux de plaintes mais encore faudra-t-il lutter pour prouver notre honnêteté...

Comment bloquer les iframes sur le web ?

Pour vous aider à ne pas vous faire plagier, voici donc l'entête que John Mueller n'a pas nommé : X-Frame-Options. Elle peut prendre trois valeurs :

  • X-Frame-Options: DENY signifie qu'il est interdit d'utiliser les contenus du site dans une iframe.
  • X-Frame-Options: SAMEORIGIN signifie que seul le site d'origine peut lui-même utilisé une iframe pour afficher son propre contenu (pour des jeux concours ayant des URL similaires d'origine, c'est intéressant notamment, etc.).
  • X-Frame-Options: ALLOW-FROM https://www.site.com/ signifie que seule la source externe proposée peut utilisée une iframe avec des contenus de votre site (c'est pour cela que John Mueller parle de connaître la personne qui utilise une iframe de votre contenu).

Il ne vous plus qu'à trouver la solution adéquate pour bloquer les iframes. Voici plusieurs possibilités que vous pouvez utiliser. Sachez qu'il existe également ce qu'on appelle les frame-ancestors (origines des iframes) de l'entête Content-Security-Policy pour aller plus loin (source). Je vous fournis donc la méthode complète, mais sachez que l'entête Content-Security-Policy est supportée partout sauf par le mythique Internet Explorer...

Sur un serveur Apache ou dans un fichier .htaccess, vous pouvez ajoutez une ligne de ce type :

Header set X-Frame-Options DENY
Header set Content-Security-Policy "frame-ancestors 'none';"

Sur un serveur Nginx, il faut configurer avec une ligne quasi-équivalente :

add_header X-Frame-Options DENY;
add_header Content-Security-Policy "frame-ancestors 'none';";

Si vous utilisez du PHP (comme dans WordPress, Joomla, Drupal, Symfony...) et que vous souhaitez envoyer les entêtes anti-iframe par le code, voici comme faire :

header('X-Frame-Options: DENY');
header('Content-Security-Policy frame-ancestors 'none';');

Contrairement à ce qu'avance John Mueller, plusieurs navigateurs dont Mozilla Firefox indiquent qu'il ne faut pas utiliser la balise meta pour bloquer les iframes. Cette dernière n'a que peu d'impact, alors n'ajoutez pas ceci et privilégiez donc les méthodes précédentes :

<meta http-equiv="X-Frame-Options" content="deny">
<meta http-equiv="Content-Security-Policy" content="frame-ancestors 'none';">

Tutoriel vidéo - Google favorise l’indexation des pages avec iframe plutôt que les contenus d’origine