サイトマップ登録
サイトマップ登録
googleにサイトマップを登録
googleに、自分のページをきちんと把握してもらうためには、ページがどれだけあるかを教えてやらなければなりません。この検索エンジンのためのサイトマップは、HTMLのものではなくて、XMLのものです。
以前、Google XML Sitemaps(XML Sitemap Generator for Google) プラグインを導入して、一応サイトマップができていたので安心していたのですが、令和8年5月に Google Search Console(サチコサン)を開いて見てみると、なんとサイトマップにトップページしか登録されてはいませんでした。これでは、nekofumio で検索しても全く検索されないわけです。全体では何百ページもあるHPなので、以前のようにリンクをたどってHPを登録してくれていれば、こんな悲惨なことにはならないはずなのですが、今は、きちんと検索エンジン用のサイトマップを登録していないと、検索エンジンは見向きもしてくれないようです。
サイトマップが表示されなかったわけ
パーマリンクを基本以外に設定しないといけなかった
Google XML Sitemaps(XML Sitemap Generator for Google) プラグインでサイトマップがきちんと作れないので、他の有名どころのプラグインをいくらか試してみました。でもこれが、401エラーが出てきたり、サイトのトップページにリダイレクトされたりして、どれもこれもまともに動いてはくれませんでした。「私のHPだけなんでこんなにまともに動かないのか?」とあれこれやってみて分かったのは、これらのプラグインでは、WordPress の設定のパーマリンクが、「基本」ではまともに動かないということでした。試しに基本以外に設定してみると、XML Sitemap Generator for Google でも、元の設定のままきちんと動いています。
プラグインの説明HPは色々あれど、このパーマリンクを基本以外に設定しなければならないと強調して説明してあるようなものはほとんどありません。みんなそんなにパーマリンクを基本以外にして使っているのが普通なんですかね?
私は、ページタイトルの変更などのちょっとしたことで、すぐにアドレスが変更になってリンクエラーになるのが一番嫌なので、リンクに日時やページ名などは絶対に使いたくはありません。ファイルの場所やなにやかやを変更しても、一番変わることがないのがページ番号なので、基本設定でのパーマリンクが一番しっくりきます。それに、ほとんどないにしろ、外部からもいくらかのリンクはこれまでに貼ってもらっていますから、そんなに簡単にファイル名を変えたくはありません。
この仕様は困ったものです。
パーマリンクを基本のまま使うためには
WordPress 5.5(2020年8月)以降のWordPressには標準でサイトマップ作成機能が付け加わっています。おそらくこの時点で、プラグインの仕様が大きく変わってしまったのではないでしょうか。うかつながら、そんなに長い間、検索エンジンから見放されて、ほったらかしにしておいたんですねえ。
それはともかく、この標準機能なら、パーマリンクの設定を基本にしておいても、きちんとサイトマップを作ってくれています。ただ、この標準機能は、特定のページをサイトマップから除外したりするなどの複雑な操作はできないので、そのような場合は別途プラグインを導入する必要があります。しかし、公開ページは全部サイトマップに載せてもよいような場合なら、十分実用になります。
これを使うなら、サイトマップ用のプラグインは削除してしまえます。
ただこれの仕様にも伏兵があって、パーマリンクを基本設定で使うなら、サイトマップアドレスは、/?sitemap=index 、基本設定以外で使うなら、アドレスは /wp-sitemap.xml になります。こんな説明もきちんとしてあるHPは見かけません。
カテゴリーが設定してあればそのマップもできてしまう
私のような人は少ないかもしれませんが、私は Movable Type で作ったページを WordPress に移行したので、そのデータは、最初「投稿」の方に読み込まれました。それを「固定ページ」の方に移動したのですが、データを WordPress に読み込んだ際に、カテゴリー・タグも元の Movable Type のものが作成されていました。 WordPress では、これらは一切使わないので放置してあったのですが、今回サイトマップを作ってみると、この無駄に残されたカテゴリー・タグがリンクエラーになってそのまま出てきてしまっていました。
それではいけませんので、これら無駄なカテゴリー・タグは全消去しました。
特定ページのサイトマップ不掲載
cocoonの子テーマを使っている場合は、
/wp-content/themes/cocoon-child-master 内の functions.php に以下のコードを挿入します。もしこのフォルダにファイルがなければ、新たに作って保存します。
除外ページのIDを、直接プログラムに書き込まなければならないのは不本意ですが、私の場合、プラグインを使った設定では、何故かうまくいかないことがあったので、この方法の方が何をやっているか分かって良いような気がします。
// =======================================================
// サイトマップへの不掲載
// =======================================================
add_filter( 'wp_sitemaps_posts_entry', function( $entry, $post ) {
// 除外したいページ(投稿)のIDを指定
$exclude_ids = array( 22,23 );
if ( in_array( $post->ID, $exclude_ids ) ) {
return null;
}
return $entry;
}, 10, 2 );
Google Search Console に登録
サイトマップが正常にできたら、それをGoogle Search Console に登録します。
以前のサイトマップの削除
Google Search Console を一生懸命眺めてみても、以前使っていたサイトマップを削除するところがどうしても見つかりませんでした。
これをするには、「送信されたサイトマップ」の所から、削除したいサイトマップをクリックして、「読み込まれたサイトマップ」というのが出てくる画面を表示します。この画面の右上、「サイトマップを開く」よりもう一つ右の、縦に3つ点があるメニュー(その他のオプション)をクリックすると「サイトマップの削除」というのがやっと出てきます。
分かりにくい!
プラグインの設定
上に書いたように、設定>パーマリンク で、設定を「基本」以外に変えておく必要があります。
XML Sitemap & Google News
隠しページがあるようなHPでは、プラグインを使う手もあるようなので、そのようなHPには XML Sitemap & Google News を使うと良いかもしれません。
左の編集画面にある XML サイトマップ から設定を変更します。
一般>サーバー のところは、プラグイン、Disable sitemaps は、私は投稿者は自分だけなので 投稿者 にしています。
高度な設定 のところに、サイトマップのアドレスが表示されています。
XML Sitemap Generator for Google
Google XML Sitemaps(XML Sitemap Generator for Google) プラグインを導入したら、その設定画面から、「あなたのサイトマップのインデックスファイルのURL: 」を取得して、Google Search Console の、「サイトマップ>新しいサイトマップの追加」から、サイトマップを登録します。
サイトマップエラー
Google Search Console を見ていると、「送信された URL に noindex タグが追加されています」というエラーが検出されました。
また、「サイトマップは読み取り可能ですが、エラーがあります。サイトマップが HTML です。」というエラーが出ることもあります。
デフォルト設定のまま使用しているとこのようなエラーが出ます。「設定」の所で、「HTML形式でのサイトマップを含める」のチェックを外さないといけなかったようです。
意外な伏兵 WPS Hide Login
パーマリンクの設定を変えると、WPS Hide Login のログインアドレスも変わってしまいました。
ログインURL の設定項目で、パーマリンクが基本だと、入力項目前のサイトアドレスに ? が付いたアドレスが表示されますが、それ以外だとこれが表示されません。当然管理画面ログインアドレスも、パーマリンクの指定の違いによって ? のあるなしが変わってきます。このアドレスをそのとおりに入力しないと、管理画面にすら入れません。