サーチコンソールにサイトマップ(sitemap.xml)を登録する際、エラーになるときの原因と対策
新しいサーチコンソールでサイトマップを登録しようとするとエラーになることがあります。
古いサーチコンソールではOKだったのに、新しいサーチコンソールではだめな場合もあり、書式のチェックなどが厳しくなったと思われます。
実際に体験したエラーの原因と対処方法をまとめました。
WordPressを使っていて、sitemap.xml生成には、「Google xml sitemap」プラグインを使っていることが前提です。
原因1:sitemap.xmlの先頭に空行がある
sitemap.xmlの先頭に空行があると、サーチコンソールの登録でステータスが「取得できませんでした」になり、詳細を見ると「サイトマップを読み込めませんでした」となります。
サイトマップのURL(https://ドメイン/sitemap.xmlなど)をブラウザに入れるとサイトマップが開きますので、そのソースを表示すると確認できます。
結論から言えば先頭の空行を取り除けばOKです。
先頭に空行が入る原因は、Wordpressのfunctions.phpの修正時に空行を残してしまうことです。
<?phpと?>の間は空行があっても大丈夫ですが、<?phpと?>の外に空行があるとだめです。
functions.phpの先頭に空行が残っていてもだめです。
また、functions.phpの最後に空行が残っていてもだめです。
functions.phpに空行が残っていると、sitemap.xml以外にも何かとエラーの原因になりますので要注意です。
原因2:robots.txtでアクセス拒否設定になっている
robots.txtは意識しなくても勝手にWordpressが生成したりするので原因が特定できないときは、だめもとでチェックしてみて下さい。
古いサーチコンソールでrobots.txtテスターを開くと、robots.txtで拒否設定が残っているとエラーのポップアップがでます。
新しいサーチコンソールで、URL検査でサイトマップのURL(https://ドメイン/sitemap.xmlなど)を入力して検査すると、robots.txtで拒否している場合はその旨の結果が出ます。
robots.txtが拒否設定になっている原因は、Wordpressの設定⇒表示設定にて「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていることです。
ここにチェックが入っていると、Wordpressが全アクセスを拒否するrobots.txtを勝手に生成してしまいます。
「検索エンジンがサイトをインデックスしないようにする」のチェックをはずせば、Wordpressは全アクセスを受け付けるrobots.txtを生成してくれます。
ただ、Google側が、robots.txtのデータを1日くらい持ったままでいるせいで、Wordpress側の設定を変えてrobots.txtが修正されてもすぐに反映されないので、1日ぐらい待ってからサイトマップを登録しなおしてみて下さい。
ちなみに、ルートフォルダにrobots.txtをファイルとして保存しておくと、Wordpressは自動では生成せず、ファイルの内容が反映されます。
原因3:sitemap.xmlに記載されている記事URLに全角文字が残っている
sitemap.xmlに記載されている記事URLに全角文字が残っているとサイトマップ登録時にエラーになります。
全角文字が残る原因は、URLに全角のディレクトリがあることです。
本来は、記事のURLに全角があっても、通常はURLエンコードにより%や半角英数にエンコードされるため、sitemap.xmlに全角が残ることはありません。
しかし、ディレクトリを作っていてかつディレクトリ名に全角を使っている場合は、「Google xml sitemap」ではディレクトリ部分の全角がURLエンコードされずにそのままsitemap.xmlに記載されてしまいます。
この状態でサーチコンソールにサイトマップを登録するとエラーになります。
パーマリンクなどでディレクトリを設定してしかもディレクトリ名に全角を入れている場合になりやすいです。
現状では、「Google xml sitemap」でディレクトリの全角をURLエンコードしてくれません。
そのため、エラーが出ないsitemap.xmlを「Google xml sitemap」で生成するには、URLのディレクトリ名の全角部分を変更するしかありません。
しかしながら、SEO的なマイナスの影響のリスクを鑑みると、URLの変更は難しいところでもあります。
それでも対策を挙げるとすると、
1.sitemap.xmlの登録はあきらめて、URL検査にてHTMLのサイトマップ(「PS Auto Sitemap」プラグインを使用)をリクエストしてインデックスされるのを待つ
2.「Google xml sitemap」以外のsitemap.xml生成プラグインを使う(探すと見つかる。自分で試したことはない。解決するかどうかは未確認)
3.サイトの記事更新や追加が少ない場合は、sitemap.xmlの全角部分をURLエンコードして修正して静的ファイルとしてルートフォルダに保存する(「Google xml sitemap」プラグインは削除)
あたりになるかと思います。