Скорость загрузки сайта: как проверить и что ускорить
Коротко
Что такое скорость загрузки: пять величин вместо одной
Фраза «сайт грузится медленно» может означать разные вещи. Вот величины, которые встретятся в отчётах:
- Ответ сервера. Сколько проходит от запроса страницы до первого ответа сервера. В английских инструментах это TTFB (time to first byte). В Яндекс Метрике такая метрика называется «Ответ сервера», у неё есть собственное определение, поэтому с TTFB из документации Google она может не совпасть.
- Время до отрисовки. По справке Метрики, это время от начала перехода на страницу до момента, когда страница начинает отрисовываться в браузере. Справка добавляет, что посетитель воспринимает именно его как скорость загрузки и что обычно оно занимает не более двух секунд.
- LCP (Largest Contentful Paint). Время, за которое появляется самый крупный элемент первого экрана: картинка или большой блок текста. Показатель Google, ориентир - до 2,5 секунды.
- INP (Interaction to Next Paint). Как быстро страница реагирует на нажатия и ввод. Ориентир - до 200 миллисекунд. С 12 марта 2024 года INP заменил показатель FID, поэтому в старых инструкциях может стоять FID.
- CLS (Cumulative Layout Shift). Насколько «прыгает» вёрстка, пока страница загружается. Ориентир - до 0,1.
Три последних показателя Google называет Core Web Vitals. Для самой первой проверки хватает двух вопросов: быстро ли отвечает сервер и быстро ли появляется главное на экране.
Что Яндекс и Google говорят о влиянии скорости на поиск
Яндекс. Справка Вебмастера «Как сделать сайт быстрее» называет скорость одним из важных показателей качества сайта. Из-за низкой скорости посетитель может не дождаться страницы. Это снижает доверие к сайту и посещаемость, а также влияет на другие статистические показатели. Слов о ранжировании в справке нет. В материале «Какие аспекты влияют на ранжирование» ускорение сайта стоит среди важных аспектов технической оптимизации, а среди ранжирующих аспектов (экспертность, полезность, оригинальность, содержательность) скорость не названа. Отдельно справка про ошибку «Долгий ответ сервера» связывает медленный сервер с задержкой индексирования: страницы могут появляться в поиске позже.
Google. Справка Search Central пишет, что Core Web Vitals используются ранжирующими системами, и рекомендует добиваться хороших значений. Там же сказано: хорошие результаты в отчётах верхних позиций не гарантируют. Погоня за идеальной оценкой только ради SEO может оказаться не лучшим вложением времени. Единого «сигнала page experience» нет: ранжирующие системы смотрят на разные сигналы, связанные с удобством страницы.
Ускорять сайт стоит ради посетителей и стабильной работы с поисковым роботом (это вывод автора). Сколько позиций это даст, не подтверждает ни один из источников, которые мы открывали, и в этой статье мы такого не обещаем.
Полевые и лабораторные данные: откуда берутся цифры
Основная причина расхождений между сервисами - разный способ сбора данных.
- Полевые данные (field data) - измерения у реальных посетителей. К ним относятся отчёт Метрики «Время загрузки страниц» и данные CrUX (Chrome User Experience Report, отчёт Google о реальных пользователях Chrome), на которых построены блок реального опыта в PageSpeed Insights и отчёт Core Web Vitals в Search Console. Окно данных CrUX - 28 дней. Оценка считается по 75-му процентилю (значению, в которое укладываются 75 процентов загрузок): страница её проходит, если 75-й процентиль каждого из трёх показателей попадает в зелёную зону.
- Лабораторные данные (lab data) - один запуск Lighthouse (бесплатного инструмента Google, который автоматически проверяет страницу) в контролируемых условиях. Для мобильной версии он имитирует телефон среднего уровня в мобильной сети, для десктопа - проводное соединение. Лаборатория подходит, чтобы искать причины, но Google прямо пишет, что хорошая лабораторная оценка не обязательно означает хорошего опыта реальных пользователей.
Отсюда знакомая по обсуждениям ситуация: мобильная оценка в PageSpeed сильно ниже десктопной. Ошибки сервиса тут нет: условия измерения разные. Яндекс говорит об этом в блоге для вебмастеров: результаты измерений скорости разными сервисами могут существенно отличаться, и это не говорит об ошибках. Оценка одного и того же адреса меняется и от запуска к запуску из-за сети и нагрузки на компьютер, поэтому один прогон ничего не доказывает.
Как проверить скорость: порядок проверки
Порядок ниже предлагаем мы: он идёт от самых простых проверок к тем, где нужен накопленный трафик. Названия разделов даны по справкам, в живом интерфейсе они могут отличаться, а интерфейс кабинетов при подготовке статьи мы не сверяли.
- Диагностика сайта в Яндекс Вебмастере. Откройте «Оптимизация сайта», затем «Диагностика сайта», вкладку «Ошибки». Если робот при обходе увидел страницы, которые загружаются дольше 3 секунд, в списке будет ошибка «Долгий ответ сервера» с перечнем таких страниц. Проверки идут ежедневно. Справка советует сначала проверить время ответа сервера сейчас: если ответ быстрый, сообщение можно проигнорировать: при следующем обходе оно исчезнет.
- «Проверка ответа сервера» в Вебмастере. Инструмент показывает, как сервер отвечает на запрос, и ждёт ответа три секунды. Справка предупреждает: у инструмента другой IP-адрес, поэтому результат может отличаться от реального ответа роботу.
- Отчёт «Время загрузки страниц» в Яндекс Метрике. Путь: «Отчеты», «Мониторинг», «Время загрузки страниц». В отчёте есть метрики «DNS», «Редиректы», «Продолжительность установки соединения», «Ответ сервера», «Время загрузки и парсинга HTML», «Время до загрузки DOM» и «Время до отрисовки». По умолчанию выбран квантиль 50 процентов, то есть половина загрузок не дольше указанного времени; для оценки худших случаев выберите 90 процентов. Справка советует оптимизировать в первую очередь самый затратный по времени этап. Для мониторинга нужно более 100 просмотров страниц сайта в неделю, при меньшей посещаемости работа отчёта не гарантируется.
- PageSpeed Insights. Вставьте адрес страницы на сайте pagespeed.web.dev. Вверху будут полевые данные CrUX за 28 дней, ниже - лабораторная диагностика Lighthouse. Если у страницы мало данных, сервис покажет данные по сайту целиком, а если и их нет, полевой блок останется пустым. Это нормально для небольших и новых сайтов.
- Отчёт Core Web Vitals в Google Search Console. Он работает только по индексированным адресам и группирует их по типам страниц. Если данных CrUX мало, отчёт покажет «No data available» («нет данных»). Это нехватка данных, а не ошибка. Минимальный объём данных Google не раскрывает.
- Проверка сервера из командной строки. Подходит, чтобы увидеть время ответа и заголовки без кабинетов. Пример - в разделе про curl ниже.
Если данных в кабинетах нет, начинайте с шагов 1, 2 и 6, а лабораторный прогон PageSpeed используйте как подсказку, где искать причину. При проверке не опирайтесь на один запуск: сделайте несколько и сравнивайте медианы (серединные значения).
Какие цифры считать нормой: Яндекс и Google
| Что смотрим | Яндекс | |
|---|---|---|
| Ответ сервера | В Диагностике ошибка «Долгий ответ сервера», если страницы загружаются больше 3 секунд | Ориентир TTFB до 0,8 секунды, но это не показатель Core Web Vitals |
| Главный блок страницы | Числового порога нет, справка Метрики называет для отрисовки обычное время не более двух секунд | LCP: хорошо до 2,5 секунды, плохо больше 4 секунд |
| Реакция на действия | Порога нет | INP: хорошо до 200 мс, плохо больше 500 мс |
| Сдвиги вёрстки | Порога нет | CLS: хорошо до 0,1, плохо больше 0,25 |
| Как считается | Метрика: квантиль, по умолчанию 50 процентов | 75-й процентиль за 28 дней |
| Если данных мало | Для мониторинга Метрики нужно больше 100 просмотров в неделю | PageSpeed откатывается к данным по сайту, Search Console пишет «No data available» |
Для TTFB в PageSpeed Insights Google указывает границы 800 и 1800 мс и помечает показатель как экспериментальный. У Яндекса единственная граница, по которой Вебмастер выдаёт ошибку скорости, - три секунды ответа сервера. Справка Метрики отдельно называет обычное время до отрисовки: не более двух секунд. Какую именно метрику робот сравнивает с этой границей и какая доля страниц должна её превысить, справка не уточняет.
Проверка сервера командой curl: цифры блога genseo.ru
Команда curl - программа командной строки, которая запрашивает адрес и показывает параметры ответа. Она есть в Windows 10 и 11, macOS и Linux. В Windows PowerShell пишите curl.exe, потому что слово curl там может означать другую команду. Вот проверка, которую можно повторить на любом сайте:
curl -sS -L -o /dev/null -D - -H "Accept-Encoding: gzip, deflate, br" -w "code=%{http_code} redirects=%{num_redirects} dns=%{time_namelookup} connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total} size=%{size_download}\n" https://genseo.ru/В Windows вместо /dev/null пишите NUL. Замеры времени в curl накопительные: connect включает DNS, tls включает connect, ttfb включает всё предыдущее. Параметр size показывает число байт на проводе, то есть уже сжатых.
Мы запустили эту команду из скрипта с теми же параметрами 28 октября 2026 года около 12:00 по московскому времени, по пять раз на каждую из трёх страниц блога с паузой в секунду, с одного ноутбука. Ответ везде был 200, редиректов не было.
| Страница | TTFB, медиана (разброс), мс | Весь HTML, медиана, мс | HTML без сжатия / gzip, байт |
|---|---|---|---|
| Главная | 143 (120-146) | 158 | 37 961 / 9 736 |
| Статья про технический аудит | 494 (322-673) | 522 | 243 007 / 52 197 |
| Статья про robots.txt | 240 (211-257) | 255 | 124 384 / 27 756 |
Самое долгое время до первого байта из пятнадцати запросов - 673 мс (весь HTML в этом запросе - 701 мс). Сжатие gzip включено и уменьшает HTML примерно на 74-79 процентов, а brotli на запрос Accept-Encoding: br сервер не отдал. Скрипты и стили хранятся в кэше браузера год (max-age=31536000, immutable), HTML отдаётся без кэширования.
Эти цифры описывают время получения HTML через curl. LCP и время загрузки в браузере они не показывают: curl не выполняет скрипты и ничего не рисует. Замер сделан с одного компьютера в одной точке сети и не заменяет данные посетителей. Разброс заметен: повторный запуск для статьи про robots.txt дал 295 и 363 мс против 211-257 мс в основной серии, поэтому читайте цифры как порядок величины. Попытка получить оценку PageSpeed Insights через программный интерфейс без ключа закончилась ошибкой 429 (квота запросов без ключа исчерпана). Поэтому лабораторных оценок и полевых данных Core Web Vitals для этого блога в статье нет.
Что ускорять и в каком порядке
Меры взяты из справки Яндекса «Как сделать сайт быстрее» и документов web.dev и Lighthouse. Порядок и привязка к симптомам наши. Точного эффекта ни один источник не называет, а web.dev замечает, что быстрая правка одной детали редко даёт заметное улучшение LCP.
Справка Яндекса перечисляет десять мер:
- Сократить число HTTP-запросов, например с помощью CSS-спрайтов для картинок и объединения JavaScript и CSS.
- Убрать ресурсы, блокирующие отрисовку: скрипты и стили, которые не нужны для отрисовки, разместить внизу страницы или подключать асинхронно или отложенно.
- Уменьшить размер CSS, JavaScript и HTML минификацией.
- Использовать CDN (сеть серверов, которая отдаёт файлы с ближайшего к посетителю сервера) для картинок, JavaScript и CSS.
- Настроить кэширование и Gzip-сжатие.
- Использовать сжатие картинок.
- Отложить загрузку картинок, которые не попали в видимую область экрана.
- Оптимизировать серверный код и доступные системные ресурсы.
- Использовать только быстрые CSS-анимации.
- Сократить число редиректов: ссылаться на ресурс напрямую.
В таблице ниже «п.» означает номер пункта этого списка.
| Симптом и вероятная причина | Что сделать | Где написано |
|---|---|---|
| Большой «Ответ сервера» в Метрике, «Долгий ответ сервера» в Вебмастере, высокий TTFB. Причины: тяжёлый серверный код, слабый тариф, нагрузка, цепочки редиректов | Оптимизировать серверный код, проверить хостинг, убрать лишние редиректы, настроить кэш, при необходимости подключить CDN | Яндекс: п. 4, 5, 8, 10. web.dev: хостинг стоит проверить в первую очередь |
| Большой LCP. Причины: тяжёлая картинка первого экрана, блокирующие ресурсы | Сжать картинку и выбрать подходящий формат, не включать ленивую загрузку для картинки первого экрана, убрать блокирующие скрипты и стили | Яндекс: п. 2, 6. web.dev: обычная загрузка для картинок первого экрана, async и defer |
| Страница «прыгает» (CLS). Причина: у картинок и видео нет заданных размеров | Указать width и height или зарезервировать место через CSS aspect-ratio | web.dev, оптимизация CLS |
| Тяжёлые страницы. Причины: нет сжатия, несжатые картинки, много запросов | Включить gzip или Brotli, сжать картинки, минифицировать CSS, JavaScript и HTML, сократить число запросов | Яндекс: п. 1, 3, 5, 6. web.dev: сжатие текста |
| Картинки ниже первого экрана грузятся сразу. Причина: нет отложенной загрузки | Использовать loading="lazy" для картинок вне первого экрана | Яндекс: п. 7. web.dev: ленивая загрузка |
| Повторные посетители заново скачивают те же файлы. Причина: не настроено кэширование | Для файлов с версией в имени задавать срок хранения до года | Яндекс: п. 5. web.dev: HTTP-кэш |
| Плохие оценки из-за сторонних скриптов (счётчики, карты, виджеты) | Подключать асинхронно или отложенно, убрать лишнее | Яндекс: п. 2 |
Редиректы часто возникают при переезде или смене адресов. Как выбрать между 301 и 302, объясняет статья про редиректы 301 и 302, а про страницы, которых больше нет, - материал о странице 404 и битых ссылках.
Частые ошибки
- Гнаться за 100 из 100. Google называет зелёной оценку от 90, а полевые пороги относятся к 75-му процентилю загрузок. Идеальная оценка только ради SEO, по словам самого Google, может быть не лучшим использованием времени.
- Проверять только у себя. У вас в офисной сети страница открывается быстро, у посетителей на телефоне может быть иначе. Для этого и нужны полевые данные.
- Включить отложенную загрузку для главной картинки. Для картинки, которая видна сразу, web.dev рекомендует обычную загрузку, а
loading="lazy"оставляет для картинок вне первого экрана. - Ориентироваться на показатель «скорость сайта» из Вебмастера 2020 года. В 2020 году Яндекс запускал в Вебмастере бета-показатель «скорость сайта». В актуальной справке он видимым текстом не описан, поэтому полагаться на него не стоит. Показывает ли его интерфейс сегодня, мы проверить не смогли.
- Менять много всего сразу. Тогда непонятно, что именно помогло. Правьте по одной причине и замеряйте до и после.
Когда ускорение не поможет
Скорость - лишь одно из технических условий. Если страницы открываются быстро, но их нет в поиске, причина обычно в индексации: смотрите проверку индексации сайта. Если нужен общий маршрут по всем техническим проверкам, он собран в статье про технический аудит сайта. Ускорение не создаёт спрос на ваши страницы и не гарантирует позиций.
О Head Promo
Head Promo - агентство поискового маркетинга. Подробнее об услуге - на странице SEO-продвижения на нашем сайте.
Хотите, чтобы специалисты посмотрели ваш сайт?
Получить бесплатный экспресс-аудитЧастые вопросы
Частые вопросы
Источники
- Яндекс Вебмастер. Как сделать сайт быстрее: https://yandex.ru/support/webmaster/ru/yandex-indexing/page-speed
- Яндекс Вебмастер. Диагностика сайта: https://yandex.ru/support/webmaster/ru/service/site-diagnostics
- Яндекс Вебмастер. Ошибки (раздел «Долгий ответ сервера»): https://yandex.ru/support/webmaster/ru/diagnosis/mistakes
- Яндекс Вебмастер. Проверка ответа сервера: https://yandex.ru/support/webmaster/ru/indexing-options/server-response
- Яндекс Вебмастер. Какие аспекты влияют на ранжирование: https://yandex.ru/support/webmaster/ru/epos
- Блог Яндекса для вебмастеров. Новое достижение «скорость сайта» (2020): https://webmaster.yandex.ru/blog/novoe-dostizhenie-skorost-sayta
- Яндекс Метрика. Мониторинг: https://yandex.ru/support/metrica/ru/reports/monitoring
- Яндекс Метрика. Время загрузки страниц: https://yandex.ru/support/metrica/ru/reports/timing
- Google Search Central. Core Web Vitals: https://developers.google.com/search/docs/appearance/core-web-vitals
- Google Search Central. Page experience: https://developers.google.com/search/docs/appearance/page-experience
- Справка Search Console. Отчёт Core Web Vitals: https://support.google.com/webmasters/answer/9205520
- Документация PageSpeed Insights. О сервисе: https://developers.google.com/speed/docs/insights/v5/about
- web.dev. Web Vitals: https://web.dev/articles/vitals
- web.dev. Почему полевые и лабораторные данные различаются: https://web.dev/articles/lab-and-field-data-differences
- web.dev. Переход с FID на INP: https://web.dev/blog/inp-cwv-launch
- web.dev. Time to First Byte: https://web.dev/articles/ttfb
- web.dev. Оптимизация TTFB: https://web.dev/articles/optimize-ttfb
- web.dev. Оптимизация LCP: https://web.dev/articles/optimize-lcp
- web.dev. Оптимизация CLS: https://web.dev/articles/optimize-cls
- web.dev. Ленивая загрузка изображений: https://web.dev/articles/browser-level-image-lazy-loading
- web.dev. Сжатие текстовых ресурсов: https://web.dev/articles/reduce-network-payloads-using-text-compression
- web.dev. HTTP-кэш: https://web.dev/articles/http-cache
- Chrome for Developers. Chrome UX Report: https://developer.chrome.com/docs/crux
- Chrome for Developers. Оценка производительности Lighthouse: https://developer.chrome.com/docs/lighthouse/performance/performance-scoring
- Google Search Central, блог. Знакомство с INP (2023): https://developers.google.com/search/blog/2023/05/introducing-inp
- Head Promo: https://head-promo.ru/