コンテンツにスキップ

WordPress で wp-sitemap.xml が自動生成されない問題の解決手順

メインイメージ

WordPress 本体が生成するサイトマップ wp-sitemap.xml が生成されない問題を解決するための手順を説明します。

確認時のバージョン

  • WordPress 6.5.3

1. WordPress バージョンの確認

使用している WordPress のバージョンを確認します。

具体的な方法については次のページを参考にしてください。

wp-sitemap.xml を生成する機能は WordPress 5.5 で導入されたものであり、それ以前のバージョンの WordPress にはサイトマップ生成機能が備わっていません。 古いバージョンの WordPress をお使いの場合は最新版へのアップデートを行ってください。

ちなみに、 WordPress 5.5 のリリース時期は 2020 年 8 月です。 ですので、サイト構築の時期が 2020 年 8 月以降なら WordPress のバージョンはおそらく 5.5 以上です。 また、サイト構築の時期が 2020 年 8 月よりも前の場合でも、普段から適切に WordPress のアップデートを行っていれば WordPress のバージョンが 5.4 以前ということは無いはずです。

2024 年 5 月時点での WordPress のバージョン統計:

2024 年 5 月時点での WordPress のバージョン統計

バージョン 利用
6.5 60.36%
6.4 10.31%
6.3 3.14%
6.2 3.82%
6.1 2.95%
6.0 2.21%
5.9 1.57%
5.8 1.86%
5.7 1.40%
5.6 0.94%
5.5 1.31%

出典: Stats – WordPress.org

WordPress 5.5 以上の合計が 89.87% なので、サイトマップ機能が無い 5.4 以前のバージョンを使っているサイトは全体のうち約 10% です。

2. URL が正しいかの確認

サイトマップ wp-sitemap.xml の URL が正確かどうかを確認します。

通常、サイトマップの URL は WordPress サイトのホーム URL 直下の /wp-sitemap.xml です。 例:

ホーム URL サイトマップ URL
https://example.com https://example.com/wp-sitemap.xml

URL のホスト・パスなどが間違っていないかをいま一度確認し、ブラウザでアクセスしてみてください。 正しい URL でアクセスしてもサイトマップが表示されなければ次の手順に進んでください。

3. サイト設定の確認

WordPress の設定が適切かを確認します。

WordPress 本体のサイトマップは検索エンジンによるインデックスを許可していないと生成されないようになっているので、設定項目「検索エンジンがサイトをインデックスしないようにする」を確認し、もしインデックスしない設定になっていればこれを解除してください。

  1. 管理者ユーザーで WordPress 管理画面にログイン
  2. サイドメニューの「設定」→「表示設定」をクリック
  3. 表示設定ページが開くので「検索エンジンでの表示」→「検索エンジンがサイトをインデックスしないようにする」のチェックを外して「変更を保存」をクリック

WordPress 管理画面 → 設定 → 表示設定

WordPress 管理画面 → 設定 → 表示設定 → 検索エンジンでの表示

ここの設定がサイトマップ生成をする・しないの制御に関わることは管理画面上からはわからないので、ここは多くの方がつまづきがちなポイントです。

ちなみに、この「検索エンジンがサイトをインデックスしないようにする」という設定の値は WordPress 内では blog_public というキーのレコードで管理されています。 その値が 1 の場合は検索エンジンのインデックスを許可、 0 の場合は検索エンジンのインデックスを拒否するという意味になります。

4. ウェブサーバー設定の確認

ウェブサーバーの設定が適切かを確認します。

WordPress が wp-sitemap.xml を生成していてもウェブサーバーの設定がまずいとその URL にアクセスしてもサイトマップが閲覧できないこともあります。

利用しているホスティング環境とウェブサーバーによって確認方法は異なりますが、例えば、共用のレンタルサーバーでウェブサーバーが Apache の場合、 WordPress インストールディレクトリの .haccess ファイルにウェブサーバーの設定が記述されていることが多いです。

WordPress サイトが正しく動く .htaccess のデフォルトの内容は次のとおりです。

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

この記述が誤って変更されていないか、他に追加された設定が悪さをしていないかを確認し、問題があれば修正してください。

追加された設定が悪さをしていないかは、元の .htaccess をバックアップした上でデフォルトの .htaccess に差し替えたりすると比較的かんたんに確認できます。 .htaccess を変更する際は事前に必ずバックアップを取るようにしてください。

5. プラグインの影響の確認

インストール済みのプラグインの影響を確認します。

利用しているプラグインを一通り無効化して問題が解消されるかどうか確認してください。 特に SEO 関連やキャッシュ関連のプラグインが影響する場合が多いので、 SEO 関連・キャッシュ関連のプラグインをお使いの場合はまずそれらの影響を先に確認するとよいと思います。

例えば、 SEO 関連で最も多く使われている Yoast SEO ( wordpress-seo )というプラグインは、 WordPress デフォルトのサイトマップ wp-sitemap.xml を無効化して独自に生成したサイトマップを提供します。 Yoast SEO の場合は wp-sitemap.xml にリクエストがあると独自のサイトマップにリダイレクトするので

プラグインをすべて無効化しても問題が解消されない場合はプラグインが原因ではないということになります。

6. テーマの影響の確認

利用しているテーマの影響を確認します。

プラグインに比べるとテーマが問題の原因である可能性は低いですが、 SEO 機能などを備えているテーマの場合はデフォルトの wp-sitemap.xml を無効化している場合もありうるので、ここまで問題が見つからなければテーマもチェックするとよいと思います。

テーマを WordPress 本体に同梱のデフォルトのテーマ(例えば WordPress 6.5 なら Twenty Twenty-Four )に一時的に切り替えて、問題が解消されるかどうか確認してください。

結び

ここまでチェックするとおそらく高い確率でどこかに問題の原因が見つかるかと思います。 もしここまでチェックしても原因がわからない場合は、延々と問題解決を試みるよりも外部の信頼できる専門家に依頼することを検討した方がよいかもしれません。 そちらの方が時間を浪費せず結果的にコストパフォーマンス高く解決できる可能性が高いと思います。

参考

公式リファレンス

関連ページ