この記事では、Wordpress 5.5 に標準実装されたサイトマップ生成機能を無効化する方法を紹介します。
WordPressのコアXMLサイトマップ機能とは
WordPress5.5からXMLサイトマップが標準昨日として実装されました。
コアXMLサイトマップはWordPressをインストールしたディレクトリの直下に作られます。
ファイル名は wp-sitemap.xml です。
例えば、example.com にWordPressをインストールした場合サイトマップの場所はexample.com/wp-sitemap.xml
になります。
一見プラグインが不要になるので便利になるように思えたのですが、基本的な能力しか備えておらず、SEO対策をちゃんとしたい方には不十分でしょう。たとえば、次の 2 点はかなり致命的です。
- すべての公開URLをサイトマップに登録してしまう(登録するURLを選択できない)
lastmod
を追加しない(更新日時を検索エンジンに通知できない)
SEOにこだわりがあるなら、WordPressのコアXMLサイトマップは利用したくないと考えるでしょう。
しかしながら、これまた残念なことに管理画面から無効化することができません。
そこで、コアXMLサイトマップを無効化する方法をこのあと紹介します。
WordPressのコアXMLサイトマップ機能を無効化する方法
直接function.phpに追加する
次のコードを、利用しているテーマの関数ファイルfunction.php
に追加します(テーマによってはfunction.php
じゃなくても機能すると思います)。
add_filter( 'wp_sitemaps_enabled', '__return_false' );
このコードを追加するとサイトマップが生成されなくなります。サイトマップのURLにアクセスすると404を返します。
プラグインを利用する
ファイルをいじるのは怖いという方は、プラグインを利用してもいいでしょう。
Yoast SEO や Slim SEO などXMlサイトマップ生成機能を備えたプラグインの最新バージョンは、WordPressのコアXMLサイトマップを自動で無効化するみたいです。
すでに利用しているサイトマップに301リダイレクトする
無効化と合わせて、WordPressのコアXMLサイトマップのURLを既存のサイトマップのURLにリダイレクトしてもいいでしょう。厳密に言えば、無効化ではありませんがこの方法でも問題ありません。
リダイレクト方法はいくつかありますが、今回は恒久的に移転したいので301を使います。
変更したいサイトがexmple.com
とした場合、example.com/public_html
の.htaccess
に下記を追記します。FTPソフトなどを利用して変更するといいでしょう。
Redirect 301 /wp-sitemap.xml https://example.com/sitemap.xml
以上で完了です。お疲れ様でしたm(_ _)m
ちなみに僕は、直接function.phpでコアXMLサイトマップ機能を無効化し、さらに~/sitemap.xml
に301リダイレクトしています。そしてXMLサイトマップはプラグインのGoogle XML Sitemapsが柔軟に変更できるのでSEO対策におすすめです。
当ブログでは、使用テーマ(SWELL)にコアXMLサイトマップを無効化する機能があるので、自分で設定しなくて済むので楽ちんです。(^ ^)
今後、管理画面からXMLサイトマップの生成機能を無効化する機能が標準で搭載されるかもしれませんね。そのときはまたブログ記事にしたいと思います。