Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Медленный сайт — убийца SEO. Этот текст используют в навязчивой рекламе CDN-сетей. Но с этим тезисом действительно сложно спорить. Плохой, неоптимизированный код, тяжелые элементы на странице, большое количество HTTP-запросов — все это (и не только это) сильно замедляет скорость загрузки страницы, влияет на поведенческие факторы пользователей, и, как следствие, снижает позиции сайта в поисковой выдаче.
Плохое SEO — проблема, но не единственная. Даже если кто-то найдет ваш сайт, который понижен в выдаче, он все равно получит плохой пользовательский опыт, и вряд ли дойдет до целевого действия на странице (особенно если до него нужно сделать несколько переходов). Каждая новая медленно загружающаяся страница будет испытывать терпение пользователя и искушать его уйти на сайт конкурента.
В этой статье мы хотели бы рассказать о девяти наиболее частых причинах медленной работы сайтов. А главное, как эти проблемы исправить.
1. Большие и тяжелые изображения
Эта причина на поверхности, но многие ее постоянно упускают. Крупные неоптимизированные изображения потребляют много трафика и значительно замедляют загрузку страницы.
Бороться с такими картинками нужно еще на этапе загрузки:
Поменять основной рабочий формат. PNG стоит заменить на JPG (можно не менять небольшие иконки и значки). Можно также использовать WebP, это современный формат сжатия без потери качества от Google. Однако при WebP изображения не всегда корректно отображаются на устройствах Apple. Поэтому лучше выбрать универсальный JPG.
Использовать сервисы сжатия и оптимизации перед загрузкой на сайт. Мы рекомендуем использовать сторонние платформы оптимизация размера, а не ставить плагины на сайт, поскольку активные плагины также негативно влияют на скорость загрузки страницы.
Пересмотр и оптимизация старых изображений. Поиск крупных иллюстраций можно автоматизировать, чтобы сэкономить время.
Важно внести требования к размеру и формату иллюстраций в редакционную политику контент-менеджерам и другим операторам сайта, чтобы не делать дважды одну и ту же работу.
2. Отсутствие кэширования
Еще одна очевидная проблема, решение которой улучшает производительность сайтов и ускоряет загрузку страниц. Если в кэш-памяти нет постоянно запрашиваемых элементов, они будут подгружаться при каждой загрузке.
Конкретных рекомендаций мы здесь дать не можем. Кэшировать в принципе можно все, от HTTP и запросов к базе до изображений, скриптов и любых отдельных элементов страницы. Тут важно не перестараться, потому что кэширование, во-первых, создает дополнительную нагрузку на сервер, а во-вторых, может влиять на качество использования сайта посетителем.
3. «Грязный» код
Комментарии, лишние пробелы, пустые строки, сложный код там, где нет в этом необходимости, встроенные стили и другой мусор очень раздувают размеры таблицы стилей. Чем она больше, тем медленней загрузка.
Советы по оптимизации:
Во-первых, нужно убрать все мусорные моменты в коде. Его можно пересмотреть вручную, или использовать специальные автоматические алгоритмы.
Во-вторых, использовать CSS. Если это возможно, таблица стилей должна быть одна.
Как бонус, такая чистка скажется не только на скорости, но и на местах в поисковой выдаче. Поисковики любят чистый и оптимизированный код.
4. Неоправданно большое количество запросов к серверу
Чем больше элементов страницы при загрузке отправляют HTTP запросы на сервер, тем быстрее работает сайт. Это очевидно. Для сокращения количества запросов есть 2 основных советов:
Во-первых, нужно сокращать количество Javascript и CSS элементов, отправляющих HTTP запросы на сервер.
Во-вторых, можно использовать CSS-спрайты. Это объединение всех изображений на странице в один элемент.
CSS-спрайты кратно сокращают количество запросов.
5. Большое количество рекламы на сайте
Для многих сайтов реклама — это единственный источник монетизации и способ выживание. Поэтому сокращение количества рекламных блоков ради скорости — для многих очень болезненный вопрос. Каждый блок — это отдельный HTTP запрос и дополнительный код, в дополнение к основной части сайта Если есть возможность убрать эти виджеты (ну или часть из них), то так и нужно поступить.
Но давайте быть реалистами, только небольшое количество ресурсов действительно откажется от источника дохода ради скорости загрузки. Есть и альтернативные пути, например, использование современных рекламных форматов. И Google, и Yandex уже представили свои оптимизированные блоки контекстной рекламы, и продолжают работу над ними. Современные виджеты рекламы помогут ускорить загрузку в тех случаях, когда от блоков отказаться нельзя.
6. Недостаточность ресурсов сервера и отказ от CDN
Часто причина медленной работы сайта не только в неоптимизированной нагрузке на сервер, а в недостаточности его ресурсов. Часто, пытаясь сэкономить, владельцы сайтов используют недорогие хостинги или минимальные тарифы отдельных серверов. И эта экономия может быть оправдана для простых и небольших сайтов с маленькой посещаемостью. Но если какая-то из этих переменных начинает увеличиваться, и сайт перерастает сервер, на котором размещен, скорость загрузки неминуемо сократится.
Тут есть два совета:
Размещать сайт на сервере с достаточной мощностью и достаточными ресурсами. Если вы не уверены, какой нужен вам, вы можете обратиться к специалистам (главное не к компании-хостеру, потому что она, мягко говоря, заинтересована в том, чтобы предложить тариф подороже).
Использовать CDN (Content Delivery Network) — это сеть из географически удаленных независимых друг от друга серверов. На каждом из этих серверов размещена кэшированная версия сайта. А пользователь при входе на сайт, автоматически подключается к географически ближайшему серверу. Это сильно сокращает показатель RTT (Road-trip Time). Чем ближе сервер к конечному пользователю, тем быстрее грузится страница.
То, что сервера в сети CDN независимы друг от друга, решает еще одну серьезную проблему — аптайм работы ресурса. Если возникнет проблема (любого характера) на одном из серверов, пользователь все равно сможет воспользоваться сайтом. Просто он будет автоматически перенаправлен на другой сервер. Вопрос постоянной доступности сайта и высокого uptime не менее важен для SEO, чем скорость загрузки. Если робот поисковой системы будет пытаться подключиться к вашему сайту и часто видеть его в неработающем состоянии, вы вряд ли будете попадать на перрвые страницы даже по низкочастотным запросам.
Вопреки популярному заблуждению CDN бывают не только платными. Более того, сотрудники сети при подключении сайта обычно проводят оптимизацию ресурса (особенно кеширования) для дополнительного ускорения. Поэтому подключение к CDN — это лайфхак по недорогой (но достаточно поверхностной) оптимизации скорости загрузки сайта чужими руками.
7. Ошибки JavaScript
Этот пункт, конечно, можно было поставить и выше, сразу после (или внутри) блока про грязный код. Но на самом деле, правильно настроенный и оптимизированный JavaScript не сильно задерживает загрузку сайта. Проблема может быть только в криво реализованном или раздутом (bloat) JavaScript.
Если у вас есть элементы на сайте, которые используют множественные API запросы для вывода данных, есть риск, что именно они — причина медленной загрузки страницы.
Для оптимизации стоит:
Пересмотреть сценарии JavaScript элементов на предмет «раздутости». Оцените, какие действия действительно необходимы, а что можно удалить.
Настроить асинхронную загрузку JavaScript. Это просто Must Have, особенно если элементы не находятся на первом экране загрузки в поле видимости посетителя. В таком случае видимая часть сайта будет открываться независимо, а JS элементы подтянутся чуть позже, никого не задерживая.
Ну и как всегда главное правило оптимизации — если что-то можно безболезненно удалить, так и нужно сделать. Это, конечно, выглядит как шутка, но у многих неопытных разработчиков (особенно на CMS) количество бесполезного JS контента просто зашкаливает.
8. Много Flash элементов
И да, они до сих пор есть и их много. Конечно, мода на Flash баннеры уже давно прошла, но они есть на старых сайтах, которые можно оптимизировать. Более того, и на новых сайтах они тоже достаточно часто присутствуют. На всякий случай проговорим очевидную вещь: Обычно Flash элементы очень тяжелые и сильно замедляют загрузку страниц.
Тут совет простой: от Flash нужно избавляться, тем более, что есть хорошие альтернативы, например, HTML5. Там, где убрать баннер невозможно, нужно по крайней мере уменьшить его размер. Также, если Flash контент необходим, но не находится на первом экране загрузки, стоит настроить асинхронную загрузку, чтоб он не задерживал запуск видимой части сайта.
9. Не настроено GZIP-сжатие
На конец мы решили оставить одно из самых простых и действенных решений. GZIP позволяет сжимать передаваемый сервером трафик. Такой метод позволяет кратно уменьшить вес передаваемого контента (JS, HTML, CSS и других элементов страницы). Пользователь получает трафик в уже распакованном виде.
Естественно, чем ниже вес передаваемой информации, тем быстрее загружается страница.
Здесь тоже совет очевиден: Если у вас не настроено GZIP-сжатие, это первое, что стоит сделать для оптимизации скорости. Важно после внедрения протестировать загрузку на разных устройствах и браузерах на предмет ошибок отображения элементов.
Оптимизация скорости загрузки и решение возникающих проблем производительности — это элементарные нормы «гигиены сайта», которые нужно проводить хотя бы раз в 2-3 месяца. Это прямые обязанности команды поддержки.
Однозначно ответить, почему тормозит ваш сайт, невозможно без аудита. Вряд ли у вас все 9 проблем сразу. Возможно, оптимизация всего нескольких ключевых моментов позволит увеличить скорость загрузки страниц. Вы можете получить бесплатную консультацию наших специалистов по оптимизации сайта (в том числе по увеличению скорости загрузки). Для этого достаточно оставить заявку на нашем сайте.
В интернете достаточно много сервисов-сканеров, например Google Pagespeed Insights, при помощи которых можно провести аудит загрузки сайта.
Но если сравнивать такое автоматическое сканирование с ручным аудитом специалиста по автоматизации, то оно заметно уступает в эффективности.