WordPressのwp-sitemap.xmlから投稿者IDを削除する方法

WordPress 5.5以降で導入されたXMLサイトマップ機能は、SEOに非常に役立つものです。しかし、この機能はデフォルトで投稿者(ユーザー)情報もサイトマップに含んでしまいます。これは、特定のケースでプライバシーやセキュリティに関する問題を引き起こす可能性があります。この記事では、WordPressのサイトマップから投稿者IDを削除する方法について詳しく解説します。

スポンサーリンク

wp_sitemaps_users_query_args フィルターを使う方法

この方法はコードの少しの調整で、投稿者情報を簡単に削除できます。具体的には、WordPressのテーマファイルにある functions.php に少しだけコードを追加します。

  1. WordPressのダッシュボードから「外観」>「テーマの編集」を選びます。
  2. サイドバーで functions.php ファイルを選択します。
  3. 以下のコードを functions.php の末尾に追加します。
add_filter('wp_sitemaps_users_query_args', 'exclude_users_from_sitemap');

function exclude_users_from_sitemap($args) {
    $args['include'] = array(0); // 0 は存在しないユーザーIDです。
    return $args;
}

このコードは、サイトマップに含まれるユーザー情報のクエリをカスタマイズします。特に、存在しないユーザーID(0)のみをクエリに含めるようにしています。

SEOプラグインを使用する方法

多くのWordPress SEOプラグイン、例えば Yoast SEO や All in One SEO Pack などは、XMLサイトマップのカスタマイズが可能です。プラグインの設定画面から簡単に投稿者情報をサイトマップから除外できます。

  1. プラグインをインストールし、有効化します。
  2. プラグインの「サイトマップ」設定に移動。
  3. 投稿者またはユーザーのサイトマップオプションを無効にします。

独自のサイトマップを生成する方法

この方法は高度なカスタマイズが必要ですが、最も柔軟な方法でもあります。こちらは、プログラミングに慣れている方向けの方法です。

  1. WordPressのサイトマップ生成機能を無効にします。
  2. 独自のサイトマップ生成スクリプトを作成します。
  3. このスクリプトで投稿者情報を除外し、他の任意の設定を行います。

よくある質問(FAQ)

Q. WordPressの自動生成サイトマップ(wp-sitemap.xml)から特定のページを除外するにはどうすればよいですか?
A. wp_sitemaps_postsフィルターは直接的なページ除外に対応していません。Yoast SEO・All in One SEOなどのSEOプラグインのサイトマップ機能を使うと、個別記事レベルでサイトマップへの含有を制御できます。WP設定の「検索エンジンでの表示」→非公開にするとサイトマップから除外されます。
Q. wp-sitemap.xmlを完全に無効化するにはどうすればよいですか?
A. add_filter("wp_sitemaps_enabled", "__return_false");をfunctions.phpに追加するとWordPressのデフォルトサイトマップが無効化されます。Yoast SEOなどのプラグインが独自のsitemap.xmlを生成する場合はプラグインのサイトマップに一本化します。
Q. SEOプラグインのサイトマップとWordPressデフォルトのwp-sitemap.xmlが共存する場合の問題は?
A. 重複するサイトマップはSEO的に好ましくありません。SEOプラグインを使う場合はWordPressのデフォルトサイトマップを無効化してプラグインのサイトマップを使います。Google Search Consoleには正規のサイトマップURLのみを登録します。

まとめ

WordPressのサイトマップから投稿者情報を除外する方法はいくつかありますが、目的と技術レベルに応じて最適な方法を選ぶことができます。プライバシーとセキュリティを重視するならば、この手順は非常に有用です。