WordPress5.5で標準搭載されたXMLサイトマップ機能を無効化する方法

XMLサイトマップ機能
先生

WordPress 5.5 から XML サイトマップを出力する機能が標準で追加されたんじゃ。

へえ、でも Google XML Sitemaps とか別のプラグインを使ってもうサイトマップを出しているよ?

先生

うむ、そういう人はきっと多いだろな。そういったすでに使っている機能が重複しないよう、標準の XML サイトマップ機能を無効にする方法を紹介しておこう。

追加された XML サイトマップ機能

始めに、新たに標準搭載された XML サイトマップ機能についての説明です。

XML サイトマップ機能は WordPress 5.5 から自動で有効になっていてwp-sitemap.xml というファイル名でアクセスできるようになっています。

例えば当サイトですと、https://wp.go-sign.info/wp-sitemap.xml という URL にアクセスすると、下記のようにサイトマップの表示結果が出力されます。

XML サイトマップにアクセスした様子

wp-sitemap.xml は正確にはサイトマップインデックスファイルです。投稿、固定ページといったページ種類別に分割された、別のサイトマップファイルのリンクが一覧表示される形式になっています。

生徒

何の用意をしなくても XML サイトマップが出るので、何かしらあれば OK!という目的だったら、これを使うと便利になるね。

ただし、この XML サイトマップにはごく基本的な機能しかなく、例えば次のようなことが標準では行えません。

  • 「このページはサイトマップに含めたくない」といったページやアーカイブ毎の指定ができない。
  • lastmodchangefreqpriority、といった要素を設定できない。

そのような細かい制御もしたい場合、現状ではプラグインで XML サイトマップ機能を対応した方が良いでしょう。(将来、標準の XML サイトマップ機能が対応するかもしれませんが。)

プラグインを使用する場合、機能が重複する標準 XML サイトマップ機能は無効にしておきたいところです。以下、無効化する方法について説明します。

標準の XML サイトマップ機能を無効化する方法

標準の XML サイトマップ機能を無効化するには、functions.php などに下記コードを追記します。

add_filter( 'wp_sitemaps_enabled', '__return_false' );

コード追加後にwp-sitemap.xml にアクセスすると、下記のように 404 ページとなり XML サイトマップが表示されなくなります。

404 ページが表示される。

上記のコードでは、見た目上 XML サイトマップが見られなくなりますが、次のコードを追記すると XML サイトマップ機能自体を無効化させられます。

remove_action( 'init', 'wp_sitemaps_get_server' );

このコードを追加後にwp-sitemap.xml にアクセスすると、404 ではなく TOP ページが表示されるようになります。

まとめ

先生

とても便利だけど、まだ機能的に細かい調整が付いていないのでちょっと物足りない人も多いかもじゃな。近い将来、きっと管理画面で詳細設定もできるようになったり、そういった設定を提供するプラグインが出てくるじゃろうから、その時にはもっと使いやすいものになるだろうな。

生徒

今後の進化が楽しみだね!

参考URL