発生状況
サイトをgoogleのモバイルフレンドリーテストで確認したところ、以下のように「ページにアクセスできません」となってしまった。このせいで広告出稿ができないので、確認して欲しいとクライアントから連絡。
対象の環境
今回エラーとなってしまったサイトの環境や状況は以下の通り
- 対象はサブドメイン
lp.hoge.com
として公開しているサイト。(hoge.com
というサービスサイトのLPである。) - 使用しているサーバーはさくらレンタルサーバー。ルートにはWordPressが入っており、サブディレクトリの
/lp
に対象サイトlp.hoge.com
用のソースコードがある状態。 - lp.hoge.comのドメインは数日前に作成したばかりという状態。(まだgoogleにインデックスはされていない)
対処方法
以下を確認していきました。
noindexの確認
サイトの<head>内にcontent="noindex"
入っていないことを確認。これはありませんでした。
.htaccessの確認
.htaccessには以下の記述だけ入れておりました。
※これは/lp
ディレクトリにソースコードを置いているため、レンタルサーバーの仕様上、lp.hoge.com
でもhoge.com/lp
でもアクセスができてしまいます。なのでhoge.com/lp
からはアクセスができないように制御するコードです。
SetEnvIf Host "^lp.hoge.com$" host
order deny,allow
deny from all
allow from env=host
上記以外にはアクセス制限をする記述は入れておりません。
念のため、一度削除してテストをしてみましたが変わらずエラーだったので、.htaccessは影響なしです。
海外からのアクセスを拒否していないかの確認
調べると、海外からのアクセスを拒否しているとエラーになるらしいというのを見つけたので、サーバーの設定を確認。
使用しているさくらのレンタルサーバーでは、デフォルトで一部海外からのアクセスを制限がONになっています。ただ、制限しているのはWordPressの管理画面や重要なファイルのみで、Googlebot は有効化の状態でもアクセス可能です。とあるので、これはONのままで問題ありませんでした。
robots.txtの確認
「robots.txt ファイルによってブロックされた可能性がある」とメッセージが出ているので確認しましたが、robots.txtはファイル自体をサーバーに入れておりませんでした。
なので関係ないと思ってスルーしたのですが、robots.txtを作成して以下の記述を入れたらエラーが解消しました!!!
記述内容は、全てのクローラーの巡回を許可するという意味になります。
User-Agent:*
Disallow:
うーん、明記しないとダメなんですかね?
謎なのですが、エラーは解消してモバイルフレンドリーテストの結果が見れたのでこれで解決です。
まとめ
結論は、robots.txtに全てのクローラーの巡回を許可するという記述を記載して、サーバーにアップしたら解決した。です。