Тег Noscript, предупреждение об отключении JavaScript и штраф Google - PullRequest
49 голосов
/ 14 июня 2009

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

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

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

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

Ответы [ 6 ]

42 голосов
/ 18 июня 2009

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

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

23 голосов
/ 14 июня 2009

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

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

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

21 голосов
/ 14 июня 2009

Я не думаю, что использование <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; }

Дополнительная информация:

14 голосов
/ 20 июня 2009

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

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

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

3 голосов
/ 03 августа 2010

Просто хотел опубликовать интересную новость, связанную с этим. Для моего сайта я сделал нечто похожее на то, что использует переполнение стека, но с добавлением ссылки «узнать больше», поскольку мои пользователи не такие технические, как этот сайт.

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

1 голос
/ 01 ноября 2012

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

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

Я не уверен, что Google сочтет это обманчивым, но об этом стоит подумать и изучить дальше. Вот еще одна статья о переполнении стека: noscript, снимок Google, безопасный способ

...