2019.06.12こんにちは。今回は、SEOの基本中の基本、クロールについてです。あとこの言葉を見た瞬間、何か言いたくなるベテランさん。それについても、詳しく解説したいと思います。それでは基本から、おさらいしてみましょう。まとめ検索エンジンの基本Googleは、クローラーというものを使い、サイトを網の目の様に細かく巡回しています。クローラーというと特殊なものに思えますが、そうではありません。一般的なブラウザ(2019年6月19日現在でchrome75程度の機能)でサイトを見ているといっても良いでしょう。ブラウザのユーザーエージェントはリンクの通りで、端末はNexus5xです。モバイルファーストインデックスに移行されているサイトは、横サイズ640pxの解像度でアクセスしてきます。ViewPortタグが指定されており横サイズ640pxに収まっていればモバイル対応とみられるわけでです。(その他、タグなどの条件はあります)ただし、320pxなどで正しく表示できるか、恐らく別のエージェントで見ていると思いますので、くれぐれもgooglebotの仕様を満たしていればいいという検索エンジン最適化の思想をしないでください。顧客のUXを最優先することを目指します。クロールとインデックスの模式図クローラーは、別名スパイダーとも言います。蜘蛛の巣に見立てたウェブ網を、細かく巡回してサーバー内のコンテンツを抽出するからです。抽出されたコンテンツは、整理されGoogleのデーターベースにインデックスされます。データーセンターは、世界の複数の箇所にあり、極力同期するようにしています。インデックスされたコンテンツは、検索画面に入力されたキーワードから関連性の高いコンテンツを見つけてランク付けします。このような一連の動作はクロール(サイトを巡回しデータを取得するのが仕事)インデックス(データを整理して格納するのが仕事)ランキング(入力クエリに対する順位を付けるのが仕事)という3つのフェーズで表されることが多いです。おのおの役割が決まっていて、なすべき仕事があります。3つのフェーズのうち、ひとつでも阻害されると、検索結果に表示する事が難しくなります。robots.txtなどでクロールを阻害すると、インデックスするのが難しくなります。インデックスされなかったら、検索結果に表示することはできません。クロールは正常に行えても、meta命令で「noindex」を指定してコンテンツの表示をブロックしたり、同じコンテンツを複数のURLで作成する「重複コンテンツ」が発生した場合も、インデックスされないので、検索結果には表示されません。クロール、インデックスが正常でも、検索エンジンに入力するクエリとコンテンツの関連性が無いと、検索結果には表示されません。このように、クロール、インデックス、ランキングは、検索エンジンの基本動作で、どれかひとつ欠けても検索エンジンに表示する事ができなくなります。クロールバジェットとはクロールバジェットは、直訳するとクロールの割り当て量です。Googlebotが、サイトをクロールするための上限のリソースと言っても良いです。「Googlebotやサイト」で一意に決められるものではなく、ページやサイトごとに変化します。私は定義を以上としましたが、Googleはクロールバジェットという言葉使っていません。このことは、比較的新しいブログに書かれています。私の記事では、この公式ブログの内容をより深く追求することです。バジェットとは?さらに、上述の「公式ブログ冒頭」やSEOのベテランに気にする必要は無いと言われ盲目的になっているサイト運営者に気づいてほしいという気持ちも入っています。真のベテランは、間違った言葉を使ったり解釈を発見したら、丁寧に説明して是正するのが持続的なウェブエコシステムだと思うのです。従前からSEOに携わっているアンチな方から見ると「クロールバジェット」という言葉が出た瞬間に親でも殺されたかのように「あなたには関係ありません」と言われたりします。クロールバジェットは、単なるクロール割り当て量です。これは、全てのウェブマスターが知り、理解し、コントロールするべきだと、私は思っています。大規模サイトしか関係ない、気にする必要は無いなどの言葉に、目を閉じることがないようにしてほしいです。全てを知ってから目を閉じるのと、知らずに目を閉じるのは全然違います。クロールバジェットとクロールレートクロールレートはサーチコンソールのヘルプでは、クロール頻度と訳されています。私はウェブマスターブログに従いクロールレートという用語を使います。クロールレートもクロール頻度も同じものです。クロールレートは正式な用語で、昔のサーチコンソールをご存じの方は、多いと思います。クロールレートの説明この設定は、新しいサーチコンソールには実装されておらず古いサーチコンソールのみ設定が可能です。クロールは、SEOの基本という話をしています。その基本的なものを、よく意味が分からず触るものではありません。私はGoogleの説明どおり、クロールレートを変更する事はお勧めしません。その理由は、クロールレートを決めるアルゴリズムが、非常に優秀だからです。ひとつ言うなら、Googleのクロールで問題が発生していると突き止められるベレルの技術者であれば、サーバーを強化したり調整したりしているはずなので、小手先の調整など意味が無いからです。クロールレートについて、詳細に説明します。A,B,Cの3ページをクロールする様子を表しています。クロールレートについて添付の赤線が、サーバーに対するリクエストで、青線がレスポンスです。黒色の「てんてん」で表している時間が、サーバーの処理時間です。クロールレートは、赤線の間隔の最小値です。単位は、回数/秒でGooglebotが1秒間のうちに何回リクエストを行うかです。通常サイト(数千ページ未満)では、最大1~30程度の間で自動設定されていると思われます。クロールレートは、サイトをクロールするために必要なリクエスト回数の最大値です。クロールバシェットは、サイトをクロールするための割り当て量の事です。「リクエスト回数の最大値」と「割り当て量」ですから、この二つは全く違うものです。混同しないようにしてください。割り当て量を上限として、リクエスト回数の最大値以下でクロールする・・・というのが正しい理解です。(超難しい表現ですねw)クロールレートが微分値、クロールバジェットが積分値という考え方もあると思います。(余計わからんワイww)では、クロールレート(リクエスト回数の最大値)の決め方について説明します。私は小さい頃から、外食のラーメンが好きでした。約3週間に1回は、外に食べに連れて行ってほしいと言っていました。その間隔を1週間や、毎日にしてしまうと、おそらく両親は怒るでしょうね。育てられていくうちに、3週間に1回という私の家庭にとって最適な回数を算出していったのです。別の家庭では、毎日外食ラーメンでもOKな方もいるでしょうし、ラーメンは1年に1回以上食べさせない家庭だってあると思います。このように、家庭によっても変わってきます。クロールレートも全く同じで、さまざまなアルゴリズムによって、最適な数値を算出しています。具体的には、サイトのパフォーマンス(サーバー処理速度)を見ています。レスポンスを返す高速のサーバーであれば、どんどんクロールの間隔を狭めていきます。クロールの間隔を狭めることは、単位時間内のリクエスト回数を増やすことです。サイトのコンテンツを表示するのに、著しい時間がかかったり、サーバーが5xxを返却すると、上限だと判断します。一回の挙動で判断したりしません。複数の挙動や調整で、最大値を獲得します。この意図は非常に簡単な考え方です。一般訪問者がサイトを閲覧することが最優先なので、その妨害にならないように最適な数値を探しているという訳です。クロールレートの単位は、回数/秒で1秒間にリクエストできる最大の回数です。クロールバジェットの単位は回数で、ページごと、クローラーの種類ごとに間隔は異なります。Googleがサイトをクロールする目的クロールがなぜ必要か、簡単に答える事が出来ますか?クロールが必要な理由は、次の2点です。新しいコンテンツを探すサイトの変更部分探すGoogleは常に最新の検索結果で、最新の情報を表示しようとしています。そのためには、コンテンツを提供するサイトの情報を素早く入手する必要があります。私たちの情報を素早くインデックスするために、クロールしているのですね。1は、RSSで情報を送ったり、Pingを送ったり、サイトマップPingを送ったりします、このような仕組みを実装しているサイトは、Googleのクロールの意図を理解しており、サイトを更新したら素早くGoogleにクロールしてほしいと考えるウェブマスターだと思います。2のサイトの変更は、厳密には2つあります。ひとつが、サイトの構成変更で、もうひとつがコンテンツの変更です。サイトの構成変更とは、内部リンクやサプリメンタリーコンテンツ(グローバルメニューやサイドバー、カテゴリーリンク等サイトのコンテンツを見やすく巡回しやすくする補助的なコンテンツ)の設置や変更などです。補助的なコンテンツを追加する事により、サイトの価値やキーワードの価値が向上して、ランキングに影響を与えるため、クロールして最新の情報に更新しようとします。コンテンツの変更は、いわゆるリライトなどで古い記事を最新の情報に合わせて追加修正したり、削除したり、復活したりする事です。ランキングに影響するため、素早くインデックスしようとします。以上がGoogleがサイトをクロールする目的です。目的のためにどのような頻度でクロールするか?というのが気になりませんか?実はこれ、サイトごとに違いサイトの特性によっても違います。クロール周期が早いサイト・更新周期が早い(ブログ、ニュースに関係ない)・ニュースサイト/トレンドブログ・高品質コンテンツを提供している(人気が高い)クロール周期が遅いサイト・更新周期が不定期で長い・低品質コンテンツ(人気が低い)という傾向があります。クロールとランキングは別物です。高品質サイトで人気が充分高くても更新が不定期(1ヶ月とか)であれば、クロール数は少ないです。クロールの数=品質ではない事に注意してください。Googleによるサイトのクロールは、新しいコンテンツが作成されたか?、何か変更箇所はないか?を見つけるため、定期的に行っています。このような受け身だけではなく、ウェブマスターからクロールを指示する事も可能なのです。ウェブマスターが明示的にクロールを要求する方法サイトマップを更新して通知する情報サイトにPingを打つサーチコンソールのURL検査でリクエストするその他の方法サイトマップを更新して通知するGoogleは、クロールバジェットの範囲内で定期的にサイトマップを閲覧しています。サイトマップに、新しいURlが追加されたり、xmlサイトマップを送信していてlastmodを通知している場合は、それを発見し次第、クローラーが飛んできます。ここで大多数のウェブマスターが勘違いしていることを話します。サイトマップを更新したからと言って、そのサイトマップがクロールされない事には、新しいコンテンツや変更したコンテンツを見つけることはできません。サイトマップを更新したら、サイトマップをクロールしてもらうため必ず送信を実行してください。送信方法は2種類あります。ひとつがサーチコンソールで、URLを指定して送信する方法です。ひとつが、サイトマップPingを打つ方法です。ちなみに、WordPressでプラグインを使っているウェブマスターは、焦る必要はありません。プラグインは、サイトマップを更新すると自動的にPingを送信してくれます。Bingウェブマスターツール、Googleサーチコンソールに手作業でサイトマップを追加したら、以後は投稿をするたびに、自動的にPingを送信して、サイトマップをクロールさせます。いうことで、ご自分の使っているサイトマップツールが、正しくPingを送信するのか、今一度確認してみてください。自作の方はPing送信の機能は、必須です。情報サイトにPingを打つ以下は、使えるかどうか分かりません。いうサイトにブログ更新のPingを打つとそれぞれの情報サイトに更新情報が掲載され、それを元にGoogleやBingがたどってくれます。私はあまり効率的とは思いませんけど^^;WordPressからリンクがありますが、補償はしていません。http://rpc.pingomatic.com/http://rpc.reader.livedoor.com/pinghttp://ping.freeblogranking.com/xmlrpc/http://api.my.yahoo.com/RPC2http://ping.blo.gs/http://rpc.weblogs.com/RPC2http://rpc.pingomatic.com/http://xping.pubsub.com/ping/http://ping.ask.jp/xmlrpc.mもし、WordPressで設定したい場合は、設定→投稿設定の一番下にあります。私は、この方法ではなく1項のYoastSEOのサイトマップ送信をお勧めしますwサーチコンソールのURL検査でリクエストするサーチコンソールのURL検査ツールを使います。URLを入力したら、「ページを変更しましたか?」という表示が出ますので、、そこで「インデックス登録をリクエスト」します。Googleと同等機能で、すばやくインデックスを行ってくれますが、これは恒久的に使用するものではありません。サイトマップを更新して、Pingを打つのが通常の運用です。使用する方法があります。現在は、求人情報しかサポートされていません。今後は、こういったAPI制御が一般的になると予想します。クロールバジェットに影響のある行為についてクロールバジェットについておさらいします。クロールバジェットは、クロールの割り当て量の事です。割り当て量なので、クロールするほど減っていき、最後は重要なページすらも、クロールしなくなります。重要なページとは、新規コンテンツやサイトにとって重要な変更したページの事です。重要なページがクロールされなくなるのは大問題です。不用意な設定をした数千ページ以上持っている大規模サイトで発生します。私が主張したいのは、小規模サイトでも影響が出る可能性があるという事です。バジェットとは、ほとんどのウェブマスターの方々にとって気にすべきものではない、ということです」も、正しいと思います。クロールバジェットはあくまでクロールに対しての用語です。クロールとランキングは、直接関係ありません。ボクのサイトはクロールバジェットを減らされて低い順位を付けられている。いう大誤解だけは絶対にしないでください。クロールに問題が発生するときは・新規ページがすぐにインデックスされない・ページを更新してもすぐに反映されない・良い方に作用するはずのアルゴリズムが機能するのが遅いなどが発生するだけです。逆にこれだけの影響なのです。キーワードに対しての順位が変わるわけではないことは、本当に理解願います。私のブログで問題を発見したとしても、改善の優先順位の付け違いをしないでくださいね。それでは公式ページでゲイリーさんがクロールバジェットに影響があると書いているものをみてみましょう。影響の高い順になっているようです。※7は私が追記しました。ファセットナビゲーションとセッションIDファセットナビゲーションは、ECサイトでシャツの色やサイズなどを選ぶ際、複数のパラメータを指定して、検索出来るようにしている便利な機能です。パラメータが追加されれるため、どのパラメータが新しいページを表しているのかが検索エンジンにわかりにくくなります。Tシャツのサイトを構成していて、新しいブラウスのコンテンツを追加したとします。すると、パラメータ設計によっては、Tシャツの色が増えたのか、ブラウスという新しいカテゴリが増えたのか理解できなくなり、結果としてブラウスがインデックスされるのが非常に遅くなったりします。これは、小規模のECサイトでも発生する問題です。Googleではベストプラクティスとして、ページの構成や商品自体が違うものは、パラメターではなくURLを分けるのが良いとしています。パラメータに応じて次々にページが増えていくサイトを設計する場合、何をURLにするか、何をパラメータにするか、あらかじめ設計段階で整理しておく必要があるのが分かります。セッションIDは、ログインしセッションを確立したら、その情報をURLに追記する手法です。それ以外にもボタンを押されてコンバージョンするまでを追跡したりするパラメータを設定することがあります。このとき、大抵は同じコンテンツでURLが違うという「重複コンテンツ」になることが多いです。重複コンテンツの場合、同じページをいくつもインデックスすることはありませんので、こういうパラメータがついたURLは重要度が低い=低クロールになり、クロールバジェットを減らされます。クッキーを上手く使ったり(かといってITPがw)リダイレクトする方法などが紹介されています。サイト内の重複コンテンツコンテンツが同じなのに複数のURLでアクセスできるものを重複コンテンツと言います。ECサイトなどで、色が複数あったり、トラッキングパラメータを付けたりさまざまな原因で発生します。同じコンテンツというのは、Googlebotも理解しています。古いサーチコンソールのURLパラメータを見ると「googlebotにより判断」のように適切にクロールを調整されます。私は、URLパラメータで「googlebotにより判断」になっているパラメータは、適切にクロール周期を調整されているので、こちらで触る必要はないと思います。同じコンテンツに複数のURLでアクセス出来る場合、そのページのクロールバジェットを減らされてしまうので、canonicalや301を正しく設置して正規URLがあることを通知するのが良いと思います。重複コンテンツについては、canonical、301リダイレクトが上手く出来ていれば、全く問題ないと思っています。減ったクロールバジェットが復元するという意味ではありません。サイト構成やパラメータ構成をGoogleが理解しやすくなり、今後のインデックスに悪影響を及ぼす可能性が減るという意味です。小規模サイトで、運営者が気づかず発生する問題を説明します。httpとhttps双方でアクセスできるとします。(301はなく、canonicalも無いか不正:自分参照)するとhttpのクロールとhttpsのクロールで同じサイトでも2倍のクロールが発生します。実際2倍もクロールしないのは、自明ですよね。クロール数(クロールバジェット)を減らされておしまいです。いうサイト全体で発生するミスは、いかに小規模サイトでも気をつけなければなりません。https関連だけではなく、www有無も同じです。検出は、インデックスカバレッジレポートで「重複しています。