# Quick health check
curl -sf -o /dev/null -w "%{http_code} %{time_total}s" https://yourdomain.com
# Check all containers running
docker compose ps
# Check disk usage
df -h
docker system df# WordPress/Apache errors
docker compose logs --tail 50 wordpress
# Nginx access log
docker compose logs --tail 50 nginx
# MySQL errors
docker compose logs --tail 50 db- Check WordPress Dashboard → Updates
- Review Cloudflare analytics for unusual traffic
- Test contact form submission
- Verify SSL certificate expiry:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
- Run PageSpeed Insights test
- Check Search Console for crawl errors
- Update plugins (test on staging if critical)
- Review and clean up unused media files
- Check backup integrity (restore test)
# 1. Backup first
docker compose exec -T db mysqldump -u root -pPASSWORD wordpress > backup-before-update.sql
# 2. Update WordPress core + plugins via admin panel
# 3. Pull latest Docker images
docker compose pull
docker compose up -d
# 4. Verify site works
curl -sf https://yourdomain.com# Remove old Docker images
docker image prune -a
# Clear WP Super Cache
docker compose exec wordpress rm -rf /var/www/html/wp-content/cache/supercache/*
# Clear Nginx cache
docker compose exec nginx rm -rf /tmp/nginx-cache/*
# Purge Cloudflare cache
# Dashboard → Caching → Purge EverythingSet up free monitoring with UptimeRobot:
- Add HTTPS monitor for
https://yourdomain.com - Check interval: 5 minutes
- Alert via email/Telegram on downtime
If site goes down:
# 1. Check what's wrong
docker compose ps
docker compose logs --tail 100
# 2. Restart everything
docker compose restart
# 3. If database corrupted, restore from backup
docker compose down
docker volume rm wordpress-site_dbdata
docker compose up -d
docker compose exec -T db mysql -u root -pPASSWORD wordpress < backup.sql
# 4. Clear all caches after recovery
docker compose exec nginx rm -rf /tmp/nginx-cache/*
# Purge Cloudflare cacheWhen you outgrow a single VPS:
- Object storage — Move media to S3/R2 + CDN
- Redis cache — Add Redis for database query caching
- Dedicated DB — Separate MySQL to its own server
- Multiple sites — Use this template for each new brand/domain
Congratulations! You now have a fully optimized, production-ready WordPress trade site. 🎉