Cómo Hacer Backups de tu Sitio Web: Guía Completa de Respaldos Automáticos
Estrategia completa de respaldos para sitios web. Tipos de backup, frecuencia recomendada, herramientas de automatización y cómo restaurar tu sitio ante cualquier emergencia.
Por qué el backup es la póliza de seguro de tu sitio web
El 60% de las pequeñas empresas que pierden sus datos sin backup no logran recuperarse en los siguientes 6 meses, según el U.S. National Archives & Records Administration. En México, los riesgos más comunes son: hackeos (defacement, inyección de malware), errores humanos al editar archivos, actualizaciones de plugins que rompen el sitio, y fallas de hardware en servidores compartidos. Sin un backup reciente, cualquiera de estos eventos puede costarte días de trabajo y miles de pesos en recuperación.
La regla de oro en administración de sistemas es la estrategia 3-2-1: 3 copias de tus datos, en 2 medios diferentes, con 1 copia fuera del sitio (offsite). En la práctica para un sitio en hosting cPanel esto significa: backup en cPanel, backup en tu computadora local, y backup en la nube (Google Drive, S3, o Backblaze B2).
Método 1: Backup completo desde cPanel (sin SSH)
El método más sencillo para usuarios sin experiencia técnica. Desde tu cPanel en VacaWeb:
- Ingresa a cPanel → sección Files → Backup Wizard
- Selecciona "Back Up" → "Full Backup"
- En "Backup Destination" elige "Home Directory" (se guarda en tu servidor)
- Ingresa tu email y haz clic en "Generate Backup"
- Recibirás un email cuando el backup esté listo. El archivo
.tar.gzaparecerá en tu directorio home - Descárgalo vía File Manager o FTP
Método 2: Backup por SSH con tar y mysqldump
Para usuarios con acceso SSH (planes VPS o cuentas cPanel con SSH habilitado), este método es más rápido y automatizable:
# 1. Respaldar todos los archivos del sitio
tar -czf backup_sitio_$(date +%Y%m%d).tar.gz /home/tuusuario/public_html/
# 2. Respaldar la base de datos MySQL/MariaDB
mysqldump -u usuario_db -p'contraseña' nombre_base_de_datos | gzip > backup_db_$(date +%Y%m%d).sql.gz
# 3. Verificar que los archivos se crearon correctamente
ls -lh backup_*.tar.gz backup_*.sql.gz
# 4. Transferir a tu máquina local (ejecutar en TU computadora)
scp usuario@tuservidor.com:~/backup_sitio_*.tar.gz ./backups/
scp usuario@tuservidor.com:~/backup_db_*.sql.gz ./backups/
Método 3: Automatización con cron jobs
Un backup manual que depende de que te acuerdes no es confiable. Automatiza el proceso con cron jobs en cPanel (cPanel → Advanced → Cron Jobs) o en tu VPS:
#!/bin/bash
# Guardar como /home/tuusuario/scripts/backup_auto.sh
# Dale permisos: chmod +x backup_auto.sh
FECHA=$(date +%Y%m%d_%H%M)
BACKUP_DIR="/home/tuusuario/backups"
SITE_DIR="/home/tuusuario/public_html"
DB_NAME="tubasededatos"
DB_USER="tu_usuario_db"
DB_PASS="tu_contraseña"
DIAS_RETENER=7 # Eliminar backups más antiguos de 7 días
mkdir -p $BACKUP_DIR
# Backup de archivos
tar -czf $BACKUP_DIR/files_$FECHA.tar.gz $SITE_DIR 2>/dev/null
# Backup de base de datos
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$FECHA.sql.gz
# Eliminar backups viejos
find $BACKUP_DIR -name "*.tar.gz" -mtime +$DIAS_RETENER -delete
find $BACKUP_DIR -name "*.sql.gz" -mtime +$DIAS_RETENER -delete
echo "Backup completado: $FECHA"
Agrega este script al cron job (cPanel → Cron Jobs). Para ejecutarlo cada día a las 2 AM:
0 2 * * * /home/tuusuario/scripts/backup_auto.sh >> /home/tuusuario/backups/backup.log 2>&1
Método 4: Backup offsite a Google Drive con rclone
El backup en el mismo servidor no protege contra fallas de hardware del hosting. Usa rclone para sincronizar automáticamente a Google Drive:
# Instalar rclone en tu VPS
curl https://rclone.org/install.sh | sudo bash
# Configurar Google Drive (seguir asistente interactivo)
rclone config
# → n (nueva configuración) → nombre: "gdrive" → tipo: 13 (Google Drive)
# → seguir el proceso de autenticación OAuth
# Subir backups a Google Drive
rclone copy /home/tuusuario/backups/ gdrive:VacaWeb_Backups/ --include "*.tar.gz" --include "*.sql.gz" --min-age 1h --transfers 4
# Agregar al cron job (después del script de backup, con 10 min de retraso)
10 2 * * * rclone copy /home/tuusuario/backups/ gdrive:VacaWeb_Backups/ --min-age 1h
Cómo restaurar un backup de cPanel
Tener el backup es solo la mitad. Debes saber restaurarlo. Para restauración completa vía cPanel:
- CPanel → Backup Wizard → Restore
- Para archivos: selecciona el
.tar.gzy sube el archivo - Para base de datos: CPanel → MySQL Databases → crea la base de datos primero, luego usa phpMyAdmin → Import para el archivo
.sql.gz
Por línea de comandos (más rápido para archivos grandes):
# Restaurar archivos
tar -xzf backup_sitio_20260320.tar.gz -C /home/tuusuario/
# Restaurar base de datos
gunzip < backup_db_20260320.sql.gz | mysql -u usuario_db -p nombre_base_de_datos
| Método de Backup | Nivel técnico | Tiempo | Automatizable |
|---|---|---|---|
| cPanel Backup Wizard | Principiante | 5–15 min | No (manual) |
| SSH tar + mysqldump | Intermedio | 2–5 min | Sí (cron) |
| Script automatizado | Intermedio | Automático | Sí (cron diario) |
| rclone a Google Drive | Avanzado | Automático | Sí (cron + nube) |
En VacaWeb realizamos backups diarios del servidor en todos los planes de hosting. Sin embargo, estos son backups de emergencia a nivel de servidor. Te recomendamos mantener siempre tus propios backups independientes. Si necesitas ayuda para configurar un sistema de backup automatizado, abre un ticket en soporte técnico.
Escenarios Prácticos: Backups en Producción
Escenario 1 — WooCommerce con backups automatizados a S3: Script de backup completo (archivos + base de datos) que corre cada noche a las 2 AM:
#!/bin/bash
# backup_completo.sh - Ejecutar via cron: 0 2 * * * /scripts/backup_completo.sh
FECHA=$(date +%Y%m%d_%H%M)
DIRECTORIO_WEB="/home/usuario/public_html"
DB_NAME="wp_produccion"
DB_USER="wp_user"
BUCKET="s3://backups-mitienda"
# Backup de base de datos
mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "/tmp/db_${FECHA}.sql.gz"
# Backup de archivos (excluyendo cache)
tar -czf "/tmp/files_${FECHA}.tar.gz" --exclude="$DIRECTORIO_WEB/wp-content/cache" --exclude="$DIRECTORIO_WEB/wp-content/litespeed" "$DIRECTORIO_WEB"
# Subir a S3 con AWS CLI
aws s3 cp "/tmp/db_${FECHA}.sql.gz" "$BUCKET/db/"
aws s3 cp "/tmp/files_${FECHA}.tar.gz" "$BUCKET/files/"
# Limpiar archivos temporales
rm -f "/tmp/db_${FECHA}.sql.gz" "/tmp/files_${FECHA}.tar.gz"
# Eliminar backups de más de 30 días en S3
aws s3 ls "$BUCKET/db/" | awk '{print $4}' | while read file; do
fecha_archivo=$(echo $file | grep -oP '\d{8}')
if [ $(date -d "$fecha_archivo" +%s) -lt $(date -d "30 days ago" +%s) ]; then
aws s3 rm "$BUCKET/db/$file"
fi
done
Escenario 2 — Blog con backup a Google Drive usando rclone: Alternativa económica a S3 para sitios menores. 15 GB gratuitos en Drive son suficientes para la mayoría de blogs con backups rotativos de 7 días.
Errores Comunes en Backups de Sitios Web
| Error | Consecuencia | Causa | Solución |
|---|---|---|---|
| Backup en mismo servidor | Se pierde junto con el sitio | Sin almacenamiento externo | Siempre enviar backup a S3, Drive o servidor diferente |
| Sin probar restauración | Backup corrupto descubierto en crisis | Solo crear, nunca verificar | Restaurar en entorno staging cada 3 meses |
| Solo base de datos, sin archivos | Imágenes y plugins perdidos | Backup incompleto | Backup debe incluir DB + public_html completo |
| Sin retención adecuada | Sin capacidad de retroceder semanas | Solo backup del día anterior | Estrategia: diario (7 días) + semanal (4 semanas) + mensual (12 meses) |
| Contraseña de BD en script sin cifrar | Credenciales expuestas | Password en texto plano | Usar MySQL options file (.my.cnf) con permisos 600 |
Preguntas Frecuentes sobre Backups de Sitios Web
¿Con qué frecuencia debo hacer backup según el tipo de sitio?
eCommerce activo (pedidos frecuentes): cada hora para la base de datos, diario para archivos. Blog con actualizaciones frecuentes: diario para DB, semanal para archivos. Sitio corporativo estático: semanal para DB, mensual para archivos. La regla de oro: el backup debe ser más frecuente que la frecuencia con la que actualizas el contenido que no puedes perder.
¿El backup de cPanel es suficiente para sitios críticos?
El backup de cPanel es un backup de conveniencia: fácil de crear y restaurar, pero almacenado en el mismo servidor. Si el servidor falla completamente (hardware o datacenter), el backup se pierde junto con el sitio. Para sitios críticos, usa backups de cPanel como primera capa y backups offsite (S3, BackBlaze) como segunda capa obligatoria.
¿Cuánto espacio necesito para los backups?
Un sitio WordPress estándar (sin tienda grande): 500 MB - 2 GB por backup completo. WooCommerce con catálogo de imágenes: 2-10 GB por backup. Para una retención de 30 días con backup diario, necesitas 30x el tamaño de un backup. Comprimir con gzip reduce el tamaño 60-70%. BackBlaze B2 cuesta ~$0.006/GB/mes: para 50 GB, son $3 USD/mes de almacenamiento.
¿Cómo restaurar WordPress desde un backup de UpdraftPlus?
En WordPress: UpdraftPlus > Restaurar > seleccionar el backup (puede estar en Drive, Dropbox o S3). Si WordPress no carga: 1) Instalar WordPress limpio. 2) Instalar UpdraftPlus. 3) Conectar con el almacenamiento remoto. 4) Importar backup y restaurar. El proceso completo toma 15-30 minutos dependiendo del tamaño del sitio y la velocidad de la conexión.
¿Qué es el backup incremental y cuándo conviene usarlo?
El backup incremental solo guarda los cambios desde el último backup completo, en lugar de todo el sitio. Ventajas: mucho más rápido y ocupa menos espacio. Desventaja: para restaurar, necesitas el backup completo más todos los incrementales. JetBackup (disponible en algunos hosting cPanel) hace incrementales automáticamente. Para sitios con GB de imágenes que rara vez cambian, el incremental reduce drásticamente el tiempo y espacio de backup.
📚 Profundiza en estos temas
- Migrar hosting sin downtime: usar backups correctamente durante la migración
- cPanel: configurar JetBackup y backups automáticos desde WHM
- Seguridad WordPress: los backups como última línea de defensa ante hackeos
- VPS: configurar rsync y rclone para backups automatizados en la nube
- Hosting compartido vs VPS: diferencias en política de backups
Fundador de VacaWeb, con más de 15 años administrando infraestructura Linux en producción. Especialista en LiteSpeed, CloudLinux, cPanel/WHM y arquitectura de hosting de alto rendimiento para el mercado mexicano. Ha diseñado y migrado la infraestructura de más de 1,200 sitios web empresariales.