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
- api test strips chartAn “API test strip chart” typically refers to a color chart that is used to interpret results from API test strips — diagnostic tools used to test the presence of various substances in a liquid, most often water or urine. Here’s a full explanation: What is an API Test Strip?API (Aquarium Pharmaceuticals, Inc.) test strips… Read more: api test strips chart
- Plugin Settings Not Saving | Tools to Debug Plugin ErrorsAbsolutely! Here’s a comprehensive SEO-optimised article titled: Plugin Settings Not Saving | Tools to Debug Plugin Errors (Full Guide) If you’re struggling with the issue where your WordPress plugin settings are not saving, you’re not alone. This is a common problem caused by various factors ranging from plugin conflicts to server configuration. In this full… Read more: Plugin Settings Not Saving | Tools to Debug Plugin Errors
- Plugin Breaks Site URLS or LayoutIf a plugin breaks your WordPress site’s URLS or layout, don’t panic — it’s a common issue and can be resolved. Here’s a complete guide to fix it. Problem: Plugin Breaks Site URLS or Layout Symptoms may include: These issues are often caused by: Step-by-Step Fix Guide Step 1: Identify and Deactivate the Problem Plugin… Read more: Plugin Breaks Site URLS or Layout
- Critical Error After Plugin ActivationHere is a complete guide to fix the “Critical Error After Plugin Activation” in WordPress. How to Fix “Critical Error After Plugin Activation” in WordPress This error usually appears as: “There has been a critical error on this website. Please check your site admin email inbox for instructions.” This happens when a plugin conflicts with… Read more: Critical Error After Plugin Activation
- Missing Plugins | Plugin Install Failed | Major Plugin ErrorsThe “Missing Plugins” error in WordPress usually means that a plugin required by your theme or another plugin is not installed or has been deleted. This can cause certain features or layouts to break. Here’s how you can fix it: How to Fix “Missing Plugins” Error in WordPress You’ll often see a message like:“This theme… Read more: Missing Plugins | Plugin Install Failed | Major Plugin Errors