当時のSEOチェックツール機能
今ではもう機能をなくしてしまいましたが、dtnディレクトリには登録サイトのSEOチェックツールをオマケでご用意しておりました。
SEOチェックツールとはいっても、METAタグの情報を表示したり、被リンク数と検索インデックス数や、当時まだ取得することができたGoogleのPageRankをツールバーデザインで表示させていたただけですので、あまり意味がない機能とは思っていましたが。
被リンク数の取得
久しぶりにSEOチェックツールを見てみたところ、どのサイトも被リンク数が0件となってしまい、データがうまく取れなくなってしまっていました。
2010年頃は、各社検索エンジンでは、検索APIを大盤振る舞いで全開放してくれていたので、被リンク数・インデックス数も気楽にAPIで取得が出来ていたのですが、Yahoo!、Googleも検索用APIは次々サービス提供、もしくは、有料サービス化をしてしまったので、サービス提供が終了してレスポンスデータが何もない状態となっていたようです。
代替の取得方法を探してみた
このままでは申し訳ないので、代わりの方法で数値を取ろうと思いましたが、APIが無い以上、数値を取得するにはHTTP_Requestとかで検索結果ページを丸っと取得して数値を引っ張るしかないかなぁとも思っておりました。
2014年当時は、Googleの検索ボックスに link:〇〇〇〇〇.jp といったlink:パラメータを入れれば、被リンク元の一覧や件数を画面で取得することができました。
とはいえ、以前にもやったことはありましたが、HTMLデータをプログラムで取得→必要なデータを抽出に非常に時間がかかって使い物になりませんでした。
他の方法を探してはみましたが、公式にはサービス終了とされているGoogle Search APIはまだレスポンスが返るようでしたので、これで対応してしまいました。これも近々使えなくなるとは思いますので、この先どうしたらよいのやら。
function GoogleBL($domain){
$url="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=link:".$domain."&filter=0";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_REFERER,"YOUR_REFERER"); //リファラ入れないとエラーになりました
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$json = curl_exec($ch);
curl_close($ch);
$data=json_decode($json,true);
if($data['responseStatus']==200){
return $data['responseData']['cursor']['resultCount'];
}else{
return false;
}
}