sitemap が生成されない理由

いつからそうなったのか知れないが、今のwordpressには sitemap.xml が存在しない。phpをいじって sitemap.xml を生成することもできるのだが、そうするとサイトマップが競合していると、SEOプラグインに怒られる。今の時代、SEOプラグインが sitemap.xml を生成するのが標準的らしいのだけど、なぜかうまくいったりいかなかったりする。レンタルサーバーのせいなのか、wordpress のせいなのか、プラグインのせいなのかさっぱりわからない。

いろんなサイトを調べてみたが原因がわからない。「これで解決!」などと書かれているのだが、さっぱり解決しない。うまくいっている wordpress の All in One SEOプラグインの設定をエクスポートして別の wordpress にインポートしたりもしてみたのだが、まったくうまくいかない。All in One SEO やめて Yoast SEO に変えたり、XML Sitemap なんとかとかかんとかというプラグインに変えてみてもだめ。

それで、.htaccess を見てみると、All in One SEO が勝手に sitemap.xml を index.php に書き換えている(rewriteルールを設定している)ことがわかった。なるほど今時の wordpress は sitemap.xml とか robots.txt にアクセスしようとすると、全部リライトして wordpress が返すようにしているわけだ。そこをちょこちょこいじっていたが、真っ白な sitemap.xml が生成されるだけ。なので All in One SEO が書き込んだ記述を全部ざっくり削除して、All in One SEO を削除してもう一度インストールしてみた。

そしたらうまくいった。

つまり、All in One SEO が .htaccess に勝手に書き込んでいた残骸が悪さをしていたというわけだった。

やれやれともかくも解決して良かった。

追記。.htaccess が既にある場合(他のプラグインなどが作ったりして)にはそこに書き込む。.htaccess が無い場合には何も書き込まないらしい。

サイトマップがあるとブログ村にアイキャッチ画像や抜粋などが表示されるようになる。

Visited 4 times, 1 visit(s) today

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA