Тег Noscript, предупреждение об отключении JavaScript и штраф Google

Я использовал тег noscript, чтобы показать предупреждение, когда пользователи отключили JavaScript или используют плагины блокировки скриптов, такие как Noscript. Веб-сайт не будет функционировать должным образом, если JavaScript отключен, и пользователи могут не понять, почему он не работает без предупреждения.

после последнего алгоритма Google shuffle я видел, что ежедневный трафик упал примерно до 1/3 от того, что было в предыдущие месяцы. Я также видел страницы, которые были ранжированы #1 или #2 в SERPS выпадают из результатов. После некоторых исследований в инструментах веб-мастера я заметил, что" JavaScript " указан как #16 в разделе ключевых слов. Это не имеет смысла, потому что сайт не имеет ничего общего с JavaScript, и единственное место, где появляется слово, находится в тексте между тегами noscript.

похоже, что Google теперь включает и индексирует контент между тегами noscript. Я не верю, что это происходило раньше. Предупреждение состоит из трех предложений. Представляю. то, что те же три предложения, появляющиеся в верхней части каждой страницы на сайте, могут иметь разрушительное влияние на SEO.

Как вы думаете, это может вызвать проблему с SEO? И есть ли другой способ предоставить предупреждение пользователям, у которых отключен JavaScript таким образом, что он не будет индексироваться или считываться поисковыми системами?

6 ответов


поставить <noscript> контент конец вашего HTML, а затем используйте CSS, чтобы разместить его в верхней части окна браузера. Google больше не будет важно.

переполнение стека само использует этот метод-сделайте источник представления на этой странице, и вы увидите предупреждение "лучше всего работает с JavaScript" в конце HTML, которое появляется в верхней части страницы при выключении JavaScript.


<noscript> не предназначен для бессмысленных предупреждений типа:

<noscript>
О, нет! У вас нет JavaScript включен! Если вы не включите JS, вы обречены. [Длинное объяснение о том, как включить JavaScript в каждом браузере, когда-либо сделанных]
</noscript>

Он предназначен для вас, чтобы обеспечить столько контента, сколько вы можете, наряду с вежливым упоминанием, что включение JS обеспечит доступ к определенным дополнительным функциям. Вы найдете, что фактически все популярные сайт следует этому руководству.


Я не думаю, что с помощью <noscript> хорошая идея. Я слышал, что он неэффективен, когда клиент находится за брандмауэром, блокирующим JavaScript, - если в браузере клиента включен JavaScript <noscript> тег не активируется, потому что, насколько это касается браузера, JavaScript полностью работоспособен в документе...

лучший метод IMO-это иметь все возможное содержимое "noscript", скрытое JavaScript.

вот очень простой пример:

...
<body>

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

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

и в вашей таблице стилей:

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

Подробнее:


кто-то на другом форуме упомянул использование изображения для предупреждения. Как я вижу, это будет иметь три преимущества:

  1. не было бы никакого неуместного текста для индексирования поисковых систем.
  2. код для отображения одного изображения менее громоздкий, чем текстовое предупреждение (которое загружается на каждой странице).
  3. отслеживание может быть реализовано, чтобы определить, сколько раз вызывается изображение, чтобы дать представление о том, сколько посетителей отключили JavaScript или заблокирован.

Если вы объедините это с чем-то вроде метода non-noscript, упомянутого J-P, это, по-видимому, лучшее возможное решение.


просто хотел опубликовать интересный лакомый кусочек, связанный с этим. Для моего сайта я в конечном итоге сделал что-то похожее на то, что использует Stack overflow, но с добавлением ссылки "узнайте больше", поскольку мои пользователи не такие технические, как этот сайт.

интересная часть заключается в том, что, следуя совету людей, мое решение выбросило тег noscript, вместо этого решив скрыть сообщения divs с помощью javascript. Но я обнаружил, что если firefox ждет своего мастер-пароля, это сокрытие сообщения прерывается, поэтому я думаю, что вернусь к noscript.


Если вы выбираете решение, основанное на замене содержимого div (если JS включен, то содержимое div обновляется), а не с помощью тега noscript,будьте осторожны о том, как google рассматривает эту практику:

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

Я не уверен, что google будет считать это обманчивым, но это то, что нужно рассмотреть и исследовать дальше. Вот еще один пост stackoverflow об этом: NoScript Google snapshot, безопасный способ