#結論
・ RailsサービスでGoogle Search Consoleを導入した場合、robots.txtがないとgoogleでモバイルページとして認識されないことがある。
・ その場合はpublic下にrobots.txtをおき、クローラーに対しdisallowではないことを明示する必要がある。
#背景・状況
Web広告代理店にリスティング広告・ディスプレイ広告を依頼
↓
モバイルの読み込みスピードが遅いためリスティング広告審査落ちしたとの通知
↓
Google Speed Insightsを参照しながら、読み込みスピード改善
↓
読み込みスピードは改善されたが、審査は通らず
↓
Googleに再度問い合わせ。
Mobile Frendly Testで確認するように指示される。
↓
テストしたところ以下のようなエラー発生
"ページにアクセスできません。ページが利用できない、ページがrobots.txtによってブロックされているといった理由が考えられます。"
- PC/Mobileともアクセスは出来る状態
- Search Console の公開URL検査でも**"URLがGoogleに登録されていません"**となってしまう
- Railsバージョン [Rails 5.0.7]
- サーバー AWS
- DNSサーバー お名前ドットコム
#検証過程
###1.Google Search Console リファレンスを参照
Google Serach Console ヘルプをメインにいろいと検証を試みる → 効果なし
そのほか"rails robots.txt ブロック"等で検索してみるのですが、解決に繋がるものは見つからず。。。
###2.サーバー状態確認
サーバー/IPアドレス設定 → 問題なし
アクセスログ → 問題なし
###3.静的ページで検証
レイアウトやコントローラー側の問題である可能性を検証するため、全くレイアウトを反映させない静的なテストページをMobile Frendly Testにかけてみる → 同じように"ページにアクセスできません"となる = レイアウトやコントローラーの問題ではない
###4.自社の他サービスとの比較・検証
今回問題が発生しているサービス以外にも、自社で運営しているRailsサービスがあるので、それらをMobile Frendly Testにかけてみる → 問題なく"モバイルフレンドリーです"と表示される!!
、、、、ということは問題が発生しているRailsサービスとその他のRailsサービスとの違いに原因があるはず。
問題が発生しているRailsサービス : リスティング広告を始めるに当たってSerach Consoleを設定。
その他のRailsサービス : Search Console設定はしていない。
#Railsとrobots.txt
サイトを巡回するクローラーの動作をコントロールするために記述するテキストファイル(.txt)のことです。
引用元:https://seolaboratory.jp/41315/
Railsの場合、robots.txtがなければ、デフォルトでクロール許可するようになっている。
クロールを制限したい場合、制御したいクローラーを指定する場合などにrobots.txtを追加して設定する。
#解決方法
通常であればクロールを許可する場合robots.txtの設定は必要ないが、試しに設定してみる。
public下にrobots.txtをおき、クローラーに対しdisallowではないことを明示する
User-agent: *
Disallow:
Search Console及びMobile Frendly Testともページ認識されるようになり、無事リスティング広告審査も通った。
以上、検証過程も加味すると
・ RailsサービスでGoogle Search Consoleを導入した場合、robots.txtがないとgoogleでモバイルページとして認識されないことがある。
・ その場合はpublic下にrobots.txtをおき、クローラーに対しdisallowではないことを明示する必要がある。
と言えるのではないか。
#あとがき
"Rails Search Console"について書かれているものがあまりなく、苦労しました。
同じ問題を抱えている方の参考になれば。
また、ご指摘あればコメントお願いします。