Снижение нагрузки на сайт (хостинг)

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

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

Однако не нужно спешить с переездом на VDS, т.к. есть ряд мер, которые позволят снизить нагрузку и остаться на старом хостинге:

Мероприятия по снижению нагрузки:

0) Обязательно делаем бэкап базы данных именно в панели хостинга!

1) Сжимаем изображения (некоторые владельцы сайтов умудряются использовать необработанные изображения, которые свесят по несколько Мб)

2) Включаем кэширование запросов к базе данных

3) Проверяем, что на хостинге установлена версия PHP не ниже 7.2

4) Если на аккаунте хостинга находится несколько сайтов, то переносим наш сайт на отдельный аккаунт, чтобы исключить влияние других сайтов.

Заодно этим исключаем локальные проблемы в ПО именно данного аккаунта хостинга.

5) В Яндекс Вебмастере и Google Search Console выставляем самую минимальную скорость обхода страниц сайта роботами.

Важные нюансы:

  • Изменения вступят в силу не моментально, а через 1-2 дня, поэтому сразу вы не увидите результата.
  • Поисковики будут примерно раз в 3 месяца увеличивать скорость обхода и значит надо будет опять заходить и ее снижать.
  • Если есть 100% уверенность, что нагрузку создают именно роботы поисковиков (что видно из журнала доступа, подключаемого на хостинге), то Яндекс подсказывает вариант отдавать сервером код 429:
header('HTTP/1.1 429 Too Many Requests');

6) Чистим базу данных из админки от старой ненужной информации (не нужные комментарии, письма в обратной связи, удаленные и неактуальные заказы, неактуальные пользователи и т.п.)

7) Включаем в панели хостинга журнал доступа и при очередном всплеске нагрузки анализируем не идет ли с каких-то сайтов или ip подозрительно большого кол-ва запросов. И блокируем их. Главное не заблокировать роботов Яндекса и Гугла.

8) Вспоминаем не "скормили" ли мы каким-то сервисам файлы выгрузки в Яндекс Маркет (YML).

Генерируем статичные файлы выгрузки и используем их вместо динамических в этих сервисах, а в неактуальных сервисах - удаляем.

Инструкция находится в админке:

Настройки > Настройки каталога товаров : Яндекс Маркет

Многие забывают, что использовали YML-файл например в турбо-страницах.

9) Если в описании товаров повторяется один и тот-же большой кусок текста и/или html-кода, то логичнее его прописать жестко в коде шаблона карточки товара (product.tpl), что позволит ощутимо снизить размер базы данных.

10) Отключить в админке в:

Настройки > Настройки каталога товаров

  • Варианты товаров в фильтре
  • Размер (вариант) в фильтре
  • Цвет (вариант) в фильтре

11) Стараться не использовать диапазонные фильтры в свойствах товаров

12) Не использовать безумную вложенность категорий - например 5 или даже 8 уровня. Сайт с продуманной навигацией как правило имеет подкатегории не более 3-го уровня вложенности.

13) Уменьшить кол-во свойств в фильтре до реально необходимых

14) Если у вас большая вложенность категорий (>2 уровня), то можно не прикреплять свойства к родительским категориям, а только ко вложенным. Чтобы пока пользователь не дойдет до вложенной категории не грузить базу данных лишними запросами.

15) Если вы знаете, что производили массовые эксперименты с импортом товаров и допускаете, что это могло замусорить базу данных, то можно развернуть чистую версию CMS и в нее импортировать товары через экспорт/импорт CSV. Единственное нужно учитывать, что если вносились какие-то доработки на вашем сайте, то нужно будет их переносить и на новый сайт. С другой стороны вы проверите не являются ли внесенные изменения в коде источником повышенной нагрузки.

16) Если используете SMTP для отправки писем, то проверить правильно ли указаны настройки (в т.ч. не изменился ли логин-пароль от почты)

Снижение нагрузки на сайт (хостинг)

Еще нет своего сайта? Создайте интернет-магазин на платформе 5CMS - Все для продаж уже внутри!

Рекомендуем прочитать