robots.txt

いつまでたってもGoogleにインデックスされないとき。

そういう場合、一般的には理由はいくつかあり得るのですが、今回はまったく難しい話ではなかったです。

WordPressの「検索エンジンがサイトをインデックスしないようにする」のチェックを外すのを忘れてました!!

WordPress 設定>表示設定

111

(スクリーンショットはチェックを外した状態)

ここの「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていると、いつまでたってもGoogleにインデックスされません

当たり前のことなんですが、むしろRobots.txtを自分で書いていたため、Wordpress に疑似Robots.txt生成機能があるのをすっかり忘れていました(涙)

ちなみにこのサイトのことではないのですが、やらかしたー!(恥ずかしいミスです(涙))

Google Adsenseでクロールエラーが出ました。

IMG_6919

Google Adsenseの「収益の最適化」で、Wordpress の /wp-admin/customize.php に対して、クロールエラーが出ました。

エラー内容
robot.txt によって拒否

場所
http://(中略)/wp-admin/customize.php

エラー文章
「Google クローラがページにアクセスできなかったため、コンテンツを識別して広告を表示することができませんでした。クローラがコンテンツにアクセスできないと広告は表示されないため、収益と一致率が低下します。[修正方法] のリンクに従ってエラーを修正してください。」

http://(中略)/wp-admin/ は、wordpressのログイン画面や管理画面などの部分です。

外から見る内容には関わりない箇所のはずなので、robots.txtでクローラーアクセス不許可にしてあったんですよね。(Adsenceの表記は「robot.txt」になってますが、正しくは「robots.txt」のはず。)

詳細は→過去記事『robots.txtでやらかした!』で。

この箇所がなぜ必要なのか分かりませんが、robots.txtでこの部分だけクロール許可しておきました。


Disallow: /*/wp-admin/
Allow: /*/wp-admin/customize.php

これで大丈夫だと思うのですが、どうなんでしょ。

【追記】 対策後しばらくして、クロールエラーは消えてました。

robots.txtでやらかした!

IMG_6444

robots.txtの設定をミスって、ウェブマスターツールに「重要なエラー」って言われてしまいました。てへ。

しかもしばらくどこが原因かわからなかったという(涙)

・ robots.txtってなんぞ?

まず、robots.txtが何か、これを何のために設定するかを知らないと分かりづらいのですが、おおざっぱに書くと、このファイルでサイト内のロボットにアクセスされたくないページを指定することができます。

検索サイトのロボットですね。クローラーともいいます。

robots.txtファイル内に Disallow:  のあとにサイト内のディレクトリやファイルを指定しておけば、ロボット避けになります。Allow:で拒否したディレクトリ内部を例外的に許可することもできます。

一部無視するクローラーもあったりとか、他にサイトマップの位置を書いたりもするのですが、細かい書式などはググってくださいってことで、今回割愛(不親切設計)。

 ・ robots.txtを何のために設定するか?

さて、ではrobots.txtを何のために設定するか?

基本的にロボットに見て欲しいページを指示するためなのですが……

まず、前提として今のGoogleさんは内容の薄いページや同じ内容のページがたくさんあるのを好まない傾向があるのです。しかもダメページがあると、サイト全体の評価が下がります。SEOな話ですね。

また、1回でクロールしてくれる数には限りがあるようで、クローラーがリンクをたどってダメページに行ってしまうと、見て欲しいページに行ってくれる可能性が減ってしまいます。

そんなわけでダメページをロボットサーチ拒否設定にしておくことでSEO的に有利になるというわけです。

まぁ、私の個人サイト程度ではおまじないにもならないくらいの効果だとは思いますが、ある程度アクセスの増えてきたサイトには多少の意味はあるようです。

(この理由以外にも身内用のサイトなどで、スパムコメントが来づらくするようにロボット拒否設定することもあります)

・ で、何やらかした?

そんなわけで、このサイトの話ではないのですが、ドメイン直下とその下/BLOG/ディレクトリの2箇所にWordPressをインストールしたサイトがありまして、そこのサイトのrobots.txt設定でやらかしました。

ドメイン直下のメインサイトではパーマネントリンク設定がデフォルトではないし、固定ページはそれぞれ名前を設定してあるのですが、/BLOG/の方は、パーマネント設定がデフォルトになったままです。

(変えろよって話なんですが、初期からそのままになってまして……いまさら変えるのもという)。

さて、robots.txtをWordPress用に

Disallow:  /wp-admin/
Disallow:  /wp-includes/
Disallow:  /wp-content/plugins
Disallow:  /wp-content/cache
Disallow:  /wp-content/themes
Allow: /wp-content/uploads

こんな感じのよくある設定をしました。

また、WordPressはカテゴリーやらタグやら、やたら同じようなページを大量作成してしまう傾向があるので、いっそメイン記事以外の部分をDisallow設定にしました。

ついでにドメイン直下のページ用に

Disallow:   /*?*

と書いておきました。パーマネント設定を変えてあるので、WordPressのデフォルトでたくさん出来る「?」の入るページは要らないと判断して。

しかし、しかしですよ、ええと、この書き方だと……

/BLOG/?*

にも適用されるじゃないですか!(よく考えたら当たり前なんですが、しばらく気づかず(涙))

WordPressのデフォルトのページ名はこんな感じですよね。

/BLOG/?p=3939

そんなわけで、パーマネント設定がデフォのままの/BLOG/のブログページがほとんどロボット拒否設定になってしまいましたとさ。

しかし、ウェブマスターツールさんはこんなミスにもツッコミ入れてくれるんですね。

ウェブマスターツールでrobots.txtの記述が正しいかを先にテストすることもできます。あくまで文法的な部分をなので、テストでは今回のようなミスはわからないですが(涙)

結論のようなもの

  • ワイルドカード怖い
  • robots.txt は、素人が下手にいじると危険!
  • まぁサイトが壊れるわけでもないし
  • 変なことすると、ウェブマスターツールが教えてはくれるけども