
目次
1. WordPress のサイトマップ自動生成機能
WordPress 5.5 から、サイトマップ生成機能が標準で搭載されました。
例えば、本サイト(WordPress で構築しています)の場合、
https://rs.fitallright.com/sitemap.xml
にアクセスすると、
https://rs.fitallright.com/wp-sitemap.xml
にリダイレクトされ、サイトマップインデックスが表示されます。
本サイトの場合、5つのサイトマップが出力されていました(現在は変更しています)。
2. サイトマップファイル名について
このサイトマップのファイル名は、以下のフォーマットになっているようです。
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-posts–post-1.xml | posts | post |
wp-sitemap-posts–page-1.xml | posts | page |
wp-sitemap-taxonomies–category-1.xml | taxonomies | category |
wp-sitemap-taxonomies–post_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種類を除外しています。
特定の 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;
}
);
sitemap provider が taxonomies の場合
wp_sitemaps_taxonomies
フィルターにフックする関数に配列が渡されるのですが、この配列に対して、除外したい subtype 名がキーとなっている要素を破棄します。
subtype ‘post_tag’ を出力させない場合は、以下のようにコードを記述します。
add_filter(
'wp_sitemaps_taxonomies',
function( $taxonomies ) {
unset( $taxonomies['post_tag'] );
return $taxonomies;
}
);
4. サイトマップのURLを指定する
検索エンジンのクローラーに、サイトマップのURL を伝えるにはいくつかの方法がありますが、robots.txt
ファイルに指定するのが簡単です。
例えば、以下のように記述します。
Sitemap: https://rs.fitallright.com//sitemap.xml
詳しくは、sitemaps.org – プロトコル を参照してください。