На SEO-вебинарах я слышала, что имеет смысл все скрипты выносить в отдельный JS-файл и ссылаться на него из документа — что это позитивно сказывается на отношении поисковиков к странице.
Скажите пожалуйста, а нужно ли выносить скрипты счетчиков статистики/аналитики вроде Яндекс.Метрики тоже в отдельные файлы?
Приветствую, Олли!
Есть две основных задачи, которые решаются путём выноса больших фрагментов JS в отдельные файлы:
- Повышение скорости загрузки страницы.
- Сохранение в исходном коде документа только наиболее важной для SEO информации.
Часто так бывает, что CSS-стили и JS-код составляет и более 30–50 процентов размера всего исходного кода, хотя по факту, данная информация существенно менее важная для ранжирования, нежели основные SEO-теги: Title, текстовые заголовки, текст, форматирование текста и его содержание, которым отводится меньше места.
Но есть ещё и третья проблема, которая иногда оказывается очень существенной!
Что если социальная сеть или внешний сервис «лежит»?
Раза 3-4 в год могут «лежать» и такие крупные сервисы как Яндекс.Метрика или, скажем, социальные сети: ВКонтакте, FaceBook. Что происходит в данном случае? Коды, которые вы встраиваете себе на сайт, пытаются подгрузить скрипты, изображения и прочую информацию с внешнего неработающего сайта.
Информер Яндекс.Метрики — жирным выделена погрузка со стороннего сайта.
<img src="//bs.yandex.ru/informer/ID/3_1_FFFFFFFF_EFEFEFFF_0_pageviews" style="width:88px; height:31px; border:0;" alt="Яндекс.Метрика" title="Яндекс.Метрика: данные за сегодня (просмотры, визиты и уникальные посетители)" onclick="try{Ya.Metrika.informer({i:this,id:ID,lang:'ru'});return false}catch(e){}"/>
Кнопка «Share» от FaceBook — жирным выделена погрузка со стороннего сайта.
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/ru_RU/sdk.js#xfbml=1&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk')); </script>
В этом случае, получается что и ваша страница не может полностью загрузится, так как часть её контента не грузится из-за неработающего стороннего сервера.
Можно придумать простой способ избавиться от этой проблемы — вынести все подключения в отдельные JS-файлы и если они не отвечают больше положенного (скажем, 3 секунды), то просто не грузить данные блоки.
Эти приёмы работы с кодом уже относятся к техническим приёмам и тонкостям. Можно относиться к этому как к программе максимум. По факту, всегда находятся дела и по важнее... и можно выносить в отдельные файлы только основные JS, чтобы исходный код страницы был чище и гармоничней.
Отвечая на вопрос о необходимости выноса скриптов счетчиков статистики/аналитики вроде Яндекс.Метрики из исходного кода, есть официальная информация от Яндекс https://yandex.ru/support/metrica/code/separate-code-file.html:
Удачи в работе и технической SEO-оптимизации ресурсов!
Дата ответа:
Автор ответа: Дмитрий Севальнев
Дата ответа:
Дата ответа:
Дата ответа:
Дата ответа: