SEO用のsitemap.xmlは、Google XML Sitemapsプラグインで生成していました。このプラグインで生成したsitemap.xmlをサーチコンソールで読み込んでいました。しかし、いつからかsitemap.xmlの中身が表示されなくなっていました。
Google XML Sitemapsでサイトマップが表示できなくなっていた
表示できていたのは、Google XML Sitemapsプラグインをインストールした時だと思います。
動作確認は行い正常であったのでGoogle Search Consoleにも設定しました。
関連記事WordPressでXMLサイトマップ (2019-12-19 15:53:18)
この記事を書いたころからの変更は以下の通りです。
- Google XML Sitemaps プラグインのバージョンアップ
- Diverテーマのバージョンアップ
- WordPressのバージョンアップ
現在は、「/sitemap.xml」へアクセスすると真っ白な画面です。
GoogleやBingからはサイトマップファイルは読み込めているようですが、内容は空っぽのようです。
つまりサイトマップとしては何も読み込まれていないということです。
Google XML Sitemaps プラグインのバージョンアップの影響とは
Google XML Sitemapsプラグイン自体のバージョンアップが何度かありました。セキュリティアップデートもありましたので、できていたものができなる可能性がありますが、アップデート内容からはこれというものは見つかりませんでした。
よくあるのが空白行が悪さをする件ですが、特に該当するものはありませんでした。
WordPressのバージョンアップの影響とは
WordPress 5.5の新機能に注目すると「XMLサイトマップ機能」です。
これまで、プラグインや別途ツールが必要でしたが、Wordpressのコア機能に追加されました。
これにより考えられるのが、新XMLサイトマップ機能の動作の影響もしくはGoogle XML Sitemapsとのコンフリクトです。
WordPressのXMLサイトマップ機能に関しては次のサイトに機能の詳細があります。
WordPressのXMLサイトマップ機能を無効化する方法
function.phpに次のコードを追加することで明示的にコアのXMLサイトマップを無効にできます。
add_filter( 'wp_sitemaps_enabled', '__return_false' );
また、Google XML Sitemapsプラグインを有効化すると上記コードがアクティブになり、Google XML Sitemapsプラグインのサイトマップ生成機能のみが利用できるようです。
sitemap.xsl:1 Failed to load resource: the server responded with a status of 404 ()
Google ChromeとMicrosoft Edgeの開発者ツールのコンソールにエラーが表示されていました。
「sitemap.xsl」にアクセスできなかったのが原因のようです。
このファイルは「wp-content/plugins/google-sitemap-generator/sitemap.xsl」に存在しているのは確認済みなので、Nginxの設定が怪しいようです。
nginxの設定ファイル内をキーワード「wp-content」で検索すると以下がヒットしました。
# Security
location ~* wp-admin/includes { deny all; }
location ~* wp-includes/theme-compat/ { deny all; }
location ~* wp-includes/js/tinymce/langs/.*\.php { deny all; }
location /wp-content/ { internal; }
location /wp-includes/ { internal; }
WordPressのセキュリティ設定をnginxの設定で何とかしようとしたときに設定した記憶があります。
wp-content以下へは直接外部からアクセスできないようにアクセス制限していました。
現在は、「WP Cerber Security Antispam & Malware Scan」プラグインを使用しているので、アクセス制限を緩和さることで対応しました。
関連記事WordPressのセキュリティ対策 (2020-01-04 20:04:42)
今回、この設定を無効にすることで一応サイトマップの表示は正常になりました。
個人的にはGoogle XML Sitemapsプラグインの方が使いやすいのでお勧めです。