Как создать автоматический бэкап WordPress: практическое руководство

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

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

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

Автоматический бэкап поможет:

  • Сохранить базу данных и файлы сайта без вашего участия.
  • Быстро восстановить сайт в случае ошибки обновления или взлома.
  • Обеспечить регулярность и надёжность резервных копий.

Далее рассмотрим лучшие практики и инструменты для автоматизации резервного копирования WordPress.

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

UpdraftPlus — универсальное решение для автоматических резервных копий

UpdraftPlus — один из самых популярных и надёжных плагинов для бэкапа WordPress. Он умеет создавать копии базы данных, файлов темы и плагинов, отправлять бэкапы на облачные хранилища (Google Drive, Dropbox, Amazon S3 и др.).

Основные возможности:

  • Настройка расписания бэкапов (ежедневно, еженедельно и др.).
  • Возможность выбирать, что именно сохранять — базу данных, файлы или всё вместе.
  • Автоматическое удаление старых резервных копий.
  • Лёгкое восстановление сайта из бэкапа в несколько кликов.

Для настройки:

  1. Установите и активируйте плагин через панель WordPress.
  2. В разделе Настройки > UpdraftPlus Backup выберите расписание и место хранения копий.
  3. Сохраните настройки и создайте первый бэкап вручную для проверки.

BackWPup — ещё один мощный инструмент для резервного копирования

BackWPup позволяет создавать полные копии сайта и отправлять их на FTP, Dropbox, S3, Microsoft Azure и др. Есть возможность запускать бэкап по расписанию и проверять целостность копий.

Плагин удобен для тех, кто ищет гибкие настройки и интеграцию с разными сервисами.

Настройка похожа на UpdraftPlus: выбираете задачи, расписание, место хранения и сохраняете.

Создание собственного автоматического бэкапа WordPress с помощью кода

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

Основная идея и подготовка

Для резервного копирования нужно сохранить базу данных и важные файлы сайта — wp-content, wp-config.php, .htaccess и другие.

В примере ниже мы создадим функцию, которая экспортирует базу данных в SQL-файл и архивирует папку с файлами в ZIP.

Пример функции автоматического бэкапа в WordPress (wp1_backup_create)

function wp1_backup_create() {
    global $wpdb;
    $upload_dir = wp_upload_dir();
    $backup_dir = $upload_dir['basedir'] . '/wp1_backups';

    if (!file_exists($backup_dir)) {
        wp_mkdir_p($backup_dir);
    }

    // Имя файла с датой
    $date = date('Y-m-d_H-i-s');
    $db_file = $backup_dir . '/db_backup_' . $date . '.sql';
    $zip_file = $backup_dir . '/files_backup_' . $date . '.zip';

    // Экспорт базы данных
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    $sql_dump = '';
    foreach ($tables as $table) {
        $table_name = $table[0];
        $create_table = $wpdb->get_row("SHOW CREATE TABLE $table_name", ARRAY_N);
        $sql_dump .= "DROP TABLE IF EXISTS `$table_name`;\n";
        $sql_dump .= $create_table[1] . ";\n\n";

        $rows = $wpdb->get_results("SELECT * FROM $table_name", ARRAY_A);
        foreach ($rows as $row) {
            $values = array_map(function($value) use ($wpdb) {
                return isset($value) ? "'" . esc_sql($value) . "'" : 'NULL';
            }, array_values($row));
            $sql_dump .= "INSERT INTO `$table_name` VALUES (" . implode(',', $values) . ");\n";
        }
        $sql_dump .= "\n";
    }

    file_put_contents($db_file, $sql_dump);

    // Архивирование wp-content
    $zip = new ZipArchive();
    if ($zip->open($zip_file, ZipArchive::CREATE) === TRUE) {
        $content_dir = ABSPATH . 'wp-content/';
        $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($content_dir));
        foreach ($files as $file) {
            if (!$file->isDir()) {
                $filePath = $file->getRealPath();
                $relativePath = substr($filePath, strlen($content_dir));
                $zip->addFile($filePath, $relativePath);
            }
        }
        $zip->close();
    }

    // Можно добавить отправку бэкапов на email или облако
}

// Запускаем бэкап раз в сутки
add_action('wp1_daily_backup_event', 'wp1_backup_create');

if (!wp_next_scheduled('wp1_daily_backup_event')) {
    wp_schedule_event(time(), 'daily', 'wp1_daily_backup_event');
}

Данный код создаёт SQL-дамп базы данных и архивирует папку wp-content, сохраняя файлы в папке uploads/wp1_backups. Чтобы настроить отправку файлов на email или в облако, можно расширить функцию с использованием соответствующих API.

Настройка системного cron для запуска бэкапа

WP-Cron зависит от посещаемости сайта и может быть не всегда надёжным. Для стабильной работы бэкапа лучше настроить системный cron на сервере.

Для этого можно создать PHP-скрипт с функцией бэкапа и вызывать его через команду:

wget -q -O - https://wp-1.ru/wp-content/themes/your-theme/backup-script.php >/dev/null 2>&1

Или использовать WP-CLI:

wp cron event run wp1_daily_backup_event

Это позволит запускать резервное копирование в строго заданное время без зависимости от посетителей.

Рекомендации и советы по автоматическим бэкапам WordPress

  • Храните резервные копии на удалённых серверах или облачных хранилищах, чтобы избежать потери данных при проблемах с сервером.
  • Регулярно проверяйте работоспособность бэкапов, восстанавливая тестовый сайт из копий.
  • Очищайте старые бэкапы, чтобы не занимать лишнее место на диске.
  • Используйте шифрование и защиту доступа к архивам с резервными копиями.
Использование WP-Cron для автоматических задач в WordPress
20.04.2026
Как удалить удалённые медиафайлы из библиотеки WordPress
04.01.2026
Как удалить неиспользуемые метаключи в WordPress
20.01.2026
Как отключить AJAX WooCommerce на отдельных страницах WordPress
22.05.2026
Как установить ограничение на число публикаций в WordPress для конкретного пользователя
21.02.2026