Главная/Блог/Обновление CMS и плагинов: как не сломать сайт

Обновление CMS и плагинов: как не сломать сайт

Разбираем, почему владельцы сайтов откладывают обновления CMS, чем это грозит и как обновлять сайт без риска его сломать.

Поддержка≈ 7 мин чтения
Обновление CMS и плагинов: как не сломать сайт

«Не трогайте, работает — не обновляйте» — фраза, которую мы слышим регулярно. За ней обычно стоит реальный опыт: однажды обновление плагина уже клало сайт, и с тех пор к обновлениям стараются не прикасаться. Проблема в том, что необновлённый сайт — это не стабильность, а накапливающийся риск, который рано или поздно реализуется сам, только без предупреждения.

Почему обновления откладывают

У страха перед обновлениями есть вполне рациональные основания. Плагины и темы оформления в популярных CMS пишут разные разработчики, часто без согласования друг с другом, и новая версия одного компонента может конфликтовать с другим. После обновления действительно может «поехать» вёрстка, перестать работать форма или пропасть часть функциональности.

Из этого рождается стратегия избегания: сайт работает — значит, лучше не рисковать. Логика понятна, но она не учитывает вторую сторону: необновлённая CMS с открытыми уязвимостями — это не нейтральное состояние, а актив, который атакуют автоматические боты по всему интернету, независимо от того, интересен ли ваш сайт кому-то конкретно.

Что происходит, если не обновлять годами

Разберём типичный сценарий на примере сайта, который не обновлялся продолжительное время.

Накопление уязвимостей

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

Рост дистанции обновления

Чем больше версий пропущено, тем сложнее и рискованнее обновление за один шаг — изменения накапливаются, и вероятность конфликта растёт нелинейно.

Потеря совместимости

Новые плагины и темы перестают поддерживать слишком старые версии CMS, что со временем ограничивает возможности развития сайта.

Проблемы с хостингом

Хостинг-провайдеры обновляют версии PHP и баз данных на своей стороне, и очень старая CMS однажды может просто перестать работать с новым окружением.

Правильный порядок обновления

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

  1. Сделайте полную резервную копию. Файлы сайта и база данных — это единственный способ быстро откатиться, если что-то пойдёт не так. Подробно эту тему мы разбирали в статье про резервное копирование сайта.
  2. Проверьте обновление на тестовой копии. Многие хостинги позволяют развернуть копию сайта в отдельной папке или поддомене — там можно безопасно проверить, ничего ли не сломалось.
  3. Обновляйте по одному компоненту. Сначала ядро CMS, затем плагины по очереди, а не всё разом — так проще найти источник проблемы, если она возникнет.
  4. Читайте описание обновления. Разработчики плагинов обычно указывают, что изменилось и какие версии CMS поддерживаются — это помогает заранее оценить риск.
  5. Проверьте ключевые сценарии после обновления. Оформление заказа, отправка формы, отображение каталога — базовая проверка функциональности сайта вручную.
  6. Обновляйте регулярно, а не раз в год. Небольшие частые обновления безопаснее одного крупного скачка через множество версий.

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

Что обновлять и как часто

КомпонентПериодичностьОсобенности
Ядро CMSПо мере выхода версий безопасности — как можно быстрееКритичные обновления безопасности стоит ставить в приоритете
Плагины и модулиЕжемесячно или при выходе значимого обновленияПроверять совместимость с текущей версией ядра
Тема оформленияПо мере выхода обновленийЕсли тема дорабатывалась вручную, обновление может затереть правки
PHP и версия сервераРаз в год-два, по согласованию с хостингомОбновляется на стороне хостинга, сайт должен быть совместим

Особый случай: доработанная тема или плагины

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

Когда обновление лучше доверить специалисту

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

  • сайт не обновлялся продолжительное время и нужно пройти сразу несколько версий;
  • на сайте много кастомного кода или нестандартных доработок;
  • сайт — это интернет-магазин, где простой напрямую означает потерю заказов;
  • нет тестовой копии сайта и негде проверить обновление перед применением на боевой версии.

В таких случаях лучше заложить время на аккуратное поэтапное обновление с проверкой на копии, чем обновлять «на живую» и надеяться, что обойдётся.

Автоматические и ручные обновления

Многие CMS сегодня умеют обновляться автоматически — сама система или отдельные плагины могут ставить новые версии без участия человека. Это удобно, но не всегда безопасно: автоматическое обновление ночью без предварительной проверки на копии несёт те же риски, просто без вашего контроля над моментом. Разумный компромисс — включать автоматические обновления только для критичных исправлений безопасности, а плановые обновления функциональности проводить вручную, по описанному выше процессу с тестовой копией.

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

Частые ошибки при обновлении

Даже при аккуратном подходе есть типичные промахи, которые стоит знать заранее.

  • Обновление всех плагинов одновременно без проверки — при поломке невозможно быстро понять, что стало причиной
  • Отсутствие бэкапа перед обновлением «на всякий случай», хотя случай как раз тот самый
  • Игнорирование предупреждений о несовместимости версий в описании обновления
  • Прямое редактирование файлов темы или плагина без выноса правок в отдельный модуль
  • Обновление боевого сайта в разгар рабочего дня, когда на нём активны посетители и заказы

Последний пункт особенно актуален для интернет-магазинов: даже короткий сбой в момент обновления может совпасть с оформлением заказа посетителем. Плановые работы разумнее проводить в часы минимальной посещаемости — обычно это раннее утро или ночь, в зависимости от аудитории сайта.

Итог

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

заявка

Остались вопросы?

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

Нажимая кнопку «Отправить заявку», вы соглашаетесь с политикой конфиденциальности и обработкой персональных данных.
contact.sh
# как с нами связаться
$ email   [email protected]
$ office  г. Омск, ул. Фрунзе, д. 40, офис 305
$ hours   пн–пт 10:00–19:00
# что будет после заявки
> ответим в рабочее время
> уточним задачу и пожелания
> пришлём смету и план работ
> начнём после согласования