いろんなサイトを調べてみたが原因がわからない。「これで解決!」などと書かれているのだが、さっぱり解決しない。うまくいっている 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 に勝手に書き込んでいた残骸が悪さをしていたというわけだった。
それはともかくとしてブログ村で順位をあげたければ google search console でちまちま SEO 対策するのが効果的だ。検索されて順位が上がっているのではあるまい。検索上位に出てこないんだから検索されているはずがない。たぶん人が見にくるようになってPVが増えているのではあるまい。googleがページを認識して、定期的に巡回してくるようになり、そうすると他の検索エンジンもどこかからその情報を入手して巡回するようになりして、アクセスが増える。これだけでもブログ村でPVを稼ぐには十分なのだ。そうしてブログ村内で順位が上がればたまには目にとまって見に来る人もいるだろう。
google search console の「ページ」というところをみるとこのサイトはクロールはされているけれどもインデックスに登録されていないページがたくさんあることがわかる。「クロール済み」というのはつまり検索エンジンが巡回していてページが存在していることは認知しているということ。検索結果に表示されるためにはさらに「インデックス登録」されなくてはならない。つまりgoogleにインデックス登録されていないと、この世の中にそのページは存在しないのと同じ、ということになる。
ともかくインデックス登録される前提条件として、サイトマップは必ずgoogleに認識されておいたほうが良いだろう。サイトマップに載っているページをクロールしないということもあるようだが、こちらとしては登録されたいページを厳選してsitemapに載せているにもかかわらずクロールすらしてくれないというのであれば、それは明らかに google 側の怠慢だ。