Title: “Cannot Modify Header Information – Headers Already Sent” in PHP: Causes and Fixes
Meta Description:
Getting the “Cannot modify header information – headers already sent” error in PHP or WordPress? Learn what causes it, how to fix it, and how to prevent it in the future.
Introduction
If you’ve worked with PHP or WordPress, you might have encountered the error:
“Warning: Cannot modify header information – headers already sent by (output started at…)”
This warning often confuses beginners, but it’s a common issue related to how headers and output are handled in PHP.
In this article, we’ll explain:
- What does this error mean
- Why it occurs
- How to fix it
- Best practices to avoid it
What Does “Cannot Modify Header Information – Headers Already Sent” Mean?
In PHP, headers (like redirection or setting cookies) must be sent before any actual output (HTML, whitespace, or even an extra line).
If your code sends output before a header()
A function or similar command, PHP throws this error, because headers must come first in the response.
- Whitespace Before
<?php
or After?>
- Even a blank space before
<?php
or after?>
can trigger the error.
- Even a blank space before
- Echo/Print Statements Before Headers
- Outputting content before using
header("Location: ...")
will cause this warning.
- Outputting content before using
- Included Files with Output
- Files included via
include
orrequire
might output whitespace or text accidentally.
- Files included via
- UTF-8 BOM
- Some text editors (like Notepad) add a Byte Order Mark (BOM) that’s invisible but treated as output.
- HTML Before Header Call
- Any direct HTML before your
header()
function causes this issue.
- Any direct HTML before your
Common Causes
Example Error
Warning: Cannot modify header information - headers already sent by (output started at /path/to/file.php:10)
This means output started on line 10 of file.php
, and a header()
function was attempted afterward.
How to Fix “Headers Already Sent” Error
✅ 1. Remove Whitespace
- Make sure there’s no space before
<?php
and after?>
<?php
// Correct
header("Location: login.php");
exit;
?>
Avoid this:
?> // <- whitespace here will cause an error
✅ 2. Use Output Buffering (Optional)
Enable output buffering so PHP stores output before sending it:
ob_start();
header("Location: login.php");
exit;
ob_end_flush();
✅ 3. Check Included Files
Inspect include
, require
, require_once
files to ensure no output is present.
✅ 4. Remove UTF-8 BOM
Use a proper editor (like VS Code, Sublime Text, or Notepad++) and save files without BOM.
✅ 5. Move Header Before Output
Ensure header()
calls appear before any echo
, HTML, or print:
header("Location: dashboard.php");
exit;
echo "Redirecting..."; // This will now work fine
How to Prevent This Error in the Future
- Always start files with
<?php
(no whitespace before it). - Avoid using
?>
at the end of PHP-only files. - Use tools like PHP Code Sniffer to catch formatting issues.
- Use IDEs or editors that highlight whitespace and BOM issues.

In WordPress?
You might see this in WordPress if a plugin or theme has unwanted output before modifying headers. Look for:
- Extra spaces in
functions.php
echo
statements beforewp_redirect()
orsetcookie()
Final Thoughts
The “Cannot modify header information – headers already sent” error is frustrating, but easy to fix once you understand PHP’s output rules. Check for whitespace, output before headers, or BOM characters, and follow good development practices to prevent it from occurring.
Target SEO Keywords:
- Cannot modify header information, headers already sent
- PHP headers already sent error
- How to fix header already sent error
- WordPress headers already sent solution
- PHP header location error fix
How to Open Control Panel
- Connection Timed OutTitle: What Does “Connection Timed Out” Mean? Causes, Fixes, and Prevention Meta Description:Getting a “Connection Timed Out” error? Learn what it means, why it happens, and how to fix it on websites, apps, WordPress, and more. Simple solutions included. Introduction The “Connection Timed Out” error is a common issue faced by internet users, website owners,… Read more: Connection Timed Out
- what is Sidebar Below Content errorWhat Is a Sidebar? A Sidebar is a vertical column found on the left or right side of a website or application layout. It typically contains secondary content that complements the main content of the page. What Is a Sidebar? In web design and WordPress development, a sidebar is a widget-ready area where you can… Read more: what is Sidebar Below Content error
- What Is PlayStation Studios?PlayStation Studios PlayStation Studios is the gaming division of Sony Interactive Entertainment (SIE) responsible for developing, publishing, and managing exclusive video games for the PlayStation console family (PS4, PS5, and future systems). It brings together some of the most creative and successful game developers in the world under one label. Key Facts About PlayStation Studios… Read more: What Is PlayStation Studios?
- john wick May 8, 2025, significant updates have emerged regarding the “John Wick” franchiseAs of May 8, 2025, significant updates have emerged regarding the “John Wick” franchise: “John Wick: Chapter 5” Officially Announced Lionsgate has confirmed the development of John Wick: Chapter 5, with Keanu Reeves reprising his role as the titular assassin. Despite the ambiguous conclusion of Chapter 4, where John Wick’s fate was left uncertain, director… Read more: john wick May 8, 2025, significant updates have emerged regarding the “John Wick” franchise
- What is revenu quebec?What is revenu quebec? Revenu Québec is the provincial tax agency responsible for managing and enforcing the tax laws in the province of Québec, Canada. It is similar to the Canada Revenue Agency (CRA) but operates independently within Québec. Key Responsibilities of Revenu Québec: Responsibility Details Collecting Taxes Collects personal income tax, corporate tax, and… Read more: What is revenu quebec?