726 слов | 5 минут
Как ускорить загрузку сайта
Медленный сайт — это не просто неудобство для посетителей. Поисковики учитывают скорость загрузки при ранжировании, а исследования показывают что каждая лишняя секунда загрузки снижает конверсию на 7–10%. В этой статье разберём почему сайт грузится медленно и что с этим делать.
Как проверить скорость сайта
Прежде чем что-то оптимизировать — нужно измерить и понять где именно проблема.
Google PageSpeed Insights
pagespeed.web.dev — основной инструмент. Анализирует страницу и выдаёт оценку от 0 до 100 отдельно для мобильных и десктопа. Показывает конкретные проблемы и рекомендации.
Хорошие показатели:
- 90–100 — отлично
- 50–89 — есть над чем работать
- 0–49 — серьёзные проблемы
Core Web Vitals
Google оценивает три ключевых показателя:
- LCP (Largest Contentful Paint) — время загрузки главного контента. Хорошо: до 2.5 сек
- FID/INP (Interaction to Next Paint) — отзывчивость на действия пользователя. Хорошо: до 200 мс
- CLS (Cumulative Layout Shift) — стабильность вёрстки (прыгают ли элементы при загрузке). Хорошо: до 0.1
GTmetrix
gtmetrix.com — детальный анализ с водопадом загрузки. Показывает какой файл сколько весит и сколько времени загружается. Полезен когда нужно найти конкретный «тяжёлый» ресурс.
WebPageTest
webpagetest.org — профессиональный инструмент. Можно выбрать сервер проверки ближайший к вашей аудитории, тестировать на реальных устройствах и сравнивать несколько URL.
Основные причины медленной загрузки
Тяжёлые изображения
Самая распространённая причина. Фотографии загружены в оригинальном размере (5–10 МБ), хотя на странице показываются в размере 800×600 пикселей.
Решение:
- Сжать изображения через squoosh.app или tinypng.com
- Использовать современный формат WebP вместо JPEG/PNG — он легче в среднем на 30%
- Подключить lazy loading — изображения загружаются только когда пользователь прокручивает до них
<img src="photo.webp" loading="lazy" alt="...">
Отсутствие кэширования
Браузер каждый раз заново загружает все файлы сайта — CSS, JavaScript, изображения — даже если они не изменились с прошлого визита.
Решение: настроить кэш в .htaccess:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/webp "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Неоптимизированные CSS и JavaScript
Множество отдельных CSS и JS файлов — каждый файл это отдельный запрос к серверу. Плюс файлы содержат пробелы, комментарии и длинные имена переменных которые увеличивают размер.
Решение:
- Минифицировать CSS и JS (убрать пробелы и комментарии)
- Объединить несколько файлов в один
- Загружать скрипты асинхронно:
<script async src="...">или<script defer src="...">
Медленные SQL-запросы
Сайт делает много тяжёлых запросов к базе данных — без индексов, с выборкой лишних данных, с вложенными запросами. Особенно заметно на больших каталогах и интернет-магазинах.
Как обнаружить: включить логирование медленных запросов в MySQL:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
Решение: добавить индексы на часто используемые поля, оптимизировать запросы, использовать кэширование результатов.
Отсутствие сжатия Gzip/Brotli
Сервер отдаёт HTML, CSS и JS файлы без сжатия. Включение Gzip уменьшает размер текстовых файлов на 60–80%.
Включить Gzip в .htaccess:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
Медленный хостинг или перегруженный сервер
Если сервер отвечает дольше 200–300 мс (TTFB — Time To First Byte) — проблема в хостинге или серверной конфигурации. PageSpeed покажет это в метрике «Время ответа сервера».
Решение: настроить серверное кэширование (Redis, Memcached), оптимизировать конфигурацию PHP-FPM и Nginx/Apache, или перейти на более быстрый тариф.
Блокирующие скрипты
Скрипты подключённые в <head> без атрибутов async или defer блокируют отрисовку страницы — браузер ждёт пока скрипт загрузится и выполнится, прежде чем показать контент.
Решение: перенести скрипты в конец <body> или добавить атрибут defer.
Слишком много HTTP-запросов
Каждый файл (стиль, скрипт, шрифт, иконка) — это отдельный запрос. 100 запросов по 5 КБ загружаются медленнее чем 5 запросов по 100 КБ.
Решение:
- Объединить CSS и JS файлы
- Использовать CSS-спрайты для иконок или SVG-иконки встроенные в HTML
- Подключать только нужные шрифты и не более 2–3 начертаний
Особенности оптимизации на разных CMS
WordPress
- Использовать кэширующий плагин: WP Super Cache, W3 Total Cache или WP Rocket
- Оптимизировать изображения: плагин Smush или ShortPixel
- Удалить неиспользуемые плагины — каждый добавляет нагрузку
- Включить встроенный механизм кэширования объектов
1С-Битрикс
- Включить Композитный сайт — технология мгновенного отображения страниц
- Настроить кэширование компонентов в настройках каждого компонента
- Почистить таблицу
b_event_logиb_stat_adv_back— они разрастаются и тормозят запросы - Настроить
memcachedилиredisдля кэширования сессий - Оптимизировать обмен с 1С — вынести в ночное время
Laravel
- Включить кэширование конфигурации и маршрутов:
php artisan config:cache && php artisan route:cache - Использовать Eager Loading вместо N+1 запросов
- Настроить кэширование через Redis
- Использовать очереди для тяжёлых операций
Быстрые победы — с чего начать
Если не знаете с чего начать — вот изменения которые дают максимальный эффект при минимальных усилиях:
- Сжать изображения — часто даёт 30–50% ускорения
- Включить Gzip — 5 минут работы, -60% к весу страниц
- Настроить кэш браузера — повторные визиты станут мгновенными
- Перенести скрипты в конец страницы — страница начнёт отображаться раньше
- Включить CDN — статика (изображения, CSS, JS) будет отдаваться с ближайшего к пользователю сервера
Реалистичные ожидания
Оценка 100/100 в PageSpeed — это не цель, это маркетинг. Большинство успешных сайтов работают на 60–80 баллах. Важнее реальное время загрузки: если сайт открывается быстрее 2–3 секунд на мобильном устройстве — это уже хороший результат.
Сосредоточьтесь на LCP (время до отображения главного контента) — это метрика которую чувствует пользователь и которую учитывает Google.
Если хотите разобраться с оптимизацией вашего конкретного сайта — обратитесь к нам. Проведём анализ, найдём узкие места и ускорим загрузку.