Перейти к основному контенту

Почему мой сайт работает медленно и что делать

Общее время загрузки сайта складывается из:

  • времени отклика серверов (время запросов и ответов DNS и веб-серверов, к которым относится сайт),

  • времени генерации сайта на сервере и в браузере (суммарное время загрузки всех файлов сайта).

Эта информация находится в Инструментах разработчика используемого браузера. Откройте в браузере нужную страницу, а затем консоль разработчика (в браузерах Google Chrome, Firefox для этого нажмите клавишу F12). Перейдите во вкладку Network (Сеть):

почему сайт работает медленно 1

Нажмите F5, чтобы запустить анализ производительности.

Во вкладке All (Все) будет отображаться список всех файлов сайта и общее время загрузки, показатель Load:

почему сайт работает медленно 2

Чтобы узнать время загрузки отдельного файла, кликните по интересующему в списке и затем перейдите в раздел Timing (Тайминги):

почему сайт работает медленно 3

Как видно на изображении выше: итоговое время загрузки файла складывается из нескольких параметров. Если одна из цветовых полосок значительно длиннее других, это сигнализирует о том, что параметр заставляет сайт работать медленно.

Показатели Queueing (Очередь), Stalled (Заблокировано), DNS Lookup (Поиск DNS), Initial connection (Соединение) составляют время отклика сервера и, как правило, суммарно занимают менее 0,1 с. В случае возникновения проблем на этом этапе загрузки сайта их быстро исправляют, так как они несут массовый характер и влекут множество жалоб.

Также сложности возникают с параметром Waiting (Ожидание). TTFB (Time to First Byte) — это время от момента ввода пользователем запроса, за которое на экран выводится первый байт информации. Также этот показатель отвечает за прогрузку интерактивных элементов страницы. Иными словами, он описывает то, насколько быстро сайт (со всеми скриптами и данными) загрузился и готов к использованию. Также он показывает степень загруженности сервера. Причин снижения показателя TTFB несколько. Ниже мы перечислим основные проблемы и способы их решения.

Основные причины медленной работы сайта

ERR_CONNECTION_TIMED_OUT
Из-за несоответствующей работы элементов сайта, перечисленных ниже, при попытке открыть сайт в браузере может возникнуть ошибка «Превышено время ожидания ответа от сайта» (ERR_CONNECTION_TIMED_OUT). Корректировка причин медленной работы сайта приведет к исправлению данной ошибки.

Прежде чем приступить к оптимизации сайта, определите, какие файлы нуждаются в этом: статические или динамические. От типа элемента будут зависеть ваши дальнейшие действия. Загрузка статических и динамических веб-страниц происходит по-разному.

В статических сайтах элементы (JS-файлы, CSS-файлы, HTML-файлы, медиафайлы) уже загружены на сервер, и вам просто нужно дождаться их прогрузки в браузере.

Открывая динамический сайт, вы не загружаете уже готовые файлы: вы запускаете скрипт, который генерирует страницу по вашему запросу.

Чтобы определить, статический или динамический файл нуждается в оптимизации, обратите внимание на расширение элемента, который долго грузится, в списке всех файлов сайта (Инструменты разработчика — Network — All):

почему сайт работает медленно 4

К статическим файлам относят файлы с расширениями .css, .js, .html, .png, .jpg, .jpeg и т.п.

Ниже описаны наиболее частые причины медленной загрузки сайта и даны рекомендации по их устранению.

Медленно загружаются статические элементы

Причины:

  • большой размер файлов;
  • файлы загружаются со сторонних серверов.

Рекомендации к исправлению:

Оптимизация контента

Если файл медленно грузится, потому что его размер слишком велик (например, изображения по 20 Мб), оптимизируйте его. Читайте об оптимизации в разделе: Продвижение сайта.

Смена используемого внешнего сервера

Если файл медленно грузится с внешних серверов (например, вы используете CDN), проблема заключается в конфигурации этого сервера (его настройках, загруженности, географической локации). Мы советуем выбирать для размещения контента более быстрые источники.

Настройка кэширования данных

Чтобы статические данные сайта кэшировались и, соответственно, требовали меньшего времени на загрузку, настройте gzip и expires. О настройке сжатия и кэширования через expires на виртуальном хостинге читайте в статье: Настройка сжатия и кэширования через .htaccess.

Медленно загружаются динамические элементы

Крупные порталы и интернет-магазины используют большое количество обращений к базе данных и инициализируют работу большого числа php-скриптов. Это замедляет работу сайта и создает высокую нагрузку на сервер. Ниже будут приведены советы для оптимизации динамических ресурсов. Мы рекомендуем следовать им комплексно, а не ограничиваться выполнением одного пункта.

Оптимизация скриптов сайта

Вам нужно проанализировать скрипты сайта и запросы к базе данных. По возможности оптимизируйте их. Если данные действия вызывают у вас затруднения, обратитесь к разработчикам сайта или на тематические форумы. Также вы можете перевести работу скриптов вашего сайта на php-версии линейки 7.x, в которых производительность выше версий 5.3-5.6.

Обратите внимание
Специалисты технической поддержки REG.RU не консультируют по вопросам оптимизации кода скриптов сайта.

Настройка кэширования cо стороны CMS

Помимо оптимизации скриптов и запросов к базам данных, настройте кэширование исполняемого кода. Это увеличит скорость работы сайта и снизить нагрузку на хостинг. В большинстве CMS доступны кэширующие плагины. В Joomla и MODX можно активировать встроенный кэш, для WordPress рекомендуем установить бесплатный плагин WP Super Cache.

Обращения к сторонним сервисам

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

Наличие вредоносного ПО

Также ваш сайт может работать медленнее при наличии вирусов. Вредоносные скрипты могут инициализировать удаленное подключение или запускать ресурсоёмкие процессы, что повлечет дополнительную нагрузку на сервер. Проверьте ваш сайт на наличие вирусов, чтобы исключить данную причину:

Переход на VPS

Если результаты оптимизации кажутся вам неудовлетворительными, одним из возможных вариантов является переход на VPS или выделенный сервер, на которых доступны большая производительность и гибкая настройка серверного ПО: Как заказать VPS.

Мы рекомендуем использовать VPS на XEN с SSD-накопителями, так как серверы данного типа наиболее изолированы от нагрузки соседей (других пользователей) и обладают высокой скоростью работы дисковой подсиситемы.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 1 из 2