検索順位チェックツールを、PHPで自作してみました。
順位チェックできるキーワードは、10個くらいなので、お試しレベルのツールです。エラー処理などは全くつけていません。
作り方やサンプルコードを紹介します。
目次
PHPで作る自作「検索順位チェックツール」
作成した自作の検索順位チェックツールの仕組みは、下記のとおりです。
キーワードで検索した結果を取得して、phpQueryを使って順位を測定します。
処理フロー
- チェックしたいキーワードを、ファイルから取得する
- キーワードの検索結果を、30位まで取得する
- 抽出した30位の中に、目的のドメインがあるかを確認する
- ドメインがあれば、検索順位を提示、なければ、ヒットなしにする。
PHPファイルのフォルダ構成
下記のようなフォルダ構成で、ファイルをサーバーにアップロードします。
phpQueryは、「GithubのTobiaszCudnik / phpquery」を使います。
- rank.php(検索実行ファイル)
- rankcheck.txt(キーワードを書き込んだファイル)
- phpQuery(TobiaszCudnik / phpqueryのphpQueryフォルダ)
各ファイルの中身を説明していきます。
rank.php
rank.phpのファイルの中身です。
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="robots" content="noindex">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>RANKCHECK</title>
</head>
<body>
<?php
require_once(dirname(__FILE__).'/phpQuery/phpQuery.php');
//PHPエラー表示
ini_set('display_errors', 1);
error_reporting(E_ALL);
// 検索情報設定
$mysite = "/xxxxxx\.com/";
$checkfile = dirname(__FILE__).'/rankcheck.txt';
$lines = file($checkfile);
//初期化
$rankhtml = "";
foreach ($lines as $key) {
//end文字が来たら終了
if(trim($key)=="end") {
break;
}
$string = str_replace(array(" ", " "), "+", trim($key));
//30件取得
$keyword = 'https://www.google.com/search?num=30&q='.$string;
$html = file_get_contents($keyword);
$doc = phpQuery::newDocument($html);
$count = 1;
$hit = false;
foreach($doc['div.xpd'] as $row){
$rankline = pq($row)->find('.UPmit')->text();
//値があるかどうか
if(!empty($rankline)) {
//自分のリンクが含まれているかチェック
if(preg_match($mysite,$rankline)){
//含まれている場合は保存
$rankhtml .= '<tr><td>'.$key."</td><td>".$count."</td></tr>";
$hit = true;
break;
}
//URLがある場合はカウントアップ
$count++;
}
}
//ヒットがない場合
if($hit == false) {
$rankhtml .= '<tr><td>'.$key."</td><td>ヒットなし</td></tr>";
//リセット
$hit = false;
}
//ウェイト
sleep(1);
}
echo '<table>'.$rankhtml.'</table>';
?>
</body>
</html>
下記の部分は、自分がチェックしたいドメイン名に変えてください。
$mysite = "/xxxxxx\.com/";
まず、キーワードで検索した結果を、30位まで取得します。
$keyword = 'https://www.google.com/search?num=30&q='.$string;
phpQueryを使って、取得した結果に指定のドメインがあるかを確認し、ドメインがあればその時の順位を、なければヒットなしにします。
if(preg_match($mysite,$rankline)){
最後にreCAPTCHA対策のために、1秒待機します。
sleep(1);
rankcheck.txt
rankcheck.txtの中身です。
検索順位をチェックしたキーワードを、1行に1キーワード追加します。
読みにくい ブログ 検索ボリュームチェックツール 無料 ワードプレス レンタルサーバー end
「end」のところまで、検索順位をチェックします。
ファイルに検索キーワードを20個追加してある場合でも、先頭5個だけチェックしたい場合は、5個目のところに「end」を追加すれば、そこで終了できます。
phpQuery
phpQueryは、「GithubのTobiaszCudnik / phpquery」を使います。composerをインストールしていなくても、ファイルをアップロードするだけで使えます。
TobiaszCudnik / phpqueryから、「Code」>「Download ZIP」をクリックして、ファイルをダウンロードします。

ダウンロードしたZIPファイルを解凍し、phpquery-masterフォルダの中にある「phpQuery」フォルダを丸ごとFTPでサーバーにアップロードします。
phpquery-masterフォルダの中にある他のファイルは使いません。
phpQueryは、「rank.php」で読み込んでいます。
require_once(dirname(__FILE__).'/phpQuery/phpQuery.php');
実行
rank.phpを実行すると、キーワードと順位が表示されます。
もし、30位内にドメインがあれば、その検索順位を表示し、なければ「ヒットなし」という表示になります。
下記の画像が、結果画面です(サンプルコードなので、CSSを全く使っていないため、見た目は、かなりしょぼい・・・)。
![]()
【まとめ】検索順位チェックツールならPHPで自作できる
お試しレベルの検索順位チェックツールなら、PHPを使って自作可能です。
キーワード10個くらいであれば、問題なくチェックできました。
ただし、以下の懸念事項があります。
- ウェイト(sleep)をいれないと、reCAPTCHAにひっかかる
- ウェイトが必要なので、処理に時間がかかる
- キーワードが多くなると、うまく動かない