サイトランク0の不運。クローラはいつ来るのか?回収されない時に確認すべき点

ブログ・アフィリエイト

エロタレスト攻略を目指して、遅延回避プログラム「MoAke」を稼働させ、クローラがいつ来るかを調べる「TukuYomi」を入れてタイミングを図って効率的な投稿をしようと考えておりましたが…。

来るはずの時間に来ない。

来ないの時間に来る。

記事の持って行き方がおかしい。

という症状に見舞わえました。具体的には…

クローラの訪問時間

もともとは、8時台、13時台、14時台、19時台、22時台の5回収集のつもりで、そこに合わせてMoAkeで遅延回避&自動投稿をしていたわけですが…

22時回収予定の記事が2時に回収される…、でも4時間前と表示されるわけではなく、オンタイムで表示。

8時は回収されず14時に回収される。ただ、これは〇〇時間前と、2時のときとは様相が違う。

これってサイトランク0だから?

原因は多分自作プラグイン

よーく考えると自作プラグインMoAkeを更新してからおかしくなったような気がする。

ということで、MoAkeを切って、22時に対して投稿したら…

回収された!

というとでこれが原因ぽい。

具体的な理由考察

MoAkeで投稿したときのRSSと、自然投稿したときのRSSの違いにポイントあり。

MoAke投稿は公開日<pubDate>をキッチリ管理していたため、更新日<lastBuildDate>があとの時間になっておりました。

一方で、しっかり回収された自然投稿では<pubDate>のほうが<lastBuildDate>よりもあとになっておりました。

なので、更新日時よりも過去に公開されたものはクローラが拾わないのではないでしょうか?

対策検証

MoAkeの公開日時をupdateかける1分後に設定して、回収予定時間の少し前に投稿してみようと思います。本数は2本で設定して様子を見てみましょう。。

結果としては…

だめでした。22時は取れるのですが、それ以外がダメ。

MoAkeが影響あるのかもと思い、MoAke解除しても…

とれなかったorz

ログをよーく見ると回収時間がちょっとだけ早まってた。

なので、MoAke時間を前倒してみました。

追加施策

feed形式がダメじゃね?ってことで<lastBuildDate>の内容を書き換えました。しかもコア直で…Verアップでハマるやつですね。

あとで、別の方法にしようと思います。

wp-includes下にあるfeed-rss.phpとfeed-rss2.phpにある<lastBuildDate>を次にように書き換えました。

<?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?>

これでRSSの更新日が最新の記事時間と同期します。

とりあえずはこれで様子見です。。