Бэкапы WordPress на VPS стоит обсуждать не только как “делать копии”, а как управление риском простоя и потерей данных. Для этого полезны две величины: RPO (максимально допустимая потеря данных) и RTO (время, за которое вы готовы восстановиться).
Если ваша торговая витрина обновляется раз в неделю, а блог ведётся ежедневно, то одинаковая частота бэкапов будет либо избыточной, либо недостаточной. Когда вы определяете RPO, вы фактически выбираете частоту бэкапов. Когда определяете RTO, вы выбираете, как быстро будет проходить восстановление и где будут лежать копии.
—
Частота бэкапов: как выбрать расписание под ваш WordPress
Частота бэкапов зависит от двух факторов: как часто меняются данные и насколько критичны эти изменения. В WordPress это обычно публикации (контент), файлы в wp-content/uploads, настройки в админке и код тем/плагинов.
На практике удобно разделять бэкапы файлов и базы данных, потому что они меняются по-разному. База часто обновляется чаще (комментарии, сессии, иногда формы), а медиафайлы обычно растут “волнами” (сессии загрузки, маркетинговые кампании).
Файлы и база: разные частоты и разные способы
Типовой подход такой:
- Файлы: бэкапировать wp-content чаще, чем темы/плагины, потому что uploads увеличиваются регулярно.
- База данных: бэкапировать чаще, чем “железо” WordPress, потому что записи и метаданные меняются непрерывно.
Если вы используете автообновления WordPress или регулярно ставите плагины, частота бэкапов должна учитывать не только контент, но и изменения кода. Иначе вы можете откатить сайт до состояния “до установки”, но не до “после”.
Ориентиры по расписанию: от минимального до безопасного
Универсальной таблицы “делайте каждый час” не существует, потому что риски разные. Но можно использовать рабочие ориентиры, отталкиваясь от RPO и характера обновлений.
Начальный, часто разумный уровень для большинства небольших проектов:
- Один бэкап в сутки для базы и файлов.
- Дополнительные копии перед любыми изменениями: обновления ядра/плагинов, миграции, смена темы, изменение структуры.
- Отдельно хранить последние версии файлов, чтобы откатить не только записи в базе, но и медиа/настройки.
Более “плотный” режим, когда сайт активно обновляется и ошибка обходится дорого:
- Учащённые копии базы (например, с интервалами в несколько часов), плюс ежедневная полная копия.
- Ротация по принципу “свежие часто, старые реже”, чтобы хранилище не росло бесконечно.
- Дублирование хранения вне VPS, чтобы один отказ не “съел” и бэкап тоже.
Если у вас есть только один правильный способ выбрать частоту, то он такой: попробуйте восстановить сайт до нужного момента. Если вы понимаете, что RPO вас не устраивает, частоту нужно увеличивать, а если восстановление занимает слишком много времени, то дело уже в RTO и организации процесса.
События, когда бэкап нужен вне расписания
Помимо регулярного графика WordPress бэкапы на VPS обязательно нужны перед событиями с высоким риском отката:
- Обновление WordPress, тем или плагинов.
- Изменение структуры БД: создание новых таблиц, миграции, правки схемы через плагин/код.
- Переключение домена, изменения URL, перенос сайта.
- Подключение крупных интеграций (CRM, формы, платежи) с миграциями настроек.
- Любые действия с wp-config.php (провайдеры иногда добавляют ключи, меняют префиксы, настройки кеша).
Хорошая практика: перед изменениями делайте “точку восстановления” и проверяйте, что копия реально создаётся и доступна.
—
Что именно бэкапить на WordPress: файлы, база и конфиги
Чтобы восстановление было рабочим, бэкап должен содержать не “что-то из WordPress”, а полный набор зависимостей. И главное: восстановление должно приводить к консистентному состоянию, где код, настройки и контент совпадают по версии и структуре.
Какие файлы важны
Для WordPress на VPS обычно критичны:
- wp-content (включая uploads, темы, плагины, загружаемые файлы)
- wp-config.php (настройки подключения к БД и некоторые ключи)
- Файлы ядра WordPress (если вы не восстанавливаете их отдельно чистой установкой)
- .htaccess (актуально для Apache; для Nginx обычно другие правила)
- При необходимости: каталоги с кастомными MU-плагинами, дополнительные конфиги веб-сервера, если вы держите их в той же системе
Частая ошибка — исключать “неважные” папки. В реальности в wp-content/uploads лежит большая часть того, ради чего сайт существует: изображения, документы, вложения. Если их потерять, восстановление будет выглядеть формально правильным, но контент — частично пустым.
Ещё одна ошибка — бэкапить только изменения в uploads, а темы/плагины не откатывать. Тогда после восстановления могут “не завестись” пользовательские формы или логика, если код и настройки разъехались.
Как бэкапить базу данных корректно
База данных — центр WordPress. В бэкапе должны быть:
- все таблицы WordPress (включая префиксы)
- корректная структура и данные
- возможность восстановить именно в ту схему, которую ожидает ваш wp-config.php
При создании дампа важно обеспечить целостность. Для MySQL/MariaDB обычно используют логический подход “с одной транзакцией” или аналогичные режимы согласованности, чтобы дамп не собирал данные “в процессе изменения”.
Если вы используете инструментальные решения (скрипты, mysqldump, WP-CLI или специализированные утилиты), цель одна: получить восстанавливаемую копию без “битых” таблиц.
Нужны ли снимки диска VPS и когда
Снимок диска VPS (snapshot) может быть удобен как “быстрая точка отката”. Он полезен, когда вам важно вернуть весь сервер целиком: ОС, веб-сервер, настройки, зависимости, файлы.
Но есть ограничения:
- Восстановление может быть медленнее, если нужен только WordPress.
- Снимок может включить мусор: логи, временные файлы, кэш.
- При переносе на другой VPS snapshot не всегда даёт простую переносимость.
Практичный вариант — использовать дисковые снимки как “страховку перед крупными работами”, а WordPress бэкапы делать отдельно, чтобы восстанавливать сайт на другую инфраструктуру без привязки к конкретному серверу.
—
Хранение бэкапов: где держать копии и как защититься
Хранение бэкапов часто решает исход восстановления сильнее, чем частота. Если копии лежат только на том же VPS, где случилась проблема, то вы фактически делаете бэкап “для галочки”.
Минимально разумная стратегия — иметь копии в двух независимых местах. Одно — на вашей системе, второе — вне неё.
Практическое правило: несколько копий в разных местах
Обычно используют идею, близкую к “три копии в двух типах хранилищ”: оригинальные данные, бэкап на одном ресурсе и бэкап на другом. В случае WordPress это может выглядеть так:
- Копии на диске VPS для быстрого восстановления.
- Копии в объектном хранилище (S3-совместимое) или на внешний сервер по SFTP.
- Отдельно держать архивы, которые нельзя случайно перезаписать.
Важно не только куда вы кладёте данные, но и что именно можно случайно удалить. Бэкап, который можно перетереть той же автоматизацией, не защищает от ошибок сценариев и рутинных “сбросов”.
Шифрование и контроль доступа
Архивы с WordPress часто содержат чувствительные данные: дамп БД с таблицами пользователей, хэши, настройки, иногда токены интеграций. Значит, хранение должно быть защищённым.
Практические шаги:
- Храните дампы и архивы в зашифрованном виде (на уровне утилиты или внешним шифрованием).
- Используйте отдельные учётки и минимальные права для бэкап-агента.
- Ограничивайте доступ к хранилищу по IP или через отдельные ключи.
- Не храните ключи в открытом виде в репозиториях и в “мире доступного текста”.
Если вы отправляете бэкап по сети, следите за проверкой целостности и протоколом передачи. Ошибки сети случаются, а файлы “с нулём размера” иногда выглядят как “успешно отправилось”, если не проверять результат.
Ротация: сколько держать копий и как не взорвать место
Ротация нужна, чтобы хранение не становилось бесконечным. Схема часто выглядит как “старые копии реже”, а “свежие чаще”.
Рабочая стартовая модель для многих проектов:
- Ежедневные копии: держать несколько дней/недель.
- Еженедельные: несколько месяцев.
- Ежемесячные: год или дольше, если объём и бюджет позволяют.
Цифры подбирайте по тому, как часто вы действительно хотите откатиться. Если вам нужен откат “в пределах недели”, тогда длительная история может оказаться избыточной.
Отдельная настройка — ротация “по событию”. Если вы делали крупную миграцию, храните точку восстановления дольше обычного графика, потому что она может понадобиться, когда вы уже “забыли”, что было до изменений.
Метаданные бэкапов: чтобы восстановление было предсказуемым
Почти всегда забывают про метаданные. А потом восстановление превращается в ручной квест: какой архив подходит, какая версия WordPress, какая дата, какой набор файлов.
Соберите минимум информации:
- Дата и время создания
- Тип: full/diff/incremental (если применимо)
- Версия WordPress и список критичных компонентов (плагины, темы) хотя бы текстом/логом
- Идентификатор задания (job id) и статус
- Размеры архива и дампа
Если вы храните всё в объектном хранилище, делайте понятный шаблон имен файлов и каталогов. Это ускорит поиск нужной копии в стресс-ситуации.
—
Проверка восстановления WordPress: как тестировать бэкапы, а не верить логам
Бэкап, который “успешно создался”, может быть не тем, что вы сможете восстановить. Поэтому проверка восстановления — обязательная часть стратегии, иначе вы рискуете обнаружить проблему только тогда, когда она уже реальна.
Проверка должна отвечать на два вопроса:
- Архив и дамп действительно рабочие (целостность).
- Восстановление приводит к функционирующему сайту (прикладная проверка WordPress).
Тест на staging/песочнице: регулярный и воспроизводимый
Самый практичный вариант — разворачивать восстановление на отдельном окружении:
- отдельный тестовый VPS или контейнер
- staging-домен (если он есть)
- локально, если масштаб позволяет
Процесс должен быть воспроизводимым: вы берёте архив, разворачиваете WordPress, подключаете БД, проверяете сайт и админку.
Рекомендуемая периодичность зависит от критичности. Для сайтов с регулярными обновлениями имеет смысл проверять чаще. Если изменения редкие, проверка всё равно должна быть регулярной, но можно ограничиться более редким циклом при условии, что тест каждый раз доведён до конца.
Важно: тестируйте не “самый старый архив раз в год”, а “архив из недавнего периода”, потому что именно свежие изменения чаще ломают совместимость.
Что именно проверять после восстановления
После восстановления убедитесь, что WordPress не только “поднялся”, но и выполняет ключевые сценарии:
- Главная страница и несколько типовых страниц (статьи/категории/контакты)
- Админка: логин, базовые действия (например, публикация черновика)
- Медиа: загрузка изображения не нужна в тесте, но проверьте, что существующие изображения отображаются
- Плагины: хотя бы те, что отвечают за формы, SEO, кеш, оплату, импорт/экспорт
- Настройки: проверка wp-config.php (коннект к БД, ключи), корректность URL при необходимости
Частая ошибка при восстановлении на staging — неверный URL. Если домены отличаются, медиа и ссылки могут вести не туда. В WordPress обычно это решают поиском/заменой URL в базе или настройкой переменных окружения, но лучше иметь готовую процедуру под ваш сценарий.
Автоматизация проверки: как сделать её устойчивой
Ручная проверка полезна, но она может быть непоследовательной. Автоматизируйте хотя бы техническую часть:
- Проверка целостности архива (хэш/размер и контроль ошибки распаковки)
- Проверка, что дамп БД импортируется без ошибок
- Поднятие сайта и проверка доступности HTTP/HTTPS
- Простейшая проверка страниц через HTTP-запрос (например, статус-коды и наличие ожидаемого HTML)
При этом не пытайтесь заменить человеческую проверку полностью: плагины иногда могут выглядеть “живыми” технически, но ломаться по логике.
Типичные сбои, которые выявляет проверка
Проверка восстановления обычно вскрывает одни и те же проблемы:
- В архиве отсутствует часть wp-content из-за неверных исключений (например, исключили uploads).
- Дамп БД импортируется с ошибками из-за неверных прав пользователя или кодировки.
- Восстановление работает, но сайт возвращает 500 из-за конфликтов прав на файлы или неверного веб-сервера.
- Восстановление поднимает сайт, но ссылки на медиа ведут на старый домен.
- Восстановление возможно, но слишком долго: копирование огромных архивов и отсутствие “прямых” путей разворачивания.
Когда вы находите такие проблемы, фиксируйте не только “что сломалось”, но и где была причина: в скрипте бэкапа, в фильтрах, в хранении, в параметрах восстановления.
—
Практический сценарий: бэкап и восстановление WordPress на VPS по шагам
Ниже — схема, которую можно адаптировать под вашу инфраструктуру. Она не зависит от конкретного плагина, а фокусируется на порядке действий: что подготовить заранее и как действовать при восстановлении.
Подготовка: минимальный набор регламентов
Перед тем как случится инцидент, подготовьте:
- Каталог/контейнер для бэкапов с понятной структурой имен
- Отдельного пользователя для чтения БД (или хотя бы ограниченного доступа)
- Шаблон процедуры восстановления на тестовый сервер
- Документ “что бэкапим” и “что исключаем” (в виде списка путей)
Также проверьте права доступа: если бэкап создаётся от пользователя без прав на чтение файлов, итоговый архив может быть “неполным”. Это редко проявляется сразу.
Создание бэкапа: последовательность, которая уменьшает риск
Условная последовательность:
- Зафиксировать состояние или обеспечить консистентность дампа БД.
- Создать дамп базы.
- Создать архив файлов WordPress (как минимум wp-content, wp-config.php, опционально ядро).
- Сжать и зашифровать архивы (если предусмотрено вашей политикой).
- Передать копии во внешнее хранилище.
- Проверить статус задания и наличие файлов нужного размера/проверки целостности.
Важно: “архив создан” и “архив дошёл до хранилища” — разные события. Если у вас нет проверки выгрузки, вы можете получить красивый лог на VPS и пустоту в удалённом месте.
Восстановление: шаги, которые экономят часы
Процедура восстановления на новый VPS или staging обычно такая:
- Поднять веб-сервер и нужные runtime/зависимости.
- Разместить файлы WordPress в нужной директории.
- Создать базу данных и импортировать дамп.
- Настроить wp-config.php (хост, имя БД, логин/пароль, префикс таблиц если он отличается).
- Проверить сайт в браузере и базовые сценарии в админке.
Если вы восстанавливаете на другой домен, подготовьте шаг с заменой URL в базе. Делайте это аккуратно: изменения могут затронуть сериализованные данные, если вы используете некорректные инструменты. Лучше применять проверенный метод для WordPress, который учитывает сериализацию.
Проверка после восстановления: быстрый и медленный контуры
Хорошая практика — два уровня проверки:
- Быстрая: доступность страниц, статус-коды, наличие изображений по паре ссылок, вход в админку.
- Полная: проверка работоспособности ключевых плагинов и сценариев (формы, отправка, загрузка файлов, платежи если они есть, SEO-плагины).
Если у вас есть RTO в требованиях, быстрая проверка должна занимать минимум времени. А полная — выполняться по расписанию или при подозрениях на проблему.
—
Удобная стратегия на практике: частота, хранение и проверка как единая система
Когда вы объединяете три элемента — частоту, хранение и проверку — вы получаете предсказуемую систему восстановления. Разрозненные бэкапы без тестов превращаются в “архивы на случай”, которые редко помогают в реальной работе.
Если сформулировать стратегию в виде принципов:
- Частота выбирается из RPO и характера обновлений.
- Хранение строится так, чтобы отказ VPS не уничтожил копии.
- Проверка восстановления должна подтверждать не только создание файлов, но и успешное поднятие WordPress.
—
Итог: как организовать бэкапы WordPress на VPS без сюрпризов
Бэкапы WordPress на VPS должны быть спланированы как процесс, а не как разовая настройка. Начните с определения RPO и RTO: так вы поймёте, насколько часто делать копии и как быстро их восстанавливать. Затем закрепите состав бэкапа: файлы (в первую очередь wp-content и нужные конфиги) и базу данных в консистентном виде.
После этого выстроите хранение: минимум две независимые локации, защита доступа и понятная ротация. И обязательно добавьте проверку восстановления — регулярно тестируйте восстановление на staging и фиксируйте найденные проблемы в скриптах и регламентах.
Если вы сегодня ещё не тестировали восстановление хотя бы на копии окружения, начните с ближайшего “окна” и проведите один полный тест. Это самый быстрый способ понять, что именно нужно поправить в вашей текущей схеме.

