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

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

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

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

Регулярные бэкапы помогут восстановить:

  • Базу данных — все записи, настройки и пользовательские данные.
  • Файлы темы и плагинов — чтобы вернуть внешний вид и функционал.
  • Загрузки и медиафайлы — изображения, видео и другие материалы.

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

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

Существует множество готовых решений с удобным интерфейсом и гибкими настройками:

UpdraftPlus

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

  • Настройка расписания — от ежедневных до еженедельных копий.
  • Восстановление в один клик.
  • Поддержка мультисайтовых установок.

BackWPup

Еще один популярный бесплатный плагин с возможностью планирования заданий и выгрузки бэкапов в разные места. Поддерживает создание архивов в zip, tar и tar.gz форматах.

  • Интеграция с облачными сервисами.
  • Оптимизация и проверка базы данных.
  • Логи задач для контроля успешности бэкапов.

WP Time Capsule

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

  • Поддержка облачных сервисов.
  • Возможность точечного восстановления.
  • Автоматическое тестирование бэкапов.

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

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

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

Для начала напишем функцию, которая экспортирует базу данных в файл SQL:

function wpacademy_create_db_backup() {
  global $wpdb;
  $backup_dir = WP_CONTENT_DIR . '/backups/';
  if (!file_exists($backup_dir)) {
    mkdir($backup_dir, 0755, true);
  }
  $filename = 'db-backup-' . date('Y-m-d-H-i-s') . '.sql';
  $filepath = $backup_dir . $filename;

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

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

  file_put_contents($filepath, $sql_dump);
}

Эта функция собирает структуру и данные всех таблиц и сохраняет их в файл с временной меткой.

Добавляем задачу в WP-Cron для регулярного запуска

Чтобы автоматизировать вызов функции, используем встроенный планировщик WordPress:

function wpacademy_schedule_db_backup() {
  if (!wp_next_scheduled('wpacademy_daily_db_backup')) {
    wp_schedule_event(time(), 'daily', 'wpacademy_daily_db_backup');
  }
}
add_action('wp', 'wpacademy_schedule_db_backup');

add_action('wpacademy_daily_db_backup', 'wpacademy_create_db_backup');

Этот код регистрирует ежедневное событие, которое запускает функцию резервного копирования базы данных.

Резервное копирование файлов сайта

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

function wpacademy_backup_files() {
  $backup_dir = WP_CONTENT_DIR . '/backups/';
  if (!file_exists($backup_dir)) {
    mkdir($backup_dir, 0755, true);
  }
  $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) {
    $dirs = [WP_CONTENT_DIR . '/themes', WP_CONTENT_DIR . '/plugins', WP_CONTENT_DIR . '/uploads'];
    foreach ($dirs as $dir) {
      $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
      foreach ($files as $file) {
        if (!$file->isDir()) {
          $filePath = $file->getRealPath();
          $relativePath = substr($filePath, strlen(WP_CONTENT_DIR) + 1);
          $zip->addFile($filePath, $relativePath);
        }
      }
    }
    $zip->close();
  }
}

Можно добавить вызов этой функции в тот же cron, чтобы создавать резервные копии файлов вместе с базой.

Хранение бэкапов и безопасность

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

Также стоит настроить удаление старых бэкапов, чтобы не переполнять диск. Например, можно добавить функцию удаления файлов старше 30 дней:

function wpacademy_cleanup_old_backups() {
  $backup_dir = WP_CONTENT_DIR . '/backups/';
  $files = glob($backup_dir . '*');
  $now = time();
  foreach ($files as $file) {
    if (is_file($file) && $now - filemtime($file) > 30 * 24 * 60 * 60) {
      unlink($file);
    }
  }
}
add_action('wpacademy_daily_db_backup', 'wpacademy_cleanup_old_backups');

Заключение

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

Как использовать WPCommunity для создания форума на WordPress
05.02.2026
Как удалить старые варианты товаров в WooCommerce без плагинов
19.05.2026
Как отладить и решить проблемы с PHP Fatal Errors в WordPress
16.01.2026
Отзывы с экспертной оценкой в WordPress: настройка и примеры кода
26.12.2025
Как избежать проблем с отправкой писем через PHP mail() в WordPress
03.05.2026