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

Автоматическое создание резервных копий (бэкапов) — одна из важнейших задач любого сайта на WordPress. Даже при регулярных обновлениях и оптимизации без сохранения копий данных можно потерять весь контент и настроечные файлы в случае сбоя, взлома или ошибки. В этой статье мы рассмотрим, как настроить автоматический бэкап WordPress с помощью кода и популярных плагинов, а также дадим практические советы по хранению и восстановлению резервных копий.

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

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

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

  • Защита от потери данных при сбоях хостинга.
  • Возможность отката после ошибок обновления плагинов или темы.
  • Защита от взлома и вредоносного ПО.
  • Удобство миграции сайта на другой сервер.

Настройка автоматического бэкапа с помощью плагинов

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

Среди множества плагинов выделяются несколько, которые популярны и проверены временем:

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

Рассмотрим пример настройки UpdraftPlus для автоматического бэкапа:

  1. Установите и активируйте плагин через админ-панель WordPress.
  2. Перейдите в Настройки > UpdraftPlus Backups.
  3. Выберите расписание для бэкапа файлов и базы данных — рекомендуем минимум раз в сутки.
  4. Настройте удаленное хранилище, например, Google Drive, чтобы не хранить копии на сервере.
  5. Сохраните изменения и вручную сделайте первый бэкап для проверки.

Этого достаточно для надежного регулярного создания резервных копий.

Автоматизация через WP-Cron с помощью плагинов

У большинства плагинов есть собственный механизм планирования задач на базе WP-Cron. Это значит, что плагин сам запускает процесс бэкапа по расписанию.

Важно, чтобы на сайте был активен WP-Cron и не блокировался хостингом. Если планировщик не работает, можно настроить системный cron для вызова WP-Cron по URL.

Создание простого автобэкапа с помощью кода в functions.php

Пример функции для резервного копирования базы данных

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

function wpco_backup_database() {
    global $wpdb;
    $tables = $wpdb->get_results('SHOW TABLES', ARRAY_N);
    $sql = "";
    foreach ($tables as $table) {
        $table_name = $table[0];
        $create_table = $wpdb->get_row("SHOW CREATE TABLE `$table_name`", ARRAY_N);
        $sql .= "\n\n" . $create_table[1] . ";\n\n";

        $rows = $wpdb->get_results("SELECT * FROM `$table_name`", ARRAY_A);
        foreach ($rows as $row) {
            $vals = array_map('esc_sql', array_values($row));
            $vals = array_map(function($v) { return "'" . addslashes($v) . "'"; }, $vals);
            $sql .= "INSERT INTO `$table_name` VALUES(" . implode(",", $vals) . ");\n";
        }
    }

    $upload_dir = wp_upload_dir();
    $backup_dir = $upload_dir['basedir'] . '/wpco-backups';
    if (!file_exists($backup_dir)) {
        wp_mkdir_p($backup_dir);
    }
    $filename = $backup_dir . '/backup-' . date('Y-m-d-H-i-s') . '.sql';
    file_put_contents($filename, $sql);
}

// Запускаем функцию ежедневно через WP-Cron
if (!wp_next_scheduled('wpco_daily_backup')) {
    wp_schedule_event(time(), 'daily', 'wpco_daily_backup');
}
add_action('wpco_daily_backup', 'wpco_backup_database');

Этот код создаст SQL дамп базы данных и сохранит его в папку uploads/wpco-backups с отметкой времени. Для полного бэкапа стоит дополнить копированием файлов сайта.

Автоматическая очистка старых бэкапов

Чтобы не переполнять диск, можно добавить функцию удаления файлов старше определённого срока, например, 7 дней:

function wpco_cleanup_old_backups() {
    $upload_dir = wp_upload_dir();
    $backup_dir = $upload_dir['basedir'] . '/wpco-backups';
    if (!file_exists($backup_dir)) return;

    $files = glob($backup_dir . '/backup-*.sql');
    $now = time();
    foreach ($files as $file) {
        if ($now - filemtime($file) > 7 * DAY_IN_SECONDS) {
            unlink($file);
        }
    }
}
add_action('wpco_daily_backup', 'wpco_cleanup_old_backups');

Хранение и безопасность резервных копий

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

Современные плагины, например, UpdraftPlus, предоставляют удобный интерфейс для подключения популярных облаков и шифрования копий. При самостоятельных скриптах можно настроить выгрузку по FTP или через API облачных сервисов.

Интеграция с плагином Clearfy Pro для оптимизации бэкапов

Если вы используете плагин Clearfy Pro, он поможет отключить ненужные процессы и оптимизировать работу WP-Cron, что сделает автоматический бэкап более стабильным и не нагружающим сервер.

Заключение

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

Как правильно создать и использовать Metabox в WordPress
22.11.2025
Как устроить автоматический отчет о ошибках WordPress с уведомлениями на почту
22.01.2026
Как использовать REST API для создания кастомных эндпойнтов в WordPress
08.12.2025
Как создать отслеживание активности пользователей в WordPress: практические примеры и код
25.12.2025
Как установить ограничения на число записей в контейнере WordPress
05.02.2026