{"id":14272,"url":"\/distributions\/14272\/click?bit=1&hash=9c431bca9c7cafdd4ed114bc7fb4d407f06f28aa165d6f80b9637d3a8581e5c2","title":"\u0421\u0431\u0435\u0440\u041a\u043e\u0442 \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u043b\u044e\u0435\u043d\u0441\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0435\u0442\u0435\u043b \u0432 \u043a\u043e\u0441\u043c\u043e\u0441","buttonText":"","imageUuid":""}

Ускорение сайта или вред для SEO: отложенная загрузка метрик и ее влияние на показатель отказов

Решение написать пост было принято ввиду популяризации статей на тему ускорения сайтов на vc.ru и сотен комментариев под материалами в разделе SEO.

Во всех постах дублируются известные приемы оптимизации страниц сайтов вроде lazyload загрузки изображений, кеширования, GZIP и др., которые в "пузомерках" вроде Google Pagespeed Insights дают небольшой прирост, но на деле реально эффективны.

Для достижения вожделенной "зеленой зоны" (оценки 100/100 по тестам Pagespeed Insights), остается нерешенным вопрос долгой загрузки и блокировки страницы сторонними скриптами метрик (Google Analytics, Яндекс.Метрика, Facebook Pixel и другие).

Единственное предлагаемое решение - отложенная загрузка и выполнение данных скриптов. Но насколько такой подход оправдывает цель?

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

Вопрос достаточно емкий, и без небольшого бэкграунда не обойтись, поэтому разделим его на следующие тезисы (от общего к частному):

  1. цель оптимизации сайта (влияние скорости загрузки на SEO);
  2. объективность оценок сервисов Google Pagespeed Insights и подобных;
  3. отложенная инициализация метрик и показатель отказов.

Возможно, данный вопрос не настолько острый и важный, чтобы писать для него отдельный материал, но:

  • в комментариях тесно для изложения мыслей на этот счет;
  • интересно разобраться в вопросе основательно.

Простите за долгое предисловие, не планировал лонгрид. Это не гайд (инструкция), не кейс (разбор), а скорее ресёрч (исследование).

Зачем ускорять сайт, и как оценить результат?

Прежде чем приступать к любой работе - важно понимать, какую цель преследует данный манёвр. Простыми словами - зачем это нужно?

Смысл оптимизации скорости загрузки сайта заключается в следующем:

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

В целом тезисы ясны, но что считать быстрой загрузкой? Да, необходимое время загрузки в 1-2 секунды, и красивый график с показателями отказов все видели.

Красивый график с показателями отказов https://backlinko.com/hub/seo/bounce-rate

НО! К сожалению, показатель скорости загрузки сайта зависит от множества факторов:

  • тип устройства и его мощность (ПК, планшет, смартфон);
  • заявленная скорость интернет соединения (провайдер);
  • фактическая скорость (загрузка канала, качество сигнала и т.п.).

Следовательно, говорить об абсолютной оптимизации и постоянной скорости загрузки не представляется возможным.

Однако, существуют популярные сервисы замера скорости загрузки сайта. Насколько в таком случае точна их оценка? Стоит ли гнаться за 100/100?

Проверка скорости загрузки сервисами

Такие инструменты как Google Pagespeed Insights (и другие, на базе Lighthouse), используют для своих тестов эмуляцию конкретных устройств, которые, по их мнению, подходят для этого.

Интересно было бы узнать, как проходит отбор таких устройств. Возможно, по усредненным техническим характеристикам, или по популярности распространения устройств, схожих по ТХ.

Интересно, что на сегодняшний день, в Lighthouse для тестирования скорости загрузки сайта используется устройство 2016 года выпуска - Motorola Moto G4 на базе процессора Snapdragon 617 от 2015 года.

При этом используется достаточно хорошее интернет соединение - 1,6Mbps/750Kbps - эквивалентный медленному 4G или быстрому 3G. Тестировали бы уже на EDGE. 🙃

Конечно, для гиков гаджеты - это все, и ориентироваться на работников сферы IT было бы не верным решением.

Но в эпоху, когда Apple наполняет рынок десятками моделей смартфонов, соревнуясь с Xiaomi, Samsung и Huawei у кого телефон более бюджетный, при средней комплектации, ориентироваться на Moto G4, кажется, тоже не совсем корректно.

Для получения реальных данных по мобильным устройствам, использующихся аудиторией вашего сайта, перейдите в Google Analytics - Аудитория - Мобильные устройства - Устройства.

Перечень моделей мобильных устройств пользователей сайта

Немного про железо

Проанализировав топ мобильных устройств своего сайта и, на основании технических данных этих устройств, сравним процессоры и их производительность с процессором Snapdragon 617, установленным в Moto G4, используемом в тестах Lighthouse.

Сравнение мощностей процессоров мобильных устройств посетителей с устройством эмулирующим загрузку в синтетических тестах Lighthouse.

Конечно, Snapdragon 625 не самый мощный процессор, но все-таки мощнее Snapdragon 617, (возможно, из-за обновленного техпроцесса 10 нм). Не претендую на ученую степень инженера микропроцессоров, поправьте в комментариях.

В любом случае, Redmi Note 4 (на Snapdragon 625) - одно из самых устаревших устройств в списке аналитики, а в синтетических тестах замедление еще больше.

Таким образом, фактическая проверка оптимизации сайта, содержащего "современные" скрипты отслеживания (последнее изменение было в конце 2017 года), которые предлагает сам Google, проводятся на устройстве выпущенном в начале 2016 года. (голосом Михалкова) Иронично! 🙃

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

То есть синтетические тесты проводятся на очень устаревшем устройстве. Разумеется, есть не такие благополучные страны/города/районы/люди, и кто-то еще использует кнопочные аппараты, но ориентироваться на эту аудиторию странно, нет?

Отложенная загрузка метрик

Хватит же погружения в технически детали! Мы здесь, чтобы разобраться что делать и "как дальше с этим жить". Как достичь 100/100 по Pagespeed Insights?

Предлагаемое решение - отложить выполнение скриптов метрик для достижения эффекта быстрой загрузки, реализуемое следующим простым кодом:

document.addEventListener('DOMContentLoaded', () => { setTimeout(function(){ /* * Тут код отслеживания всех метрик, */ }, 3500); // время указано в мс = 0,001 секунды, изменить по вкусу });

Код можно модифицировать по-разному:

  • менять время задержки;
  • менять событие, по которому будет выполнятся код.

Сути это не меняет, но можно найти множество подобных решений (некоторые даже продаются). Бесплатно, без смс и регистрации можно почитать тут:

Как это работает: при загрузке страницы будут загружены и выполнены все стили и скрипты, кроме отложенных. Отложенные скрипты будут загружены и/или выполнены через какое-то время (например, 0.5-1 секунду) или по действию пользователя (при прокрутке страницы, например).

Используя данный код, скорость загрузки страницы безусловно повысится в PageSpeed Insights, поскольку скрипты не будут выполнятся сразу, но:

  • будет ли наша статистика такой же точной?
  • как следствие - не вырастет ли показатель отказов?
  • как следствие - не будет ли понижен ресурс в поисковой выдаче?

Можно уверенно сказать - часть посещений потеряется. Да, это могут быть незначительные визиты, до 1 секунды, боты и т.д. Но эти показатели тоже важны для поисковых систем.

Также, фактический объем скриптов не меняется, то есть нельзя сказать, что будет ускорена загрузка, поскольку код выполнится, но позже. Для сравнения, отложенная загрузка изображений позволяет загружать их по факту востребованности.

Отложенным вызовом можно снизить пиковую единовременную нагрузку на процессор, распределив выполнение кода, не более того.

Из поиска по запросам "lazyload google analitycs" можно найти один очень старый (2011 год), но от этого не менее информативный, пост на Stackoverflow:

Другой информации, относительно изменений показателя отказов ввиду отложенной инициализации скриптов метрик, не удалось найти, кроме пары статей про ускорение сайта и статей на малазийском.

Вывод и опрос

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

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

Синтетические тесты предоставляют инструмент для ориентира, не более того. Но не стóит создавать сайты на шаблонах за 200$ с десятками ненужных скриптов и стилей, слепленных на коленке.

Решение об оптимизации сайта до "зеленой зоны" - не всегда верное и выполнимое в текущих реалиях, все зависит от:

  • типа сайта и контента;
  • целевой аудитории.

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

А что скажете вы, коллеги?

Влияет ли отложенная загрузка метрик на показатель отказов?
Влияет, критично. Показатель отказов важнее.
Влияет, не критично. Прирост скорости эффективнее.
Не влияет.
Показать результаты
Переголосовать
Проголосовать
0
130 комментариев
Написать комментарий...
Denis Kiselev

Нужно ли рассматривать в качестве отказа неучет посещения ботом длительностью менее нескольких секунд? Бот, очевидно, не пытался ничего полезного сделать.

Поэтому потеря посещений если и произойдёт, то только на такие мусорные посещения. Совсем не страшно

Ответить
Развернуть ветку
Nikita Spivak
Автор

Получается, таким образом, вообще можно «подстраивать» статистику под пожелания. Сделать показатель отказов = 0.

Сделать отложенную загрузку на 10 (подставляем среднее время большинства мусорных посещений) секунд и если пользователь не очень заинтересован - просто посмотрел и вышел - не будет отказа.

Не расценивается ли такое решение как попытка манипуляции со статистикой? Накрутка пф, возможно?

Я понимаю, поисковые системы ведут аналитику и у себя, соответственно, они получат более полную картину при переходе с поиска, но что на счет таргета, реферальных переходов? И пр.

Ответить
Развернуть ветку
Denis Kiselev

Зависит от того, что мы хотим видеть в статистике. Если мы хотим видеть нормальные посещения - не вижу никаких проблем. Насчёт накрутки: тут обратное - «скрутка» посещений. Едва ли она подлежит неким санкциям ПС.

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

Ответить
Развернуть ветку
Nikita Spivak
Автор

Да, конечно, "скрутка", манипуляция с аудиторией в общем)

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

Но:
1) скрипт влияет на все посещения и для реальных сократится время на сайте. То есть, если раньше пользователь заходил на 60 секунд, то после внедрения - 50 секунд. Не критично, пожалуй, но негативный эффект.

2) Написать отдельный скрипт для отлова коротких посещений и грузить его отдельно? В чем смысл ускорения тогда? :)

3) Как, при условии пропуска коротких сеансов оперативно увидеть накрутку негативных ПФ на сайт (например конкуренты крутят отказы на сайт). Не уверен что такой сценарий может быть (не сеошник - всех тонкостей могу не знать), но стараюсь предугадать, чтобы быть уверенным в подобном решении.

Спасибо

Ответить
Развернуть ветку
Denis Kiselev

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

А учёт таких посещений может быть крайне простым: генерируйте идентификатор (обычный guid) при загрузке страницы, асинхронно бросайте его на свой бэк, а после окончания загрузки отложенных скриптов бросайте его снова. И бэк сможет вести статистику: сколько загрузок не закончились повторной отправкой идентификатора.

Вопрос только один: зачем вам эта цифра. Не представляю.

Ответить
Развернуть ветку
Nikita Spivak
Автор

Понял, то есть вы тоже склоняетесь к тому что отложенная загрузка просто очистит статистику от "мусорных" сеансов?

Ответить
Развернуть ветку
Denis Kiselev

Да.

Мы откладывали на парк сайтов загрузку метрики. Ни сами не видели особого негатива, ни подрядчики разные ничего эдакого не находили.

И не слышал ни разу какого то особого негатива ни от кого

Ответить
Развернуть ветку
Nikita Spivak
Автор

Спасибо

Ответить
Развернуть ветку
127 комментариев
Раскрывать всегда