web-dev-qa-db-fra.com

Balise Noscript, avertissement JavaScript désactivé et pénalité Google

J'ai utilisé une balise noscript pour afficher un avertissement lorsque les utilisateurs ont désactivé JavaScript ou utilisent des plugins de blocage de script comme Noscript. Le site Web ne fonctionnera pas correctement si JavaScript est désactivé et les utilisateurs peuvent ne pas comprendre pourquoi il ne fonctionne pas sans l'avertissement.

Après le dernier remaniement de l'algorithme Google, j'ai vu le trafic quotidien chuter à environ 1/3 de ce qu'il était au cours des mois précédents. J'ai également vu des pages classées n ° 1 ou n ° 2 dans le SERPS abandonner les résultats. Après avoir étudié les outils pour les webmasters, j'ai remarqué que "JavaScript" est répertorié comme # 16 dans la section des mots clés. Cela n'a aucun sens car le site n'a rien à voir avec JavaScript et le seul endroit où Word apparaît est dans le texte entre les balises noscript.

Il semble que Google inclue et indexe maintenant le contenu entre les balises noscript. Je ne pense pas que cela se soit produit auparavant. L'avertissement est de trois phrases. J'imagine que le fait d'avoir les mêmes trois phrases apparaissant en haut de chaque page du site pourrait avoir un effet néfaste sur le référencement.

Pensez-vous que cela pourrait causer un problème de référencement? Et, existe-t-il une autre méthode pour avertir les utilisateurs dont JavaScript est désactivé d'une manière qui ne sera pas indexée ou lue par les moteurs de recherche?

49
undoIT

Quelqu'un sur un autre forum a mentionné l'utilisation d'une image pour l'avertissement. À mon avis, cela aurait trois avantages:

  1. Il n'y aurait pas de texte non pertinent pour les moteurs de recherche à indexer.
  2. Le code pour afficher une seule image est moins volumineux qu'un avertissement textuel (qui est chargé sur chaque page).
  3. Le suivi pourrait être mis en œuvre pour déterminer combien de fois l'image est appelée, pour donner une idée du nombre de visiteurs dont JavaScript a été désactivé ou bloqué.

Si vous combinez cela avec quelque chose comme la technique non-noscript mentionnée par J-P, cela semble être la meilleure solution possible.

14
undoIT

Mettez le <noscript> contenu à la fin de votre HTML, puis utilisez CSS pour le positionner en haut de la fenêtre du navigateur. Google ne considérera plus cela comme important.

Stack Overflow lui-même utilise cette technique - effectuez une visualisation de la source sur cette page et vous verrez un avertissement "fonctionne mieux avec JavaScript" vers la fin du code HTML, qui apparaît en haut de la page lorsque vous désactivez JavaScript.

42
RichieHindle

<noscript> n'est pas destiné à des avertissements sans signification tels que:

<noscript>
Oh non! Vous n'avez pas activé JavaScript! Si vous n'activez pas JS, vous êtes condamné. [Longue explication sur la façon d'activer JS dans tous les navigateurs jamais créés]
</noscript>

Il est destiné à vous fournir autant de contenu que possible, ainsi qu'une mention polie selon laquelle l'activation de JS donnera accès à certaines fonctionnalités supplémentaires. Vous constaterez que pratiquement tous les sites populaires suivent cette ligne directrice.

23
Matthew Flaschen

Je ne pense pas utiliser <noscript> est une bonne idée. J'ai entendu dire qu'il est inefficace lorsque le client se trouve derrière un pare-feu bloquant JavaScript - si le navigateur du client a activé JavaScript <noscript> la balise ne s'activera pas, car, pour le navigateur concerné, JavaScript est pleinement opérationnel dans le document ...

Une meilleure méthode IMO, est d'avoir tout le contenu "noscript" potentiel caché par JavaScript.

Voici un exemple très basique:

...
<body>

    <script>
        document.body.className += ' js-enabled';
    </script>

    <div id="noscript">
        Welcome... here's some content...
    </div>

Et dans votre feuille de style:

body.js-enabled #noscript { display: none; }

Plus d'informations:

21
James

Je voulais juste publier une friandise intéressante à ce sujet. Pour un de mes sites, j'ai fini par faire quelque chose de similaire à ce que la pile de débordement utilise, mais avec l'ajout d'un lien "en savoir plus" car mes utilisateurs ne sont pas aussi techniques que ce site.

La partie intéressante est que, suivant les conseils des gens aboce, ma solution a abandonné la balise noscript, optant plutôt pour masquer les divs de message avec javascript. Mais j'ai trouvé que si firefox attend son mot de passe principal, cette dissimulation du message est interrompue, donc je pense que je vais revenir à noscript.

3
James P McGrath

Si vous choisissez une solution basée sur le remplacement du contenu div (si js est activé, le contenu div est mis à jour) plutôt que d'utiliser une balise noscript, soyez prudent sur la façon dont Google voit cette pratique:

http://support.google.com/webmasters/bin/answer.py?hl=en&answer=6635

Je ne suis pas sûr que Google le jugera trompeur, mais c'est quelque chose à considérer et à approfondir. Voici un autre article de stackoverflow à ce sujet: instantané google noscript, la manière sûre

1
prograhammer