Google からこんなメールが届きました。
Google Search Console
http://www.1010uzu.com/
の CSS および JS ファイルに Googlebot がアクセスできません
http://www.1010uzu.com/
のウェブマスター様Google のアルゴリズムによるコンテンツのレンダリングとインデックス登録に影響を及ぼす問題が貴サイトで発生していることが Google のシステムにより判明しました。具体的には、 robots.txt ファイルでの制限のために Googlebot が JavaScript や CSS ファイルにアクセスできません。 Google では、これらのファイルによりウェブサイトが正常に機能していることを認識するため、これらのアセットへのアクセスをブロックすると検索結果における掲載順位が本来よりも低くなる可能性があります。
Google bot が JavaScript や CSS にアクセスできないから修正しろ、というメールです。面倒だな、と思いつつも最近 Google からの訪問者が減っているので対応しなければなりません。
手順通り Fetch as Google でどんなふうに Google に認識されているのか確認。
以下の 3 つのファイルが取得できない模様。
http://www.1010uzu.com/wp/wp-content/themes/1010uzu/style.css
http://pagead2.googlesyndication.com/pagead/show_ads.js
http://www.1010uzu.com/wp/wp-includes/js/wp-emoji-release.min.js?ver=4.2.2
目次
robots.txt の修正
「 http://www.1010uzu.com/wp/wp-content/themes/1010uzu/style.css 」はスタイルシートです。これが取得できない理由は robots.txt で制限をかけているからのようです。そういえば昔 WordPress のコアファイルをクロールしないように記述を加えたような覚えがあります。というわけで、 5 〜 6 行目を追加してテーマ内とプラグインの CSS にアクセスできるようにしました。
User-Agent: *
Disallow: /wp
Allow: /
Allow: /wp/wp-content/uploads
Allow: /wp/wp-content/themes
Allow: /wp/wp-content/plugins
Disallow:/boyaki/20\d{2}/\d{2}/comment-\d+$
Disallow:/boyaki/20\d{4}-\d{8}.html/feed$
Disallow:/page
Sitemap: http://www.1010uzu.com/sitemap.xml
WordPress の絵文字機能を無効化
「 http://www.1010uzu.com/wp/wp-includes/js/wp-emoji-release.min.js?ver=4.2.2 」も同じように、 robots.txt で許可してあげればよいのですが、ファイル名の「 emoji 」が気になります。調べてみると、 WordPress 4.2 からは絵文字が使えるようになったみたいです。そのコードがダラダラとヘッダーに出力している模様。絵文字なんて使わないので、機能を殺し無効化します。
→大輔べ: WordPress で絵文字は使わないので head 内に挿入されるコードを無効化した
functions.php に下記コードを追加します。
/***********************
* 絵文字用のコードを無効化するコード
***********************/
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('wp_print_styles', 'print_emoji_styles' );
remove_action('admin_print_styles', 'print_emoji_styles');
これでダラダラと出力されていた絵文字関連のコードがヘッダーから消えました。
Google AdSense のコードを非同期に書き換え
「 http://pagead2.googlesyndication.com/pagead/show_ads.js 」がなんのファイルがわからなかったのですが、これはどうやら Google AdSense のコードみたいです。
→ぼくらのアドセンスブログ: AdSense の広告コードに非同期バージョンが登場
同期の古いコードのようなので、非同期のものに差し替えました。
しかし書き換えたら今度は「 http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js 」が取得できないといわれました。同じ Google 内なのですから、どうにかしてほしいですね。
対策後の Fetch as Google
というわけで、対策後の Fetch as Google 。 Google AdSense は認識されていませんが、かなり改善されました。