WordPressサイトでGoogleから「CSS ファイルおよび JS ファイルに Googlebot がアクセスできません」と言われたら原因はバージョンかも

「CSS ファイルおよび JS ファイルに Googlebot がアクセスできません」こういうやつが来たら

昨夜(2015年7月28日夜)から今日(29日)にかけて、Google Search Consoleからこんなメールをもらった人が結構いると思います。

(サイトURL)の CSS および JS ファイルに Googlebot がアクセスできません

Google のアルゴリズムによるコンテンツのレンダリングとインデックス登録に影響を及ぼす問題が貴サイトで発生していることが Google のシステムにより判明しました。具体的には、robots.txt ファイルでの制限のために Googlebot が JavaScript や CSS ファイルにアクセスできません。Google では、これらのファイルによりウェブサイトが正常に機能していることを認識するため、これらのアセットへのアクセスをブロックすると検索結果における掲載順位が本来よりも低くなる可能性があります。

Googleはいつも月末や年度末などの慌ただしい時にこういうのを送ってくるので困ります^^;
午後あたり問い合わせがたくさん来そうですが、個別に対応している時間がないのでとりあえず書いておきます。

1. 何かしなきゃいけないの?

急いで何かする必要はありません。
以下の記事に書いてあるとおりです。

CSSファイルやJSファイルなどが読み取れないことが原因で、サイト内のコンテンツ内容の大部分が読み取れなかったり、情報の順番が大きく変わったりなどしていなければ、さほどの影響はないと思われます。
そもそもCSSやJSが読めなかったところで情報の多くが欠損するサイトは、Google Search Consoleからアラートが来るまでもなくダメなんで、今回の件と関係なく直したほうがいいです。

2. そもそも何が原因なの?

WordPressで構築されたサイトに限ってですが、考えられる原因は2点です。

  1. WordPressのバージョンが古い
  2. 自分で書いたrobots.txtが置いてある

多くはこのどちらかです。

3. robots.txtファイルなんて設置した覚えないんですけど。

WordPressは、自分でrobots.txtを置かなければ、自動的に

User-agent: *
Disallow: /wp-admin/

が出力される仕様になっています。ただし、サーバの中を覗いてもファイルとしては存在しません。
(表示設定で「検索エンジンがサイトをインデックスしないようにする」にチェックが入っている場合を除く)

この処理は、WordPressコアファイルの /wp-includes/functions.php 1210行目あたりに定義されています。

/**
 * Display the robots.txt file content.
 *
 * The echo content should be with usage of the permalinks or for creating the
 * robots.txt file.
 *
 * @since 2.1.0
 */
function do_robots() {
	header( 'Content-Type: text/plain; charset=utf-8' );

	/**
	 * Fires when displaying the robots.txt file.
	 *
	 * @since 2.1.0
	 */
	do_action( 'do_robotstxt' );

	$output = "User-agent: *\n";
	$public = get_option( 'blog_public' );
	if ( '0' == $public ) {
		$output .= "Disallow: /\n";
	} else {
		$site_url = parse_url( site_url() );
		$path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
		$output .= "Disallow: $path/wp-admin/\n";
	}

以前のバージョンのWordPressの場合は(どのバージョンで変わったかはすみません正確には調べてないですが、4.0未満かな?)

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/

が出力される仕様になっていました。
jQueryをはじめとしたJSライブラリや関連ファイルが/wp-includesにあるので、Googlebotがクロールできない、といったことになるわけです。

古いWordPressはセキュリティ面が心配なので、今回の件と関係なくバージョンアップしましょう。

4. WordPressは最新バージョンですが。

下のサイトの例では、WordPressは最新なのですが、自前で用意したrobots.txtを置いていました。

主にjQueryおよび関連ライブラリがブロックされているのが分かります。

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/

/wp-includes/js ディレクトリ以下に各種ライブラリを格納しているので、ここがひっかかっていましたので、修正しました。

5. 気にするなと言われてもやっぱり気になる。

おそらく、最新のWordPressを使っていてrobots.txtを自分で設置していない場合や

User-agent: *
Allow: *

というようなrobots.txtを置いている場合はこのアラートは来ていないと思います。これでも問題ありません。

でも、

  • サーバ上にWordPress以外のファイルも置いてるし、個別にrobots.txtでクロール範囲を指定したい
  • WordPressコアファイル領域をクロール許可するのはなんか気持ち悪いわぁ

ということもあると思います。そういう場合は

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Allow: /wp-includes/js/

みたいな感じで、Fetch as Googleでブロックされてるって表示されたファイルが置かれているディレクトリのみを許可するとかすればいいんじゃないでしょうか。

他のブログシステムやCMSの場合も、標準のクロール許可ディレクトリが決まっている場合があると思うので、それを確認して自前のrobots.txtを置いてやれば良いと思います。

6. WordPress同梱のじゃなくて外部のjQueryファイルを使えばいいんじゃないの?

プラグインやテーマの動作に影響が出る場合があります。デメリットを理解できて自分で解決できるスキルレベルでない限り、やめましょう。

7.  jQueryファイルの場所を移動すればいいんじゃないの?

絶対やめてください。

8. 正直めんどくさい。

最初に述べましたが、直ちに大きな影響を与えるものではないので、ちょっと手が空いた時に

「ほんとに手間のかかる子ねー。しょうがないからやってあげるわ。メールばんばん送って来られても困るし」

的な感じで対応してあげればいいと思います。

9. robots.txtがそもそも何かわからない。

という方は、あえて気にする必要はないかもしれません。
スルーするか、お近くの詳しい人に聞きましょう。

追記

たまたまWordPress3.5.2のコアファイルが手元にあったので確認したら、この時はまだ/wp-includes/以下をブロックするようになっていました。

function do_robots() {
	header( 'Content-Type: text/plain; charset=utf-8' );

	do_action( 'do_robotstxt' );

	$output = "User-agent: *\n";
	$public = get_option( 'blog_public' );
	if ( '0' == $public ) {
		$output .= "Disallow: /\n";
	} else {
		$site_url = parse_url( site_url() );
		$path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
		$output .= "Disallow: $path/wp-admin/\n";
		$output .= "Disallow: $path/wp-includes/\n";
	}

	echo apply_filters('robots_txt', $output, $public);
}

現場からは以上です。

コメントをどうぞ

メールアドレス (必須・公開されません)
コメント本文

  • スパム・迷惑コメント投稿防止のため、メールアドレスの入力が必須ですが、公開はされません。何卒ご協力のほどお願いいたします。
  • 投稿いただいたコメントは管理者のチェック後掲載しておりますので、即時には反映されません。
  • 記載内容に関する批判や間違いの指摘などはそのまま掲載する方針ですが、投稿内容と無関係な誹謗中傷、一方的な罵詈雑言の場合は削除させていただく可能性があります。
  • 通常業務の合間にコメントチェックをしておりますので、すべてのコメントへのお返事が出来ない場合もございます。あらかじめご了承ください。
  • 管理人個人への連絡等は、コメント欄ではなくコンタクトフォームをご利用ください。

書籍を執筆しました

WordPress 標準デザイン講座【Version 4.x対応】


翔泳社さんより、2015/02/27発売しました。2年経ちますのでもう賞味期限切れだとは思いますが、一応実績として...

寄付歓迎(・ω<)☆

当ブログの記事があなたの役に立ったら、気が向いたらでいいのでドネーションいただけると更新の励みになります!
気が向いた方はこちらから

ブログ内検索