Часто бывает, что ваш сайт стал долго открываться. Здесь я расскажу почему так бывает, и что с этим можно сделать.
Почему сайт долго открывается?
Внешние причины
Медленное подключение
Чаще всего сайт отрывается медленно на медленном интернете. Попробуйте открыть сайт с разных компьютеров из разных мест. Часто бывает, что интернет в кафе, гораздо медленнее чем дома или на работе. Мобильный интернет может работать крайне нестабильно. На медленном интернете сайт должен открываться постепенно - сначала подгружается текст, потом оформление, а затем картинки и эффекты. Если сайтом невозможно пользоваться до полной загрузки - это тоже большая проблема.
Медленный хостинг
Узнайте где размещается сайт. Существует несколько видов хостинга:
- Shared-хостинг или просто хостинг. На одном мощном сервере (компьютере) размещаются множество сайтов. Ресурсы плохо распределяются между сайтами - если размещается тяжелый сайт, то он тормозит и другие сайты. Всегда ограничиваются ресурсы (память и диск).
- VPS/VDS-хостинг. На мощном сервере размещаются виртуальные серверы, каждый сайт (или сайты одного клиента) действуют только в пределах своего виртуального сервера не влияя на другие.
- Выделенный (dedicated) сервер. На сервере размещается один сайт или сайты одного клиента. Ресурсы потребляются только одним или несколькими вашими сайтами.
- Несколько серверов. Серверы объединяются в сеть, каждый из серверов решает свою задачу. В высоконагруженных случаях - под каждую из задач выделяются несколько серверов.
Для Shared и VPS/VDS-хостинга часто встречается оверселлинг (overselling) - когда хостинговая компания размещает больше сайтов/VPS на сервере чем позволяют его мощности. Это приводит к тому, что сайты работают медленнее, но зато компания загружает сервера на полную, и больше зарабатывает. Клиенту же это не приносит никакой выгоды, а чаще вредит.
Новые сайты, и сайты с низкой посещаемостью обычно размещаются как раз на таких хостингах.
Обнаружить это просто - если видите слишком низкую цену, значит рано или поздно столкнётесь с такой проблемой.
Сайты своих клиентах мы размещаем на своем сервере. Хотя это и выглядит как shared-хостинг, но мы никак не ограничиваем ресурсы, поэтому сайты работают быстро и не тормозят.
Сайт работает на конструкторе сайтов
Если сайт сделан с использованием конструктора, то скорость его работы будет сравнима с сайтом на shared-хостинге. Как правило, такие сайты потребляют меньше ресурсов, чем обычный сайт. Поэтому производитель конструктора размещает на одном сервере еще больше сайтов.
Сервер находится географически далеко
Если сайт размещается на хостинге, который расположен на другом контитенте - вы это сразу почувствуете. Он будет открываться медленее чем Яндекс, Google и другие глобальные проекты.
Сайт не оптимизирован
Если у вас хорошее подключение к интернету, и хороший хостинг - проблема в самом сайте.
Сайт может быть тормозить в одном или нескольких местах сразу:
- Работа с базой данных
- Сборка страниц на сервере
- Открытие страниц в браузере
Чтобы понять в чем именно заключается проблема - нужно воспользоваться инструментами анализа загрузки, такие как Google PageSpeed Insights, Pingdom или анализатором загрузки встроенным в браузер.
Эти инструменты покажут число запросов, которые нужно выполнить для загрузки страницы, и покажут время сборки самой страницы. Если оно больше 0,5 сек, то у вас есть проблемы либо с БД, либо с генерацией страницы.
Скорость работы с базой данных
Если у вас тяжелый сайт с большим количеством материалов (или товаров с случае интернет-магазина), то скорее всего тормозить будет база данных. Проблемы возникают из-за неоптимизированной структуры хранения данных, отсутствия индексов, неоптимизированных запросах к базе данных.
Скорость сборки страниц
Практически все сайты сейчас работают на системах управления контентом. Некоторые системы собирают страницы достаточно долго. Особенно этим славится WordPress: он легко расширяется плагинами, но каждый плагин тормозит сборку страниц.
Для ускорения сборки используют механизмы кеширования страниц, оптимизируют код и устанавливают акселераторы PHP.
Ускорее загрузки страниц
После сборки, страница отправляется браузеру. Браузер сначала получает код страницы, а потом загружает стили, скрипты, картинки и другие ресурсы, необходимые для корректного отображения страницы. Здесь могут возникнуть такие проблемы:
- Ресурсов слишком много. Если на странице много скриптов и стилей - их необходимо оптимизировать. Самый простой способ - склеить их в один файл. Для этого используют специальные сборщики (gulp, grunt, webpack)
- Ресурсы не оптимизированы. Код страницы, файлы стилей и скриптов легко сжимаются с помощью минимизации - механизма сокращения текста и gzip - аналога архиватора zip для веб-сайтов. Изображения сжимаются с помощью специальных программ, которые уменьшают размер изображения без заметной потери качества.
- Изображения имеют большой размер. Такое бывает, когда фотографии добавлены на сайт без обработки. Например, сняли на камеру, и сразу поставили на сайт. Такие фотографии "весят" на порядок больше, чем обработанные, и это существенно сказывается на скорости загрузки.
- Не используется кеш. Все файлы должны иметь специальную отметку о том, когда они обновятся. Это позволяет браузеру не скачивать повторно файлы, загруженные ранее.
Мы умеем находить проблемы в загрузке сайтов и знаем как их исправить. Будем рады вам помощь:-)