コンテンツにスキップ

XML サイトマップを生成する方法

メインイメージ

WordPress で XML サイトマップを生成する方法について説明します。

XML サイトマップとは?

XML サイトマップとはサイト内にあるページのリストを XML 形式で記述したテキストファイルです。

検索エンジンのクローラーなどがサイト構造を理解するのを手助けする目的で作られるもので、一般に SEO を意識したサイト作りにおいてはほぼ必ず活用されるものです。

ちなみに、わざわざ「 XML サイトマップ」と呼ぶ理由は、サイトマップには人間向けに作られる HTML のサイトマップもあるためそれと区別するためです。

WordPress における XML サイトマップの生成方法

大きく 2 とおりの方法があります。

方法 A. WordPress 本体の機能を使う

実は WordPress のバージョン 5.5 ( 2020 年 8 月リリース)以降、 WordPress 本体には XML サイトマップ自動生成機能が備わっています。

/wp-sitemap.xml

生成機能はデフォルトで有効になっているので、 WordPress をセットアップすれば特に設定を行わなくても自動的にサイトマップが生成されます。 固定ページや投稿を追加・削除したときも自動的に更新されるため更新の手間はかかりません。

生成されるサイトマップのパスは /wp-sitemap.xml です。 例えばサイトの URL が https://example.com の場合は次の URL になります。

https://example.com/wp-sitemap.xml

サイトマップが生成されない場合

万が一サイトマップが生成されない場合は以下のような原因が考えられます。

  • 表示設定の「検索エンジンがサイトをインデックスしないようにする」が有効になっている

    検索エンジンがサイトをインデックスしないようにする

  • ( Apache サーバーを使っている場合)リライト設定が正しく設定されていない

  • どこかでサイトマップを生成しない設定をしてしまっている

    • wp-config.php やテーマの functions.php で設定している

      add_filter( 'wp_sitemaps_enabled', '__return_false' );
      
    • SEO / サイトマップ系プラグインが独自のサイトマップを生成する代わりに WordPress 本体のサイトマップを生成しないように設定している

WordPress 本体が生成するサイトマップの特徴

WordPress 本体が生成するサイトマップはデフォルトで次のようなものになっています。

  • 各エントリーの loclastmod が出力される。 changefreq priority は出力されない。
  • 固定ページ・投稿・カテゴリー・ユーザーのページが含まれる。

これをカスタマイズしたい場合は PHP でフック関数を書く必要があります。 細かなカスタマイズをしたい場合はプラグインを利用した方がかんたんかもしれません。

公式サイトの関連ページ:

方法 B. プラグインを使う

SEO / サイトマップ系のプラグインを使う方法もあります。

WordPress 本体のサイトマップでは不十分な場合、詳細な設定を行いたい場合はプラグインを利用するのが良いでしょう。 定番人気のサイトマップ生成プラグインとして次のようなものがあります。

  • Yoast SEO
  • XML Sitemap Generator for Google

Yoast SEO

SEO 全般の機能を提供する定番のプラグインで、機能の一部として XML サイトマップ生成機能を提供しています。 2024 年 3 月時点で 500 万インストール以上となっており、 SEO 系にかぎらず世界で最も多く使われているプラグインのひとつです。

全部入りの非常に多機能なプラグインであり、サイトマップ生成だけを行いたいのであれば少し機能過多かもしれません。

XML Sitemap Generator for Google

XML サイトマップの生成と管理をシンプルに行えるプラグインです。 2024 年 3 月時点で 100 万インストール以上となっています。 WordPress でサイトマップ生成と言えば必ず名前が上がるぐらいの定番プラグインです。

以上です。

ということで、シンプルな機能だけでよければ WordPress 本体の機能を、出力対象ページや項目などを細かく設定したいのであれば(本体の機能をフックでカスタマイズするのではなく)定番プラグインを使う、とするのがおすすめです。