Google Search Consoleから、「インデックス カバレッジ」の問題が新たに検出されましたと言う通知で、記載されている問題が『 robots.txt によりブロックされましたが、インデックスに登録しました。』となっている場合の原因と対策について紹介します。
Googleからの通知内にある「Search Console を使用して インデックスカバレージの問題を修正」のボタンを押すと新しいSearch Consoleの以下の様なレポートページが表示されます。
[post_ads]
robots.txt とは?
robots.txt は、クローラー、ボットなどと呼ばれるWeb robotsに対して、Robots Exclusiion Standard プロトコルを使用してサイトのアクセスについてのインストラクション(指示)を行うドメイン直下に設置するテキストファイルのことです。検索エンジンのクローラーにアクセスして欲しくないページやディレクトリーを、robots.txtのファイル内に指定するような形で利用します。Bloggerでは、無料ブログでも標準でrobots.txtをサポートし、カスタマイズする機能を備えています。
「robots.txt によりブロックされましたが、インデックスに登録しました」警告となる理由
Bloggerのデフォルトで出力される robots.txt の内容は以下の様になっています。
User-agent: Mediapartners-Google
Disallow:
User-agent: *
Disallow: /search
Allow: /
Sitemap: https://www.example.com/sitemap.xml
上記設定は、AdSenseのクローラーは、サイト内の全てのページにアクセスを許可し、検索エンジンのクローラーを含むその他のクローラーは、 /search ディレクトリー以下のURLにはアクセスを認めず、それ以外のページは全て訪問を許可するという設定です。Disallow:
User-agent: *
Disallow: /search
Allow: /
Sitemap: https://www.example.com/sitemap.xml
Bloggerのデフォルトのrobots.txtついての詳しくは、以下の記事をご参照下さい。
Bloggerのデフォルトのrobots.txtで、 /search 以下のディレクトリーにはアクセスを認めていない設定にも関わらず、検索エンジンのアルゴリズムが /search 以下のページをインデックスしているために、Search Consoleのインデックス カバレージのレポートで警告が表示されます。なぜrobots.txt でブロックしているページがインデックスされるのか?
通常、Googleのクローラーはrobots.txtで許可しないURLにはアクセスしません。robots.txtの指示に従ってクロールするのが基本です。しかし、アクセスをブロックしてるページでもリンクされている場合には、インデックスする可能性があります。Google では、robots.txt でブロックされているコンテンツをクロールしたりインデックスに登録したりすることはありませんが、ブロック対象の URL がウェブ上の他の場所からリンクされている場合、その URL を検出してインデックスに登録する可能性はあります。Bloggerでは、記事の分類ラベルの一覧ページを表示する際、検索機能を使用しています。ラベル一覧のページのURLは、https://www.example.com/search/label/ラベル名 となります。ラベル一覧ページは、Bloggerのデフォルト robots.txtでは、AdSenseのクローラー以外は、アクセスを認めていません。
ところが、ブログ内のメニュー項目にラベル一覧ページのリンクが貼られていたり、各記事の下部などにラベル一覧のリンクを表示するボタンが設置されています。
サイト内にリンクが貼られているため、関連度や重要度が高いページと検索エンジンが判断した場合は、robots.txt でアクセス禁止にしていても、インデックスすることがあります。(基本的に内部リンクが貼られていれば、インデックスされる可能性が高いです。)
robots.txtでアクセスを禁止しているページを、インデックスした場合は、上で紹介したようにSearch Consoleのレポートで警告となります。
警告の対処について考慮すべきこと
検索結果を表示するページは、基本的には検索インデックスされる必要はありません。そのため、Bloggerではデフォルトでボット(クローラー)のアクセスを禁じています。しかし、ラベル一覧ページは表示される機会も少なくなく、サイト内にもリンクが貼られているため、検索エンジンのアルゴリズムから見た場合にはインデックスした方が良いページと判断される可能性があります。
備考:
ラベル一覧表示のURL(example.com/search/lable/ラベル名)に内部リンクが貼られている場合には、通常、インデックスされます。robots.txtがデフォルトの状態では、search 以下をブロックしているため、インデックスされると警告表示されます。
どの様な対処を行うかについては、上記の事柄を考慮する必要があります。さらに、警告対象となったインデックスされたURLは、インデックスされるべきか? 検索で表示されるべきページかということを、基本的に考えるべきです。ラベル一覧表示のURL(example.com/search/lable/ラベル名)に内部リンクが貼られている場合には、通常、インデックスされます。robots.txtがデフォルトの状態では、search 以下をブロックしているため、インデックスされると警告表示されます。
一般的に検索結果にアーカイブやラベル(カテゴリー)の一覧ページが表示されることは少ないです。一覧ページのURLが検索結果に表示され、そのページを訪問したユーザーは、一覧ページを見てから、さらに興味のあるページをクリックするような流れになります。
ユーザーが探している(求めている)情報に素早くアクセスできるようにすることが、現在の検索やユーザーを意識したサイトづくりにおいての基本です。ユーザーによっては、検索結果にサイト内の一覧ページが表示されることを歓迎する場合もあるかと思いますが、通常は探している情報が含まれているページが表示されることを望むと思います。
検索結果ページをインデックスして、検索結果に表示されることは、検索を2重に行なっていることと同じです。ユーザーエクスペリエンスやフローを考慮すると、検索結果のページを検索で表示することは望ましいことではないと考えることもできます。
このような概念から、Bloggerでは、デフォルトでラベル一覧を含めて /search を、クローラーによるアクセスを禁じている理由と推測します。
しかし、サイトによってはラベル一覧ページが、ユーザーに高い利便性をもたらす場合もあると思います。ラベル一覧ページがユーザーの利便性を高めると考える場合には、インデックスさせる方が適切な対処となります。
robots.txt によりブロックされたURLがインデックスされ警告を受けた場合の対処法
基本的に以下の3つの対処法があります。- 何もしない。
- noindex メタタグを加えてインデックスさせない(インデックスを外す)。
- robots.txt を変更してインデックスを許可する。
何もしない
この問題は警告付きの有効であって、エラーではないです。また、警告とは言え、元々、アクセスを禁じているページを、検索エンジンのアルゴリズムがインデックスしたために発生している問題です。特に何もしなくても、実情、問題はありません。サイト内の他のページの検索でのランキング評価などにも影響はありません。
しかし、警告が表示されることが、とても気になる。警告を受けるような状態を解消したいと考える場合には、踏み込んだ対処が必要となります。
その場合の選択肢は、検索エンジンからインデックスさせないようするか、インデックスを許可するかのどちらかです。どちらを選ぶかは、サイト運営者の考え方によります。
noindex メタタグを加える
基本的に、Bloggerブログで警告付きインデックスされるURLは、ラベルの一覧ページです。ラベルの一覧ページに、以下の手順でnoindex メタタグを加えれば、インデックスされなくなります。Bloggerの管理メニューから、「テーマ」をクリックし、表示されるブログプレビュー下の「HTMLの編集」ボタンを押します。
<head>タグ内の上部に以下のコードを追加します。
<b:if cond='data:blog.searchLabel'>
<meta content='noindex' name='googlebot'/>
</b:if>
<b:if cond='data:blog.url == "https://www.example.com/search"'>
<meta content='noindex' name='googlebot'/>
</b:if>
<meta content='noindex' name='googlebot'/>
</b:if>
<b:if cond='data:blog.url == "https://www.example.com/search"'>
<meta content='noindex' name='googlebot'/>
</b:if>
上のコードの"www.example.com"の部分は、設定を行うサイトのURLに必ず変更して下さい。
備考:
上では、googlebotとGoogle 検索クローラーのみの指定にしていますが、googlebot の代わりに robotsにしても構いません。その場合は、全てのクローラーが対象となります。
上では、googlebotとGoogle 検索クローラーのみの指定にしていますが、googlebot の代わりに robotsにしても構いません。その場合は、全てのクローラーが対象となります。
注意事項:
noindexタグを追加する場合、ページ(例:ラベル一覧ページ)にnoindexを追加後、クローラーがそれらのページにアクセスできるようにrobots.txtを変更する必要があります。ページがブロックされたままの場合は、クローラーがnoindexタグを認識せず、Search Consoleでの修正リクエストが非承認となってしまうのでご注意下さい。 以下の「robots.txt を変更してインデックスを許可する」のセクションに記載されているような設定をすることで、Googlebotが/search以下のディレクトリーにもアクセスできるようにします。searchのページにはnoindexのメタタグがあるので、クローラーが訪問後しばらくすればインデックスは外されます。(反映されるまでには時間がかかることがあります。)
noindexタグを追加する場合、ページ(例:ラベル一覧ページ)にnoindexを追加後、クローラーがそれらのページにアクセスできるようにrobots.txtを変更する必要があります。ページがブロックされたままの場合は、クローラーがnoindexタグを認識せず、Search Consoleでの修正リクエストが非承認となってしまうのでご注意下さい。 以下の「robots.txt を変更してインデックスを許可する」のセクションに記載されているような設定をすることで、Googlebotが/search以下のディレクトリーにもアクセスできるようにします。searchのページにはnoindexのメタタグがあるので、クローラーが訪問後しばらくすればインデックスは外されます。(反映されるまでには時間がかかることがあります。)
noindexを設置することでサイトの内の他のページの検索ランキングに悪影響はありません。
Google Webmaster Central office-hours hangout でnoindexについてのJohn Muellerさんの説明訳を以下に紹介します。(多少意訳しています。)
インデックスして欲しくないページには、noindexを自由に設置できます。もしも、あなたが検索で表示されてもユーザーに価値ある情報提供しないと考えるのであれば、noindexタグを設置することは全く問題ありません。(Bloggerのラベルの一覧ページは、ある程度は価値を提供すると思いますが、noindexにすること自体は問題ありません。)ただし、noindexからindexに切り換える様なことを行なった場合、検索エンジンがその変更を認識するのに時間がかかるので、予めご了承下さい。
robots.txt を変更してインデックスを許可する
Blogger 管理メニューから「設定」をクリックし、サブメニュー項目の「検索設定」を選びます。
クローラーとインデックスの項目の中にある「独自の robots.txt」の編集をクリックします。「独自のrobots.txt のコンテンツを有効にしますか?」のガイダンスが表示されます。「はい」を選択するとテキスト入力欄が表示されます。
例えば以下のようなテキスト設定を入力します。
User-agent: Mediapartners-Google
Disallow:
User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /search
Allow: /
Sitemap: https://www.example.com/sitemap.xml
robots.txtのファイルの内容については、Search Console ヘルプのページなどを併せてご参照された上で、設定内容をお好みに合わせて変更して下さい。Disallow:
User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /search
Allow: /
Sitemap: https://www.example.com/sitemap.xml
注意:
上の内容の場合は、Googleの検索クローラーは全てのページをアクセス可能になります。robots.txt 内のXMLサイトマップのURLは、そのブログ固有のものに変更して下さい。
設定内容を確認の上、「変更を保存」のボタンを押します。上の内容の場合は、Googleの検索クローラーは全てのページをアクセス可能になります。robots.txt 内のXMLサイトマップのURLは、そのブログ固有のものに変更して下さい。
noindexメタタグを追加して対処した場合の結果
noindexを追加する作業を行った後、Search Consoleから検証をリクエストしました。1週間少し後に、Search Consoleに修正が無事確認されたとの通知が表示されました。
インデックスカバレージのレポートを表示すると有効(警告あり)が0になっていました。
コメント