Safe Production Change Checklist for VPS Websites
Most outages happen during changes: plugin updates, Nginx edits, DNS changes, PHP upgrades, Docker image updates or firewall rules. This checklist helps you make production changes without turning a small task into a full incident.
Core principle
A safe change has four parts: know what you will change, back up before changing, verify after changing and have a rollback path.
Checklist
- Write down the exact change you plan to make.
- Check whether the change affects traffic, login, DNS, SSL or database.
- Take a backup before the change.
- Save the current config file before editing.
- Make one change at a time.
- Run config tests before reload.
- Apply the change during a low-risk time window.
- Verify frontend, admin and logs after the change.
- Keep rollback files available.
- Document what changed and why.
How to apply this everywhere
This applies to WordPress updates, Nginx server blocks, Docker Compose changes, Cloudflare settings, firewall rules and AI automation workflows.
When to Use This Checklist
Use this checklist before changing Nginx, WordPress, Docker, PHP, DNS, firewall, SSL or automation settings on a live system.
Required Tools
SSH access, backup method, config file access, WP admin, DNS or Cloudflare access, monitoring tool
Before You Start
Define the change clearly before touching production. If you cannot describe the rollback, do not start yet.
Structured Checklist Steps
- Write the change goal.
- Identify affected services.
- Create backup.
- Copy current config.
- Make one change only.
- Run validation command.
- Apply during safe window.
- Verify website and logs.
- Keep rollback ready.
- Document result.
Verification Steps
- Website loads.
- Admin access works.
- Logs show no new critical errors.
- Monitoring is stable.
- Rollback file is still available.
Rollback Plan
If the change breaks production, restore the saved config or backup immediately, then investigate in a safer environment.
Common Mistakes
- Changing many things at once.
- No backup.
- No rollback file.
- Not testing config before reload.
- Making risky changes during peak traffic.
Related Commands
cp /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com.bak
sudo nginx -t
sudo systemctl reload nginx
curl -I https://example.com
sudo tail -n 100 /var/log/nginx/error.log