SafeGuard

Scheduling Best Practices

Set up automated backup schedules, configure retention policies, and follow best practices for every type of WordPress site.

Overview

Automated schedules are the foundation of reliable backups. Instead of remembering to run manual backups, SafeGuard runs them for you on a cadence that matches your site's activity level. This guide covers how to create schedules, choose the right frequency, configure retention, and use the built-in recommendation engine.

Creating a Schedule

Open the Schedules panel

Navigate to SafeGuard → Schedules in your WordPress admin and click Create Schedule.

Name your schedule

Enter a descriptive name such as "Nightly Full Backup" or "Transaction Guard." This name appears in the schedule list and in email notifications.

Choose a backup type

Select the type of backup this schedule should produce:

TypeWhat it backs upBest for
FullAll files + databaseWeekly safety nets, initial backups
IncrementalOnly changed files + databaseDaily protection with minimal storage
Database onlyWordPress database tablesFrequent snapshots of orders, posts, users
Files onlyThemes, plugins, uploads, core filesMedia-heavy sites, large upload directories

Select a frequency

Choose how often the schedule should run. See Schedule Frequencies for guidance on which to pick.

Set the preferred time

Pick a low-traffic period for your site. For most sites, 02:00 - 04:00 in your local timezone is ideal. SafeGuard respects the timezone configured in Settings → General or lets you override it per schedule.

Choose storage and retention

Select the storage provider where backups should be sent, and configure a retention policy to control how many backups are kept.

Save

Click Save Schedule to activate. The next scheduled run will appear in the Upcoming Backups panel.

Create a schedule from the command line:

wp safeguard schedule create \
  --name="Nightly Full Backup" \
  --frequency=daily \
  --type=full \
  --time=02:00 \
  --storage=my-s3-bucket

List all existing schedules:

wp safeguard schedule list

View upcoming scheduled backups:

wp safeguard schedule upcoming

Update an existing schedule:

wp safeguard schedule update <id> --time=03:00 --enabled=true

Run a schedule immediately (useful for testing):

wp safeguard schedule run <id>

Delete a schedule:

wp safeguard schedule delete <id> --yes

Schedule Frequencies

SafeGuard supports eight frequency options. Choose based on how often your site's data changes.

FrequencyIntervalTypical use case
Every 4 hours6 runs/dayHigh-volume stores, subscription billing
Every 8 hours3 runs/dayActive stores, membership sites
Every 12 hours2 runs/dayBusy blogs, moderate ecommerce
Daily1 run/dayMost sites — the go-to default
Every 2 days1 run/2 daysLow-traffic sites that still update regularly
Weekly1 run/weekStatic sites, brochure sites, simple blogs
Biweekly1 run/2 weeksSites with very infrequent changes
Monthly1 run/monthArchive sites, minimal-change environments

When in doubt, start with daily for incremental backups and weekly for full backups. You can always adjust later based on your storage usage and site activity.

Schedule Configuration

Every schedule has these configurable fields:

Backup Type

Controls what data the schedule captures. Choose from full, incremental, database, or files. The default scope adjusts automatically — a database schedule only enables database tables, while a full schedule enables both files and database.

Time and Timezone

The time field accepts HH:MM format (24-hour). SafeGuard uses your WordPress timezone by default (from Settings → General). You can override the timezone per schedule if your server is in a different region than your audience.

Schedule your backups during low-traffic hours. Running a full backup during peak traffic can temporarily increase server load, especially on shared hosting.

Scope

Fine-tune exactly what each schedule includes:

  • Files — toggle plugins, themes, and uploads individually, or add custom paths
  • Database — include all tables or select specific ones; exclude tables you do not need (e.g., large analytics or log tables)
  • Exclude paths — skip directories like node_modules, cache folders, or staging files

Storage Destination

Each schedule is linked to a configured storage provider. You can send different schedules to different destinations — for example, database backups to Amazon S3 and weekly full backups to Dropbox.

Retention Policies

Retention controls how long SafeGuard keeps old backups before deleting them. There are two retention modes:

Keep by Count

Retains a fixed number of backups. When the limit is reached, the oldest backup is deleted automatically.

FrequencyRecommended countCoverage
Every 4 hours90 - 12015 - 20 days of history
Daily14 - 302 - 4 weeks of history
Weekly4 - 81 - 2 months of history
Monthly6 - 126 months to 1 year

Keep by Age (Days)

Retains backups for a specific number of days. Backups older than the threshold are deleted regardless of count.

This mode is useful when you want predictable storage usage. For example, setting retention to 30 days means you always have exactly one month of history.

The default retention is 30 backups by count. For most daily schedules, this gives you a full month of restore points.

Auto-Delete After Remote Upload

When a schedule sends backups to a remote storage provider, SafeGuard can automatically delete the local copy after a successful upload. This keeps your server disk usage low while maintaining full offsite protection.

Storage Limit Warnings

SafeGuard monitors your local backup storage usage. If backups begin consuming significant disk space, you will see warnings in the dashboard. Pair this with remote storage and auto-delete to keep your server lean.

Smart Recommendations

SafeGuard includes a built-in recommendation engine that analyzes your site and suggests an optimal set of backup schedules. It detects 12 distinct site profiles:

ProfileDetection criteria
High-Volume Subscription StoreWooCommerce + 300+ orders/month + active subscriptions
High-Volume StoreWooCommerce + 300+ orders/month
Course SellerWooCommerce + LMS plugin (LearnDash, LifterLMS, etc.)
Subscription BusinessWooCommerce + WooCommerce Subscriptions
Online StoreWooCommerce with active orders
New StoreWooCommerce installed, no orders yet
Digital StoreEasy Digital Downloads with sales
Membership SiteMemberPress, Paid Memberships Pro, Restrict Content Pro, etc.
Learning PlatformLearnDash, LifterLMS, Tutor LMS, LearnPress, or Sensei
Media-Heavy Site50+ media uploads in the last 30 days
Active Blog10+ posts/pages or 20+ comments in the last 30 days
Standard WebsiteEverything else — low activity, static content

Using Recommendations

Navigate to SafeGuard → Schedules and look for the Recommended Schedule card. SafeGuard shows the detected profile, an explanation of why it was chosen, and a set of complementary schedules you can apply with one click.

wp safeguard schedule recommend

For machine-readable output:

wp safeguard schedule recommend --format=json

The engine examines posts, media uploads, comments, WooCommerce orders and products, EDD sales, membership plugins, and LMS plugins over the last 30 days. Recommendations are cached for one hour and automatically refresh when relevant content changes.

Use these as starting points and adjust based on your specific needs.

Simple Blog or Brochure Site

A static or rarely-updated site with minimal content changes.

ScheduleTypeFrequencyRetention
Weekly Full BackupFullWeekly4 backups

Run a manual backup before any theme or plugin updates.

Active Blog

A content site publishing multiple posts per week with regular comments.

ScheduleTypeFrequencyRetention
Daily Content BackupIncrementalDaily14 backups
Weekly Full BackupFullWeekly4 backups

WooCommerce Store

An online store processing orders daily. Transaction data is critical.

ScheduleTypeFrequencyRetention
Transaction GuardDatabaseEvery 4 hours90 backups
Daily Content BackupIncrementalDaily30 backups
Weekly Full BackupFullWeekly8 backups

For stores with active subscriptions or high order volume (300+/month), use the every 4 hours database schedule. Losing even a few hours of order data can mean lost revenue and customer trust.

Membership or LMS Site

A site with user accounts, course progress, or gated content.

ScheduleTypeFrequencyRetention
User Data ProtectionDatabaseEvery 8 hours60 backups
Daily Content BackupIncrementalDaily14 backups
Weekly Full BackupFullWeekly4 backups

Agency Managing Multiple Sites

When you manage backups across many client sites, consistency and remote storage are key.

ScheduleTypeFrequencyRetention
Daily IncrementalIncrementalDaily30 backups
Weekly Full BackupFullWeekly8 backups

Send all backups to a centralized remote storage destination (S3 or similar) and enable auto-delete of local copies. This keeps each client server lean while maintaining a central backup archive.

Development or Staging Site

Development sites do not need scheduled backups in most cases. Instead, run manual backups at key milestones:

  • Before major plugin or theme updates
  • Before database migrations
  • After completing a major feature
  • Before merging a staging site to production

Use wp safeguard backup run --type=full in your deployment scripts to automate this.

Multiple Schedules

SafeGuard supports running multiple schedules simultaneously. This is the recommended approach for sites with mixed data criticality.

Why use multiple schedules?

  • Database changes faster than files. A WooCommerce store might get dozens of orders per hour, but product images rarely change. Back up the database every 4 hours and files only weekly.
  • Different retention needs. Keep 90 database snapshots but only 4 full backups to save storage.
  • Different storage destinations. Send critical database backups to a high-durability provider (S3) and large file backups to a cost-effective provider (Backblaze B2).

Example: Three-tier schedule for a busy store

Transaction Guard   → Database only  → Every 4 hours → S3         → 90 copies
Daily Site Backup   → Incremental    → Daily         → S3         → 30 copies
Weekly Full Backup  → Full           → Weekly        → Backblaze  → 8 copies

Each schedule runs independently with its own retention policy and storage destination.

Monitoring

Checking Schedule Status

Navigate to SafeGuard → Schedules to see all schedules with their current status, last run time, and next scheduled run. The Upcoming Backups panel shows a timeline of the next 30 days of scheduled backups across all active schedules.

From WP-CLI:

# List all schedules with status
wp safeguard schedule list

# View upcoming runs
wp safeguard schedule upcoming --limit=20

Email Notifications

SafeGuard sends email notifications when a scheduled backup fails. Configure notification recipients under SafeGuard → Settings → Notifications. Notifications include:

  • The schedule name and type that failed
  • The error message and failure reason
  • A direct link to the schedule in your WordPress admin

Enable email notifications for all scheduled backups. A silently failing schedule is worse than no schedule at all — you only discover the problem when you need a restore.

Troubleshooting

On this page