Обновлять систему управления и расширения приходится всем: в старых версиях находят уязвимости, и закрывают их только новыми выпусками. Сломать сайт обновлением тоже легко. Безопасный порядок выглядит так: полная копия, проверка совместимости, обновление на тестовой копии, сверка и только потом рабочий сайт. Ниже шаги с пояснениями и ошибки, из-за которых плановое обновление превращается в ночь восстановления.
Что понадобится и от чего зависит риск
Сайт на готовой системе управления состоит из трёх слоёв. Ядро движка отвечает за страницы, пользователей и базу данных. Расширения, их называют модулями, плагинами или компонентами, добавляют формы, галереи, карту сайта и всё остальное. Шаблон задаёт внешний вид. Обновляются все три слоя, причём каждый своим графиком, и чаще всего ломается не ядро, а место их стыка.
Риск зависит от масштаба обновления. Небольшие выпуски внутри одной ветки обычно исправляют ошибки и закрывают уязвимости, их ставят без долгих раздумий. Переход на новую ветку похож на переезд: меняются внутренние механизмы, часть расширений перестаёт работать, шаблон нередко приходится заменить. Отдельная история связана с версией PHP на хостинге. Новые выпуски движка требуют свежую версию, а старые расширения на ней отказываются запускаться. Перед крупным обновлением прочитайте список изменений выпуска: разработчики движка перечисляют в нём, что убрали и что теперь работает иначе.
Для работы понадобятся:
- доступ к хостингу через файловый менеджер или SFTP;
- доступ к базе данных и к админке сайта;
- свободное место для резервной копии на сервере и на вашем компьютере;
- поддомен или отдельная папка для тестовой копии;
- список установленных расширений с их версиями.
Резервная копия всегда включает и файлы, и базу данных. Файлы без базы бесполезны: тексты, настройки и пользователи хранятся именно в ней.
Порядок обновления: шесть шагов
- Сделайте полную копию. Сохраните файлы и базу и скачайте архив к себе, чтобы единственный экземпляр не лежал на том же сервере.
- Проверьте совместимость. У каждого расширения посмотрите, поддерживает ли оно новую версию движка и PHP. Для заброшенных дополнений заранее найдите замену.
- Запишите, что нельзя потерять. Обновление может поменять шаблон, а с ним заголовки и даже адреса страниц. Поэтому заранее выгрузите из счётчика посещаемости страницы, на которые приходят посетители из поиска, и сохраните их заголовки. Интервью, в котором специалист по SEO разбирает обновление старого бесплатного движка до новой ветки, доступно по ссылке: начинать он советует с бэкапа и такого списка адресов, а после переезда проходить по каждому из них. Привычка выглядит занудной, зато пропавшая страница находится в тот же день, а не через месяц по просевшей посещаемости.
- Обновите тестовую копию. Разверните сайт на поддомене, закройте его от индексации и обновляйте по порядку: ядро, расширения, шаблон. Если что-то сломается, пострадает только тестовая копия.
- Сверьте результат. Отправьте каждую форму, пройдите по списку из третьего шага, откройте сайт с телефона и загляните в журнал ошибок сервера.
- Повторите на рабочем сайте. Выберите время, когда посетителей меньше всего, а после обновления несколько дней следите за ошибками 404 и журналом.
Ошибки, после которых сайт приходится поднимать из копии
Большинство неудачных обновлений повторяют одни и те же сценарии:
- Всё сразу одной кнопкой. Ядро, все расширения и шаблон обновлены разом на рабочем сайте, и уже не понять, что именно сломало страницу.
- Копия без базы или рядом с сайтом. При сбое сервера пропадает и сайт, и его резервная копия.
- Непроверенная копия. Архив оказывается повреждённым ровно в тот момент, когда он нужен. Разверните его хотя бы раз на тестовом поддомене.
- Открытая тестовая версия. Поисковик находит второй экземпляр сайта и начинает считать его копией основного.
- Удалённое «лишнее» расширение. Иногда именно оно отвечало за перенаправления или карту сайта, и после чистки старые адреса начинают отдавать ошибку.
- Обновление в пятницу вечером. Если что-то пойдёт не так, разбираться придётся в выходные, когда разработчик недоступен.
Признак удачного обновления простой: формы работают, страницы из списка открываются с прежними заголовками, а в журнале сервера не появилось новых ошибок. Если хотя бы один пункт не выполняется, сначала разберитесь с ним на тестовой копии.
Скучный порядок экономит выходные
Обновление без поломок держится на привычках, а не на удаче. Полная копия, список важных страниц, тестовый поддомен и проверка по пунктам занимают вечер. Восстановление сайта после неудачного обновления может занять гораздо больше времени и стоить посетителей, которые за это время ушли к другим. Поэтому каждое крупное обновление начинайте с копии и проверки, даже если выпуск кажется мелким.

