SEOチェックツールとは

ディレクトリ型検索エンジンdtnには、カテゴリに登録されたサイト用のSEOチェックツールをオマケで付けてありました。(※すでに廃止してしまいました

Yahoo API、Google APIで取得ができた被リンクやインデックス数のデータ、Google PageRankのデータ、PHPのget_meta_tagsで取得したデータ、サイトのサムネイルを並べたものでした。

PHP Warningでエラーログが埋まる

apacheのエラーログを見ていたところ、やたらPHP Warningが表示されておりました。中でも、このSiteCheck.php(SEOチェックツール)のエラーが相当な数で表示されていたので、急ぎで修正をしてみました。

放っておくとログが爆発しそうな感じなので、@でエラー制御でもしておけば良かったですが、当時は何もしておりませんでした。

エラーの原因

その主な原因というのは、4XX、5XXなどの、存在してないサイトのデータを引っ張ってこようとした時に、PHPが一斉にエラーを吐いてるというもののようでした。

URLの生存チェックを追加

突貫作業でこのプログラムを作ったので、URLの存在チェックや、ディレクトリ登録済みかどうかのチェックすらもやっていませんでしたので、とりあえずはURLが存在してるかどうかのチェック機能を新たに追加しておきました。php5だとget_headers()がありますが、「PHPでHTTPリクエストをしてみる」のような方法でステータスが取得可能ができるので、これで対応しておりました。

修正したSEOチェックツール

修正したSEOチェックツールでdtn.jpの検索インデックス状況を見ると、googleのデータだけ、被リンク数が異常に少ないのが分かります。

検索上位サイトの被リンク数や被リンク元を公開してしまうと、SEO業者に悪用される恐れがあるからかもしれませんが、ここまで露骨に他と比べて数値に差がでてしまうと、Googleでは被リンクは上位表示にとても重要だとアピールしているようで、逆効果のような気もしてしまいます。

sitechecktool_0912_dtn.png
被リンク数の表示数だけが異様に少ない

追記:当時取得していたデータと取得元

1.file_get_contentsの取得データから<title>・・・</title>を抽出した文字列
2.get_meta_tags()で取得したMETA DESCRIPTION
3.get_meta_tags()で取得したMETA KEYWORDS
4.safe_getEncoding()で取得したエンコード
5.GetPageRank()で取得したページランクをツールバーのデザインで出力
6.Google APIで取得をしたバックリンクの数
7.Google APIで取得をしたインデックスページの数
8.Yahoo APIで取得をしたバックリンクの数
9.Yahoo APIで取得をしたインデックスページの数
10.Mozshot APIで取得をしたウェブサイトのサムネイル

当時SEOチェックツールに表示していたデータ

今ではデータがほとんどとれない

1~4であれば今でも取得はできますが、5~10の検索エンジン側でAPIや何かしらで吐き出していたデータはもう取得ができないので、それもあってSEOチェックツールの提供も終了していました。

sitechecktool_0912.png
当時dtnに備わっていたseoチェックツールのイメージ

おわりに

APIや他のサービスを使ってあちこちからデータを集めていたこともあり、このSiteCheck.php(SEOチェックツール)は頻繁にエラーがでてしまったりで、メンテナンスが本当に大変でした。