こんばんは。今日も表題の通りの話をしますよ。

ところで皆さんはGoogleアラートって知ってますか?登録した単語等の検索結果に変化があったらメールやRSSでお知らせしてくれる機能です。

私は「これ何の為に使うの?」とずっと思っていましたが、SEOをやり始めてからはこれがとても重宝します。Googleの検索コマンドが使えますので、site:自分のサイトのURLとしておけば自分のサイトがインデックスされる都度お知らせをもらえます。

WordPressではPubSubHubbub等のプラグインと適切なsitemap.xml等を併用すると、遅くともその日の内には新しく投稿した記事がGoogleにインデックスされます。

ところがこの一週間くらい、新しく記事を投稿してもアラートのRSSが無反応。そんな事もあるだろうと特に気にしていなかったのですが、実はエライ事になっていました。

ウェブマスターツールにエラーが出てるうー\(^o^)/

ふと別の問題の対処の為にウェブマスターツールをうろうろしていたらエライ事になっている事に漸く気付きました。今回発覚した問題は二点。

  1. robots.txtにアクセスすると403エラー(アクセス禁止)が出る
  2. sitemap.xmlにアクセスすると404エラー(ファイルが無い)が出る

robots.txtは基本的に検索エンジンのbotのクロールを制限するものなので、有っても無くてもインデックス速度に影響はありませんがSEOやセキュリティ的にエラーが出ていると困ります。

sitemap.xmlは「此処にこういうページがあるのでクロールしてね」と検索エンジンに知らせる為のファイルなのでこれが無ければインデックスされなくても全然おかしくなかったあー/(^o^)\

最近は.htaccessを弄り過ぎてプラグインに不具合が出たりしたので、真っ先に.htaccessを疑って調べました。

robots.txtのエラー解消法

まずは、元々私が対処しようとしていた別問題とも関連があったので此方の問題の解決から行いました。

間違ってテキストファイルを外部リンク禁止にしたかな、等と.htaccessをくまなく精査したのですが特に問題は見当たらず…。

最終的にファイル名を変えたり、.htaccessを削除してみたのですが.htaccessが無くても403が出る…だと…orz

これはサーバー側で何か仕様変更があったのかと思い検索してみると意外な所に答えがありました。

ファイルの属性

CGIやPHPのプログラムを設置した事がある方は御存じかと思いますが、実はファイルへのアクセス権限を指定するものとして.htaccessの他にファイルの属性というものがあります。755や604等、三桁の数字で表し、FTPソフトを使うと編集できます。

共用サーバー等では「三桁の数字の真ん中をゼロに!」とよく言われますね。セキュリティ上、wp-config.PHPや.htaccess等の属性は、誰かが勝手にアクセスしたり上書きしたりできない様に厳しくします。

で、そういえば「.txtファイルは600にしておけば良い」というのを何処かで読んで、FFFTPでアップロードする時のデフォルトをそう設定してしまっていたんですね。

ですが、三桁の数字の一番右がゼロだと、ブラウザでURLを打ち込んでアクセスすると403エラーが出るようになります。盲点でした。別の問題の対処の為に久々にrobots.txtを変更した時に元々の604から600になってしまい、Googleが読み取れなくなっていたようです。

でもまあとりあえず此方は解決。

sitemap.xmlのエラー解消法

実は、此方については404エラーが出る以前から、sitemap.xmlというファイルはサーバー上の何処にも存在しませんでした。

どういう事かというと、Google XML Sitemapsというプラグインを使って動的に生成したサイトマップに、指定のURLからリダイレクトしていたからです。(リダイレクトも全部プラグインがやってくれます。)

プラグインでエラー、となるとやはり前回のGD Star Ratingの件もあり、色々.htaccessの規制を緩めてみるも効果無し。

というか、403エラーじゃなくて404 not foundって何ですか。動的に生成できてないんですか?という事でアンインストール→再インストール等もやってみましたが直らず…。

此方も結局Google先生に質問したら同じ様に困っている方が沢山いらっしゃいました。

Google XML Sitemaps 4.0以上のエラー対策 | メモトラ

http://memotora.com/2014/03/31/how-to-solve-google-xml-sitemaps-error/

結論としてはサイトマップのURLがこっそり変わっていたというorz アップデートした私が悪いのですか…? ちゃんと説明とか読んでない私が悪いのですか…?

それで、一応メインのサイトマップにはアクセスできるようになりましたが、此処で問題が。

サブサイトマップが全部404なんだけど

最新版のGoogle XML Sitemapsでは、一つのxmlにページリストを全て出力するのではなく、いくつかの(というか月毎の?)xml(サブサイトマップ)に分けて生成してから、メインのサイトマップにそれらのサイトマップのリストを生成します。

新しいメインサイトマップに登録されているサブサイトマップのURLに変化がなかったので嫌な予感がして試しにアクセスしたら案の定404エラー。

これでは使えませんので結局プラグインをダウングレードしました。バージョン3以前のものなら、仮想xmlではなく実在するsitemap.xmlを生成してくれるので、解決できない方はダウングレードするか他のプラグインに乗り換えましょう。


今回の教訓は、ウェブマスターツールはダッシュボードにメッセージが出てなくても定期的に全ページ見て回るくらいしないと駄目だな、という事でしょうか。一週間程度で気付けてラッキーでした(タブレットで見てて押し間違えて普段行かないページを見て気付いたというレベル)。

ところで先日友人に「最近は月1万UUくらいある」と言ったらびっくりされました。でも、「それでも稼げるのは月1000円くらい」と言ったらもっとびっくりされました。プロブロガーの人って凄いね。

スポンサーリンク