WordPressサイトマップwp-sitemap.xmlを使う時はユーザー名を隠そう



サイトマップはプラグインはやめて、WordPress5.5でリリースされた「wp_sitemap」を活用しているのですが、いくつか注意したい点があります。

https://ドメイン/wp-sitemap.xml

デフォルトだとユーザー名が表示される

「https://ドメイン/wp-sitemap-users-1.xml」を開くと…

「https://ドメイン/author/ユーザー名」と表示されてびっくり。

wp-sitemapのユーザー名を隠す

「functions.php」にコードを追記すると消えます(テーマをお使いの場合は子テーマのfunctions.php)

追記場所

ルクセリタスやCocoonの場合はここ。

コード

ユーザー名を隠したい場合。

//wp-sitemapユーザー名を隠す
add_filter(
    'wp_sitemaps_add_provider',
    function( $provider, $name ) {
        if ( 'users' === $name ) {
            return false;
        } 
        return $provider;
    },
    10,2
);

特定のユーザー名を隠したい場合。

//wp-sitemap特定のユーザー名を隠す
add_filter (
  'wp_sitemaps_users_entry',
  function ( $sitemap_entry, $user ) {
    if ( 'ユーザー名' === $user->data->user_login ) {
      return [];
    }
    return $sitemap_entry;
  },
  10,2
);

最終更新日を追加したい場合

このコードを追記します。

//wp-sitemap最終更新日を追加
add_filter(
    'wp_sitemaps_posts_entry',
    function( $entry, $post ) {
        $entry['lastmod'] = $post->post_modified_gmt;
        return $entry;
    },
    10,2
);

更新日が表示されました。

wp_sitemapを無効にしたい場合

「functions.php」にwp_sitemapを無効にするコードを追記すると表示されなくなります。
尚、Google XML Sitemapsなどのプラグインを使っている場合は追記しなくてもOKです。

//wp_sitemap無効
add_filter( 'wp_sitemaps_enabled', '__return_false' );

ブラグインとwp_sitemapどちらが良いのか?

これは「人による」としか。「別サイトhttps://zbnrk.com/」は最初から「wp-sitemap.xml」でサイトマップを送信していましたが Google アドセンスの審査に合格しましたし、検索順位も特に変わりありませんでした。

また、プラグインを導入すると不具合が生じた時が辛いので「これで良いや」といった感じです。「上級者はwp_sitemapは使わない」という意見を多く見受けられますが私は上級ではないし。

後書き

更新頻度が低いサイトは、自分でサイトマップを作成-自動生成ツール「sitemap.xml Editor」などでサイトマップを生成し、sitemap.xmlファイルをルートディレクトリにアップロードして Google Search Console に登録しても良いと思います。

参照→New XML Sitemaps Functionality in WordPress 5.5 – Make WordPress Core