WordPress の RSS フィードエラーを直す方法

WordPress の RSS フィードエラーに直面していますか?修正はたいてい数分で済みます。まずフィードを検証して正確なエラーを特定し、続いてプラグインの競合、テーマの問題、functions.php、パーマリンクのリセットを、フィードが正常になるまで順に進めます。

要点 — WordPress の RSS フィードエラーを直す:

  1. 検証する — フィードの URL を W3C フィード検証サービスに貼り付け、正確なエラー行を確認します。
  2. プラグイン — すべてのプラグインを無効にし、フィードが正常になることを確認してから、1つずつ再有効化して原因を見つけます。
  3. テーマ — デフォルトの WordPress テーマ(Twenty Twenty-Four)に切り替え、テーマ側の出力を除外します。
  4. functions.php — テーマの functions.php に構文エラーや、XML 宣言より前に出力を行うコードがないか確認します。
  5. パーマリンク設定 → パーマリンク に進み、変更を保存 をクリックしてリライトルールをフラッシュします。

WordPress の RSS フィードエラーとは?

WordPress は あなたのサイト.com/feed に RSS 2.0 XML 形式のフィードを生成します。フィードリーダー、ポッドキャストアプリ、検索エンジンのクローラーは、最新の投稿の構造化された一覧を受け取るためにこの URL を要求します。WordPress、プラグイン、テーマが <?xml 宣言より前に余分な空白、PHP の通知、不正な HTML を出力すると、XML ドキュメントは無効になり——フィードのあらゆる利用者が解析エラーを報告します。

最も目に見える症状は、ブラウザーが「このページには次のエラーが含まれています — 整形式ではありません(無効なトークン)」と表示すること、/feed ページが空白になること、/feed で 500 Internal Server Error が出ることです。フィードアグリゲーターは、何の警告もなくあなたの更新を静かに切り捨てることもあります。

根本原因はどの場合も、WordPress スタックの何かが XML レスポンスの前または内部に予期しない出力を注入したことです。下の5つの方法は、その出力を切り分けて取り除きます。

WordPress の RSS フィードエラーのよくある原因

RSS フィードエラーは通常、フィードの書式や構造に関する問題が原因で発生します。これらのエラーは、フィードリーダーがあなたのコンテンツを正しく解析するのを妨げることがあります。よくある原因は次のとおりです。

  • 不適切な書式 — 読み込まれたいずれかのファイルで <?php の前に1つでも誤った文字や余分なスペースがあると、フィード全体が壊れることがあります。
  • プラグインの競合the_contentwp_headinit にフックするプラグインが、現在のリクエストがフィードかどうかを確認せずに HTML を注入することがあります。
  • テーマの問題functions.php やテンプレートファイル内のカスタムコードが、すべてのリクエストで無条件に出力を行うこと。
  • サーバーの問題 — サーバーの設定や構成がフィードへのアクセスを妨げたり、予期しない出力を注入したりすることがあります。

WP STAGING のステージングクローンを使った私たちのテストでは、不正な XML の最も多い原因は、the_content にフックして、現在のリクエストがフィードかどうかを確認せずに HTML を注入するプラグインです。

手早い診断

どの対処から始めればよいか分からない?この表を使って、症状を最も可能性の高い原因に対応づけてください。

/feed の症状 最も可能性の高い原因 まず始めるのは
ブラウザーで「整形式ではない」XML エラー HTML を注入するプラグインまたはテーマ 方法2 — プラグインの競合
真っ白なページ PHP 致命的エラーまたは出力バッファリング 方法4 — functions.php
500 Internal Server Error サーバー構成または破損したリライトルール 方法5 — パーマリンクのリセット
ブラウザーでは検証が通るがリーダーで失敗する エンコードの問題または誤った MIME タイプ 方法1 — バリデーター
プラグインをインストールした直後にエラーが出た 新しいプラグインの競合 方法2 — プラグインの競合

注意: 何かを変更する前に、ウェブサイトのバックアップを取っておくとよいでしょう。問題が起きても、サイトを以前の状態にすばやく復元できます。簡単な自動バックアップには WP Staging を使えます。さらに詳しくは、バックアップと復元のガイドをご覧ください。

WordPress の RSS フィードを検証する方法

コードを変更する前に、W3C フィード検証サービスを使って、エラーが正確に何なのかを確認します。バリデーターはフィードを解析し、無効なマークアップが始まる正確な行と文字を報告します——多くの場合、原因となっているプラグインやテーマの出力を直接指し示します。

WordPress の RSS フィード URL(例:https://あなたのサイト.com/feed/)を検証ツールに貼り付け、Check をクリックして検証プロセスを開始します。

W3C フィード検証サービス

バリデーターは見つけたエラーや警告を列挙します。一部の警告は心配いりませんが、エラーは対処する必要があります。エラーの説明は問題の場所を示し、それを特定のプラグインやテーマのファイルまでたどれます。下の各対処のあとにバリデーターを再実行して、進捗を確認してください。

プラグインの競合による RSS フィードエラーを直す方法

プラグインの競合は、WordPress における RSS フィードエラーの最も多い原因です。このテストは、すべてのプラグインを一度に無効にし、フィードが正常になることを確認してから、エラーが戻るまで1つずつ再有効化することで機能します。

WordPress の管理ダッシュボードにログインし、プラグイン → インストール済みプラグイン に移動します。

WordPress のインストール済みプラグイン

リスト上部のチェックボックスをオンにして、すべてのプラグインを選択します。

すべてのプラグインを選択する

一括操作 のドロップダウンから 停止 を選び、適用 をクリックします。

すべてのプラグインを無効にする

すべてのプラグインを無効にしたら、あなたのサイト.com/feed にアクセスして、フィードが検証を通るか確認します。通る場合、プラグインの競合があります。プラグインを1つずつ——セキュリティ、キャッシュ、SEO のプラグインから——再有効化し、有効化のたびにフィードを確認します。エラーが戻ったら、最後に有効化したプラグインが原因です。更新する、より新しいバージョンを探す、またはプラグイン作者に連絡してください。

プラグインの更新後に RSS フィードを定期的に監視すると、競合を早期に発見し、長期の停止を避けるのに役立ちます。

テーマの問題による RSS フィードエラーを直す方法

プラグインを除外してもフィードがまだエラーになる場合、有効なテーマが予期しない出力を注入している可能性が高いです。デフォルトの WordPress テーマに切り替えると、テーマのカスタムコードがすべて一時的に取り除かれ、原因を切り分けられます。

WordPress の管理ダッシュボードにログインし、外観 → テーマ に移動します。

WordPress のテーマ

Twenty Twenty-Four(または別のデフォルト WordPress テーマ)を見つけて 有効化 をクリックします。

デフォルトテーマに切り替える

あなたのサイト.com/feed にアクセスして、エラーが消えたか確認します。フィードがエラーなく動作するようになったら、元のテーマが問題の原因です。テーマの開発者にサポートを求めるか、それらのファイルを扱うのに慣れているなら、テーマのコードに PHP や HTML のエラーがないか確認してください。

テーマを切り替えると問題が解決するものの元のテーマを保持する必要がある場合、対処はコンテンツを無条件に出力しているフックを見つけ、それを if ( ! is_feed() ) の条件で囲むことです。デフォルトテーマへの切り替えは診断ツールです——原因を確認したあと、元に戻して特定の問題のあるコードを狙い撃ちできます。

functions.php で RSS フィードエラーを直す方法

テーマの functions.php には、HTML を出力する、変数を表示する、または XML 宣言より前に現れる PHP 通知を生成する、カスタムスニペットが含まれていることがあります。プラグインと有効なテーマで問題が解決しないとき、このファイルに最近の変更がないか確認するのは信頼できる手順です。

ホスティングアカウントの cPanel にログインし、ファイルマネージャー を開きます。

WordPress の cPanel ファイルマネージャー

public_html(または WordPress のインストールディレクトリー)に移動します。

public_html フォルダー

wp-content フォルダーを開きます。

WordPress wp-content

themes フォルダーを開きます。

WordPress のテーマ

有効なテーマのフォルダーを開きます。

WordPress のデフォルトテーマ

functions.php を右クリックして 編集 を選びます。

テーマファイル functions.php を編集する

functions.php のコードに、最近の変更、構文エラー、RSS フィードエラーの原因になりうるカスタムスニペットがないか確認します。フックのコールバックの外で echoprintvar_dump を呼ぶ行、対応していない括弧やセミコロンの欠落といった PHP 構文エラー、is_feed() チェックを含まずに最近追加されたコードを探してください。疑わしい各行の先頭に // を付けて一時的にコメントアウトします。ファイルを保存します。

functions.php のエラーを確認する

あなたのサイト.com/feed にアクセスして、RSS フィードが正しく動作するか確認します。問題なく読み込まれれば、コメントアウトしたコードが原因でした。それを完全に削除するか、if ( ! is_feed() ) { ... } で囲んで、フィード以外のリクエストでのみ実行されるようにします。

パーマリンクをリセットして RSS フィードエラーを直す方法

WordPress はリライトルールをデータベースに保存します。これらのルールが古くなると——たとえばドメイン変更、サーバー移行、プラグイン更新の失敗のあと——/feed エンドポイントが正しくルーティングしなくなることがあります。パーマリンク設定を保存すると、WordPress はリライトルールを一から再生成します。

WordPress のダッシュボードにログインし、設定 に移動して パーマリンク をクリックします。

WordPress のパーマリンク

「基本」「日付と投稿名」「月と投稿名」「数字ベース」「投稿名」「カスタム構造」などのオプションを含む、現在のパーマリンク設定を確認します。現在どのオプションが選択されているかを控えておきます——変更する必要はありません。

WordPress のパーマリンクを確認する

下までスクロールして 変更を保存 をクリックします。このフラッシュは、どの設定も変更せずにリライトルールを再生成するのに十分です。

パーマリンクの変更を保存する

保存後、RSS フィードの URL(通常は あなたのサイト.com/feed)にアクセスして、フィードが正しく読み込まれるか確認します。読み込まれれば、古いリライトルールが原因でした。

どの対処もうまくいかない場合の対応

5つの方法をすべて試してもフィードがまだエラーを返す場合、問題はおそらく次のような、比較的まれな原因のいずれかによるものです。

  • Yoast SEO のフィードリダイレクトの競合 — 一部の Yoast SEO 構成は /feed をカスタムフィード URL にリダイレクトします。Yoast SEO → 高度 → RSS の設定を確認し、予期しないリダイレクトが有効になっていないか確かめます。
  • 出力バッファリングのプラグイン — キャッシュやページ速度のプラグインが XML 宣言より前に空白を注入していることがあります。プラグイン設定で出力バッファリングを無効にするか、キャッシュプラグインを完全に無効にして、フィードをテストします。
  • wp-config.php の余分な文字wp-config.php(WordPress のルートディレクトリーにあり、cPanel のファイルマネージャーからアクセス可能)を開き、ファイルのいちばん最初に <?php より前の文字がないか確認します。たった1つの余分なスペースでもフィードは壊れます。

上記すべてを除外しても問題が続く場合は、W3C フィード検証サービスのエラーレポートの行番号を使って、フィード出力内の原因となっている正確な文字を特定し、それを生成した WordPress のフックまでたどってください。

まとめ

WordPress の RSS フィードエラーを直すことは、コンテンツを読者にスムーズに届けるために不可欠です。まず W3C フィード検証サービスで正確なエラーを特定し、続いて5つの方法を進めます:フィードを検証する、プラグインの競合をテストする、デフォルトテーマに切り替える、functions.php を確認する、パーマリンクをリセットする。どれも問題を解決しない場合、「どの対処もうまくいかない場合の対応」のセクションが、比較的まれな原因——Yoast のフィードリダイレクト、出力バッファリングのプラグイン、wp-config.php の余分な文字——を扱います。WordPress のプラグインとテーマのコードを定期的に手入れすれば、これらの問題のほとんどが再発するのを防げます。

関連記事