XML サイトマップからユーザ別一覧を除外する

テーマの functions.php に以下を追加

/**
 * サイトマップからユーザを外す
 * https://make.wordpress.org/core/2020/07/22/new-xml-sitemaps-functionality-in-wordpress-5-5/
 */
function remove_user_archive_from_sitemap ( $provider, $name ) {
	if ( 'users' === $name ) {
		return false;
	}
		return $provider;
	}
add_filter( 'wp_sitemaps_add_provider', 'remove_user_archive_from_sitemap', 10, 2 );

これでOKです!

プラグイン不要でXMLサイトマップを自動生成

WordPress はそのサイトの(ほぼ)全てのページを網羅する XML サイトマップを自動で生成します。この機能はWordPress パージョン 5.5 で追加されました。
すでにWPサイトをお持ちの方は(そして5.5以上なら)、公開のアドレス(トップページ)の最後に「/wp-sitemap.xml」を付けると確認できるはずです。

詳しい解説は下記にあります。

XMLサイトマップにリストされる内容は?

ちなみにこのサイトのXMLサイトマップはこちらです。(ユーザ別アーカイブは外してあります)

https://learning.ccc-labo.net/wp-sitemap.xml

上記のXMLサイトマップは、階層構造になっていて、「/wp-sitemap.xml」にさらにXMLサイトマップのURLがリストされている、という構造になっています。XMLサイトマップにリストされるのは以下のようなページです。

  • 投稿の全てのページ
  • 固定ページの全てのページ
  • カスタム投稿があればその全てのページ(※)
  • カテゴリやタグなどのアーカイブページ
  • カスタムタクソノミーのアーカイブページ(※)
  • Author のアーカイブページ

※公開クエリがfalseになっている場合はそのカスタム投稿のページは掲載されません

カスタム投稿のアーカイブは、XMLサイトマップに入らないので、追加したい場合は、XMLサイトマップをカスタマイズする必要があると思います。

さて、XMLサイトマップに列挙される中に、「Author のアーカイブページ」があります。これは、そのサイトで「記事を書くユーザ別のアーカイブ」のことです。この「ユーザ」を知られたくない場合があります。「ユーザ別のアーカイブ」では、うっかり、アカウント名がURLに利用されますので、セキュリティ上、ユーザのアカウントを見られたくない、知られたくないと言う場合は、多いと思います。

「ユーザ別のアーカイブはサイトマップから外したい!!」

そんな時は、冒頭に紹介したコードをテーマの functions.php に書けばOKです。

ちなみに、自動のXMLサイトマップは、設定>表示設定の「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていると表示されません(404エラー扱いになる)ので、お気をつけください(こないだうっかりひっかかった…)。

コメントをどうぞ

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