この記事は約8分で読めます。
本文は約4544文字です
WordPressコアのサイトマップ機能とは?実は高機能でした
WordPress 5.5に実装されたネイティブ サイトマップ機能はご存知でしょうか?

利用者が多いXMLサイトマップ プラグインと比べて『WordPressで実装されたサイトマップ機能は中途半端だ』というのがネット上の評判です。
というのも、Wordpressのサイトマップ機能は多機能ではあるものの、設定画面などは一切提供されておらず、カスタマイズのためにはコードを書かなければなりません。
既にプラグインがあるわけですから、コードを書くぐらいであれば、既存のプラグインを使うよ、というのがユーザーの意見です。
こんな疑問にお答えします!
- ネイティブ サイトマップ機能は何が出来る?
- ネイティブ サイトマップ機能はどんな人が使うべき?
- ネイティブ サイトマップ機能はXMLプラグインの代わりになるのか?
- ネイティブ サイトマップ機能を便利に拡張するプラグインは?
WordPressコアのサイトマップ機能
WordPressコアのサイトマップの仕様は?
WordPress が標準機能として生成するサイトマップの仕様の概要は次のとおりです。
- ファイル名:
wp-sitemap.xml
。WordPress をインストールしたディレクトリの直下に作られます。 - 登録可能 URL 件数:
wp-sitemap.xml
はサイトマップ インデックス ファイルです。最大で、50,000 件のサイトマップを含めることができます。サイトマップには、最大 2,000 件の URL を含めることができます。つまり最大で、1 億件の URL をサイトマップで送信できます。 - robots.txt への追加: WordPress が自動生成する robots.txt を利用している場合は、サイトマップ送信の記述が自動で追加されます。
- 登録対象 URL: 基本的に、公開しているすべての URL がサイトマップに追加されます(タグページや著者ページなども含む)。
WordPressコアのサイトマップ機能の欠点は?
WordPressコアのサイトマップ機能は設定画面がありませんので、初期状態では次のような動きになります。
- (ほぼ)すべての URL が対象になる
- サイトマップに登録する情報が URL (
loc
タグ)だけ - Image/Video/News Sitemapsは非対応
これらを変更できるようにフックが用意されていますので、コードを書ける人であれば欠点とは言えないかもしれません。
カスタマイズの事例
特定のポストタイプを除外
// usersを除外
add_filter(
'wp_sitemaps_add_provider',
function( $provider, $name ) {
if ( 'users' === $name ) {
return false;
}
return $provider;
},
10,
2
);
// pageを除外
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;
}
);
locタグを追加
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.
return $args;
},
10,
2
);
無効化
add_filter( 'wp_sitemaps_enabled', '__return_false' );
カスタマイズの事例の詳細はコチラ

そもそも、コードを書けないとまともに使えないというのが欠点ではあると思います。
WordPressコアのサイトマップ機能をサポートするプラグインはある?
WordPressコアのサイトマップ機能を拡張してくれるプラグインがあります。
XML Sitemaps Managerというプラグインです。
このプラグインの作者は有名なXMLサイトマッププラグイン(XML Sitemap & Google News)の作者でもありますので、品質は高いです。
XML Sitemaps Managerで出来ること
XML Sitemaps Managerをインストールすると、コアXMLサイトマップの設定画面が追加されます。
特徴
- Options to disable the complete sitemap index or exclude certain post type sitemaps, taxonomy sitemaps or the user sitemap.
日本語:sitemap indexを完全に無効にする or 特定のポストタイプを除外する or タクソノミーサイトマップを除外する or ユーザーサイトマップを除外する - Change the maximum number of URLs in the sitemaps.
日本語:1つのサイトマップに含まれるURLの最大数を変更できる - Add Last Modified dates to posts, terms, users and the first sitemap of each type in the index.
日本語:Last Modified datesを追加する - Conditional is_sitemap(), ticket, and is_sitemap_stylesheet() for good measure.
- Multisite compatible: Can be network activated. On uninstallation, all sub-site options will be cleared from the database as long as not is_large_network().
- Additional fixes and improvements to the core XML Sitemap.
日本語:コアXMLサイトマップ機能の修正と改善を追加
コアXMLサイトマップ機能の修正と改善を追加
XML Sitemapのバグを修正
Fixes some core XML Sitemap bugs:
– 404 Response code on certain sitemaps, ticket.
– Don’t set is_home() true, ticket.
– Don’t execute main query, ticket.
– Ignore stickyness, ticket.
XML Sitemapのパフォーマンスを改善
Improves core XML Sitemap performance by reducing the number of database queries for:
– the sitemap index by 5;
– each post type sitemap by 4;
– each taxonomy sitemap by the number of terms in that sitemap;
– each user sitemap by the number of users in that sitemap.
まとめ
XML Sitemap機能は、統合SEOプラグインを導入すると組み込まれていることが多いです。単体のXMLサイトマッププラグインを使ってなかった人は、そちらを使ってる人が多いかもしれません。
しかし、SEOプラグインが多機能すぎて嫌だという場合は、SWELLの作者がリリースしてるSEO SIMPLE PACKのようなシンプルなSEOプラグインに乗り換えるかもしれません。
その場合は、XMLサイトマップ機能はなくなりますので、XML Sitemaps Managerプラグインを導入することで、Wordpressコアに実装されたXMLサイトマップ機能がまともに使えるレベルになります。
コメント