- 実践 WordPress ホーム
- デバッグ・問題解決
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 のバージョン統計:
バージョン | 利用 |
---|---|
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% |
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 本体のサイトマップは検索エンジンによるインデックスを許可していないと生成されないようになっているので、設定項目「検索エンジンがサイトをインデックスしないようにする」を確認し、もしインデックスしない設定になっていればこれを解除してください。
- 管理者ユーザーで 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 )に一時的に切り替えて、問題が解消されるかどうか確認してください。
結び
ここまでチェックするとおそらく高い確率でどこかに問題の原因が見つかるかと思います。 もしここまでチェックしても原因がわからない場合は、延々と問題解決を試みるよりも外部の信頼できる専門家に依頼することを検討した方がよいかもしれません。 そちらの方が時間を浪費せず結果的にコストパフォーマンス高く解決できる可能性が高いと思います。