Резервное копирование WordPress: как настроить бэкапы и не потерять сайт

Резервное копирование WordPress: как настроить бэкапы и не потерять сайт

Быстрый ответ: Резервное копирование (бэкап) WordPress — это создание копии файлов сайта и базы данных, чтобы восстановить сайт после взлома, сбоя хостинга или ошибки обновления. Сайт на WordPress состоит из двух частей: файлов (ядро, темы, плагины, картинки) и базы данных MySQL (записи, страницы, настройки) — копировать нужно обе. Для новичка самый простой путь — плагин UpdraftPlus: он настраивается за 5 минут, автоматически делает бэкапы по расписанию и сохраняет их в облако (Google Drive, Dropbox). Ручной способ — выгрузка дампа базы через phpMyAdmin и копирование файлов через FTP или файловый менеджер хостинга. Храните минимум две копии в разных местах (правило 3-2-1) и проверяйте восстановление заранее, а не в момент аварии.

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

Зачем нужны резервные копии WordPress

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

  • Взлом. Злоумышленник заливает вредоносный код, меняет файлы или удаляет контент. Чистый бэкап позволяет откатиться за несколько минут, а не разбирать сайт вручную.
  • Ошибка обновления. Обновление плагина, темы или ядра WordPress может уронить сайт из-за конфликта. Откат к последней рабочей копии — самый быстрый способ вернуть сайт в строй.
  • Сбой на стороне хостинга. Выход из строя диска, ошибка администратора, потеря сервера. Хостинг-провайдеры обычно не отвечают за ваши данные — только за работу оборудования.
  • Человеческая ошибка. Случайно удалённый плагин, правка functions.php с опечаткой, удаление записей из базы. По статистике, именно человеческий фактор — самая частая причина потери данных.

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

Из чего состоит сайт на WordPress: файлы и база данных

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

Компонент Где находится Что внутри Как копировать
Ядро WordPress корень сайта папки wp-admin, wp-includes, корневые файлы скачать файлы (FTP)
Плагины wp-content/plugins все установленные плагины скачать файлы
Темы wp-content/themes активная тема и дочерняя тема скачать файлы
Загрузки (медиа) wp-content/uploads картинки, документы, файлы скачать файлы
База данных MySQL записи, страницы, настройки, пользователи дамп SQL (phpMyAdmin / mysqldump)

Файл wp-config.php копировать тоже нужно: в нём лежат доступы к базе данных и уникальные ключи безопасности. При восстановлении на новый сервер его правят под новые данные доступа.

Отдельный нюанс — конфигурация. Если вы вносили правки в functions.php, style.css или .htaccess, они тоже должны попасть в бэкап. Плагины резервного копирования делают это автоматически, а вот при ручном копировании легко забыть про скрытые файлы вроде .htaccess.

Ручное резервное копирование: phpMyAdmin и файлы

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

Шаг 1. Дамп базы данных через phpMyAdmin. Зайдите в панель управления хостингом, откройте phpMyAdmin, выберите базу данных сайта, перейдите на вкладку «Экспорт», выберите формат SQL и нажмите «Вперёд». Скачанный файл .sql — это и есть дамп всех записей, страниц и настроек.

Если у вас есть доступ к серверу по SSH, то же самое делается одной командой:

mysqldump -u ИМЯ_ПОЛЬЗОВАТЕЛЯ -p ИМЯ_БАЗЫ > backup.sql

Для больших баз удобнее делать сжатый дамп, чтобы файл занимал меньше места:

mysqldump -u ИМЯ_ПОЛЬЗОВАТЕЛЯ -p ИМЯ_БАЗЫ | gzip > backup.sql.gz

Шаг 2. Скачивание файлов. Через FTP-клиент (FileZilla) или файловый менеджер хостинга скачайте всю папку сайта, включая wp-content и скрытые файлы. В FileZilla для этого включите отображение скрытых файлов: «Сервер → Принудительно показывать скрытые файлы».

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

Плагины для резервного копирования: сравнение

Плагины берут на себя всю рутину: делают бэкап по расписанию, складывают его в облако и позволяют восстановиться в один клик. Сравним самые популярные варианты:

Плагин Бесплатно Облака Расписание Восстановление Кому подходит
UpdraftPlus да Google Drive, Dropbox, S3, FTP да в один клик новичкам и всем
WPVivid да Google Drive, Dropbox, Amazon S3 да в один клик бюджетным проектам
Duplicator да Google Drive, Dropbox да через установщик переносу сайтов
All-in-One WP Migration до 512 МБ нет (платно) нет в один клик разовым миграциям
BackWPup да S3, Dropbox, FTP да вручную опытным пользователям

Для новичка оптимален UpdraftPlus: бесплатной версии достаточно для полного бэкапа, интерфейс простой, а восстановление занимает пару кликов. WPVivid — хорошая альтернатива с более щедрым бесплатным тарифом. Duplicator силён именно в миграции: он упаковывает сайт в один архив с установщиком.

Настройка UpdraftPlus по шагам

Разберём настройку на примере UpdraftPlus — как самый частый выбор новичков.

  • Установка. В админке перейдите в «Плагины → Добавить новый», найдите UpdraftPlus, установите и активируйте. Или скачайте архив с wordpress.org и загрузите вручную.
  • Расписание. В «Настройки → Резервные копии UpdraftPlus» задайте частоту: базу данных — ежедневно, файлы — раз в неделю. База меняется постоянно, файлы — реже, поэтому раздельное расписание экономит место и нагрузку.
  • Облако. Выберите удалённое хранилище (Google Drive, Dropbox) и пройдите авторизацию. Хранить бэкапы только на том же сервере — плохая идея: при аварии сервера вы потеряете и сайт, и его копию.
  • Количество копий. Укажите, сколько бэкапов хранить (например, 4 последних). Старые удаляются автоматически.
  • Тестовый запуск. Нажмите «Создать резервную копию сейчас» и убедитесь, что процесс завершается без ошибок, а файлы появляются в облаке.

После настройки бэкапы будут создаваться автоматически. Раз в пару месяцев проверяйте, что новые копии действительно появляются: расписания на wp-cron иногда «засыпают», если сайт никто не посещает.

Резервное копирование через WP-CLI

Если у вас есть доступ к серверу по SSH, WP-CLI — самый быстрый способ сделать и восстановить дамп базы. Команда экспорта:

wp db export /путь/к/бэкапу/backup-$(date +%F).sql

Импорт (восстановление) базы:

wp db import /путь/к/бэкапу/backup.sql

WP-CLI умеет и многое другое: обновлять ядро, плагины, искать и заменять данные. Такой подход часто используют разработчики, которые обслуживают сайты на VPS и не хотят ставить лишние плагины. Если тема WP-CLI вам незнакома, начните со статьи про REST API WordPress для новичков — она объясняет принципы работы с WordPress из командной строки и кода.

Кастомный бэкап кодом: cron и PHP-скрипт

Плагины — не единственный путь. Если вы пишете код и хотите полный контроль, бэкап базы данных можно повесить на встроенный планировщик wp-cron прямо в functions.php или в своём мини-плагине:

<?php
// Регистрируем ежедневный запуск бэкапа базы данных
add_action('wp', 'my_register_backup_cron');

function my_register_backup_cron() {
    if (!wp_next_scheduled('my_daily_db_backup')) {
        wp_schedule_event(time(), 'daily', 'my_daily_db_backup');
    }
}

// Сам бэкап: выгружаем все таблицы в SQL-файл
add_action('my_daily_db_backup', 'my_run_db_backup');

function my_run_db_backup() {
    global $wpdb;

    $tables = $wpdb->get_col('SHOW TABLES');
    $sql = '';

    foreach ($tables as $table) {
        $rows = $wpdb->get_results("SELECT * FROM `{$table}`", ARRAY_A);
        foreach ($rows as $row) {
            $values = array_map(function ($value) {
                return "'" . esc_sql($value) . "'";
            }, $row);
            $sql .= "INSERT INTO `{$table}` VALUES (" . implode(', ', $values) . ");\n";
        }
    }

    $dir = WP_CONTENT_DIR . '/backups';
    if (!is_dir($dir)) {
        mkdir($dir, 0755, true);
    }

    file_put_contents($dir . '/db-' . date('Y-m-d-His') . '.sql', $sql);
}
?>

Этот код раз в сутки создаёт SQL-дамп всех таблиц и кладёт его в wp-content/backups. Для продакшена добавьте ротацию (удаление старых копий) и перенос файла во внешнее хранилище — иначе бэкапы будут копиться и занимать место на диске.

Другой вариант для разработчиков — экспорт контента через REST API. Такой подход удобен, когда нужен не полный бэкап, а копия записей для переноса или анализа:

// Экспорт всех записей в JSON через REST API (Node.js)
const fs = require('fs');

async function backupPosts() {
  const res = await fetch('https://delai-sait.ru/wp-json/wp/v2/posts?per_page=100&_fields=id,title,slug,content,categories');
  const posts = await res.json();
  fs.writeFileSync('posts-backup.json', JSON.stringify(posts, null, 2));
  console.log('Сохранено записей:', posts.length);
}

backupPosts();

Такой экспорт не заменяет полный бэкап (он не сохранит настройки, медиафайлы и темы), но отлично дополняет его для версионирования контента.

Куда складывать бэкапы: правило 3-2-1

Главное правило резервного копирования называется 3-2-1 и работает для любых данных, не только для сайтов:

  • 3 копии данных — оригинал плюс два бэкапа.
  • 2 разных носителя — например, сервер и облако, или облако и локальный диск.
  • 1 копия вне основной площадки — в другом дата-центре, облаке или у вас на компьютере.

Для WordPress это означает: не храните единственный бэкап в папке сайта на том же сервере. Если сервер «умрёт», вы потеряете всё разом. Настройте плагин на отправку в Google Drive или Dropbox, а раз в месяц дополнительно скачивайте копию себе на компьютер.

Хорошая связка: автоматический ежедневный бэкап базы + еженедельный полный бэкап файлов в облако. Она закрывает большинство сценариев и почти не требует внимания.

Как восстановить сайт из резервной копии

Бэкап полезен ровно настолько, насколько легко из него восстановиться. Порядок действий зависит от способа создания копии.

Восстановление через UpdraftPlus. Установите свежий WordPress, активируйте UpdraftPlus, на вкладке «Существующие резервные копии» подключите то же облако и нажмите «Восстановить». Плагин сам загрузит архив, восстановит базу и файлы.

Восстановление вручную. Создайте новую базу данных в панели хостинга, импортируйте в неё дамп через phpMyAdmin (вкладка «Импорт») или командой:

mysql -u ИМЯ_ПОЛЬЗОВАТЕЛЯ -p НОВАЯ_БАЗА < backup.sql

Затем залейте файлы сайта по FTP, отредактируйте wp-config.php (имя базы, пользователь, пароль, хост) и проверьте, что сайт открывается.

Восстановление через WP-CLI. Если сервер уже настроен, достаточно одной команды wp db import, которую мы разобрали выше.

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

Частые вопросы

Как часто нужно делать резервные копии WordPress?

Базу данных — ежедневно, файлы — раз в неделю. Если на сайте каждый день появляется контент (интернет-магазин, блог), увеличьте частоту базы до двух раз в сутки. Для статичных сайтов-визиток достаточно еженедельного полного бэкапа.

Что важнее копировать — файлы или базу данных?

Обе части одинаково важны. В базе лежит весь контент (записи, страницы, настройки), а в файлах — тема, плагины и медиа. Бэкап только одной части не позволит полностью восстановить сайт.

Можно ли делать бэкап только через хостинг?

Можно, но не стоит полагаться только на него. Копии от хостинг-провайдера хранятся на том же сервере или в том же дата-центре и часто недоступны, когда сервер выходит из строя. Лучше дополнительно хранить свою копию в облаке.

Сколько места занимает резервная копия сайта?

Примерно столько же, сколько сам сайт: база обычно занимает от единиц до сотен мегабайт, основная масса — медиафайлы в uploads. Типовой сайт-визитка укладывается в 100–500 МБ, интернет-магазин с тысячами товаров — в несколько гигабайт.

Плагин бэкапа замедляет сайт?

При грамотной настройке — нет. Запускайте бэкап в часы минимальной нагрузки (ночью) и не делайте полный бэкап чаще, чем нужно. Если сайт уже тормозит, сначала разберитесь с кэшированием WordPress.

Что делать, если бэкап повреждён или не восстанавливается?

Проверьте целостность архива (откройте его на компьютере), попробуйте восстановить базу вручную через phpMyAdmin, а файлы — по FTP. Если дамп SQL обрезан, возможно, не хватило памяти при экспорте — увеличьте лимит в php.ini или используйте mysqldump по SSH.

TimeWeb

Вывод

Резервное копирование WordPress — это не опция, а обязательная часть эксплуатации сайта. Настройте автоматический бэкап один раз: ежедневный дамп базы данных и еженедельное копирование файлов в облако. Для новичка достаточно плагина UpdraftPlus, для разработчиков — WP-CLI или собственный скрипт на wp-cron. Храните копии по правилу 3-2-1 и периодически проверяйте восстановление. Тогда любая авария — взлом, сбой хостинга или ошибка обновления — превратится из катастрофы в мелкую неприятность на полчаса.

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

Clearfy

Поделиться:
Telegram ВКонтакте