web-dev-qa-db-fra.com

Google pénalise-t-il le contenu <noscript> en double?

J'utilise javascript pour basculer dans un menu de navigation déroulant. Je pensais pour les utilisateurs qui ont js désactivé, la navigation n'apparaitra pas. J'allais donc utiliser une balise noscript avec le contenu de la navigation. Google verrait-il cela comme un contenu en double? Exemple simple de code:

HTML

<img id="menuicon" onclick="toggle_visibility('nav');" src="someurl" width="32" height="32" />

<ul id="nav">
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
</ul>

<noscript>
<ul>
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
<li><a href="">SomeMenuItem</a></li>
</ul>
</noscript>

CSS

#menuicon { cursor: pointer; }
#nav { display: none; }

JS

function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display === "block"){
      e.style.display = "none";
   }
   else {
      e.style.display = "block";
   } }
2
jetyet47

Pour éviter les risques de duplication du contenu, je vous recommande de charger les éléments de menu, puis, utilisez javascript pour les organiser à votre guise. Par exemple:

<div ID="menu">
<!-- Insert menu items here -->
</div>
<script>
document.getElementById("menu").style.visibility="hidden";
//code to arrange and position menu box as desired
(handle of thing to click to activate menu).onclick=showmenu;

function showmenu(){
document.getElementById("menu").style.visibility="visible";
}
</script>

Le code doit être travaillé, mais le but est de rendre les éléments de menu disponibles en premier afin que, quel que soit le support javascript, tout le monde ait accès au menu. Ensuite, lorsque javascript est activé, une fois que tout est chargé, le menu peut être stylé et positionné comme vous le souhaitez.

3
Mike

Premièrement, en ce qui concerne ce que @Mike dit dans sa réponse, les robots d'exploration de Google peuvent maintenant interpréter le contenu généré par Javascript comme l'exploration du DOM et non du code source, ce qui ne fait pas vraiment une différence du point de vue de l'exploration. De plus, Google ne pénalise pas le contenu basé sur les balises noscript, car il est reconnu que le contenu de ces balises n'est affiché que si le javascript est désactivé et qu'il s'agit d'une très petite minorité d'internautes. Faire des tests dans le passé Google n'a même pas utilisé comme mot clé les mots-clés incorporés dans la balise noscript pour le site de test, car il n'apparaîtrait pas pour tous les utilisateurs.

1
Chris Rutherfurd

Duplicate Content Vs Duplicate Element

C'est une erreur courante des webmasters du monde entier de confondre un contenu dupliqué avec des éléments dupliqués. Il serait utile que vous établissiez d’abord les différences entre les deux, avant de décider quelle option vous convient le mieux.

Qu'est-ce que le contenu dupliqué?

Google et d'autres moteurs de recherche déterminent contenu dupliqué sous la forme de pages contenant une très forte proportion de contenu similaire à celui d'une autre page, en interne ou en externe. L'utilisation d'extraits de code, de blocs de devis provenant d'autres pages ou sites ne crée pas une page en double, en supposant qu'une partie du contenu de la zone de contenu est unique.

À cette époque, on s'attend à ce que le contenu dupliqué soit en double, afin d'éviter tout sanction ou confusion de la part des moteurs de recherche il est recommandé que les sites fassent bon usage de liens canoniques , il a été publié à cet effet. .

Qu'est-ce que les éléments en double?

Les éléments en double sont très courants et ne doivent pas vous inquiéter, car Google et les principaux moteurs de recherche s'attendent à ce que les éléments basés sur des modèles, tels que les navigations, soient répétés plusieurs fois sur une page ou plusieurs. Par exemple, il est fréquent de voir les liens sociaux à la page. haut du site, puis à nouveau en bas, le balisage peut différer ou être exactement le même avec des styles CSS différents.

De nos jours, de nombreux sites utilisent plusieurs barres de navigation pour les ordinateurs de bureau et les appareils mobiles, en utilisant des requêtes multimédia et un affichage: aucun. Google s'en fiche, cependant, si possible, évitez les doublons, pourquoi? réduction du code et à des fins d'administration.

Éviter les éléments en double

Dans la plupart des cas, il est possible d’éviter les doublons en faisant des recherches ou des connaissances. Dans de nombreux cas, comme les barres de navigation pour téléphones portables, les administrateurs le font parce que tout ce qu’ils savent faire est paresseux ou désireux de trouver une solution rapide.

Dans votre situation, j'estime que votre solution n'est pas la meilleure solution pratique et qu'elle peut être évitée. Vous pouvez choisir d'utiliser . No-js en utilisant Modernizr ou une solution similaire, sans-js.

Vous ajoutez simplement la classe no-js au corps. Chaque fois que JavaScript est activé, les no-js sont supprimés et js ajoutés. Cela signifie que vous êtes en mesure de contrôler le style de votre site sans avoir à vous inquiéter. utilisez <noscript> et créez des éléments en double évitables.

Votre CSS ressemblera alors à ceci:

#nav { display: none; }
.no-js #nav { display: block; }

Vous pouvez ensuite utiliser .no-js pour toutes les autres fonctionnalités de votre site nécessitant des modifications pour l'environnement no-js.

0
Simon Hayter