モバイルフレンドリーだけど画像検索のクロールは拒否したいrobots.txt

モバイルフレンドリーだけど画像検索のクロールは拒否したいrobots.txt

Webサイトのモバイル対応、もう必須な時代なのですね。以前書いたrobots.txtの設定がGoogle先生のモバイルフレンドリーにひっかかりそうだったので修正してみたメモです。


経緯

昨年、2015年4月21日に「モバイルフレンドリーアップデート」が実施されました。

モバイル フレンドリー アップデートにより、モバイル検索では、携帯端末で読みやすく使いやすいページの掲載順位が引き上げられます。

このアップデートが、今年に入って段階的に強化されているとのことです。サイト管理者向けのチェックツールも公開されています。

このブログは2012年にモバイル対応しておりまして、レスポンシブデザインではなくPC用とスマホ用のテーマをふたつ用意して、ユーザーエージェントによってテーマを切り替えるという方法をとっていました。

自身の出産とかぶっていたのですっかりチェックを忘れていたのですが、スマホからの動作確認と細かい修正はちょこちょこしてたので、大丈夫なんじゃないかなー、でもどっかでチェックしなきゃなー、とぼんやり思ってました。

そんななか、過去記事へのコメントで、画像やCSSをrobots.txtでブロックしてるとモバイルフレンドリーにひっかかっちゃうかも! ということを教えていただきました。

というきっかけで、チェックして見直しをかけることとなりました。Lognoteさん、ありがとうございますー!

チェック

詳細は前述の記事にありますが、robots.txtにこのような記述をしていました。

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /*?*
Disallow: /*?
Disallow: /*.php$
Disallow: /*.js$

以前、画像の無断転載がありまして、いろいろ考えた末 /wp-content/uploads/ も含め /wp-content/ をクロール拒否にした経緯があります。(画像のクロールを拒否するだけでも画像盗用を減らす効果があるそうです。)その他、WPのコアファイルや、このブログはパーマリンクは投稿名になっているので「?」が入ってるものも必要ないなと思ってこんな感じにしていました。

そして、ここへMediapartners-GoogleとTwitterbotからのクロールは拒否しませんよ、という記述をつけて、GoogleAdSenseとTwitterCardは正常に動くようにしてありました。

そして、その状態でテストしてみた結果がこちら。

160603-1

Google先生には画像もCSSもいろいろ見えていない様子。そりゃそうだ。「問題ありません。」と出ているので致命的にヤバいわけじゃないんでしょうけど(検索流入が減ったわけでもありません)、先生が推奨する形ではなさそうです。

修正

画像とCSS、jsも読むらしいので、バージョンを含んで「?」が入ることも多々ありそう。Google先生とTwitterbotにはそのあたりのクロールを許可したい、でも画像検索のクロールは拒否したいと思って直しました。まずはこちらのGoogleクローラについてよく読んでみると、

メインクローラであるGooglebotを指定すると、Googleの他のユーザーエージェントにも適用されるようですね。ですので、メインクローラを設定しておいて、サブクローラの設定を追記するという書き方で良いんじゃないかなと。

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /*.php$

User-agent: Twitterbot
User-agent: Googlebot
Allow: /wp-content/

User-agent: Googlebot-Image
Disallow: /wp-content/

Sitemap: https://ateitexe.com/sitemap.xml

まずは「*」で、すべてのユーザーエージェントに対して2~5行目の設定を適用させます。「?」を含むものとか、jsファイルは除外しないことにしました。

7~9行目で、上記の設定からGoogleのメインクローラとTwitterbotは /wp-content/(uploadsやthemesが入ってるので、画像やCSS、jsなどがここにある)に対してクロールを許可します。これでAdSense含むGoogleのサブクローラにも適用されます。

このままだとGoogleの画像検索もクロール許可になってしまうので、11~12行目で画像検索用クローラには /wp-content/ を許可しないよ、ということを書いておきます。

再チェック

そして、その状態でテストしてみた結果がこちら。

160603-2

良さそうです。

「robots.txtでブロックされたリソース」は、twitterやFacebookなど外部を読み込んでいるときにそちらのrobots.txtを見ているものもあるので、少なくともこのブログではゼロにはならなそうです。

数日間、検索結果(画像も)をチェックしていましたが、ちゃんと効いてるんだと思います。Yahooの画像検索も見てみましたが、/wp-content/uploads/ の画像は含まれていませんでした。

ちなみに、2016年5月19日に新しいチェックツールが公開されたようなので、こちらも試してみました。

160603-3

新しいのはこんな感じでした!

以上です! ここ間違ってるとか、お気づきの点がありましたら教えてくださると嬉しいです!

公開日:2016/06/03

4件のコメント

  1. Lognote より:

    ご紹介ありがとうございます!

    でもなんか記事更新急かしてしまったようで申し訳ないような気がします……(笑)

    • *you より:

      Lognoteさん、ありがとうございましたー!

      いえいえ、復帰したばかりでネタを探していたところだったのでちょうどよかったです(´ω`)

  2. あき より:

    こんばんは。初めまして。
    私もツイッターカードを表示する際に*youさんと同じようなエラーが出て「robots.txt.」で検索していてたどり着きました。書き換えの参考にさせていただきたいのですが、このrobots.text.はどこにあるのでしょうか?お時間ある時にお願いします。

    • *you より:

      あきさん、コメントありがとうございます。

      robots.txtは、サイトのトップページ直下に設置しますが、はじめから必ずあるものではないので、なければ自分で作成する必要があります。拡張子まで含めた正しいファイル名でご指定ください(最後にドットは付きません)。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)

YouTubeでQ&Aコンテンツを企画しています

運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。