Почему мой сайт работает медленно и что делать
времени генерации сайта на сервере и в браузере (суммарное время загрузки всех файлов сайта).
Эта информация находится в Инструментах разработчика используемого браузера. Откройте в браузере нужную страницу, а затем консоль разработчика (в браузерах Google Chrome, Firefox для этого нажмите клавишу F12). Перейдите во вкладку Network (Сеть):
Во вкладке All (Все) будет отображаться список всех файлов сайта и общее время загрузки, показатель Load:
Чтобы узнать время загрузки отдельного файла, кликните по интересующему в списке и затем перейдите в раздел Timing (Тайминги):
Как видно на изображении выше: итоговое время загрузки файла складывается из нескольких параметров. Если одна из цветовых полосок значительно длиннее других, это сигнализирует о том, что параметр заставляет сайт работать медленно.
Показатели Queueing (Очередь), Stalled (Заблокировано), DNS Lookup (Поиск DNS), Initial connection (Соединение) составляют время отклика сервера и, как правило, суммарно занимают менее 0,1 с. В случае возникновения проблем на этом этапе загрузки сайта их быстро исправляют, так как они несут массовый характер и влекут множество жалоб.
Также сложности возникают с параметром Waiting (Ожидание). TTFB (Time to First Byte) — это время от момента ввода пользователем запроса, за которое на экран выводится первый байт информации. Также этот показатель отвечает за прогрузку интерактивных элементов страницы. Иными словами, он описывает то, насколько быстро сайт (со всеми скриптами и данными) загрузился и готов к использованию. Также он показывает степень загруженности сервера. Причин снижения показателя TTFB несколько. Ниже мы перечислим основные проблемы и способы их решения.
Основные причины медленной работы сайта
Прежде чем приступить к оптимизации сайта, определите, какие файлы нуждаются в этом: статические или динамические. От типа элемента будут зависеть ваши дальнейшие действия. Загрузка статических и динамических веб-страниц происходит по-разному.
В статических сайтах элементы (JS-файлы, CSS-файлы, HTML-файлы, медиафайлы) уже загружены на сервер, и вам просто нужно дождаться их прогрузки в браузере.
Открывая динамический сайт, вы не загружаете уже готовые файлы: вы запускаете скрипт, который генерирует страницу по вашему запросу.
Чтобы определить, статический или динамический файл нуждается в оптимизации, обратите внимание на расширение элемента, который долго грузится, в списке всех файлов сайта (Инструменты разработчика — Network — All):
Ниже описаны наиболее частые причины медленной загрузки сайта и даны рекомендации по их устранению.
- большой размер файлов;
- файлы загружаются со сторонних серверов.
Рекомендации к исправлению:
Оптимизация контентаЕсли файл медленно грузится, потому что его размер слишком велик (например, изображения по 20 Мб), оптимизируйте его. Читайте об оптимизации в разделе: Продвижение сайта.
Смена используемого внешнего сервераЕсли файл медленно грузится с внешних серверов (например, вы используете CDN), проблема заключается в конфигурации этого сервера (его настройках, загруженности, географической локации). Мы советуем выбирать для размещения контента более быстрые источники.
Настройка кэширования данныхЧтобы статические данные сайта кэшировались и, соответственно, требовали меньшего времени на загрузку, настройте gzip и expires. О настройке сжатия и кэширования через expires на виртуальном хостинге читайте в статье: Настройка сжатия и кэширования через .htaccess.
Крупные порталы и интернет-магазины используют большое количество обращений к базе данных и инициализируют работу большого числа php-скриптов. Это замедляет работу сайта и создает высокую нагрузку на сервер. Ниже будут приведены советы для оптимизации динамических ресурсов. Мы рекомендуем следовать им комплексно, а не ограничиваться выполнением одного пункта.
Оптимизация скриптов сайтаВам нужно проанализировать скрипты сайта и запросы к базе данных. По возможности оптимизируйте их. Если данные действия вызывают у вас затруднения, обратитесь к разработчикам сайта или на тематические форумы. Также вы можете перевести работу скриптов вашего сайта на php-версии линейки 7.x, в которых производительность выше версий 5.3-5.6.
Настройка кэширования cо стороны CMSПомимо оптимизации скриптов и запросов к базам данных, настройте кэширование исполняемого кода. Это увеличит скорость работы сайта и снизить нагрузку на хостинг. В большинстве CMS доступны кэширующие плагины. В Joomla и MODX можно активировать встроенный кэш, для WordPress рекомендуем установить бесплатный плагин WP Super Cache.
Обращения к сторонним сервисамЕсли в коде сайта присутствуют запросы к сторонним ресурсам, это может вызывать задержку в генерации и отдаче контента. Если внешний ресурс, который фигурирует в скриптах вашего сайта, недоступен, сервер затратит больше времени на ожидание ответа. Как правило, не рекомендуется использовать внешние источники данных, так как производительность сторонних сервисов невозможно контролировать.
Наличие вредоносного ПОТакже ваш сайт может работать медленнее при наличии вирусов. Вредоносные скрипты могут инициализировать удаленное подключение или запускать ресурсоёмкие процессы, что повлечет дополнительную нагрузку на сервер. Проверьте ваш сайт на наличие вирусов, чтобы исключить данную причину:
-
(на виртуальном хостинге). (на VPS).
Если результаты оптимизации кажутся вам неудовлетворительными, одним из возможных вариантов является переход на VPS или выделенный сервер, на которых доступны большая производительность и гибкая настройка серверного ПО: Как заказать VPS.
Мы рекомендуем использовать VPS на XEN с SSD-накопителями, так как серверы данного типа наиболее изолированы от нагрузки соседей (других пользователей) и обладают высокой скоростью работы дисковой подсиситемы.