PHPでGoogle、Yahooのインデックス数を取得する方法の紹介です。インデックス数を調べたい場合は、Google、Yahooの検索欄に「site://アドレス」を入れます。インデックスされているページのアドレスとインデックス数が表示されます。

(検索例)site://www.shinbo.org

 今回は、管理ページにインデックス数を表示したかったので作成しました。ソースは下記のようになります。基本は、google、yahoo検索結果のHTMLを取得し、内部に記載されているインデックス数を抜き出しています。

Googleのインデックス数の取得

//googleインデックス数の取得
//取得したいURLをセットしてください。http://は除いて下さい。
$url = “www.shinbo.org”;
$googleUrl = “http://www.google.co.jp/search?ie=UTF-8&oe=UTF-8&q=site:”.$url;
$html = file_get_contents($googleUrl);
if(!empty($html)){
 preg_match(‘/約 (.*) 件/’, $html, $text);
 if(!empty($text[1])){
  $indexG = $text[1];
 }else{
  $indexG = 0;
 }
}else{
 echo “テキスト取得に失敗しました。”;
}
echo $indexG;

yahooインデックス数の取得

//yahooインデックス数の取得
//取得したいURLをセットしてください。http://は除いて下さい。
$url = “www.shinbo.org”;
$yahooUrl = “http://search.yahoo.co.jp/search?ei=UTF-8&p=site:”.$url;
$html = file_get_contents($yahooUrl);
if(!empty($html)){
 preg_match(‘/約(.*)件/’, $html, $text);
 if(!empty($text[1])){
  $indexY = $text[1];
 }else{
  $indexY = 0;
 }
}else{
 echo “テキスト取得に失敗しました。”;
}
echo $indexY;

(注意)
 google、yahooの検索結果のテキストを取得して、そこに書かれているインデックス数を取得しています。そのため、google、yahooの表示部分が変更されたら、取得するPHPのコードも変更する必要があります。注意してください。