Как автоматизировать создание резервных копий в WordPress

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

Зачем нужна автоматизация резервного копирования WordPress

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

  • Регулярно и надежно создавать копии без участия человека;
  • Восстанавливать сайт в случае проблем за считанные минуты;
  • Защищать данные от повреждений, ошибок обновлений и вредоносных атак;
  • Сохранять историю изменений для отката к предыдущим версиям.

Без автоматизации вы рискуете потерять все данные при первом же серьезном сбое.

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

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

UpdraftPlus — универсальный и удобный

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

  • Настройка расписания автоматических бэкапов;
  • Выбор компонентов для резервного копирования;
  • Отправка копий на удаленные серверы;
  • Пошаговое восстановление через админку.

Для установки достаточно в админке WordPress перейти в Плагины > Добавить новый, ввести «UpdraftPlus» и активировать.

BackWPup — гибкие настройки и много форматов

BackWPup позволяет не только создавать полные копии сайта, но и выполнять оптимизацию базы данных, проверку ошибок и отправлять архивы в несколько облаков.

  • Поддержка форматов ZIP, TAR, TAR.GZ;
  • Настраиваемые расписания;
  • Отправка на FTP, Dropbox, Amazon S3, Microsoft Azure и другие сервисы;
  • Создание отчетов работы плагина.

WP Time Capsule — инкрементальное резервное копирование

WP Time Capsule отличается тем, что создает копии только измененных файлов и базы данных, что экономит место и ускоряет процесс.

  • Инкрементальные бэкапы;
  • Восстановление сайта «на лету» без прерывания работы;
  • Интеграция с Google Drive, Dropbox, OneDrive;
  • Мониторинг активности сайта и создание копий после обновлений.

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

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

Ниже пример минимального кода плагина wplessons_backup, который создаст дамп базы данных и сохранит его в папку /wp-content/backups по расписанию.

<?php
/*
Plugin Name: WP Lessons Backup
Description: Автоматическое резервное копирование базы данных WordPress.
Version: 1.0
Author: WP Lessons
*/

register_activation_hook(__FILE__, 'wplessons_backup_activate');
register_deactivation_hook(__FILE__, 'wplessons_backup_deactivate');

function wplessons_backup_activate() {
    if (!wp_next_scheduled('wplessons_backup_cron')) {
        wp_schedule_event(time(), 'daily', 'wplessons_backup_cron');
    }
}

function wplessons_backup_deactivate() {
    wp_clear_scheduled_hook('wplessons_backup_cron');
}

add_action('wplessons_backup_cron', 'wplessons_backup_create');

function wplessons_backup_create() {
    global $wpdb;
    $backup_dir = WP_CONTENT_DIR . '/backups';
    if (!file_exists($backup_dir)) {
        wp_mkdir_p($backup_dir);
    }
    $filename = $backup_dir . '/db-backup-' . date('Y-m-d-H-i-s') . '.sql';

    $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`;
";
        $sql_dump .= $create_table[1] . ";

";

        $rows = $wpdb->get_results("SELECT * FROM $table_name", ARRAY_A);
        foreach ($rows as $row) {
            $columns = array_map(function($col) { return "`" . $col . "`"; }, array_keys($row));
            $values = array_map(array($wpdb, 'escape'), array_values($row));
            $values = array_map(function($val) { return isset($val) ? "'" . addslashes($val) . "'" : 'NULL'; }, $values);
            $sql_dump .= "INSERT INTO `$table_name` (" . implode(',', $columns) . ") VALUES (" . implode(',', $values) . ");
";
        }
        $sql_dump .= "
";
    }

    file_put_contents($filename, $sql_dump);
}
?>

Этот код:

  • Создает задачу cron, которая срабатывает ежедневно;
  • Выполняет дамп всех таблиц базы в SQL-файл;
  • Сохраняет файл с датой и временем в папку wp-content/backups;
  • Автоматически создает папку, если ее нет.

Этот пример можно расширить добавлением отправки архива на удаленный сервер, уведомлений или удаления старых бэкапов.

Как настроить задачи cron в WordPress для резервного копирования

WordPress использует свой собственный механизм WP-Cron для выполнения отложенных задач. Он запускается при посещении сайта, что не всегда удобно. Чтобы обеспечить стабильность создания бэкапов:

  • Отключите wp-cron, добавив в wp-config.php строку define('DISABLE_WP_CRON', true);;
  • Настройте системный cron на сервере, который будет запускать скрипт wp-cron.php по нужному расписанию, например, каждую ночь;
  • Это обеспечит точное время запуска задач и снизит нагрузку.

Пример записи для cron на Linux:

0 2 * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
<

Рекомендации по хранению и безопасности резервных копий

Создание бэкапов — только половина дела. Важно правильно хранить копии и защищать их:

  • Не храните бэкапы в открытом доступе в корне сайта — создайте защищенную папку;
  • Используйте шифрование и пароли для архивов;
  • Храните копии на удаленных серверах или в облаках (Google Drive, Dropbox, Amazon S3 и т.д.);
  • Регулярно проверяйте возможность восстановления из бэкапов, чтобы не столкнуться с проблемами;
  • Автоматизируйте удаление старых резервных копий, чтобы не занимать лишнее место.

Соблюдение этих правил значительно повысит безопасность вашего сайта и избавит от потерь данных.

Оптимизация нагрузки на сервер от admin-ajax.php в WordPress
25.12.2025
Как создать автоматическую публикацию постов в WordPress с помощью Cron
18.03.2026
Как изменить название пользовательского поля в WordPress без плагинов
22.02.2026
Автоматическое удаление старых неиспользуемых изображений из медиабиблиотеки WordPress
06.02.2026
Как избежать ошибок WooCommerce при массовом изменении статусов заказов
24.05.2026