WordPressプラグインの中にGoogle xml sitemapsという有名なものがあります。これは検索エンジン向けのサイトマップを作成してくれ、新しい記事などを更新した時にも自動でサイトマップを更新し更にクローラーへ向けて送信までしてくれるというプラグインです。

この動作により、検索エンジンへより素早く更新情報が反映されるもしくはインデックスされやすくなる(個人的にはそこまで効果があるとは思っていませんが)といわれています。

Website sitemap prep
Website sitemap prep / jonas maaloe

ver4からGoogle XML Sitemapsの動作が変わった

さてそんなGoogle XML Sitemapsですが、今年の3月頃にver4へとメジャーバージョンアップをしてから少し仕様が変更されました。

ver3までは「sitemap.xml」という静的なサイトマップを作成していたのですが、ver4以降は動的なサイトマップを作成するようになったのです。

その為sitemapという名のxmlファイルはWordPressのディレクトリ上には存在せず、サイトマップへのURLを辿るとこのように投稿月毎の入れ子形式でサイトマップが表示されるようになりました。

人間が見るものでもないので形式がどう変わろうが別に構わないのですが、サイトマップのファイル形式が変わってしまったために以前のxmlファイルを削除しなければならず、単純にプラグインをアップデートしただけではエラーが発生するようになっています。

また手順に乗っ取って新しいサイトマップに対応したとしても、ウェブマスターツールで見るとインデックスされたページが増えたり減ったりと不安定になる現象が発生しました。

結果、このプラグインのフォーラムは未だに荒れているような状態。
WordPress › Support » Google XML Sitemaps

日本語で情報を集めようと検索してみても、「新しいGoogle XML Sitemapsは動作が不安定なのでひとまず旧バージョンへダウングレードしましょう」みたいな記事も多く、それ何の解決にもなってないよね?というような状態です。

しかし中にはちゃんと試行錯誤してこの状況の解決策を書いてくれているブログなどもあり、それらを参考にしつつ、色々試してみたので以下そのメモです。

Google XML Sitemapsのバージョンアップ

まずはGoogle XML Sitemapsのバージョンアップから。
この記事を書いている時点(2014/8)での最新版はver4.0.7です。

Google XML Sitemapsのver3.4.1がインストールされているので、とりあえずこれをWordPressの管理画面からアップデート。

ver4.0.7へのアップデート完了。

古いサイトマップの削除

続いてGoogle XML Sitemapsの管理画面へ。
するとこんな警告が表示されています。
これは静的に作成された「sitemap.xml」と「sitemap.xml.gz」の二つのファイルがWordPressのサーバーに残っているので削除するようにという意味です。
リンクが張られている「try to delete them automatically」をクリックすると自動で削除してくれますのでここをクリック。

削除完了。

ただここで自動削除するとWordPressのディレクトリ内に先ほどの二つのファイルが「sitemap.backup.xml」と「sitemap.backup.xml.gz」という形でバックアップファイルとして残るのでこれも不要なら(普通はいらない)削除。

robots.txtの変更

仮想robots.txtを使っているならここの手順は不要ですが、自分の場合は実際のrobots.txtファイルをWordPressのディレクトリに設置しているのでサイトマップへのパスを書き換えておきます。

このブログの場合robots.txtにはsitemapへのパスとして

Sitemap: https://note100yen.com/sitemap.xml

と記述しているのでこれを

Sitemap: https://note100yen.com/index.php?xml_sitemap=params=

へと書き換え。

パスは書き換えなくてもリダイレクトしてくれているようなのですが、どうもrobots.txtのサイトマップへのパスを変更しておかないとウェブマスターツールでのページのインデックスが不安定になるようなので変更しておく事が推奨です。

ウェブマスターツールに登録してあるサイトマップへのURLを変更

続いてGoogleのウェブマスターツールに登録してあるサイトマップのURLを変更。
ウェブマスターツールにログインして「サイトマップの追加/テスト」。

この空欄に

index.php?xml_sitemap=params=

と入力。そのまま送信。

これでウェブマスターツールには二つのサイトマップURLが登録されている状態になります。

下にある「/sitemap.xml」は上の手順で削除してあるファイルなのでもう不要です。

ですからウェブマスターツールの登録からも削除すればいいのですが、ちょっとはまってしまったのが上の「/index.php?xml_sitemap=params=」の手前に表示されている警告マークのようなもの。

これの意味がわからず放置していた結果、ウェブマスターツールにサイトマップが全くインデックスされないという事態になってしまいました。
とはいえほどなく解決したのでやった事など書き残しておきます。

この黄色の三角マークは該当のサイトマップに何かエラーがある事を示しています。とりあえずエラー内容を確認。

とりあえずサイトマップにクローラーがアクセスできないとの事。

その原因はrobots.txtにあるそうです。

ウェブマスターツールのテスターで確認してみます。

テストしたいURLを入力して

右側の「テスト」をクリック。

結果、原因がわかりました。
サイトマップにクローラーがアクセスできなかった原因の一つがrobots.txtに記載された

Disallow: /*?*

Disallow: /*?

の二つの記述。

考えてみれば「/index.php?xml_sitemap=params=」へのアクセスを拒否するという意味の記述をしていたわけで、当たり前といえば当たり前。

早速robots.txtから上記二つの記述を削除。

削除してもウェブマスターツールにrobots.txtの変更が反映されるには少し時間がかかります。その為、変更直後にもう一回サイトマップの送信テストをしても結果はかわりません。この状態でしばらく放置。

2~3日放置していると内容を書き換えたrobots.txtファイルが認識されていると思います。その状態でサイトマップのエラーが消えていればよし。
消えていなければサイトマップの再送信をしてみるとエラーが消える場合があります。

エラー表示がなくなっていれば下の「/sitemap.xml」のサイトマップの登録は不要なので削除しておきます。ただこの状態では上の「/index.php?xml_sitemap=params=」がまだインデックスされておらず「保留」となっている場合もありますので、不安であればいくつかインデックスされるまで下の「/sitemap.xml」の登録は残しておいてもいいかもしれません。

なお、そのまま放置し続けていると二つのURLでサイトマップが認識されてしまい、何故か急にインデックス数が2倍になったりしてあまりGoogle的に良くなさそうなので、適度にインデックスされている事が確認できたら下の「/sitemap.xml」は削除してしまった方がいいと思います。

一応ここまででver4以降のGoogle XML Sitemapsで作成されたサイトマップのウェブマスターツールへの登録作業は終了です。
サイトマップが変更されると一瞬インデックス数が0になりますが、更新頻度の高いブログなどはそこからの復活は早いと思います。

このブログの場合、半日で全ページがインデックスに登録されていました。

Googleへのサイトマップ送信って必要?

ここまでやっててなんですが、正直クローラー向けのサイトマップ送信はそんなに意味はないと思っています。
そもそもウェブマスターツールに登録すらできない無料ブログサービスなどが検索エンジンに普通にキャッシュされていたりするのが現状です。

だいたいわざわざこちらからサイトマップを送信しなければ全ページインデックスできないほどGoogleのクローラーがアホだとは思えません。もしそうしなければ検索エンジンにページがキャッシュされないとすれば、そんな検索エンジンは欠陥品です。

何がいいたいかと言えば、このプラグインのバージョンアップに伴い、ウェブマスターツールのインデックスが減ってしまったと海外のフォーラムなどで憤っている人がかなり見かけられますが、そんなに必死にならなくてもいいんじゃないかという事。

Googleウェブマスターツールへのサイトマップの送信とインデックスについては気休め程度に考えていて問題ないでしょう。だから多少この種のプラグインが不安定でもあまり顔真っ赤にならなくてもよく、なんかおかしいなくらいで眺めておけば最終的にはどうにかなります。

もちろんまともなサイトを作っているという事が最低条件ですけれども。