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
  • Использовать очереди для тяжёлых операций

Быстрые победы — с чего начать

Если не знаете с чего начать — вот изменения которые дают максимальный эффект при минимальных усилиях:

  1. Сжать изображения — часто даёт 30–50% ускорения
  2. Включить Gzip — 5 минут работы, -60% к весу страниц
  3. Настроить кэш браузера — повторные визиты станут мгновенными
  4. Перенести скрипты в конец страницы — страница начнёт отображаться раньше
  5. Включить CDN — статика (изображения, CSS, JS) будет отдаваться с ближайшего к пользователю сервера

Реалистичные ожидания

Оценка 100/100 в PageSpeed — это не цель, это маркетинг. Большинство успешных сайтов работают на 60–80 баллах. Важнее реальное время загрузки: если сайт открывается быстрее 2–3 секунд на мобильном устройстве — это уже хороший результат.

Сосредоточьтесь на LCP (время до отображения главного контента) — это метрика которую чувствует пользователь и которую учитывает Google.

Если хотите разобраться с оптимизацией вашего конкретного сайта — обратитесь к нам. Проведём анализ, найдём узкие места и ускорим загрузку.