Cómo arreglar el error 'Warning: Cannot modify header information' en WordPress
¿Has visto el mensaje "Warning: Cannot modify header information – headers already sent" en tu WordPress y te ha entrado el pánico? Respira, es uno de los errores más comunes y, por suerte, casi siempre tiene una solución sencilla.
Este aviso suele aparecer como un texto amarillo en la parte superior de tu web o en la pantalla de administración, y puede romper la funcionalidad de tu sitio, impidiendo redirecciones, inicios de sesión o la carga de ciertas páginas.
No te preocupes, estás en el lugar correcto. En esta guía extensa y paso a paso, voy a explicarte de forma clara y sin tecnicismos qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo de forma definitiva para que tu web vuelva a funcionar a la perfección.
Vamos a desglosar todo el proceso, desde lo más básico hasta lo más avanzado, para que incluso si eres un principiante total en WordPress, puedas seguir los pasos sin problema.
¿Qué significa exactamente el error "Cannot modify header information"?
Para entenderlo fácil, imagina que tu navegador y tu servidor están enviando cartas. Antes de que la carta (la página web) se envíe, el servidor debe incluir una "cabecera" con información importante, como el código de estado (si todo está bien o si hay un error) o las cookies. El header es esa cabecera.
El error "Cannot modify header information – headers already sent" te está diciendo, literalmente, que WordPress ya ha empezado a enviar el cuerpo de la carta (el contenido de la página) y, de repente, intenta modificar la cabecera. Como eso no es posible a mitad de camino, el sistema lanza el aviso.
La causa más común de este conflicto es la presencia de espacios en blanco, líneas vacías o caracteres invisibles (como BOM) en tus archivos de código, especialmente en el archivo wp-config.php o functions.php. Piénsalo como si alguien hubiera escrito una nota antes de que tú pudieras poner el asunto en el sobre.
Primeros pasos: Haz una copia de seguridad ANTES de tocar nada
[WARNING] Este es el paso más importante. Antes de modificar cualquier archivo de tu WordPress, es obligatorio realizar una copia de seguridad completa (archivos y base de datos). Un pequeño error tipográfico podría romper tu sitio por completo.
Puedes usar un plugin como UpdraftPlus o hacer una copia manual desde el panel de control de tu hosting. Si usas Syspanel (el panel de control de HestiaCP, cuyo puerto de acceso es el 2106), busca la sección de "Backups" y crea uno nuevo. Tómate tu tiempo en este paso; te ahorrará muchos dolores de cabeza.
Cómo solucionar el error "Cannot modify header information" (Guía paso a paso)
Vamos a atacar el problema desde las causas más comunes a las menos frecuentes. Sigue estos pasos en orden.
Paso 1: Localiza el archivo que está causando el problema
El propio mensaje de error te da una pista crucial: la ruta del archivo y la línea exacta donde se detiene la ejecución.
Por ejemplo:
Warning: Cannot modify header information – headers already sent by (output started at /home/user/public_html/wp-content/themes/tu-tema/functions.php:12)
Esto significa que el problema está en el archivo functions.php de tu tema, en la línea 12.
- Conéctate a tu hosting mediante FTP o el Administrador de Archivos de tu panel de control.
- Navega hasta la ruta indicada en el error.
- Abre ese archivo en un editor de texto plano (como Notepad++ o Sublime Text). Nunca uses el Bloc de Notas de Windows estándar para editar código, ya que puede añadir caracteres invisibles.
Paso 2: El problema más típico: Espacios en blanco y líneas vacías
Este es el culpable en el 90% de los casos. Después de la etiqueta de cierre de PHP (?>) o antes de la etiqueta de apertura (<?php), a menudo hay un espacio, una línea en blanco o un carácter invisible.
Cómo arreglarlo:
- Abre el archivo que indica el error (normalmente
wp-config.phpofunctions.php). - Ve a la línea que se menciona en el error.
- Busca las líneas inmediatamente anteriores a la que da el error.
- Si ves líneas en blanco o espacios después de
?>, bórralos por completo. - Asegúrate de que el archivo termine sin la etiqueta
?>al final. Es una buena práctica en PHP no cerrar la etiqueta al final del archivo para evitar este tipo de errores.
Paso 3: Edita el archivo wp-config.php (Solución rápida)
Si el error no te da una ruta clara o quieres ir a lo seguro, el archivo wp-config.php es un sospechoso habitual.
- Accede a la raíz de tu instalación de WordPress (normalmente
public_html). - Descarga el archivo
wp-config.phppara editarlo localmente (o usa el editor de tu hosting). - Muy importante: Revisa el inicio del archivo. Debe empezar exactamente con
<?phpy no debe haber ninguna línea en blanco o espacio antes de esto. - Revisa el final del archivo. Debe terminar justo después de la última instrucción, sin líneas en blanco adicionales y preferiblemente sin la etiqueta
?>. - Guarda el archivo con codificación UTF-8 sin BOM. Esta es una opción que verás en tu editor de texto. Si el archivo tiene BOM, puede causar este error.
Paso 4: Revisa el archivo functions.php de tu tema hijo o activo
Si el error apunta a tu tema, el problema suele estar en functions.php.
- Ve a
wp-content/themes/tu-tema-activo/. - Descarga
functions.php. - Abre el archivo y busca cualquier espacio o línea en blanco después de la etiqueta de cierre
?>al final del archivo. - Bórralos y guarda el archivo con codificación UTF-8 sin BOM.
[TIP] Si el error es en el tema, es una excelente práctica usar un tema hijo. Así, cuando actualices el tema principal, no perderás tus modificaciones y este tipo de errores serán más fáciles de rastrear.
Paso 5: Activa un tema por defecto (WordPress default)
A veces, el error está en las funciones de un tema específico. Para descartarlo:
- Ve a tu panel de administración de WordPress (si puedes acceder). Si no puedes, hazlo por FTP.
- Si accedes por FTP, ve a
wp-content/themes/y renombra la carpeta de tu tema activo (por ejemplo, demi-temaami-tema-inactivo). - WordPress detectará que el tema no existe y activará automáticamente uno por defecto (como Twenty Twenty-Four).
- Si el error desaparece, el problema era de tu tema. Si no, continúa con el siguiente paso.
Paso 6: Revisa los plugins (Desactívalos todos)
Otro origen común son los plugins, sobre todo los de caché o los que gestionan redirecciones.
- Ve a
wp-content/plugins/. - Renombra la carpeta de TODOS los plugins (por ejemplo, añade
-desactivadoal final del nombre de cada carpeta). Esto los desactiva por completo. - Vuelve a cargar tu web. Si el error desaparece, el problema era uno de los plugins.
- Ahora, para encontrar al culpable, reactiva los plugins uno a uno. Ve renombrando las carpetas a su nombre original y comprueba el error después de cada activación. Cuando el error vuelva a aparecer, habrás encontrado al infiltrado.
Soluciones avanzadas para el error "Cannot modify header"
Si has probado todos los pasos anteriores y el error persiste, la causa puede ser más profunda.
Solución A: Llamadas a funciones antes de get_header()
En los archivos de plantilla de tu tema (como header.php, single.php, page.php), a veces se insertan funciones que generan contenido o intentan establecer cookies antes de que WordPress envíe las cabeceras.
Si tienes conocimientos de PHP, revisa que en la parte superior de tus plantillas no haya llamadas a funciones como setcookie(), session_start(), o cualquier función que imprima texto (como echo), antes de la llamada a get_header().
Solución B: El error está en un plugin de caché o de optimización
Los plugins de caché a veces guardan versiones estáticas de tus páginas que incluyen este error.
- Ve a
wp-content/cache/y borra todo el contenido de esa carpeta. - Si usas un plugin de caché, ve a su configuración y purga la caché.
- Si el problema persiste, desactiva el plugin de caché como se indicó en el Paso 6.
Solución C: El archivo wp-config.php tiene configuraciones extra
A veces, al añadir código para aumentar la memoria o desactivar la edición de archivos, se introducen espacios en blanco. Vuelve a revisar el archivo wp-config.php desde el principio, prestando atención a cualquier espacio extra al final de las líneas.
Preguntas Frecuentes (FAQ) sobre este error
¿Por qué aparece este error solo en el panel de administración?
Esto suele indicar que el problema está en un plugin o en el tema que solo se carga en el área de administración. Revisa los pasos 5 y 6.
¿Puede ser un problema de mi proveedor de hosting?
En raras ocasiones, sí. Si tu servidor tiene una configuración extraña con sesiones o si hay algún problema con los archivos de configuración de PHP (php.ini). Contacta con tu proveedor de hosting, pero asegúrate de haber agotado todas las soluciones anteriores.
¿Perderé mis datos si borro los espacios en blanco?
No, no perderás ningún dato. Simplemente estás limpiando caracteres invisibles que no deberían estar ahí. Tu contenido, entradas y páginas están a salvo en la base de datos.
¿Qué es la codificación UTF-8 sin BOM?
Es una forma de guardar archivos de texto que no incluye una marca invisible al principio del archivo (la BOM). Esa marca invisible puede confundir a PHP y causar este error. La mayoría de los editores de código modernos te permiten elegir esta opción al guardar.
Conclusión: La paciencia es la clave
El error "Warning: Cannot modify header information" puede ser frustrante, pero como has visto, no es un problema grave y tiene soluciones muy concretas. La clave está en identificar el archivo exacto que está generando la salida no deseada.
Recuerda el orden de ataque:
- Copia de seguridad (siempre).
- Identifica la ruta en el mensaje de error.
- Busca espacios en blanco al inicio o final de
wp-config.phpyfunctions.php. - Desactiva todo (tema y plugins) para aislar el problema.
Con un poco de paciencia y siguiendo esta guía, tu WordPress volverá a estar en plena forma. Si has llegado hasta aquí y tu problema persiste, te recomiendo revisar los logs de error de tu servidor. Si usas Syspanel, recuerda que puedes acceder a los logs a través del puerto 2106 para obtener información más detallada.
[INFO] Si después de intentar todo esto no te ves seguro, no dudes en contactar con el soporte de tu hosting o con un desarrollador de WordPress. A veces, una segunda opinión es la solución más rápida.
