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:
| Type | What it backs up | Best for |
|---|---|---|
| Full | All files + database | Weekly safety nets, initial backups |
| Incremental | Only changed files + database | Daily protection with minimal storage |
| Database only | WordPress database tables | Frequent snapshots of orders, posts, users |
| Files only | Themes, plugins, uploads, core files | Media-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-bucketList all existing schedules:
wp safeguard schedule listView upcoming scheduled backups:
wp safeguard schedule upcomingUpdate an existing schedule:
wp safeguard schedule update <id> --time=03:00 --enabled=trueRun a schedule immediately (useful for testing):
wp safeguard schedule run <id>Delete a schedule:
wp safeguard schedule delete <id> --yesSchedule Frequencies
SafeGuard supports eight frequency options. Choose based on how often your site's data changes.
| Frequency | Interval | Typical use case |
|---|---|---|
| Every 4 hours | 6 runs/day | High-volume stores, subscription billing |
| Every 8 hours | 3 runs/day | Active stores, membership sites |
| Every 12 hours | 2 runs/day | Busy blogs, moderate ecommerce |
| Daily | 1 run/day | Most sites — the go-to default |
| Every 2 days | 1 run/2 days | Low-traffic sites that still update regularly |
| Weekly | 1 run/week | Static sites, brochure sites, simple blogs |
| Biweekly | 1 run/2 weeks | Sites with very infrequent changes |
| Monthly | 1 run/month | Archive 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.
| Frequency | Recommended count | Coverage |
|---|---|---|
| Every 4 hours | 90 - 120 | 15 - 20 days of history |
| Daily | 14 - 30 | 2 - 4 weeks of history |
| Weekly | 4 - 8 | 1 - 2 months of history |
| Monthly | 6 - 12 | 6 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:
| Profile | Detection criteria |
|---|---|
| High-Volume Subscription Store | WooCommerce + 300+ orders/month + active subscriptions |
| High-Volume Store | WooCommerce + 300+ orders/month |
| Course Seller | WooCommerce + LMS plugin (LearnDash, LifterLMS, etc.) |
| Subscription Business | WooCommerce + WooCommerce Subscriptions |
| Online Store | WooCommerce with active orders |
| New Store | WooCommerce installed, no orders yet |
| Digital Store | Easy Digital Downloads with sales |
| Membership Site | MemberPress, Paid Memberships Pro, Restrict Content Pro, etc. |
| Learning Platform | LearnDash, LifterLMS, Tutor LMS, LearnPress, or Sensei |
| Media-Heavy Site | 50+ media uploads in the last 30 days |
| Active Blog | 10+ posts/pages or 20+ comments in the last 30 days |
| Standard Website | Everything 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 recommendFor machine-readable output:
wp safeguard schedule recommend --format=jsonThe 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.
Recommended Schedules by Site Type
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.
| Schedule | Type | Frequency | Retention |
|---|---|---|---|
| Weekly Full Backup | Full | Weekly | 4 backups |
Run a manual backup before any theme or plugin updates.
Active Blog
A content site publishing multiple posts per week with regular comments.
| Schedule | Type | Frequency | Retention |
|---|---|---|---|
| Daily Content Backup | Incremental | Daily | 14 backups |
| Weekly Full Backup | Full | Weekly | 4 backups |
WooCommerce Store
An online store processing orders daily. Transaction data is critical.
| Schedule | Type | Frequency | Retention |
|---|---|---|---|
| Transaction Guard | Database | Every 4 hours | 90 backups |
| Daily Content Backup | Incremental | Daily | 30 backups |
| Weekly Full Backup | Full | Weekly | 8 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.
| Schedule | Type | Frequency | Retention |
|---|---|---|---|
| User Data Protection | Database | Every 8 hours | 60 backups |
| Daily Content Backup | Incremental | Daily | 14 backups |
| Weekly Full Backup | Full | Weekly | 4 backups |
Agency Managing Multiple Sites
When you manage backups across many client sites, consistency and remote storage are key.
| Schedule | Type | Frequency | Retention |
|---|---|---|---|
| Daily Incremental | Incremental | Daily | 30 backups |
| Weekly Full Backup | Full | Weekly | 8 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 copiesEach 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=20Email 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.