WordPressのエラーメッセージは分かりづらく、解決するのが難しいものが多いですが、幸い「サイトマップがHTMLです」というエラーは、簡単に解決できます。

このエラーが表示されている方は、エラーが何を意味するのか、サイトマップがHTMLであることの何が問題なのか、そしてこの問題を解決するにはどうしたらよいのか、とお悩みかもしれません。また、サイトマップがすでに適切な形式であるにもかかわらず、このエラーが表示される場合はどうすればよいのでしょうか?

サイトマップの仕組みやフォーマット、この問題を解決するための方法などを一挙にご紹介します。

「サイトマップがHTMLです」エラーの解決方法に関する動画の解説も是非ご覧ください。

サイトマップとは?

検索エンジンがどのようにしてあなたのサイトを見つけているかはご存知でしょうか?検索エンジンは、ウェブクローラーと呼ばれるボットを使っています。これは、言うなれば、サイトのページをインデックス登録するために利用される自動化ツールです。

ウェブ上には何百万ものページがあり、個々のサイトの情報を人間が収集するのは不可能です。ウェブクローラーはインターネット上を巡回し、すべてのページやメディアの情報をキャッシュします。

しかし、ブログ記事を公開したり、オンラインストアで新商品を発売し始めたり、サイトに新しいページを追加したりしたとしても、Googleがそれを自動的に知ることはできません。定期的にウェブクローラーを送り込み、サイトに変更がないかどうかを確認するのですが、これは即座に行われるわけではありません。

大規模なウェブサイトを運営している場合、クローラーが何度訪れたとしても、重要なページを見逃してしまうことがあります。特に、多くのページからリンクされていない場合は、その可能性が高くなります。

そこで、クローラーの手助けをするのが、サイトマップです。このXMLファイルは、他のページとは異なります。訪問者が閲覧することを想定したものではなく、通常人間には理解不能です。しかし、ウェブクローラーは、このXMLファイルを利用することで、すべての情報を確実にインデックスすることができます。

XMLサイトマップの一例
XMLサイトマップの一例

 

サイトマップは、サイト上のすべてのページとそのリンクの階層、さらに画像や動画などのサイト上のファイルを一覧にした簡単な仕組みのものです。これにより、Googleはあなたのサイトのあらゆる情報を確認することができ、結果的にSEO効果を向上させることができます。

GoogleアナリティクスやGoogle Search Consoleなどのツールを使っている場合、「サイトマップにリンク」する機能がある場合があります。Googleは、サイトにクローラーを送り込む際に、まずこのサイトマップを参照します。

Google Search Consoleのトップページ
Google Search Consoleのトップページ

HTMLとXMLサイトマップの違い

さて、エラーはサイトマップがHTMLページになっていることを警告しているわけですが、それの一体何が問題なのでしょうか?なぜそれを変更するよう促されるのでしょうか?

サイトマップは、ウェブクローラーが理解できるよう、特定のフォーマットで記述する必要があります。ほとんどの場合、XMLファイルでなければなりません。RSS、Atom、KML、テキストファイルを読み取ることもありますが、XMLが最も一般的です。

RSSフィードの一例
RSSフィードの一例

XMLは、「Extensible Markup Language」の略です。HTMLとよく似たWeb言語です。人間が読むこともできますが、主な役割は、機械がドキュメントをエンコードしてデータを読み取る手助けをすることです。

この場合、サイト上のページやその他のメディアがどこにあり、それらがどのように関連しているかをウェブクローラーが理解するのを手助けしています。

しかし、「サイトマップ」という言葉は、まったく異なる文脈で使われるのを見たことがあるかもしれません。HTMLサイトマップというものは確かに存在しますが、その大きな違いは、ウェブクローラーではなく生身の人間に向けたものだという点です。

サイトナビゲーションリンクをクリックしたときに、読みやすく、美しくデザインされたサイト内ページ一覧が表示されることがあります。こちらもサイトマップと呼ばれています。しかし、こちらのサイトマップは訪問者にとっては便利ですが、Googleが必要としているものではありません。

XMLサイトマップは、大半のユーザーにとっては理解不能な大量のコードやリンクの羅列のように見えます。サイトの閲覧に役立つナビゲーションページを追加したい場合は、HTMLサイトマップを別途作成しても良いでしょう。ただし、いずれにせよXMLサイトマップは作成する必要があります。

サイトマップの一例
サイトマップの一例

その他のサイトマップの種類

サイトマップというと、サイト内のページを単に並べた一覧を思い浮かべるかもしれません。しかし、Googleは、さまざまな情報を分類するために、いくつかの種類のサイトマップを使用しています。

  • 動画:サイト内の動画は、Google動画の検索結果に表示されるよう専用にインデックスすることができます。
  • 画像:画像も同様です。Javascriptのコードに埋め込まれた画像など、一部の画像はインデックスされない場合があります。画像サイトマップにより、Google画像の検索結果に表示されるようにできます。
  • ニュース:コラムを執筆している場合、Googleには専用のGoogleニュースというセクションがあります。ニュースサイトマップにより、Googleニュースの検索結果に表示されるようになり、より多くのトラフィックが見込めます。
  • コード:Googleでは、プログラマーがコードやファイルを探しやすいよう、コードスニペットをインデックスしています。
  • 地理的データ:KMLサイトマップを使用することで、Googleにあなたのビジネスの所在地に関する詳しいデータを提供できます。

通常、これらの情報の一部はメインのサイトマップに記載されています。それ以外については、専用のサイトマップを用意する必要があります。そして、最終的に、HTMLではなく、XML、または他のサポートされているフォーマットで適切に作成する必要があります。

XMLサイトマップの作成方法

HTMLサイトマップのリンクを送信してしまった場合は、XMLファイルに置き換える必要があります。作り方がわからない場合は、WordPressのプラグインやオンラインのジェネレーターで作成できます。

既存のXMLサイトマップが正常に機能していない場合でも、サイトマップを作り直すか、別のサイトマップを送信することで、問題が解決する場合があります。

簡単にサイトマップを作成する方法は2つあります。プラグインを使用するか、サイトマップジェネレーターで生成するかです。

プラグインでサイトマップを作成する

WordPressであれば、プラグインを使うことで、サイトマップを簡単に動的に更新できます。都度サーバーにファイルをアップロードする必要がなくなります。

サイトマップを作成できるプラグインは数多く存在します。

  • Yoast SEO人気の定番SEOプラグインです。サイトマップを簡単に作成できます。「SEO一般機能」をクリックし、「XMLサイトマップ」の項目で設定ができます。
  • RankMathこのSEOプラグインでは通常のサイトマップの他に、WooCommerceサイトマップとKMLジオデータサイトマップを生成することができます。「RankMathSitemap Settings」をクリックしましょう。
  • XML Sitemapsその名の通り、サイトマップを作成できます。こちらは、完全無料のオープンソースのプラグインで、追加費用は一切発生しません。
  • XML Sitemap & Google NewsXMLサイトマップとGoogleニュースサイトマップを作成できます。インストールとセットアップも簡単です。
  • Companion Sitemap Generator – HTML & XMLXMLサイトマップと一緒にHTMLサイトマップも生成したい場合は、このプラグインがおすすめです。どちらも自動的に更新されるので、手動で作業する必要はありません。

サイトマップ作成に使えるサイト

プラグインの代わりに、XML-SitemapsXML Sitemap Generatorなどのサイトマップジェネレーターを使用して作成し、それをサイトにアップロードすることもできます。

ステップ1:上記サイトやお好みのジェネレーターを使用してサイトマップを作成し、XMLドキュメントをダウンロードします。

XML-Sitemap Generator
XML-Sitemap Generator

 

ステップ2:FileZillaをダウンロードするか、(サポートされている場合)レンタルサーバーからFTPでサイトに接続します。

ステップ3:XMLファイルをサイトのルートフォルダに配置します。ルートフォルダは、サイト最上位にあるディレクトリで、接続時に表示されるものです。

サイトマップエラーの解消方法

サイトマップエラーは、多くの場合、適切なフォーマットのXMLファイルではなく、誤ってHTMLページを送信してしまったことが原因です。しかし、XMLサイトマップであるにも関わらず、HTMLページであるというエラーが表示される場合、より深い問題がある可能性があります。

でも、心配はいりません。エラーは通常、WordPressのプラグインの競合が原因で、簡単に解決できます。サイトマップが正常に動作するようにするための方法をいくつかご紹介します。

エラーとリダイレクトを確認する

明確なエラーコードがあると問題の診断が簡単になります。まず、サイトマップページにアクセスし、エラーコードがないかどうかを確認します。

Kinstaの404エラー画面
Kinstaの404エラー画面

サイトマップにアクセスした際に問題があると、GoogleがHTMLのページだと勘違いしてしまいます。エラーの内容を確認し、それに応じて問題を解決していきましょう。こちらのHTTPステータスコード一覧が役に立つかもしれません。

サイトマップエラーが断続的に発生し、表示される時とされない時がある場合はどうすればいいのでしょうか?この問題は、動的なサイトマップを利用している場合に発生する可能性があります。

ちょっとしたサーバーの中断やタイムアウトが起きると、XMLファイルではなくエラーメッセージが表示されるため、Googleはサイトマップが突然HTMLページになったと認識します。エラーが頻繁に起きるものでなく、継続的なものでない限り、通常、心配する必要はありません。

もう一つ気をつけなければならないのは、リダイレクトです。サイトマップページにアクセスしたときに、突然トップページに移動してしまったり、リダイレクトループが発生してしまったりすることがあります。

エラーやリダイレクトが続く場合は、プラグインの競合が原因であることがほとんどです。Yoastなどのサイトマップを生成するプラグインが競合を引き起こしている可能性もありますし、キャッシュプラグインが問題の原因である可能性もあります。

時には、どのプラグインが競合しているのか分からないことがあります。そんな時には、プラグイン「Health Check & Troubleshooting」を使用して、特定しましょう。

インストールした「Health Check & Troubleshooting」
インストールした「Health Check & Troubleshooting」

まだインストールしていない場合はインストールし、「ツールサイトヘルストラブルシューティング」をクリックします。すると、サイトを訪れている人に影響を与えることなく、一時的にすべてのプラグインをオフにすることができます。

エラーやリダイレクトがなくなったかを確認します。表示されなくなった場合は、再びエラーが表示されるまでプラグインを一つずつ有効化していきます。これで複数のプラグイン間で競合が発生していないか確認します。

問題のプラグインを特定したら、開発元に連絡して、不具合の報告やサポートを依頼しましょう。

キャッシュを無効にする

競合の原因として最も多いのはキャッシュ系プラグインです。サイトマップがキャッシュされると、GoogleがサイトマップをHTMLページと認識する問題が発生することがあります。これは、XMLファイルをキャッシュしてはならないためです。

このような理由から、ほとんどのキャッシュ系プラグインはサイトマップページのキャッシュを回避しますが、特にサイトマップに独自のURLを使用している場合、誤ってキャッシュしてしまうことがあります。

幸い、キャッシュ系プラグインをすべて無効化する必要はありません。キャッシュからの除外を設定すれば、問題は解決するはずです。

そのやり方は利用中のプラグインのドキュメントに記載されているはずですが、ここではWP Super CacheW3 Total Cacheを例にご紹介します。

WP Super Cacheの場合、「設定>WP Super Cache」をクリックします。「詳細」タブで、「ここにキャッシュしないようにするページの文字列(ファイル名ではなく)を追加します。」という箇所までスクロールします。

この欄に、サイトマップのURLの一部を入力します。たとえば、サイトマップのURLが「example-site.com/sitemap.xml」の場合は、「/sitemap.xml」と入力しましょう。

W3 Total Cacheの場合、「パフォーマンスページキャッシュ」をクリックし、「Advanced(詳細)Never cache the following pages(次のページをキャッシュしない)」の項目を探します。WP Super Cacheと同じように、サイトマップのURLを入力します。

また、「パフォーマンス圧縮」をクリックし、「Never minify the following pages(次のページを圧縮しない)」の項目にもURLを入力しましょう。圧縮も、問題の原因になることがあります。

サイトマップのURLを確認する

これは単純な解決策ですが、一度確認しておきましょう。正しいリンクを送信しているでしょうか?初歩的なミスですが、1文字間違っているだけで別の場所を指定してしまいます。

GoogleとSEOプラグインやサイトマッププラグインの両方で、入力したリンクを確認しましょう。

プラグインによっては、サイトマップのURLの最後にスラッシュが入っている場合があります(「example-site.com/sitemap」ではなく、「example-site.com/sitemap/」)。この1文字の違いが、大きな問題につながる可能性があります。リダイレクトループを引き起こす場合、特に深刻です。

再度Health Checkプラグインのトラブルシューティングモードをオンにし、どのプラグインがこの問題を引き起こしているのかを確認しましょう。大抵の場合、問題のプラグインを特定できるはずです。

余計なサイトマップを削除する

適切なページにリンクしている限り、通常は問題が発生することはありませんが、余計なサイトマップを有効にしていると、時折、混乱の元となる可能性があります。また、不要なサイトマップを更新するためにサーバーのリソースを無駄に費やすことにもなります。

プラグインによっては複数のサイトマップが作成されることもありますし、WordPressが独自にサイトマップを生成していることを知らずに新たに生成してしまう場合もあります。これらを確認し、使用したいもの以外を削除することをおすすめします。以下のURLを確認してみましょう。

  • /sitemap.xml—大半のサイトマップ系プラグインで使用されるサイトマップの一般的なURL
  • /wp-sitemap.xmlWordPress5以降で生成されるサイトマップのURL
  • /sitemap_index.xml—Yoastで生成されるサイトマップのURL

また、他のSEOプラグインやサイトマップのプラグインをダウンロードした場合、完全に異なるURLである可能性があります。関連ドキュメントを確認し、必要のないサイトマップ機能は無効にしておきましょう。

サイトマップは本当に必要か

サイトマップは、どういうわけか絶え間なく問題を引き起こすことがあります。そして、簡単な修正だけでは問題が解決しないことも。解決が難しい問題が頻繁に発生すると、本当にサイトマップが必要なのか疑問に思うかもしれません。

Googleは、サイトマップ作成がSE0に悪影響を与えることはないと明言しており、一般的にはサイトマップを作成することが推奨されています。サイトマップはSEOを改善し、素早いサイトのインデックスに役立ちます。

しかし、状況によってはサイトマップを作成する必要がない場合もあります。実際に、Googleも一部のサイトではサイトマップを使用しない方が良いとしています。

例えば、あなたのサイトのページ数が500ページ未満で、それ以上になることはまずないとします。この場合、内部リンクがしっかりしていて(これはいずれにせよ行うべきことです)、Google画像やGoogle動画に表示させたいメディアファイルがあまりなければ、サイトマップを作成する必要はないかもしれません。

とは言え、サイトマップはSEO改善につながる上、作成することに損はないので、問題の解決には取り組むべきでしょう。今は小規模なサイトでも、将来的には規模が拡大する可能性もあります。

もし行き詰まったら、レンタルサーバーのサポートに相談して、問題の原因を調べてもらうのも効果的です。

まとめ

「サイトマップがHTMLです」のエラーの原因を突き止めるのは難しいことがありますが、通常は不適切なフォーマットの問題か、簡単に解決できるキャッシュの競合の問題です。原因さえわかれば、ほんの数ステップで解決できます。

一つエラーが発生した場合、他にもエラーが発生していることも珍しくありません。他のエラーが表示される場合、65以上のWordPressエラーとその解決方法をまとめたこちらの記事もご覧ください。

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.