WordPress 5.5 で実装されたサイトマップ自動生成機能

投稿日:

1. WordPress のサイトマップ自動生成機能

WordPress 5.5 から、サイトマップ生成機能が標準で搭載されました。

例えば、本サイト(WordPress で構築しています)の場合、

https://rs.fitallright.com/sitemap.xml

にアクセスすると、

https://rs.fitallright.com/wp-sitemap.xml

にリダイレクトされ、サイトマップインデックスが表示されます。

XML サイトマップ
XML サイトマップ

本サイトの場合、5つのサイトマップが出力されていました(現在は変更しています)。

2. サイトマップファイル名について

このサイトマップのファイル名は、以下のフォーマットになっているようです。

wp-sitemap-{sitemap provider}-{subtype}-{page}.xml

sitemap provider

サイトマップを提供する sitemap provider には、標準で

  • posts(投稿や固定ページをまとめたもの)
  • taxonomies(タクソノミー)
  • users(ユーザー投稿)

の3つが用意されており、それぞれ subtype を持っています(users にはありません)。

subtype

sitemap provider「posts」の subtype は、関数リファレンス/get post types – WordPress Codex 日本語版 によると、以下の種類があります。

  • post: 投稿
  • page: 固定ページ
  • attachment: 添付ファイル(subtype からは除外されています)
  • revision: リビジョン
  • nav_menu_item: ナビゲーションメニュー(バージョン 3.0 以降)
  • カスタム投稿タイプ: バージョン 3.0 以降

sitemap provider「taxonomies」の subtype は、タクソノミー | WordPress.org 日本語 によると以下の種類があります。

  • category: カテゴリー
  • post_tag: タグ
  • link_category: リンクカテゴリー
  • post_format: 投稿フォーマット

ファイル名をまとめる

各サイトマップのファイル名を表にまとめました。

ファイル名 sitemap provider subtype
wp-sitemap-postspost-1.xml posts post
wp-sitemap-postspage-1.xml posts page
wp-sitemap-taxonomiescategory-1.xml taxonomies category
wp-sitemap-taxonomiespost_tag-1.xml taxonomies post_tag
wp-sitemap-users-1.xml users なし

3. 特定のサイトマップを出力しない設定

特定のサイトマップを出力させない設定方法については、New XML Sitemaps Functionality in WordPress 5.5 – Make WordPress Core に載っていますが、その中のいくつかの方法についてもう少し分かりやすく説明します。

設定を記述するファイルは、使用しているテーマフォルダ直下の functions.php ファイルです。

特定の sitemap provider のサイトマップを出力しない

wp_sitemaps_add_provider フィルターを利用します。

以下の $name に sitemap provider の名前がセットされてくるので、除外したい名前と一致したら false を返します。

add_filter(  
    'wp_sitemaps_add_provider',  
    function( $provider, $name ) {  
        if ( 'users' === $name || 'taxonomies' === $name ) {
            return false;  
        }  
        return $provider;  
    },  
    10,  
    2  
);

このコードでは、’users’ と ‘taxonomies’ の2種類を除外しています。

除外されるサイトマップ(その1)
除外されるサイトマップ(その1)

特定の subtype のサイトマップを出力しない

sitemap provider が posts の場合

wp_sitemaps_post_types フィルターにフックする関数に配列が渡されるのですが、この配列に対して、除外したい subtype 名がキーとなっている要素を破棄します。

subtype ‘page’ を出力させない場合は、以下のようにコードを記述します。

add_filter( 
    'wp_sitemaps_post_types', 
    function( $post_types ) { 
        unset( $post_types['page'] ); 
        return $post_types; 
    } 
);
除外されるサイトマップ(その2)
除外されるサイトマップ(その2)

sitemap provider が taxonomies の場合

wp_sitemaps_taxonomiesフィルターにフックする関数に配列が渡されるのですが、この配列に対して、除外したい subtype 名がキーとなっている要素を破棄します。

subtype ‘post_tag’ を出力させない場合は、以下のようにコードを記述します。

add_filter( 
    'wp_sitemaps_taxonomies', 
    function( $taxonomies ) { 
        unset( $taxonomies['post_tag'] ); 
        return $taxonomies; 
    } 
);
除外されるサイトマップ(その3)
除外されるサイトマップ(その3)

4. サイトマップのURLを指定する

検索エンジンのクローラーに、サイトマップのURL を伝えるにはいくつかの方法がありますが、robots.txt ファイルに指定するのが簡単です。

例えば、以下のように記述します。

Sitemap: https://rs.fitallright.com//sitemap.xml

詳しくは、sitemaps.org – プロトコル を参照してください。

5. 参考

-Tips

執筆者:fitallright

関連記事

お値打ちなドメイン

お得なドメイン(各料金がおよそ 1,500円以下のドメイン)とその料金を表にしてみました。 この表には エックスドメイン の料金を記載していますが、「どのドメインがお得か?」という点に関しては、他のド …

レンタルサーバーにおけるデータ転送量とは?

レンタルサーバーの機能やスペックを見ていると「転送量の目安」といった項目を目にすることがあります。 ウェブサイトへのアクセスが少ないうちは、あまり気にする必要はない項目ではあるのですが、できれば、 レ …

.htaccess でのアクセス設定に注意

レンタルサーバーでは、特定のディレクトリに .htaccess ファイルを置き、アクセス制限をかける場合があります。 例えば、以下を記述した .htaccess ファイルを置くと、そのディレクトリ以下 …

WordPress に Font Awesome 5 を導入する方法

WordPress に Font Awesome 5 を導入する方法について説明します。 目次1. はじめに本ページで説明する方法について2. 導入手順「SVG with JS」の導入手順「Web F …

CodePen で書いたコードを自分のWebサイトに埋め込む方法

CodePen とは、Web上で HTML, CSS, JavaScript を書いてすぐに結果を表示することができるサービスです。 結果を確認しながら、コードを書いたり修正できるので、ちょっとしたW …

ロリポップ!「スタンダードプラン」
さくらのレンタルサーバ「スタンダードプラン」