サイトマップにはウェブ閲覧者にサイトの構造を理解してもらい適切に誘導する目的のHTMLサイトマップと、検索エンジンのロボット向けのXMLサイトマップがあります。
今回は検索エンジン向けのXMLサイトマップの話です。
Google XML Sitemaps
Google XML Sitemapsプラグインを使用しました。
XMLファイルはダイナミック版ですのでsitemap.xmlファイルは動的に作成されます。
※スタティック版は3.4.1ですので公式サイトからダウンロードしてください。
https://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/
404エラーの発生
最初のセットアップ時には表示されていたのですが、その後は404エラーでXMLサイトマップページが表示されません。
Google Search Consoleからも取得ができません。
sitemap.xmlの代わりに以下を入力すればとりあえずは成功します。
/index.php?xml_sitemap=params=
どうやらリライトルールを追加しないといけないようです。
リライトルールを設定
nginxを使用しているのでwordpress用の設定ファイル(Serverモジュール)に4行だけ追記しました。
try_files $uri $uri/ /index.php?q=$uri&$args;
# Google XML-Sitemap Plugin
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;
変更を反映してsitemap.xmlが表示できることを確認しました。
Google Search Consoleで読み込んだサイトマップ
Google Search Consoleからはサブのサイトマップは取得できていませんが時間が解決してくれるでしょう。