Оглавление
Быстрый и стабильный сайт на WordPress или другой CMS лучше и чаще индексируется и ранжируется поисковым системами, имеет лучшие позиции SERP – Search Engine Results Page.
Это важно для SEO, но главный эффект заключается в существенном снижении “процента отказов”, т.е. посетители, потенциальные клиенты реже покидают страницы сайта.
Растет показатель “глубина просмотров”, “время на сайте”, “просмотр страниц”, популярность, а значит и прибыль, что актуально для “продающих” сайтов.
Избавляемся от иллюзий
Заблуждения и иллюзии относительно того, как можно ускорить сайт неизбежный спутник web-мастера. Все их перечислить не реально, рассмотрим самые “популярные”.
У меня быстрый хостинг
Это самое распространенное заблуждение присущее не только начинающим веб-мастерам, но и “продвинутым” администраторам и особенно доморощенным SEO “специалистам” в конечном итоге дорого обходится им самим и их клиентам.
Большинство хостингов вполне удовлетворяют потребности молодого сайта или блога. Серьезным ресурсам быстро становится тесно в рамках любого, даже самого быстрого хостинга.
Причина в том, что никакой хостинг не позволяет настроить web-сервер – по умолчанию хостинги используют связку Apache + Nginx, реже PHP-FPM + Nginx что вполне нормально для поддержки множества сайтов не требующих особых ресурсов и специфических настроек.
Про настройку PHP (даже простая смена версии PHP часто превращает жизнь простого вебмастера в лютый мазохизм), сервера MySQL, объектное кэширование Redis и Memcached можно забыть. Тем более, нет возможности изменить настройки сетевого интерфейса и самого сервера так, как необходимо для максимально быстрой работы вашего сайта.
Задача хостера состоит в том, чтобы разместить как можно больше сайтов на одном сервере или ноде – если речь идет об “облаке” для извлечения максимальной прибыли. Быстродействие вашего ресурса его заботит в последнюю очередь.
Очень часто можно наблюдать ситуацию, когда самый простой сайт типа “Hello Word” размещенный на “неплохом” shared хостинге (привет REG.ru) медленно и печально загружается 3 -4 минуты.
Согласен, идеальных сайтов не бывает, а если бывает, позовите программиста, он исправит эту проблему, но чаще видим что лимиты CPU, дисковых операций и 1Gbit на всех клиентов приводят к тому, что контент с сайта доставляется со скоростью яндекс.доставка.
Бывают редкие исключения – быстрый хостинг, но исключение из правила только подтверждают правило. Только VPS или выделенный сервер способны по настоящему “разогнать” ваш сайт.
Не редкая ситуация когда сайт серьезной компании, или считающая себя таковой находится на одном shared хостинге на одном ip адресе с парой десятков говносайтов. Поисковые системы пессимизируют такие ресурсы.
Кроме того, сайт “серьезной” компании на shared хостинге это не серьезно. Особенно этим грешат веб-студии, SEO-агентства и том подобные компании крайне сомнительной нужности. Но встречаются действительно неплохие ресурсы для которых хостинг = добровольное самоубийство.
На сайте установлен самый лучший плагин кэширования
В чудеса надо верить. Другое дело, что чудеса ускорения сайта от разработчиков плагинов кэширования в 98 случаях из сотни менее реальны чем чеширский кот.
Что там у там у вас из самого “лучшего” и абсолютно ненужного? WP Super Cache, WP Rockets, W3 Total Cache, Autoptimize, Clearfy, или столь же бесполезное и тормозное.
Я понимаю, что сказанное опровергает 100500+ статей написанных “супергуру” где русским по белому написано: “установите плагин кэширования”. Большинство плагинов кэширования чистое 100% зло – звучит кощунственно, “матерые” SEOшники, системные администраторы и вебмастера рвут волосы на пятой точке и предают анафеме.
Спешу успокоить и “оправдаться”. Не все плагины кэширования одинаково бесполезны, а вернее, вредны. На практике часто наблюдается бездумное, противоречащее здравому смыслу увлечение плагинами кэширования, причем некоторые “альтернативно одаренные” умудряются поставить сразу несколько [ 1 ]!
На хостинге, плагин кэша практически единственный “костыль” позволяющий работать сайту хотя бы с минимальной нагрузкой и не вылетать за пределы драконовских лимитов установленных хостинг провайдером.
Если вы верите что “жизнь без кэша невозможна” обратите внимание на бесплатный, но функциональный LIteSpeed Cache plugin. Он работает с сервером Open LiteSpeed или LiteSpeed Ent( платный – идеально подходит для хостинг провайдеров, есть бесплатный тариф для “физиков”). С некоторыми ограничениями LIteSpeed Cache plugin работает с Apache – при условии использования LSAPI.
Для быстрого сайта нужен CDN
Еще одно стойкое и распространенное заблуждение. CDN нужен в том случае, если ваш хостинг или сервер географически находится например в США, а сайт ориентирован на российских пользователей. Но в данном случае лучше перенести сайт в Россию и / или использовать GEO DNS.
Если у вас VPS сервер и все настроено правильно, то CDN в 99 случаях из 100 будет бесполезным тормозом. В первую очередь это касается всеми любимого Cloudflare и тем более i.w.tools.
Это утверждение справедливо для большинства CDN провайдеров предлагающих сомнительного качества услуги по астрономическим ценам.
Если ваш сайт находится на “гаражном” хостинге типа Beget или reg.ru, то то хороший CDN может быть полезен. Исключение из правила только его подтверждает.
Нужна оптимизация кода
Трудно поспорить, оптимизация неоптимизируемого крайне увлекательное и познавательное занятие, особенно, за счет заказчика. Чаще всего нужна не оптимизация кода, а переход на современную версию PHP. Кроме того, не помешает избавиться от лишних плагинов, тем и компонентов CMS.
Можно и нужно сделать полный технический и SEO аудит сайта. Это сэкономит ваши деньги и время. Кроме того, это серьезно облегчит задачу исправления ошибок.
Пример с kwork. Заказчик пишет:
Щедро заплачу за результат и за ковыряние чужого кода
Вы это серьезно? Найдутся десятки желающих поковыряться в чужом коде за счет клиента. С нулевым результатом. Посмотрите screenshot.
Мы видим, что до того момента когда сервер если и доберется до отдачи нам кода якобы нуждающегося в оптимизации пройдет минимум 2 – 3 минуты. Главная проблема этого сайта старая версия PHP, CMS, темы и плагинов.
В “кашу” добавлен не правильно настроенный Autoptimize + W3 Total Cache что просто “убивает” сайт.
Еще один пример, когда заказчик требует оптимизацию кода ссылаясь на своего системного администратора который перепробовал все, и даже переносил сайт на VPS [ 2 ].
Красиво!? Заказчик утверждает, что супер сисадмин “в танке”. Вы верите? Я нет. Проблемы те же: тормозной хостинг, старые темы и не нужные плагины.
Когда программист или системный администратор предлагают вам сделать “оптимизацию кода” вместо реальной работы по ускорению сайта, это значит, что он не знает что делать. На “кривую” оптимизацию кода можно свалить все проблемы с производительностью сайта и получать деньги ничего не делая.
Код и его отдачу можно оптимизировать. Начать надо с удаления или отключения неиспользуемого css и js и чистки HTML кода. К этой операции надо подходить крайне осторожно. Неиспользуемый код на одной странице сайта может быть задействованным на другой.
Пример: всем известный плагин Contact Form 7 для WordPress размещает свой код на всех страницах. Разумно оставить его css и js только на тех страницах где используются контактные формы.
Вы сами способны провести оптимизацию кода сайта под управлением CMS WordPress, а также других CMS на PHP и даже “самописных” сайтов.
Нужна оптимизация запросов к базе данных.
Если сайт самописный, то возможно это имеет смысл. Но ни вы, ни один “оптимизатор не оптимизируемого” не сможете ускорить запросы к бд в “классических” CMS без серьезного вмешательства в код отвечающий за работу с базой данных (объединение запросов и.т.п.), а главное, без изменения структуры базы.
GrandWebmaster настоящий монстр оптимизаций. Знает много умных слов. В реальности, если сайт на VPS, то для начала оптимизируйте сервер БД (обновите и настройте), обновите PHP до 8.1 или 8.2, настройте, замените nginх не умеющий отдавать динамический контент от слова совсем на Open LiteSpeed.
Получите минимум трехкратный прирост скорости сайта и пятикратный рост скорости запросов к бд (при условии, что сервер баз данных настроен правильно).
Кроме того, возможно просто не хватает памяти или ресурсов CPU, медленные диски… в любом случае, заказчик “копает” не туда, ищете не там, и не то. Яростная жажда выкинуть деньги на ветер.
Оптимизировать запросы надо … в последнюю очередь, так как, если настроить бд правильно, все сам собой оптимизируется.
Настоящие причины медленной работы сайтов
Скорость отдачи контента сайтом зависит от многих факторов, в том числе, от “последней мили” – скорости интернет у клиента и быстродействия его компьютера, смартфона или планшета. На эти параметры мы повлиять не можем. Но есть много факторов замедляющих сайт с которыми можно и нужно бороться.
Причины медленной работы сайта:
- Shared, Cloud хостинг – чаще всего, красивые обещания супер скорости являются маркетинговой уловкой
- Связка Apache + Nginx и.т.п. – распространенная, но абсолютно идиотская практика
- Ваш хостинг DNS часто “в одном флаконе” с хостингом сайта или у регистратора домена. Любой из этих вариантов в 99% случаев является тормозом для сайта
- Неправильный выбор CMS для решаемых задач. Большинство CMS многофункциональны, позволяют создать блог, интернет магазин, корпоративный или новостной портал, CRM систему, тв или видеопортал, систему бронирования отелей и продажи билетов на транспорт или мероприятия, кино, экскурсии и.т.д. и.т.п. Нет необходимости создавать на WordPress маркет с десятками тысяч товаров. Это возможно, но есть другие, более эффективные решения
- Конструкторы сайтов типа Tilda и.т.д – тормоз по умолчанию
- Метрики и скрипты аналитики и сервисов Яндекс, Google
- js и css сторонних сервисов и сайтов
- Код рекламных сетей, особенно это касается Яндекс
- Тема с избыточным функционалом
- Ошибки тем и плагинов
- Неявные конфликты плагинов
- Большое количество плагинов. Многие из которых просто не нужны
- Избыточно большие, несжатые картинки, фото, анимации, видео. Неправильные размеры и форматы изображений.
- Leeching – “воровство” с вашего сайта картинок и мультимедийных данных. Т.е. ваш ресурс используют как своего рода CDN, ваши картинки и.т.п. показываются на чужом сайте, но загружаются с вашего ресурса.
- Неправильная конфигурация CMS
- Бездумное использование плагинов кэширования. Неправильная настройка
- Отсутствует, или неправильно настроен Object Cache
- Неправильная настройка .htaccess и robots.txt
- Устаревшие, плохо настроенные версии PHP
- Web сервер настроен неправильно
- Не оптимальная настройка сервера баз данных MySQL и.т.д.
- Не используется или не оптимально настроено gzip, brotli сжатие для html, css, js…
- Не настроены правила кэширования в браузере mod_headers и mod_expires и не прописан context headers для хоста в Open LiteSpeed
- Неправильное использование CDN или неправильная его интеграция
Теперь у вас есть понимание того, что замедляет работу вашего сайта. Можно предпринять ряд действий, чтобы сократить время загрузки.
Некоторые шаги требуют технических знаний, в то время как другие доработки заключаются в некоторых простых обновлениях и изменениях конфигурационных файлов сервера, темы и плагинов.
Все эти проблемы имеют решение если ваш сайт расположен на VPS или отдельном сервере.
Как ускорить сайт на WordPress или другой CMS минимум в 3 раза
Ускорить сайт на WordPress, Drupal, ModX, Joomla и.т.д. минимум в 3 раза, хотя вполне реально в 5-8 раз. Для этого потребуется:
- VPS. Учитывайте географию. Если сайт рассчитан на российских пользователей, то сервер должен быть в России.
- Быстрый хостинг DNS. Как правило, у хостинг провайдеров сервера DNS не отличаются скоростью
- Web сервер – Open LiteSpeed + CyberPanel – панель управления VPS, хостингом, сайтами и.т.д. ( не обязательно, но желательно)
- Устранить причины медленной работы сайтов. Как это сделать узнаете позже.
Начнем по порядку. Выберем и настроим VPS на максимальную производительность и подготовим его к переезду вашего сайта или созданию нового.
Итоги работ по ускорению сайтов
Когда / если вы пройдете все этапы по настройке VPS, Web сервера, PHP, MySQL, Redis + Memcahed, вашей CMS и.т.п., устраните причины медленной работы сайта, получите такую картину [ 3 ].
Тестирование скорости сайта сервисом ping-admin.ru
Обратите внимание на столбцы Ожидание ответа, сек. и Соединение, сек. Общее время, сек. тоже является очень показательным.
Ни один хостинг не способен даже близко приблизиться к таким результатам.
Только “связка” VPS + настроенный сетевой стек + Open Litespeed web сервер + PHP 8.1 + оптимизированный MySQL сервер + “правильный” кэш на уровне hosts и сайта.
По большому счету, сайт “тормозят” только DNS сервера, что видно при первом тестировании и SSL – это видно при повторном тесте.
Тестирование скорости сайта сервисом Google pagespeed.web.dev
Для большинства сайтов такие показатели недостижимая мечта. Я их оцениваю как средние. Оправдание только в том, что специально “под Google” ничего не делал [ 3 ] .
Тестирование скорости сайта сервисом webopulsar.ru
Результаты проверки
Узел | DNS Lookup | Подключение к серверу | Создание соединения | Ожидание ответа | Загрузка ответа |
---|---|---|---|---|---|
H (MSK) | 61 мс | 2 мс | 224 мс | 4 мс | 1 мс |
HE (AMS) | 5 мс | 39 мс | 223 мс | 78 мс | 2 мс |
LI (MSK) | 253 мс | 2 мс | 14 мс | 4 мс | 1 мс |
B (SPB) | 253 мс | 13 мс | 38 мс | 27 мс | 1 мс |
N (NSK) | 0 мс | 50 мс | 64 мс | 47 мс | 48 мс |
Тестирование скорости сайта сервисом gtmetrix.com
Тестирование скорости сайта сервисом pingdom.com
Этих тестов достаточно чтобы сделать определенные выводы.
- Любой, даже самый “профессиональный” хостинг проигрывает даже дешевому VPS с 2Гб ОЗУ и 2 ядрами CPU
- В качестве Web сервера стоит использовать Open LiteSpeed – он минимум в 8 раз быстрее apache и минимум в 5 раз быстрее Nginx
Несмотря на очевидное преимущества VPS для быстрых сайтов стоит сравнить “обычный” хостинг и VPS для разных задач и бюджета. Если вы решили что VPS идеальное решение, можно перейти к выбору VPS и настройке на максимальную производительность.
Примечания
[ 1 ] Теоретически возможно, что несколько плагинов кэширования смогут работать одновременно не мешая друг другу. Есть даже исследование подтверждающие это. Безоговорочную победу одержала “связка” LiteSpeed Cache + Hyper Cache Extended + Autoptimize + Speed Up – Browser Caching.
Настройка кэширования каждого сайта на VPS надо выполнять исходя из того, какими ресурсами располагает сервер, потребностей сайта. Кэширование на уровне сервера или хоста иногда обеспечивает лучшие результаты чем любой плагин кэширования. Отсутствие любого кэша передпочтительнее чем бесполезные плагины кэширования.
[ 2 ] Общее заблуждение вебмастеров, системных администраторов, владельцев сайтов – перенос сайтов на VPS автоматически гарантирует ускорение сайта. Без настройки и оптимизации сервера, вебсервера, PHP, сервера баз данных, самого сайта выигрыш в скорости и надежности будет минимальным.
[ 3 ] Результаты не вполне корректны. В данном случае я сильно “схалтурил”. Была произведена только минимальная настройка VPS и вебсервера. Если сделать полную настройку то параметры Ожидание ответа и Соединение добавят по нолику после запятой. Это конечно радует, но в реальных условиях мало что дает несмотря на то, что сайт “ускоряется” в 10 раз. Не выполнялись оптимизации “под Google” и.т.п.