
Cuando algo falla en WordPress, la recomendación clásica es activar el registro de depuración en wp-config.php:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
Funciona muy bien: los errores quedan anotados en un archivo. El problema es dónde: por defecto, en wp-content/debug.log, una dirección que cualquiera puede abrir desde el navegador.
Qué puede revelar
Los robots que buscan sitios vulnerables piden /wp-content/debug.log en millones de sitios todos los días. Lo que suelen encontrar:
- Rutas completas del servidor, con el nombre de tu usuario de cPanel (
/home/usuario/public_html/...). - Nombres y versiones de plugins, incluidos los desactualizados.
- Consultas SQL con nombres de tablas y, a veces, datos.
- Correos, nombres o datos de pedidos si algún plugin los escribe en el registro.
- En el peor caso, claves de API o tokens que un plugin mal hecho escribió al registrar un error.
Y como el archivo crece durante meses, puede acumular mucha información.
Comprueba si el tuyo está expuesto
curl -sI https://tudominio.cl/wp-content/debug.log | head -1
- Si responde
200, el archivo existe y es público. Actúa hoy. - Si responde
403, existe pero está bloqueado. - Si responde
404, no existe en esa ubicación.
Solución 1: moverlo fuera de la web (la mejor)
WP_DEBUG_LOG acepta una ruta en lugar de true. Pon el archivo en una carpeta que no esté dentro de public_html:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', '/home/usuario/logs/wp-debug.log' );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Crea antes la carpeta logs en tu directorio de inicio desde el Administrador de archivos de cPanel (al mismo nivel que public_html, no dentro). Cambia usuario por tu usuario real.
Las dos últimas líneas son igual de importantes: evitan que los errores se muestren en pantalla a tus visitas.
Solución 2: bloquearlo en el servidor
Si no puedes mover el archivo, bloquea el acceso a los .log en el .htaccess de la raíz:
<FilesMatch "\.log$">
Require all denied
</FilesMatch>
En Nginx, el equivalente es location ~* \.log$ { deny all; }.
Solución 3: no dejarlo encendido
El registro de depuración es una herramienta para diagnosticar, no para dejar activa siempre:
- Actívalo cuando tengas un problema.
- Reproduce el error y revisa el archivo.
- Desactívalo (
WP_DEBUGenfalse) y borra el archivo.
Si heredaste un sitio, revisa también si quedaron otros archivos de registro a la vista: error_log en la raíz o en wp-admin, archivos .log de plugins de respaldo o seguridad, y archivos phpinfo.php o info.php. La regla del .htaccess de arriba cubre todos los .log.
Para encontrarlos todos
Por SSH, desde la carpeta del sitio:
find . -maxdepth 3 \( -name "*.log" -o -name "error_log" -o -name "phpinfo.php" -o -name "info.php" \) -exec ls -lh {} \;
Revisa cada resultado: borra lo que no necesites y protege lo que sí.
¿Encontraste un debug.log enorme y no sabes qué significan los errores? Pega algunas líneas en el foro (borrando rutas y datos personales) y te ayudamos a interpretarlas.





