WordPress 5.5で既定のサイトマップを無効にする

Last Updated:2020年08月18日| | コメントを残す

去る8月11日にリリースされた WordPress 5.5で Gutenberg インターフェースに大きな変化があったし、イメージレイジロード(遅延ロード)、テーマやプラグインの自動更新機能が追加されました。 そしてSEOを向上させるために、サイトマップの機能は基本的に搭載されました。 しかし Yoast SEO、All in One SEO Pack、 Rank Math、Slim SEOなどSEOプラグインをインストールした場合、SEOプラグインにサイトマップの機能があるので、サイトマップを無効に措置をしなければ WordPress 既定のサイトマップとプラグインで提供するサイトマップ間の競合が発生する可能性があります。

しかし、ほとんどのSEOプラグインでは、サイトマップの衝突を防止するために WordPressのコアサイトマップを無効にする機能が追加されたものです。 Rank Mathは、電子メールを介して WordPress 5.5との互換性のためにサイトマップを無効にするという通知を送信しました。 他のSEOプラグインでも WordPressで提供するサイトマップの機能が無効になっています。 たとえば、テストしてみるとAIO SEO Packで WordPress サイトマップのURLにアクセスすると404エラーが発生してYoast SEOプラグインでは、500 Internal Server Errorが発生しています。

WordPress 5.5で既定のサイトマップを無効にする

WordPress 既定のサイトマップを無効にする方法

WordPress SEOプラグインで提供するサイトマップの機能を使用する場合、特別な措置を取らなくてもサイトマッププラグイン間の衝突が発生しないと思われます。 WordPressで提供される基本的なサイトマップの機能を無効にする場合は、テーマの関数ファイルに次の行を追加します。

add_filter( 'wp_sitemaps_enabled', '__return_false' );

しかし、上記のコードは、XMLサイトマップを隠す機能をするだけで、すべての機能がまだ動作するそうです。 永久に WordPress XMLサイトマップの機能を完全に削除するには、テーマの関数ファイルに次のコードを挿入することができます。

add_action( 'init', function() {\
remove_action( 'init', 'wp_sitemaps_get_server' );\
}, 5 );

コードは使用しているテーマの関数ファイルに追加しますが、必ずチャイルドテーマを作成して作業してください。 チャイルドテーマ(子テーマ)がなぜ必要で、どのように使用するのか気になった場合」WordPress チャイルドテーマ活用する」(Naverカフェスレッド)を参照してみてください。

WordPress 5.5に含まれている既定のサイトマップ

WordPress 5.5は、バージョン番号で推測できるように、大規模なアップデートです。 メジャーアップデート後のテーマやプラグインの競合により、サイトが正常に動作しない場合が発生する可能性があります。 重要なサイトの場合、数日待ってから、アップデートを実行することも、まともな方法です。 実際 WordPress 5.5リリースの前後に多くのテーマ(例えば、 Newspaper, Jupiter, Enfold, Flatsome, Bridge ...)とプラグイン(例: スライダー革命)このバグを修正する更新プログラムを出しました。

WordPress 5.5には、サイトが検索エンジンによく露出するように、コアサイトマップが含まれています。 このサイトマップは、クエリ可能なすべてのポストタイプ、分類、作成者アーカイブとホームページについて生成されることがあります。

WordPressで生成されるサイトマップインデックスには、最大50,000個のサイトマップを含めることができ、それぞれのサイトマップは、(フィルタ可能な)2,000個のアイテムを収容することができます。 WordPressの基本的なサイトマップアドレスは /wp-sitemap.xml입니다。 WordPress サイトマップアドレスは、robots.txtファイルに自動的に追加されるので、検索エンジンで簡単にこのサイトマップを読み取ることができます。

サイトマップ機能を構成したい場合 WordPress 開発者のヒントが公開した New XML Sitemaps Functionality in WordPress 5.5 文書を参考にしてみてください。

例:ユーザー定義のサイトマップを追加

add_filter(
    'init',
    function() {
        $provider = new Awesome_Plugin_Sitemaps_Provider();
        wp_register_sitemap_provider( 'awesome-plugin', $provider );
    }
);

例: ページ ポストタイプのサイトマップを無効に

add_filter(
    'wp_sitemaps_post_types',
    function( $post_types ) {
        unset( $post_types['page'] );
        return $post_types;
    }
);

例:post_tag分類のサイトマップを無効に

add_filter(
    'wp_sitemaps_taxonomies',
    function( $taxonomies ) {
        unset( $taxonomies['post_tag'] );
        return $taxonomies;
    }
);

例:ポストの最終更新日(Last Modified Date)を追加

add_filter(
    'wp_sitemaps_posts_entry',
    function( $entry, $post ) {
        $entry['lastmod'] = $post->post_modified_gmt;
        return $entry;
    },
    10,
    2
);

例:特定のポストをサイトマップから除外

add_filter(
    'wp_sitemaps_posts_query_args',
    function( $args, $post_type ) {
        if ( 'post' !== $post_type ) {
            return $args;
        }
 
        $args['post__not_in'] = isset( $args['post__not_in'] ) ? $args['post__not_in'] : array();
        $args['post__not_in'][] = 123; // 123 is the ID of the post to exclude, 123은 제외할 포스트 (글)의 ID
        return $args;
    },
    10,
    2
);

最後に、

SEOプラグインを使用しない場合、別のサイトマップ専用のプラグインをインストールする必要がなく、 WordPressで自主的に提供される基本的なサイトマップを利用することができます。 SEOプラグインを使用している場合には、基本的な WordPress サイトマップが無効になります。 WordPress サイトマップを完全に無効にさせたい場合本文に記載され方法を利用することができます。

WordPress 5.5は速度も改善されたようです。 可能な場合は、バックアップを受けた後に、最新のバージョンに更新してください。

参照


コメントを残す

コメント