コンテンツにスキップ

WordPress で 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

wp-sitemap.xml に生成されるサイトマップの中身は投稿、固定ページ、カテゴリー、ユーザーなどのサイトマップへのリンクとなっています。

イメージ:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://localhost/wp-sitemap-index.xsl" ?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/wp-sitemap-posts-post-1.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.com/wp-sitemap-posts-page-1.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.com/wp-sitemap-taxonomies-category-1.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.com/wp-sitemap-users-1.xml</loc>
  </sitemap>
</sitemapindex>

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

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

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

この挙動をカスタマイズしたい場合は PHP でフック関数を書く必要があります。 細かなカスタマイズをしたい場合は独自に実装をするよりサイトマップ生成機能を提供するプラグインを利用した方が費用対効果が高くなることがあるので、実装する前にそちらのアプローチを検討するとよいかと思います。

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

WordPress 本体のサイトマップが生成されない場合の原因と解決方法

WordPress 本体の標準のサイトマップが生成されない原因として以下のようなことがあります。

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

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

解決方法: 管理画面で「検索エンジンがサイトをインデックスしないようにする」のチェックを外して設定を保存します。

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

解決方法: リライト設定を修正します。いろいろ変更をしてよくわからなくなってしまった場合は、初期状態の .htaccess からやり直してみるというのも有効です。

C. サイトマップを生成しない設定をしている

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

    add_filter( 'wp_sitemaps_enabled', '__return_false' );
    
    • 解決方法: 設定をした理由を確認し、この設定が間違っている場合は該当する行を削除します。
    • SEO / サイトマップ系プラグインが独自のサイトマップを生成する代わりに WordPress 本体のサイトマップを生成しないように設定している
    • 解決方法: プラグインが必要な場合はそのプラグインが提供するサイトマップを代わりに使用します。もしプラグインが不要な場合はプラグインをアンインストール・削除します。

関連ページ

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

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

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

  • Yoast SEO
  • XML Sitemap Generator for Google

Yoast SEO

Yoast SEO

Yoast SEO

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

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

関連ページ: WordPress で Yoast SEO プラグインを使ってサイトマップを生成する方法

XML Sitemap Generator for Google

XML Sitemap Generator for Google

XML Sitemap Generator for Google

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

関連ページ: WordPress で XML サイトマップを生成できるプラグイン XML Sitemap Generator for Google

以上です。

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

関連ページ