🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo solucionar el error 'Headers already sent' en WordPress

Actualizado el 12 de junio de 2026

¡Hola! Si estás leyendo esto, es porque seguramente te has topado con el temido mensaje de error "Headers already sent" en tu sitio WordPress. No te preocupes, es uno de los errores más comunes y, aunque suene técnico, tiene solución. En esta guía te voy a explicar paso a paso qué significa, por qué ocurre y, lo más importante, cómo solucionar el error 'Headers already sent' en WordPress. Vamos a quitarle el misterio de una vez por todas.

¿Qué significa el error "Headers already sent" en WordPress?

Imagina que tu navegador (Chrome, Firefox, etc.) y tu servidor (el ordenador donde vive tu web) se están pasando una carta. Esa carta tiene un sobre (los headers o cabeceras) y dentro va el contenido (el texto, las imágenes, el HTML). Para que todo funcione, primero se debe enviar el sobre (las cabeceras) y luego el contenido.

El error "Headers already sent" (o "cabeceras ya enviadas" en español) ocurre cuando tu sitio intenta enviar una cabecera después de que ya ha empezado a enviar el contenido. Es como si quisieras cambiar el remitente de la carta después de haberla metido al buzón. WordPress se vuelve loco y muestra este feo mensaje.

Este error puede aparecer de varias formas: una página en blanco, un mensaje en la parte superior del panel de administración, o incluso en el front-end de tu web. Las causas más comunes suelen ser:

  • Espacios en blanco o líneas vacías después de la etiqueta ?> en archivos PHP.
  • Un plugin o tema con errores de codificación.
  • Archivos de configuración (como wp-config.php) corruptos o mal editados.
  • Problemas con la memoria del servidor.

Cómo solucionar el error 'Headers already sent' en WordPress (Paso a paso)

Vamos a ir de lo más sencillo a lo más avanzado. No te saltes pasos, porque el problema puede estar en el primer lugar que mires.

1. Identifica el archivo y la línea exacta del error

Lo primero es saber dónde está el problema. El mensaje de error suele indicar algo como:

Warning: Cannot modify header information - headers already sent by (output started at /ruta/a/tu/archivo.php:123)

Anota el nombre del archivo y el número de línea (en este ejemplo, archivo.php y la línea 123). Esa es tu pista principal. Si el error está en el panel de administración, actívalo temporalmente. Si no puedes acceder, tendrás que usar un cliente FTP (como FileZilla) o el administrador de archivos de tu hosting.

[WARNING] Si no ves la línea exacta, puede que el error esté oculto. Activa el modo debug de WordPress editando el archivo wp-config.php. Busca la línea define('WP_DEBUG', false); y cámbiala por define('WP_DEBUG', true);. Esto mostrará más detalles.

2. Revisa los archivos principales de WordPress (wp-config.php, functions.php)

Los archivos más comunes donde ocurre este error son wp-config.php (en la raíz de tu instalación) y functions.php (dentro de la carpeta de tu tema activo).

Para el archivo wp-config.php:

  1. Conéctate a tu hosting mediante FTP o el administrador de archivos.
  2. Localiza el archivo wp-config.php en la carpeta raíz (donde están carpetas como wp-admin, wp-content, etc.).
  3. Ábrelo con un editor de texto plano (como Notepad++ o Sublime Text). NUNCA uses Word o Pages.
  4. Busca la línea que indica el error. Si no la ves, revisa el final del archivo. Debe terminar con require_once(ABSPATH . 'wp-settings.php'); y sin espacios, líneas en blanco o la etiqueta ?> de cierre. Si ves algo después de esa línea, bórralo.
  5. Guarda el archivo y súbelo de nuevo al servidor. Comprueba si el error ha desaparecido.

Para el archivo functions.php de tu tema:

  1. Ve a la carpeta wp-content/themes/[nombre-de-tu-tema-activo]/.
  2. Abre functions.php.
  3. Busca la línea problemática. A menudo el error está justo antes de la etiqueta de apertura <?php (un espacio en blanco) o después de la etiqueta de cierre ?> (una línea vacía). La solución es eliminar cualquier espacio o línea en blanco fuera de las etiquetas PHP.

[TIP] Si no estás seguro de qué tema está activo, puedes desactivarlo temporalmente renombrando la carpeta del tema (por ejemplo, de twentytwentythree a twentytwentythree_desactivado). WordPress cargará un tema por defecto (Twenty Twenty-Four) y si el error desaparece, el problema estaba en tu tema.

3. Desactiva todos los plugins (método rápido)

Los plugins son otra causa muy común. Para descartarlos rápidamente:

  1. Accede a tu panel de control de hosting (cPanel, Syspanel, etc.).
  2. Ve al administrador de archivos o usa FTP.
  3. Navega a wp-content/plugins/.
  4. Renombra la carpeta plugins a plugins_desactivados. Esto desactivará TODOS los plugins de golpe.
  5. Vuelve a cargar tu web. Si el error desaparece, el problema es de algún plugin.
  6. Para identificar cuál, renombra la carpeta de nuevo a plugins y luego ve desactivando uno por uno desde el panel de administración (si puedes acceder) o renombrando carpetas individualmente hasta encontrar el culpable.

4. Revisa la codificación del archivo (UTF-8 sin BOM)

A veces, al editar archivos PHP, el editor añade un carácter invisible llamado BOM (Byte Order Mark) que causa este error. La solución es guardar el archivo con codificación UTF-8 sin BOM.

  1. Abre el archivo problemático (el que te indicó el error) con un editor avanzado como Notepad++.
  2. Ve al menú Codificación y selecciona "Codificar en UTF-8 sin BOM".
  3. Guarda el archivo y súbelo de nuevo.

[INFO] Si usas el bloc de notas de Windows, puede añadir BOM sin que te des cuenta. Es mejor usar herramientas específicas para programación.

5. Aumenta la memoria PHP (si el error persiste)

Aunque menos común, un límite de memoria bajo puede causar este error. Para aumentarlo:

  1. Edita el archivo wp-config.php (como en el paso 2).
  2. Justo antes de la línea /* That's all, stop editing! Happy publishing. */, añade esta línea:
    define('WP_MEMORY_LIMIT', '256M');
  3. Guarda y sube el archivo.

Si no funciona, contacta con tu hosting (por ejemplo, a través de Syspanel, en el puerto 2106) para que aumenten el límite de memoria a nivel de servidor.

6. Revisa los archivos de plugins y temas específicos (escaneo manual)

Si después de todo lo anterior el error sigue apareciendo, probablemente está en un archivo concreto de un plugin o tema que no es el principal. Vuelve al mensaje de error original y fíjate bien en la ruta. Por ejemplo:

/home/usuario/public_html/wp-content/plugins/mi-plugin/includes/funciones.php:45

Entonces, el problema está en la línea 45 del archivo funciones.php del plugin mi-plugin. Abre ese archivo y busca:

  • Espacios en blanco fuera de las etiquetas <?php y ?>.
  • Una etiqueta ?> de cierre seguida de una línea en blanco o de más código PHP sin la etiqueta de apertura <?php.
  • Código PHP que intente enviar una cabecera (como header()) después de haber hecho un echo o print.

La solución generalmente es eliminar la etiqueta de cierre ?> al final del archivo. WordPress no la necesita y suele ser la causa principal.

[WARNING] No borres nada más del archivo. Si ves que el error está en una línea con header(), asegúrate de que no haya ningún echo o print antes de esa línea.

Preguntas Frecuentes (FAQ) sobre el error "Headers already sent"

P: ¿Este error puede dañar mi sitio web?
R: No, no daña tu base de datos ni tu contenido. Solo impide que la web se muestre correctamente. Una vez solucionado, todo vuelve a la normalidad.

P: ¿Por qué aparece después de actualizar un plugin o tema?
R: Porque la actualización pudo haber introducido un archivo con mala codificación (espacios en blanco, BOM, etc.). Es muy común. Simplemente sigue los pasos de desactivación para encontrar el culpable.

P: ¿Puedo solucionarlo desde el panel de administración de WordPress?
R: A veces sí, si el error solo aparece en el front-end. Pero si el panel también falla, necesitarás acceso FTP o al administrador de archivos de tu hosting.

P: Mi hosting usa Syspanel (puerto 2106). ¿Cómo accedo al administrador de archivos?
R: En Syspanel, busca la sección "Archivos" o "Administrador de archivos". Es similar a cPanel. Si no lo encuentras, contacta con el soporte técnico de tu hosting indicando que necesitas editar archivos PHP para solucionar un error de cabeceras.

P: ¿Qué hago si el error dice "Headers already sent by (output started at /wp-content/themes/...)"?
R: Es un problema del tema. Desactívalo temporalmente (paso 2) y si el error desaparece, edita el archivo functions.php de ese tema para eliminar espacios en blanco o la etiqueta ?> de cierre.

P: ¿Y si después de todo sigue el error?
R: Puede ser un problema de configuración del servidor (por ejemplo, la directiva output_buffering). Contacta con tu proveedor de hosting y diles el mensaje de error exacto. Ellos pueden ajustar la configuración PHP.

Resumen final: No le temas al error "Headers already sent"

Como has visto, solucionar headers already sent en WordPress no es tan complicado. La clave está en leer el mensaje de error, identificar el archivo y la línea, y luego revisar espacios en blanco, etiquetas de cierre y codificación. La mayoría de las veces, el problema se resuelve en 5 minutos.

Recuerda:

  1. Lee el mensaje de error: te dice exactamente dónde mirar.
  2. Usa un editor de texto plano (Notepad++ o similar).
  3. Elimina espacios y líneas en blanco fuera de las etiquetas PHP.
  4. Borra la etiqueta ?> de cierre al final de los archivos PHP (es opcional en WordPress y suele causar problemas).
  5. Desactiva plugins y temas para aislar el problema.

Si has llegado hasta aquí, seguro que ya tienes tu web funcionando. Si no, no dudes en volver a leer esta guía o contactar con el soporte de tu hosting. ¡Ánimo y a seguir creando contenido!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel