Google XML Sitemapsって便利ですよね。
ブログを更新するたびにxmlを吐き出してくれて、
Google・Yahoo・Bingに通知してくれるプラグインで、
WordPressを導入しているブログやウェブサイトには追加必須のSEO対策ツールだと思います。
しかしながら僕は今回のリニューアルまで導入していませんでした。
WordPressがバージョンアップするたびに使用中のプラグイン対応の確認が必要になる点、
そして入れなくても主要キーワードでは上位表示を獲得できていたために必要がなかった点、
この二つの理由によってGoogle XML Sitemapsを導入することは考えていませんでした。
ただ、理由はそれだけではありません。
恥ずかしながら、ある不具合に遭遇して導入できなかったというのが本音です。
その不具合のため、プラグインを使わず現存の固定ページのxmlファイルをアップして、それを手動で更新していました。
龍弥デザインのサイトの性質上、ページ数はそんなに増えるものではないので、そんなに影響はないと考えていました。
それが今回、ブログを追加することになったため、ページ数がリニューアル前の比ではないほど増えていってしまいます。
これを手動で更新していくのは非効率なので、今回「Google XML Sitemapsを入れよう」ということになったのです。
そもそも不具合というのが、プラグインを有効化・設定すると「sitemap.xml」が生成され、
もともとあった「https://www.ryu-ya.jp/wp/sitemap/」というページが表示されなくなってしまった、というものでした。
調べてみるとこれはプラグインが悪いのではなく、WordPressのシステム上当然のことでした。
スラッグを「sitemap」にしたページを作ると「https://www.ryu-ya.jp/wp/sitemap/」になりますね。
次にsitemap.xmlをトップディレクトリに設置すると、URLは「https://www.ryu-ya.jp/wp/sitemap.xml」になります。
両方を設置した結果、「https://www.ryu-ya.jp/wp/sitemap/」のほうが表示されなくなりました。
表示されなくなったタイミングはsitemap.xmlをトップディレクトリにアップしたのと同時でした。
・・・見えてきました。
どうやらこれが原因のようですね。
つまり、「.html」「.xml」など拡張子がついているものでも、
スラッグに同一の文字が使われていれば、競合してしまって表示されなくなってしまうんですね。
試しに「about.html」をトップディレクトリにアップしてみたんですが、
見事に「https://www.ryu-ya.jp/wp/about/」は表示されなくなりました。
この解決方法を探していたら、WordPressのフォーラムにこんなページを見つけました。
このページによると、トップディレクトリに置いた.htaccessのファイルに以下を追加するとのことでした。
Options -MultiViews
追加すると問題なく「/sitemap」が表示されるようになりました。
・・・とだいたいこういった記事では「~に追記する」というもので終わりますが、
具体的にどこに追加すればいいかはあまり書かれていないことが多いんです。
これってけっこう迷いますよね。なので書いちゃいます。
今回の場合、
Options -MultiViews
# BEGIN WordPress
<IfModule mod_rewrite.c>
===== 省略 =====
</IfModule>
# END WordPress
と、先頭に書いてしまえば解決します。
これで迷いなく「Google XML Sitemaps」を使いことができますね。
お役に立てれば幸いです。