WordPress のプラグイン「XML Sitemap & Google News」で、XML サイトマップを出力しているサイトの設定をまとめます。

SEO チェックで、noindex を付けている投稿者アーカイブが、XML サイトマップに載ったままになっているのが見つかりました。サイトマップは「検索エンジンにインデックスしてほしいページの一覧」なので、noindex のページを載せると、指示が食い違ってしまいます。Search Console でも警告の対象になるため、サイトマップから外しました。
確認したバージョンは XML Sitemap & Google News 5.7.7 です。

サイトマップを有効にする

プラグインを有効にすると、「設定 › 表示設定」に「XML サイトマップを有効化」の項目が追加されます。

「設定 › 表示設定」の「XML サイトマップを有効化」

項目 設定
XML サイトマップインデックス オン
Google ニュースサイトマップ オン(ニュースの投稿を載せる)
robots.txt の追加ルール 空欄

「XML サイトマップインデックス」をオンにすると、/sitemap.xml にサイトマップの一覧が出力されます。robots.txt にも Sitemap: https://〜/sitemap.xml の行が自動で追加されるので、自分で書き足す必要はありません。

各項目の右にある「設定」のリンクから、プラグインの詳しい設定画面に移動します。

タクソノミーと投稿者のサイトマップを無効にする

「設定 › XML サイトマップ」には、「一般」「投稿タイプ」「投稿者」「高度な設定」のタブがあります。

「XML サイトマップ」の「一般」タブ。タクソノミーと投稿者を無効化

項目 設定 理由
サーバー プラグイン WordPress 本体のサイトマップではなく、プラグインのサイトマップを使う
Disable sitemaps › タクソノミー オン(無効にする) カテゴリー・タグのアーカイブには noindex を付けているため
Disable sitemaps › 投稿者 オン(無効にする) 投稿者アーカイブには noindex を付けているため

「Disable sitemaps」は、チェックを入れたものがサイトマップから外れる設定です。チェックを入れると無効になるので、間違えないように注意します。

投稿者のサイトマップを外すもう一つの理由

投稿者アーカイブの URL(/author/〇〇/)には、WordPress のログインユーザー名がそのまま使われます。サイトマップに載せると、ログインに使う名前を自分から公開することになります。

プラグインの公式ページにも、投稿者の URL にはユーザー名が含まれるので、公開したくない場合は投稿者のサイトマップを無効にし、投稿者アーカイブには noindex を付けるよう書かれています。

このサイトでは、投稿者アーカイブを使っていないので、テーマの functions.php でトップページへ 301 転送しています。

//投稿者アーカイブを無効化(ログインユーザー名の露出防止)
add_action('template_redirect', function () {
  if (is_author()) {
    wp_safe_redirect(home_url('/'), 301);
    exit;
  }
}, 1);

?author=2 のような ID を指定した URL も、同じ処理でトップページへ転送されます。

設定後の確認

設定を保存したら、/sitemap.xml を開いて、含まれているサイトマップを確認します。

設定後のサイトマップインデックス。投稿・固定ページ・ニュースのみ

投稿(年ごと)、固定ページ、Google ニュースの3種類だけになり、sitemap-author.xml とタクソノミーのサイトマップは表示されなくなりました。

あわせて、次の点も確認しておくと安心です。

  1. /robots.txt に Sitemap: の行が出ていること
  2. 固定ページのサイトマップ(sitemap-posttype-page.xml)に、サンクスページなど noindex のページが含まれていないこと
  3. Search Console の「サイトマップ」に /sitemap.xml を登録し、エラーが出ていないこと

まとめ

  • サイトマップには、インデックスしてほしいページだけを載せる
  • noindex を付けているタクソノミーと投稿者のサイトマップは、「Disable sitemaps」で無効にする
  • 投稿者アーカイブは、ログインユーザー名が URL に出るため、使わない場合はサイトマップから外し、トップページへ転送する