GoogleはCDNファイルをクロールしません


11

Googleウェブマスターツールが、私のウェブサイトでブロックされた多くのリソースを報告していることに気づきました。現在、すべての「ブロックされたリソース」は、Cloudfront CDNから提供する.css、.jsおよび画像(.jpg、.png)です。

私は多くの時間をかけてテストし、Googleがこれらのファイルをクロールせず、「リソースブロック」ステータスを報告しない理由を理解しようとしました。

現在、これらのファイルをcdn1.example.com、cdn2.example.comなどのいくつかのホスト名から提供しています。

cdn1、cdn2などは、cloudfrontディストリビューション名に対するCNAMEです。

テスト:cloudfrontディストリビューション(CNAMEなし)を直接使用しようとしましたが、問題は解決しません。

現在、robots.txtは次のようになっています。

# Google AdSense
User-agent: Mediapartners-Google
Disallow:

#Google images
User-agent: Googlebot-Image
Disallow: /

User-agent: *
Disallow: /homepage
Disallow: /index.php*
Disallow: /uncategorized*
Disallow: /tag/*
Disallow: *feed
Disallow: */page/*
Disallow: *author*
Disallow: *archive*
Disallow: */category*
Disallow: *tag=*
Disallow: /test*
Allow: /

また、1つのサンプルページでブロックされたファイルの例:

  • cdn1.example.com/wp-content/plugins/wp-forecast/wp-forecast-default.css

  • cdn9.example.com/wp-content/plugins/bwp-minify/min/?f=wp-content/themes/magazine/css/font-awesome.min.css,wp-content/themes/magazine/css/sensitive .css

  • cdn5.example.com/wp-content/themes/magazine/images/nobg.png

  • cdn6.example.com/wp-content/plugins/floating-social-bar/images/fsb-sprite.png

  • cdn5.example.com/wp-content/uploads/2013/11/Design-Hotel-3-80x80.jpg

  • cdn5.example.com/wp-content/uploads/2013/11/Marta-Hotel-7-270x225.jpg

robots.txtのすべてを許可することも試みましたが、常に同じ結果が得られます。

また、AmazonのCloudFront設定を注意深く見ていましたが、関連する可能性のあるものは何もありませんでした(オプションを使用していないため、「ビューアアクセスを制限する(署名付きURLまたは署名済みCookieを使用)」を使用していません)。

現在、私はこれを調査するのに多くの時間を費やしており、これ以上のアイデアはありません。

GooglebotがAmazon CloudFrontでホストされているファイルのクロールをブロックされる理由を誰かが考えることができますか?


これらの「ブロックされたリソース」のHTTP応答ヘッダーを調べましたか?GWTが報告する正確なエラーは何ですか?robots.txtによってブロックされた場合は、これを報告する必要があります。
MrWhite 2015年

robots.txtファイルに関する小さなコメント... URLはデフォルトでプレフィックスが一致するため*、URLの最後に「プレフィックス」を付ける必要はありません。/test*と同じ/testです。
MrWhite 2015年

こんにちは、Googlebotが何を取得しているかわからないため、ヘッダーを調べることができません。「Googlebotはこのページのすべてのリソースを取得できませんでした。ここにリストがあります:」というメッセージと、「理由」が「ブロックされた」CDNがホストするすべてのファイル(js、css、画像)のリストが表示されます。
トーンロット2015年

私が求めているので...「フェッチとレンダー」私もレンダリングがスタイルとイメージが欠如していることを確認
tonelot

また、robots.txt構文に関するメモをありがとう。
トーンロット2015年

回答:


7

したがって、解決策は、Amazon cloudfrontも私robots.txtを評価し、どういうわけかgoogleとは異なる構文ルールを使用することです。

私の作業バージョンはrobots.txt次のとおりです:

User-agent: Googlebot-Image
Disallow: /
User-agent: *
Disallow: /homepage
Disallow: /uncategorized
Disallow: /page
Disallow: /category
Disallow: /author
Disallow: /feed
Disallow: /tags
Disallow: /test

これは以前とまったく同じ機能を実行しているわけではないという非常に重要な注記です。実際、空白行、ワイルドカード、および「許可」ディレクティブをすべて削除しました。最終結果は同じではないということですが...私には十分近いと思います。たとえば、クエリ文字列で渡された場合、タグページは除外されません...

3つの重要な注意事項:

  1. これを使用してテストしている場合robots.txtは、繰り返しごとにcloudfrontディストリビューションで無効にすることを忘れないでください。最後のバージョンが提供されていることを確認するだけでは十分ではありません。

  2. robot.txtアマゾンクラウドフロントが理解できる構文の定義はどこにも見つかりませんでした。つまり、試行錯誤でした。

  3. 結果をテストするには、Googleウェブマスターの「フェッチとレンダリング」ツールとモバイルフレンドリーテスター(https://www.google.com/webmasters/tools/mobile-friendly/)を使用します

cloudfrontが私のを検証および評価している理由がわかりませんrobots.txt。このファイルは私と私のサイトに来るクローラーとの「取引」です。アマゾンは真ん中にビジネスがありません。私をいじることrobots.txtは単純に愚かです。

cloudfrontが私のrobots.txt構文を2番目に推測する可能性があることを頭に浮かんだことはありません。


2

バケットにrobots.txtを作成します。

cloudfrontディストリビューションの別のオリジンを作成します。

バケットの優先度をウェブサイトよりも高く設定します。

Cloudfrontでサイトのrobots.txtを無効にします。

上記を行った後、Googleはサイトをクロールするときにrobots.txtを読み取り、cdnからのリンクをたどるときに別のrobots.txtを表示します。


1

Googleは、メインサイトのルートにあるrobots.txtを使用して外部リソースがインデックスに登録されるのをブロックしません。サブドメインを使用すると、CDNまたはその他が外部ドメインとして分類されるため、コンテンツをブロックする唯一の方法は、CDN自体によって提供されるファイルでヘッダー応答を使用するか、またはCDNまたはサブドメインでrobots.txtを使用することです。 。

使用:

#Google images
User-agent: Googlebot-Image
Disallow: /

ローカルのイメージのみをブロックする場合は、CDNでも同じことを行う必要があります。

可能性はそのヘッダー応答の問題であり、CDNのファイルの1つで「CURL」を実行する必要があります。次のようになります。

HTTP/1.0 200 OK
Cache-Control: max-age=86400, public
Date: Thu, 10 May 2012 07:43:51 GMT
ETag: b784a8d162cd0b45fcb6d8933e8640b457392b46
Last-Modified: Tue, 08 May 2012 16:46:33 GMT
X-Powered-By: Express
Age: 7
Content-Length: 0
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: V_da8LHRj269JyqkEO143FLpm8kS7xRh4Wa5acB6xa0Qz3rW3P7-Uw==,iFg6qa2KnhUTQ_xRjuhgUIhj8ubAiBrCs6TXJ_L66YJR583xXWAy-Q==
Via: 1.0 d2625240b33e8b85b3cbea9bb40abb10.cloudfront.net (CloudFront)
Connection: close

注意点は次のとおりです。

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
X-Robots-Tag: googlebot: noindex

こんにちは。回答ありがとうございます。しかし、私の問題は、画像のインデックス作成を防ぐ方法ではありません。混乱を避けるために、私はrobots.txtからそれを取り出しました。結果は同じです。Googlebotは、Cloudfrontでホストしているファイルでブロックされていると不平を言っていますが、その理由はわかりません。これ以上のアイデア?よろしくお願いします、ミゲル
トーンロット

あなたは理解し損ねた、私はあなたがそれをブロックしたくないことを知っている...それで、なぜあなたのヘッダー応答がX-robots-tagを実行していないことを確実にするために下部で私が言ったのか、またあなたもcheck the robots.txt on your CloudFront distribution私がこれを言ったと言っている!CDNでインデックスが付けられている画像をブロックする唯一の方法は、x-robots-tagと、CDN自体のrobots.txtです。
Simon Hayter

1

問題が見つかりました:CloudFrontはrobots.txtを読み取り、コンテンツの提供を妨げますが、ロボットが必要とするものとはどのように異なるかを解析していると思います。

たとえば、robots.txtの次のコンテンツ:

Disallow: */wp-contents/ Allow: */wp-contents/themes/

Googlebotはそれ自体を取得すると、インデックスを作成します。CloudFrontがそれを読み取るとき、「Allow」ディレクティブを考慮せず、内部でのサービス提供を禁止し*/wp-contents/themes/ます。

短い答え:CloudFrontディストリビューションのrobots.txtを確認してください。問題がある可能性があります。それを無効化し、修正されたバージョンで更新すると、動作するはずです!


Cloudfrontは、robots.txtを「読み取る」ことも、その内容を「考慮する」ことも、「何かを防ぐこと」も行いません。オブジェクトをフェッチしたときにcloudfrontから取得したものは、他のエッジロケーションから提供された誰かが取得したものよりも前または後のものをキャッシュした場合、何得られるかについては何意味しないことに注意してください。また、ロボットの除外「標準」は十分に標準化されていないため、先頭のワイルドカードはおそらく予期しない動作のレシピです。
マイケル-sqlbot 2015年

「CloudFrontはrobots.txtを読み取ります」-これはCloudFront自体でホストされているrobots.txtファイルですか?「先頭のワイルドカード」も、URLが質問で述べられているようなものである場合、不要であるように思われます。
MrWhite 2015年

こんにちは。間違いなくcloudfrontがrobots.txtを読み取っています。そして、間違いなくグーグルと同じ構文を受け入れていません。私はすでにrobots.txtの取り出しをテストしており、Cloudfrontでリクエストして無効にしていないため、結果はありませんでした。私は最新バージョンを提供されていたので、それは必要なかったと仮定しました。変更ごとに無効化リクエストが必要になるため、テストには長い時間がかかります。数時間後には正常に機能するバージョンで戻ってきます。なぜこの種の「スマートさ」が必要なのかはわかりませんが、そこにあるので、そうすべきではないと思います。ミゲル
トーンロット

私のApacheにあるrobots.txtと同じものが、Cloudfrontで取得したものです。私はそれを経験的に決定しました。
snagnever
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.