スキルアップナビ

Google Search Console、「robots.txt テスター」の使い方

この記事は約18分で読めます。

robots.txtを変更した後にすること

robots.txtを設定すると、特定のURLに対してクロールを禁止にしたり、許可したりできます。

robots.txtを変更後は
「果たして、このやり方であっているんだろうか?」
と心配になると思います。

そういうときは、「robots.txt テスター」を使うと動作確認が行えます。

「robots.txt テスター」はGoogle Search Consoleの付属機能です。
Google Search Consoleへ未登録の人は、先に登録しておきましょう。

Google Search Consoleへの登録方法
ブログのアクセスを伸ばすには、Googleにインデックスされるのが大事 ブログを始めたばかりの頃は、Twitterだったり、ブログ村・ブログランキングなどのランキングサイトであったり、自分で記事の宣伝をするとちらほらと読者がやってくるよう...

Google Search Console、「robots.txt テスター」の使い方

「robots.txtテスター」にアクセス

Google Search Console

まずは上記のリンクを開きましょう。

Google Search Console、「プロパティを選択してください」からサイトを選ぶ

Google Search Console、「プロパティを選択してください」からサイトを選ぶ

「確認済みのプロパティを選択」という画面になるので、Google Search Consoleに登録済みの自分のウェブサイトを選びます。

すると、下記のような画面になります。

Google Search Console、robots.txtテスターの画面

Google Search Console、robots.txtテスターの画面

上記画面の
「最新バージョン: 2020/04/09 5:33 OK(200) 229 バイト」
という部分に注目してください。

今日robots.txtを変更したのに、「最新バージョン」の日付が今日になっていない。
そういう場合は、同画面の少し下側にある「送信」ボタンをクリックします。

robots.txtを送信

前述の画面で「送信」ボタンを押すと、下記のような画面が開きます。

Google Search Console、robots.txtテスター、Googleに更新をリクエスト

Google Search Console、robots.txtテスター、Googleに更新をリクエスト

「3. Googleに更新をリクエスト」の横の「送信」をさらにクリックしましょう。
robots.txtを変更したことがGoogleに通知されます。

更新リクエストを送ったら、数秒程度でrobots.txtのデータが反映されるはずです。
F5(再読み込み)で「robots.txtテスター」の画面を更新しましょう。

「最新バージョン: 2020/04/09 5:33 OK(200) 229 バイト」
と表示されていた部分の日付が変更されると思います。

日付が変更されない場合は、robots.txtの中身も変更されていません。

robots.txtにエラーがないか確認

Google Search Console、robots.txtテスター、記載ミスに×印がついた画面

Google Search Console、robots.txtテスター、記載ミスに×印がついた画面

robots.txtの設定が間違っている場合は、上記画像のように赤い×印が表示されます。
間違いがある行ごとにマークが表示されるので、確認しましょう。

  • 2行目
    • ×: isallow: /wp-admin/
    • ○: Disallow: /wp-admin/
  • 5行目
    • ×: Allo: /wp-admin/admin-ajax.php
    • ○: Allow: /wp-admin/admin-ajax.php

robots.txtの構文的に明確な間違いの場合はエラーが表示されます。

ただし、前述の画像の3行目で

  • Disallow: /search-result/

と書くべきところを

  • Disallow: /search-results/

と書いてしまってもエラーにはなりません。

URLに関しては、「/search-result/」と「/search-results/」どちらが正しいのか、Googleには判断できません。
このサイトの場合は「/search-result/」というページは存在していて、「/search-results/」というページは存在しません。
しかし、別のサイトではその逆のこともあります。
「/search-result/」と「/search-results/」両方のURLがサイト上に存在する場合もあるでしょう。

URLはユーザーのさじ加減ひとつで変わってきます。
そのため、GoogleはそのURLが実際に存在するかなどはチェックしてくれません。

robots.txtのクロール禁止が機能しているかを確認する

ここまでは、robots.txtがアップロードできているか。
robots.txtの書き方(文法)が間違っていないかについて、見てきました。

ここからは、robots.txtが意図した動きをしているか。
クロール禁止にしたいURLがブロックてきているかについて見ていきます。

「テスト」

Google Search Console、robots.txtテスター、テスト

Google Search Console、robots.txtテスター、テスト

「robots.txtテスター」画面の下部にURLを入力する欄があります。
ここにURLを指定し、「テスト」ボタンをクリックすると、そのURLをGoogleがクロール可能かどうか判定してくれます。

URL入力時の注意点

  • https://u-ff.com/google-search-console-ignore-robotstxt/

上記のURLがクロールの対象かどうか試す場合は、
「google-search-console-ignore-robotstxt/」
の部分だけを入力します。

「https://u-ff.com/」
の部分は入力欄の左側に既に表示されています。

入力欄に
https://u-ff.com/google-search-console-ignore-robotstxt/
を入れてしまうと
「https://u-ff.com/https://u-ff.com/google-search-console-ignore-robotstxt/
という意味になるので注意しましょう。

入力欄にはドメイン名より後ろのパスだけを入力します。

「許可済み」

Google Search Console、robots.txtテスター、許可済み

Google Search Console、robots.txtテスター、許可済み

URLを入力、「テスト」ボタンをクリックします。
上記の画面のように「許可済み」と表示されれば、指定したURLはGooglebotがクロール可能です。

「ブロック済み」

Google Search Console、robots.txtテスター、search-resultブロック済み

Google Search Console、robots.txtテスター、search-resultブロック済み

URLを入力、「テスト」ボタンをクリックし、「ブロック済み」と表示されることもあります。
その場合、指定したURLはrobots.txtでクロール禁止に設定されています。

ブロックされた場合、robots.txtの中の1行だけが赤く表示されます。
これにより、どの行が作用してクロールが禁止されたのかを確認できます。

いろいろなURLを試してみて、意図したとおりにブロックが動作しているか確認しましょう。

「robots.txt テスター」、検証のコツ

robots.txtで
「ttps://u-ff.com/search-result/」
というURLをクロール禁止にした場合、以下のようなテストケースが考えられます。

  • スラッシュあり: search-result/
  • スラッシュなし: search-result
  • 末尾に付け足す: search-result-xxx
  • 末尾を削る: search-resul

スラッシュあり

Google Search Console、robots.txtテスター、search-resultスラッシュあり

Google Search Console、robots.txtテスター、search-resultスラッシュあり

  • スラッシュあり: search-result/

これは「ブロック済み」になります。
robots.txtの3行目でクロール禁止にしてあります。
意図したとおりに動いています。

スラッシュなし

Google Search Console、robots.txtテスター、search-resultスラッシュなし

Google Search Console、robots.txtテスター、search-resultスラッシュなし

  • スラッシュなし: search-result

これも「ブロック済み」になります。
robots.txtの4行目でクロール禁止にしてあります。
意図したとおりに動いています。

スラッシュ「あり」と「なし」で、robots.txt内の作用している行が違う点に注目してください。

User-agent: *
Disallow: /wp-admin/
Disallow: /search-result/
Disallow: /search-result$
Allow: /wp-admin/admin-ajax.php

もしも、robots.txtを上記ではなく、下記のように設定したら
(4行目を削除したら)

User-agent: *
Disallow: /wp-admin/
Disallow: /search-result/
Allow: /wp-admin/admin-ajax.php

「ttps://u-ff.com/search-result/」はブロックされるけれど、
「ttps://u-ff.com/search-result」はブロックされません。

末尾にURLをつけるかつけないかの違いがありますが、どちらも同じページが表示されます。

まったく同じページなのにURLの書き方でクロールされたり、クロールされなかったりするのは好ましくありません。
両方ブロックしておきましょう。

末尾に付け足す

Google Search Console、robots.txtテスター、search-result末尾付け足し

Google Search Console、robots.txtテスター、search-result末尾付け足し

  • 末尾に付け足す: search-result-xxx

「ttps://u-ff.com/search-result-xxx」
へのアクセスは「許可済み」になります。
robots.txtではクロール禁止にしていません。
意図したとおりに動いています。

robots.txtのURLの書き方による違い

パターン1

User-agent: *
Disallow: /wp-admin/
Disallow: /search-result/
Disallow: /search-result$
Allow: /wp-admin/admin-ajax.php

robots.txtを上記のように書いた場合、クロール結果は以下の通りです。

  1. ttps://u-ff.com/search-result/: クロール不可
  2. ttps://u-ff.com/search-result: クロール不可
  3. ttps://u-ff.com/search-result-xxx: クロール
  4. ttps://u-ff.com/search-resul: クロール

パターン2

User-agent: *
Disallow: /wp-admin/
Disallow: /search-result/
Disallow: /search-result
Allow: /wp-admin/admin-ajax.php
  1. ttps://u-ff.com/search-result/: クロール不可
  2. ttps://u-ff.com/search-result: クロール不可
  3. ttps://u-ff.com/search-result-xxx: クロール不可
  4. ttps://u-ff.com/search-resul: クロール

3つ目の「search-result-xxx」に注目してください。
パターン1とパターン2でクロール可・不可が違います。
robots.txtは微妙な書き方の違いで、クロール結果が違ってきます。

「*」はワイルドカード(オールマイティー文字)

「/search-result」と「/search-result*」は同じ意味です。

「*」はワイルドカード(オールマイティー文字)です。
0文字以上のあらゆる文字として扱われます。

「/search-result*」は以下のようなあらゆるパターンと一致します。

  • 「/search-reuslt」
  • 「/search-reuslt/」
  • 「/search-reuslt-」
  • 「/search-reuslta」

    「/search-reusltz」
  • 「/search-reusltaa」

    「/search-reusltaz」
    「/search-reusltba」

    「/search-reusltbz」


    「/search-reusltzz」

つまり、robots.txtに

Disallow: /search-result*

と書くと、URLの前半に「/search-reuslt」があれば、その後ろは

  • 「空欄」
  • 「アルファベット」
  • 「数字」
  • 「記号」

なんでもありという意味になります。

そして、「/search-result」と「/search-result*」は同じ意味です。

「$」は終端文字

「$」は終端文字です。

「*」の逆の概念ともいえます。

robots.txtに

Disallow: /search-result$

と書くと、URLが「/search-reuslt」とぴったり一致したときだけブロックされます。
うしろに「/」がつくとブロックの対象外です。
アルファベットや数字やその他の記号が続く場合も、もちろんブロックの対象外です。

robots.txtは過不足なく設定する

このサイトは、robots.txtに下記のような設定をしてあります。

User-agent: *
Disallow: /wp-admin/
Disallow: /search-result/
Disallow: /search-result$
Allow: /wp-admin/admin-ajax.php

これにより、サイト内検索のページ
「ttps://u-ff.com/search-result/」
「ttps://u-ff.com/search-result」
の2つをクロール禁止にしています。

たとえば、将来的にBing(Microsoftが作った検索エンジン)に関する記事を書いて
「ttps://u-ff.com/search-result-in-bing」
のようなURLで公開したとします。

そのときに、robots.txtが書きのようになっていると、
(4行目の末尾に$を付け忘れていると)

User-agent: *
Disallow: /wp-admin/
Disallow: /search-result/
Disallow: /search-result
Allow: /wp-admin/admin-ajax.php

「ttps://u-ff.com/search-result-in-bing」
というURLはブロックされてしまいます。
(記事がGoogleの検索結果に表示されません)

現時点では、
「ttps://u-ff.com/search-result-in-bing」
というURLの記事は存在しないので別に問題は発生しません。

しかし、robots.txtの設定はめったに変更しません。
時間が経つと、設定内容を絶対に忘れます。
うっかり、ブロックの対象になっているURLを、気づかずに記事のスラッグに使う可能性があります。

そこで、
「ttps://u-ff.com/search-result/」
をブロックしたいならば
「ttps://u-ff.com/search-result/」
だけがブロックできる条件をしっかり考える必要があります。
意図しないURLが「巻き込まれブロック」されないように気を付けましょう。

必須テスト

  • スラッシュあり
    • ttps://u-ff.com/search-result/
  • スラッシュなし
    • ttps://u-ff.com/search-result
  • 後ろ付け足し
    • ttps://u-ff.com/search-result-xxx
  • 後ろ削り
    • ttps://u-ff.com/search-resul

上記の4つはテスト必須です。。

Google Search Console、robots.txtテスター、テスト

Google Search Console、robots.txtテスター、テスト

テストというのは、

  • ttps://u-ff.com/search-result/

というURLがブロックされるか、ブロックされないかを確認するために
入力欄に
「search-result/」
を入れて「テスト」ボタンをクリックすることです。

そして、

  • ttps://u-ff.com/search-result

というURLがブロックされるか、ブロックされないかを確認するために
入力欄に
「search-result」
を入れて「テスト」ボタンをクリックすることです。

これを各パターンで実行します。

また、下記のケースもできればテストしましょう。

できればテスト

  • スラッシュあり
    •  後ろ付け足し
      • ttps://u-ff.com/search-result/xxx
    • 後ろ削り
      • ttps://u-ff.com/search-resul/
  • 前付け足し
    • スラッシュあり
      • ttps://u-ff.com/xxx/search-result/
    • スラッシュなし
      • ttps://u-ff.com/xxx/search-result
    • 後ろ付け足し
      • ttps://u-ff.com/xxx/search-result-xxx
    • 後ろ削り
      • ttps://u-ff.com/xxx/search-resul

「ttps://u-ff.com/search-result/」
というURLをクロール禁止(ブロック)するには、
スラッシュの有無、文字の付け足し・削りで10パターンくらいはテストが必要ということですね。

  • 意図したURLがしっかりブロックできているか?
  • 意図しないURLがブロックされてしまわないか?

テストは入念に行いましょう。

User-agentを切り替える

Google Search Console、robots.txtテスターの画面

Google Search Console、robots.txtテスターの画面

「テスト」ボタンの左側に「Googlebot」と書かれた部分があります。

ここをクリックするとユーザーエージェントを選択できます。

Google Search Console、robots.txtテスター、User-agent使い分け

Google Search Console、robots.txtテスター、User-agent使い分け

ユーザーエージェントには以下のようなものがあります。

  • Googlebot
  • Googlebot-News
  • Googlebot-Image
  • Googlebot-Video
  • Googlebot-Mobile
  • Mediapartners-Google
  • Adsbot-Google

ユーザーエージェントを切り替えることで、

  • Googlebot(検索エンジンとしてのGoogle)からはクロールできるか?
  • Adsbot-Google(アドセンスとしてのGoogle)からはクロールできるか?

などを分けてテストできます。

User-agent: *
Disallow: /wp-admin/
Disallow: /search-result/
Disallow: /search-result$
Allow: /wp-admin/admin-ajax.php

robots.txtで上記のように、
「User-agent: *」
と書いている場合は、robots.txtテスターでユーザーエージェントを切り替えてテストしても意味は無いです。
「*」というのはすべてのユーザーエージェントで同じ設定を使うという意味です。

User-agent: Googlebot
Disallow: /wp-admin/
Disallow: /search-result/
Disallow: /search-result$
Allow: /wp-admin/admin-ajax.php

User-agent: Adsbot-Google
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

上記のように、robots.txtの中で
「User-agent: Googlebot
「User-agent: Adsbot-Google
を分けて設定しているような場合に、robots.txtテスターでユーザーエージェントを切り替えながらテストします。

まとめ

Google Search Console

「robots.txt テスター」を使うと、robots.txtの動作確認ができます。

「クロール禁止にしたはずが、URLの末尾にスラッシュを付けただけでクロールOKになってしまう」
という設定ミスはやりがちです。

また、意図しないURLを巻き込みブロックしてしまうミスもやりがちです。

「ttps://u-ff.com/~~~」
というURLをクロール禁止にする場合、以下の4パターンはテスト必須です。

  • スラッシュあり
    • ttps://u-ff.com/~~~/
  • スラッシュなし
    • ttps://u-ff.com/~~~
  • 後ろ付け足し
    • ttps://u-ff.com/~~~xxx
  • 後ろ削り
    • ttps://u-ff.com/~~

コメント

タイトルとURLをコピーしました