{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

Ускорение сайта или вред для 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 комментариев
Написать комментарий...
Виктор Чернов

Тестировать, настраивать сайт надо по эмуляции. Но за главный критерий качества принимать не результаты эмуляции, а результаты посещения сайта реальными пользователями. Так как результаты эмуляции могут быть обманчивы.
Проверьте любые сайты, и Вы  увидите, что у кого то при 50 сайт удовлетворяет требованиям Гугл, а у кого то при 80 сайт НЕ удовлетворяет требованиям.

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

То есть идти в слепую? Эмуляция создана для того чтобы тестировать разные решения. В противном случае тестирование затягивается по времени на месяца.

Ответить
Развернуть ветку
Виктор Чернов

Нет, направление движения выбирать по эмуляции. Но главная цель должна быть не 100/100, а "Сводная оценка всех страниц из этого источника отвечает требованиям к основным интернет-показателям". И если ради главной цели надо пожертвовать результатом при эмуляции, то надо жертвовать. 
Ведь при эмуляции проверка сайта идет в сети 3G с помощью "старенького" смартфона. И настроив сайт на этот режим мы делаем его не оптимальным для большинства реальных пользователей, у которых дома, на работе, при поездке в метро есть возможность подключения к нормальной сети.
Обратите внимание на сервис loading.express. Они проводят проверку сайта в более реальных условиях. Их результат проверки ближе к данным по реальным пользователям. 

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

Я предполагаю, что сейчас эта метрика переживает какое-то обновление и она сломана. Даже lighthouse дает 0 CLS

Ответить
Развернуть ветку
Виктор Чернов

CLS зависит от скорости интернета. Поэтому эта метрика очень не стабильна.
Сайт надо испытывать несколькими сервисами. И пытаться улучшить на всех сервисах.
Расширение для Гугл хром "web-vitals-extension" весьма интересно. Показывает скорость загрузки сайта в вашем компьютере в условиях вашей скорости интернета

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

CLS отчасти зависит от скорости интернета, впрочем как и другие метрики и скорость загрузки сайта в целом, что логично и очевидно.

Проверять на конкретном компьютере смысла нет, с подключением в 100мб/с и core-i7 11th. Поэтому ценность данного расширения стремится к нулю.

CLS зависит от подключаемых в документе стилей, скриптов и других внешних ресурсов, которым не выделено заранее место на странице, тем самым провоцируя СДВИГ (shift) верстки (layout).

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

Ответить
Развернуть ветку
Виктор Чернов

"Проверять на конкретном компьютере смысла нет, с подключением в 100мб/с и core-i7 11th. Поэтому ценность данного расширения стремится к нулю." - Так не надо делать!
Выключите роутер. Подключите компьютер от вай фай смартфона. Там есть режимы 3G, 4G - вот вам и условия, близкие к реальным.
Скорость интернета можете уменьшить, заэкранировав смартфон - положите его в кастрюлю и прикройте слегка крышкой. 

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

Более профессиональный подход - открыть консоль разработчика в хроме, вкладка Network, и на ней задаете скорость. Не благодарите.

А на телефоне у меня LTE, тоже не на малой скорости, и 3g в больших городах быстрый. Плюс ругается он на десктопную версию, а не на мобильную.

А core-i7 чем заменить? Рекомендую вам, прежде чем комментировать что либо, сперва ознакомиться с темой, изучить мат.часть, так сказать.

Ответить
Развернуть ветку
Виктор Чернов

Матчасть у всех разная. Поэтому излагаю как один из вариантов. У меня 4G быстрый, а 3G значительно медленнее.

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

🤦🏻‍♂️ хорошо 🤣

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