[レベル: 中級]
この記事では、Wordpress 5.5 に標準実装されたサイトマップ生成機能を無効化する方法を紹介します。
WordPress のコア XML サイトマップ機能
リリースされたばかりの WordPress 5.5(この記事を公開している時点での最新バージョン)は、検索エンジン向けの XML サイトマップを作成する機能をコア機能として標準実装しました。
これまでサイトマップ生成にはプラグインを利用していました。
コア サイトマップは WordPress をインストールしたディレクトリの直下に作られます。
ファイル名は wp-sitemap.xml です。
example.com に WordPress をインストールしていたらサイトマップの場所は example.com/wp-sitemap.xml
になります。
アクセスしたサイトマップはこんな感じです(正確には、サイトマップ インデックス ファイルを生成する)。
プラグインが不要になるので便利になるように思えたのですが、「サイトマップを生成する」だけというきわめて基本的な能力しか備えていません。
たとえば、次の 2 点はかなり致命的です。
- すべての公開 URL をサイトマップに登録する(登録する URL を選択できない)
lastmod
を追加しない(更新日時を検索エンジンに通知できない)
コードを追加・編集することでカスタマイズ可能ですが、そこまでするならプラグインを使ったほうが楽だし柔軟に対応できます。
SEO にこだわりがあるなら、WordPress のコア サイトマップは利用したくないとおそらく考えるでしょう。
しかしながら、これまた残念なことに、チェックボックスを外せば無効化できるというものでもありません(ようは、勝手にサイトマップを作成し管理画面からはまったく制御できない)。
そこで、コア サイトマップを無効化する方法をこのあと紹介します。
手動で完全無効化する
手動で、コア サイトマップの生成を完全に無効にできます。
次のコードを、利用しているテーマの関数ファイル (function.php
) に追加します(テーマの function.php
じゃなくても機能すると思います)。
add_filter( 'wp_sitemaps_enabled', '__return_false' );
このコードを追加するとサイトマップが生成されなくなります
サイトマップの URL にアクセスすると 404 を返します。
プラグインを利用する
ファイルをいじるのは怖いという方は、プラグインを利用してもいいでしょう。
Yoast SEO や Slim SEO などサイトマップ生成機能を備えたプラグインの最新バージョンは、WordPress のコア サイトマップを自動で無効化します。
検索エンジン向けのサイトマップとしては、これらのプラグインが生成したものを送信します。
すでに利用しているサイトマップにリダイレクトする
WordPress のコア サイトマップの URL を既存のサイトマップの URL にリダイレクトしてもいいでしょう。
厳密に言えば、無効化ではありませんがこの方法でも問題ありません。
リダイレクト方法はいくつもありますが、たとえばシンプルなのは次の記述です(既存のサイトマップが sitemap.xml
の場合)。
Redirect 301 /wp-sitemap.xml https://example.com/sitemap.xml
無効化とあわせて使うこともできます。
ちなみに僕はリダイレクトしてます。
robots.txt でブロック
関数ファイルはいじりたくない、今使っているサイトマップ プラグインには無効機能が付いていない、リダイレクト設定もよくわからないという困ったちゃんには(笑)、最終手段として robots.txt を使います。
コア サイトマップへのクローラのアクセスをブロックするために、次の記述を robots.txt に追加します。
Disallow: /wp-sitemap.xml
User-agent: *
を前の行に記述するwp-sitemap.xml
の中身をクローラは読めなくなります。
robots.txt で制御する方法も厳密には無効化ではないし無理矢理感を伴いますが、なんらかの問題を起こすことはないでしょう。
WordPress 5.5 にネイティブ実装されたコア サイトマップ生成機能を無効化する方法は以上です。
コア サイトマップが不要な WP サイトは参考にしてください。
コア サイトマップそのものをカスタマイズできるプラグインがそのうち登場するかもしれませんね。