エラー・不具合の解決

WordPressで「headers already sent」と出る原因と対処法

更新 2026年10月27日 公開 2026年10月20日 執筆・検証:WP-ing

直らないときは、無料でご相談いただけます(直らなければ料金はいただきません)。

結論:「Warning: Cannot modify header information – headers already sent」は、PHPのファイルから、画面の中身より先に送るはずの情報(ヘッダー)を送る前に、余分な文字が出てしまったときに出る警告です。<?php の前や、ファイルの最後の ?> の後の空白・空の行、ファイルの保存の形式(UTF-8 の BOM 付き)、先に画面に出た別の警告などが原因になります。

まず確かめるのは、文の中の「output started at」の後に書かれたファイルと行です。その後の「in … on line …」は影響を受けた側なので、ふつうは直すところではありません。

目次
  1. 出る画面
  2. 警告の文の読み方
  3. 原因の例
  4. 作業の前に確かめること
  5. 直し方
    1. 1. 「output started at」のファイルと行を確かめる
    2. 2. 書き換える前のファイルに戻す
    3. 3. 戻せる写しが無いとき:ファイルの最初と最後を確かめる
    4. 4. 先に別の警告が出ているとき
    5. 5. 直った後に確かめること
  6. 自分で直すのが難しいとき
  7. よくある質問
    1. 「in」の後ろに出ているWordPress本体のファイルを直せばよいですか?
    2. ファイルを開いても、空白も空の行も見当たりません。

この記事は、WordPressのトラブル解決を受け付けているWP-ingが、警告の文の読み方と直し方をまとめたものです。

出る画面

PHPのエラーを画面に出す設定になっているサイトでは、画面の上などに次のような文が出ます(例です。ファイルの場所や行の番号はサイトによって違います)。

Warning: Cannot modify header information - headers already sent by (output started at /home/…/wp-content/themes/テーマ名/functions.php:120) in /home/…/wp-includes/pluggable.php on line 1193

WordPressは、ログインのときにログインの情報(クッキー)を送ったり、保存した後に元の画面へ移したりするときに、このヘッダーを使います。そのため、この警告が出ると、次のようなことが起こることがあります。

  • ログインしようとしても、ログインの画面に戻ってしまう(ログインできないときの記事)
  • 管理画面で保存した後、画面が切り替わらない・白い画面に警告だけが出る

エラーを画面に出さない設定のサイトでも、エラーを記録する設定になっていれば、サーバーのエラーログで確かめられる場合があります。また、サーバーの設定によっては、同じファイルでもこの警告が出ないことがあります。

警告の文の読み方

文の部分 意味
Cannot modify header information ヘッダー(画面の中身より先に送る情報)を送れなかった
headers already sent by (output started at …/functions.php:120) まず確かめる場所。このファイルの120行目から、先に何かが出始めた
in …/pluggable.php on line 1193 影響を受けた場所。WordPress本体のファイルが出ることがありますが、ふつうは、ここを直す必要はありません

WordPressの公式の案内でも、「output started at」の後のファイルと行が問題の場所で、「in」の後のファイルは影響を受けた側だと説明されています。

原因の例

原因の例 「output started at」の行
ファイルの1行目の <?php より前に、空白や空の行がある そのファイルの1行目など
ファイルの最後の ?> の後に、空の行や空白がある そのファイルの最後のあたり
ファイルが「UTF-8」の「BOM付き」で保存されている。見た目には何も無くても、先頭に目に見えない印が付いています そのファイルの1行目
その前に、別の警告(Warning・Deprecated など)が画面に出ている その警告が出たファイルと行
プラグインやテーマのプログラムが、早すぎるところで文字を出している そのプラグイン・テーマのファイル

wp-config.php や、テーマの functions.php を書き換えた直後、コードを貼り付けた直後、PHPの版を上げて警告が出るようになった後などに起こることがあります。

作業の前に確かめること

  • バックアップ:レンタルサーバーの自動バックアップなどがあるか。いつの時点のものか(保存日時)と、元に戻す方法も見ておきましょう(更新の前のバックアップ)。
  • 今のファイルの写し:直す前に、「output started at」に出たファイルを手元にダウンロードしておきます。

直し方

まず1でファイルと行を確かめます。この警告の上に別の警告が出ていれば4へ、そうでなければ2・3へ進みます。直ったら5で確かめます。

1. 「output started at」のファイルと行を確かめる

画面に出た文、またはサーバーのエラーログで、「output started at」の後のファイルの場所と、「:」の後の行の番号を書き写します。エラーログの見方は、「重大なエラー」の記事の「主なレンタルサーバーでの場所」にまとめています。

2. 書き換える前のファイルに戻す

直前に書き換えたファイルなら、まずは、ファイルマネージャーやFTPのソフトで、書き換える前のファイルを元の場所に戻します。WordPressの公式の案内でも、バックアップのファイルなどに置き換えるのが確かな方法とされています。

自分では書き換えていないプラグインやテーマのファイルなら、そのプラグインやテーマに新しい版が出ていないかを確かめます。新しい版が無いときや、どの版がよいか分からないときは、提供元やWP-ingにご相談ください。

3. 戻せる写しが無いとき:ファイルの最初と最後を確かめる

wp-config.php や functions.php のように、先頭からPHPのコードが始まるファイルの場合の確かめ方です。HTMLがまじったファイルなど、作りが分からないときは、無理に進めずご相談ください。

ダウンロードしたファイルは元のまま残しておき、複製したものを、Wordなどの文書作成ソフトではなく、メモ帳などのテキストエディターで開いて、次のところを確かめます。

  • 1行目が <?php から始まっていて、その前に空白や空の行が無いか
  • ファイルがPHPのコードで終わっていて、最後に ?> がある場合は、その後に空の行や空白が無いか。?> の後ろで、何も無いように見える行を消します
  • 保存するときの形式が「UTF-8」になっているか(「BOM付き」ではないほう)。メモ帳などでは、保存の画面で文字コード(エンコード)を選べます

ファイルがPHPのコードで終わっている場合は、最後の ?> を書かないほうがよいとされています(PHPの公式マニュアル)。?> の後の空白や空の行が、うっかり入るのを防げるためです。?> の後ろにHTMLなどが続くファイルでは、消さずに、そのままにしておきます。すでに最後に ?> が無いファイルなら、付け足す必要はありません。

直したら、ファイルの名前(最後の .php まで)が元のままかを確かめてから、元の場所に上げ直し、もう一度ログインや保存を試します。直した後に「Parse error: syntax error」と出るときは、書き換えたところに書き間違いがあるかもしれません(「Parse error」と出るときの記事)。

wp-config.php には、データベースのパスワードなどの大事な情報が書かれています。人に相談するときや、ネットで調べるときは、ファイルの中身を含めずに、警告の文だけをお知らせください。

4. 先に別の警告が出ているとき

この警告の上に、別の Warning や Deprecated の文が出ている場合は、その警告が画面に出たこと自体が「余分な文字」になっています。先に出ている警告の読み方と直し方は、Warning・Deprecated の記事をご覧ください。

  • 先に出ている警告のファイルを見て、プラグインやテーマなら、新しい版が出ていないか、今のPHPの版に対応しているかを確かめます(PHPの版を上げるときの手順)。
  • 確かめるために wp-config.php でエラーを画面に出す設定にしていた場合は、画面には出さず、記録に残す設定に戻します(「重大なエラー」の記事の「エラーの記録を見る」)。公開しているサイトで警告を画面に出したままにすると、訪問者にもファイルの場所などが見えてしまいます。

画面に出さない設定にすると、先の警告が画面に出なくなるため、この警告も出なくなることがあります。ただ、先に出ていた警告の原因はそのまま残っています。記録を見て、原因も確かめておきましょう。

5. 直った後に確かめること

  • ログアウトしてから、もう一度ログインできるか
  • 管理画面で投稿や設定を保存した後、ふだんどおり画面が切り替わるか
  • ログアウトした状態で、トップページやお問い合わせフォームなどが、ふだんどおり動くか

自分で直すのが難しいとき

次のような場合は、無理に作業を進めず、ご相談ください。

  • 「output started at」のファイルが分からない・どこを直せばよいか分からない
  • ファイルを直しても、同じ警告が出る
  • ログインできず、管理画面に入れない
  • ファイルマネージャーやFTPの使い方が分からない

WP-ingでは、このエラーをはじめ、WordPressの不具合の修理を承っています。状況を確かめて、作業の前に料金をご案内します。直らなければ料金はいただきません。お支払いは、直ったことを確かめていただいてからです。

よくある質問

「in」の後ろに出ているWordPress本体のファイルを直せばよいですか?

そちらは影響を受けた側なので、ふつうは直す必要はありません。WordPress本体のファイルを書き換えると、更新のときに元に戻ったり、別の不具合のもとになったりします。まずは「output started at」の後のファイルを確かめましょう。

ファイルを開いても、空白も空の行も見当たりません。

ファイルが「UTF-8」の「BOM付き」で保存されていると、先頭に目に見えない印が付いていて、それが原因の場合もあります。まず、テキストエディターで、そのファイルの保存の形式を確かめます。「BOM付き」になっていれば、「UTF-8」(BOM付きではないほう)にして保存し直します。保存し直した後に、そのファイルの日本語が文字化けする場合は、文字化けの記事の「テーマ・プラグイン・管理画面の一部だけが化けるとき」をご覧ください。

参考にした情報

この記事の内容は、2026年10月20日に確認したものです。

コラムの一覧へ

無料で相談する