Как создать автоматические бэкапы в WordPress

Зачем нужны автоматические бэкапы WordPress

Резервное копирование сайта — это неотъемлемая часть любых работ с WordPress-сайтами. Непредвиденные ситуации, включая сбои хостинга, ошибки при обновлениях, атаки злоумышленников или случайное удаление данных, могут привести к потере контента и настроек. Автоматические бэкапы позволяют своевременно сохранять актуальную копию сайта без участия администратора, что значительно снижает риски потери данных.

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

Выбор плагина для автоматического бэкапа WordPress

Рынок плагинов для резервного копирования WordPress достаточно широк. Из наиболее надёжных и популярных выделяются:

  • UpdraftPlus — один из самых известных плагинов с поддержкой облачных хранилищ Google Drive, Dropbox, Amazon S3 и других. Позволяет настраивать расписание и восстанавливать бэкапы в один клик.
  • BackWPup — мощный инструмент, который поддерживает различные форматы архивации и интеграцию с внешними сервисами.
  • WPvivid Backup — простой в использовании плагин с возможностью создавать бэкапы и мигрировать сайт.

Выбор зависит от ваших требований к функционалу и удобству. Ниже на примере UpdraftPlus разберём, как настроить автоматическое создание бэкапов.

Настройка UpdraftPlus для автоматических бэкапов

После установки и активации плагина перейдите в Настройки > UpdraftPlus Backups. В разделе «Настройка расписания» выберите частоту создания резервных копий для файлов и базы данных. Для большинства сайтов оптимально делать бэкап базы данных каждые 4 часа, а файлов — ежедневно.

Далее выберите удалённое хранилище, например Google Drive, и выполните авторизацию для сохранения бэкапов вне сервера. Это защитит данные в случае выхода из строя хостинга.

После настройки нажмите «Сохранить изменения» и «Создать резервную копию сейчас», чтобы проверить работу плагина. Автоматически созданные копии будут появляться в списке, где их можно скачать или восстановить.

Как создать собственный механизм автоматического бэкапа через код

Если вы хотите более гибко управлять процессом резервного копирования или не хотите использовать плагин, можно написать кастомное решение с использованием WP Cron.

Ниже приведён пример функции wpabout_create_backup, которая создаёт архив базы данных и файлов сайта, а затем сохраняет его в заданную директорию.

function wpabout_create_backup() {
    global $wpdb;
    $backup_dir = wp_upload_dir()['basedir'] . '/wpabout_backups';
    if ( ! file_exists( $backup_dir ) ) {
        wp_mkdir_p( $backup_dir );
    }

    // Создаём дамп базы данных
    $db_name = DB_NAME;
    $db_user = DB_USER;
    $db_password = DB_PASSWORD;
    $db_host = DB_HOST;
    $dump_file = $backup_dir . '/db_backup_' . date('Y-m-d_H-i-s') . '.sql';

    $command = "mysqldump --user={$db_user} --password={$db_password} --host={$db_host} {$db_name} > {$dump_file}";
    system($command, $output);

    // Создаём архив файлов wp-content
    $zip_file = $backup_dir . '/files_backup_' . date('Y-m-d_H-i-s') . '.zip';
    $zip = new ZipArchive();
    if ( $zip->open( $zip_file, ZipArchive::CREATE ) === TRUE ) {
        $rootPath = realpath( WP_CONTENT_DIR );
        $files = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($rootPath), RecursiveIteratorIterator::LEAVES_ONLY
        );
        foreach ($files as $name => $file) {
            if (!$file->isDir()) {
                $filePath = $file->getRealPath();
                $relativePath = substr($filePath, strlen($rootPath) + 1);
                $zip->addFile($filePath, $relativePath);
            }
        }
        $zip->close();
    }
}

// Регистрируем WP Cron событие для ежедневного бэкапа
if ( ! wp_next_scheduled( 'wpabout_daily_backup' ) ) {
    wp_schedule_event( time(), 'daily', 'wpabout_daily_backup' );
}

add_action( 'wpabout_daily_backup', 'wpabout_create_backup' );

Этот код создаёт дамп базы данных с помощью mysqldump и архивирует папку wp-content. Затем он регистрирует ежедневное событие в WP Cron, которое запускает бэкап автоматически.

Обратите внимание, что для работы mysqldump должен быть доступен на сервере, а права на запись в папку бэкапов должны быть корректно настроены.

Как проверить и восстановить бэкапы

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

Для восстановления базы данных из дампа можно использовать команду:

mysql -u username -p database_name &lt db_backup.sql

При восстановлении файлов — просто распакуйте архив в нужную директорию.

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

Полезные советы по организации резервного копирования WordPress

  • Настраивайте частоту бэкапов в зависимости от частоты обновлений сайта. Для активных проектов лучше делать копии чаще.
  • Храните не менее 2-3 последних бэкапов, чтобы иметь возможность откатиться к нужной версии.
  • Регулярно проверяйте возможность восстановления из бэкапа — это важный этап, который часто игнорируют.
  • Используйте автоматическую отправку бэкапов на облачные хранилища для дополнительной безопасности.
  • Если вы разрабатываете кастомное решение, учитывайте нагрузку на сервер при создании бэкапов, особенно на больших сайтах.
Как установить приватный режим для страниц WordPress
14.04.2026
Отключение комментариев в REST API WordPress: пошаговое руководство
27.01.2026
Как использовать WP-Cron для автоматизации задач в WordPress
08.12.2025
Как автоматически изменять ALT и TITLE картинок в WordPress
03.04.2026
Как автоматизировать назначение изображений в WordPress
19.12.2025