[SEO] 定期的に検索順位を計測する話(サーバで実行&無料)

スポンサーリンク

サーバで定期実行し、google、bing、+αの検索順位を定期的に計測→グラフ化する無料ツールSerposcopeのインストール方法と使い方。

2016/02/19追記——————————

Serposcope 2からjavaベースのソフトウェアになりました。機能は大きく変わりません(bing、その他の検索順位が出せません)が、全く異なるソフトになったため下記の手順ではセットアップできません。また、バージョン1はサポートが終わってしまい、検索順位が正常に取得できなくなりました。バージョン2をサーバ実行はその内記事を書きたいと思います。

————————————————–

スポンサーリンク

コレなに?

  • 定期的(自動的)にサーバで動いてgoogle、+αの検索順位を測定してグラフを書いてくれます
  • オープンソースで無料のソフト。中~長期的な検索順位の計測が可能です
こんな感じで、定期的に設定したキーワードの順位グラフをかいてくれます

こんな感じで、定期的に設定したキーワードの順位グラフをかいてくれます

検索順位の計測?

SEO施策チェックの1つとして有効なのが(ライバル企業の状況も含め)定期的な検索順位推移の計測ではないでしょうか。狙っているキーワードの順位がちゃんと上がっているか、下がっているのは一時的なのか/実際下がりだしているのか等など… 有料の良いものはいくつか有るのかもしませんが、無料で定期的にチェックしてくれるツールはさほど多くありません。

従来からある有名なGRC等のツールはPCのディスクトップツールで、毎日忘れず実行する(or PCつけっぱなし)のがちょっと面倒… ほったらかしで1週間に1度程度結果を見たい時などには辛いです。

最近はWordpress等を使い、PHP+MySQL+Cronが使えるサーバも多くなってきました。その隙間的な所に入れておけるのがこのツール(Serposcope)です。

  • 検索順位を計測する無料のWindowsディスクトップツール
    GRC – Google/Yahoo/Bing 検索順位チェックツール
    http://seopro.jp/
  • 現時点のSEO状況、検索順位、キーワード出現頻度などをチェックしてくれる無料のWebサービス
    SEOチェキ!
    http://seocheki.net/

Serposcopeの機能

  • 登録キーワード件数、サイト数無制限で計測
  • ランキング推移のグラフを書いてくれる(日付の範囲指定可)
  • 前回と比べて順位が落ちた/上がったもの一覧表を出してくれる
  • カスタムサーチエンジン機能(標準はgoogleのみ、コードを書けば他のサーチエンジンを増やすことが可能)
  • Googleは海外のGoogleドメインも個別に設定可能
  • Googleのローカルサーチ対応
  • GUIで設定
  • オープンソース
  • カレンダーメモ機能
  • プロキシー対応(1つのIPから多数のキーワード検索ができないため)
  • キャプチャ対応(1つのIPから多数のキーワード検索ができないため)
前回と比べての順位とかも一覧で出る

前回と比べての順位とかも一覧で出る

インストール方法

使用できる環境

  • Webサーバ (Apache/Nginx等)
  • PHP 5.3.8以上
  • MySQL or MariaDB
  • PHP mysql extension
  • PHP Curl extension
  • cronが使える

おそらく、Wordpressが入るレンタルサーバーなんかだと条件を満たしている所が多いと思います。

ダウンロードと配置

もちろんクライアントPCで解凍してから、ftpクライアントで転送しても良いです。

wget https://github.com/serphacker/serposcope/archive/1.0.7.zip
unzip 1.0.7.zip
sudo mv -a ./serposcope-1.0.7 /var/www/html/serposcope(環境にあわせて)
chown -R apache.apache /var/www/html/serposcope(環境にあわせて)
cd /var/www/html/serposcope
chmod o+w ./serposcope/inc

データベースの作成

レンタルサーバーなんかだと管理パネルなどからデータベース&ユーザの追加ができると思いますので、それで作ります。

mysql -uroot -p create database serposcope;
grant all privileges on serposcope.* to serposcope@localhost identified by 'XXXXXXXXXXXXXX';(パスワードは適当につける)
flush privileges;
quit

他の設定(php.ini)

キーワードが多いと検索順位を調べるのは凄く時間がかかる為(後述)、ドキュメントにはphp.iniのmax_execution_timeを0にしろと書いてあるのですが、Wordpress等 他のphpソフトと相乗りしている場合はWordpress側にどんな影響があるかわかりません。怖いのでphp経由ではなくcronで動かすことにしました(php.iniの設定変更は要りません)。

パスワード認証

このソフトには認証機能はついていませんので、WebサーバのDigest認証機能(レンタルサーバーでは.htaccessを使って設定)などで認証する設定にしましょう。

設定方法

Webセットアップ

インストールしたURL/install/へブラウザでアクセスします。

  • http://example.com/serposcope/install/
バージョンチェックなど

バージョンチェックなど。max_execution_timeは変更しなくて良いと思います(後述)

Next押すだけ

DB関連のセットアップ。Next押すだけ

おしまい

おしまい

上記でインストールは終わったので、インストールしたURL(http://example.com/serposcope/)を開きます。

Googleのデフォルト検索場所を日本へ変更(Global設定)

デフォルトではgoogle.comで調べてしまうのでgoogle.co.jpで調べるように変更します(グループ設定時に個別で海外へ変更も可能です)。

上部のOptionsを選び、google→tld→co.jpへ。

Serposcope05

Bingの追加

標準では検索エンジンはgoogleのみです。
他の検索エンジン モジュールは違うところから出す予定らしく、pull requestしても断られていますが、st-a-chさんがpull requestしたBingのモジュールがGitHubに上がっているのでそれをインストールしました。

追加するとこんな風にBingも選べる

追加するとこんな風にBingも選べる

サイト(グループ)&キーワード登録

  1. 上部のNew Groupを押します
  2. グループ名にサイト名等を入力
  3. キーワードにターゲットとしているキーワードを入力
    複数の場合は改行で区切ります
  4. Domainに計測したいサイトのドメインを入力します
  5. 上記でデフォルトを日本にしていればtldはco.jpになっていると思います
    他の国の結果で調べたいときは変更します(com / com.au等)
  6. Saveで保存

基本、これをやりたいサイト分繰り返し行ないますが、キーワードが少ないうちに一度テストをしてみても良い気がします。

Serposcope06

ローカルサーチ機能(位置情報を変えて検索)

現在、googleでは現在位置によって検索順位が異なります(ベニスアップデート)。

その辺りを良い感じに対応して出してくれるのが上記のlocalだと思うのですが、自分が試した限りでは上手く動きませんでした。

ソースコードを見ると、
http://www.google.co.jp/uul?muul=4_18&luul=ロケーション&usg=キーワード&hl=en
を送っているので、手で

http://www.google.co.jp/uul?muul=4_18&luul=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%9D%89%E4%B8%A6%E5%8C%BA&usg=%E3%82%AB%E3%83%95%E3%82%A7&hl=ja

と打ってみたのですが、

“場所を認識できません。 指定範囲を広げるか、周辺の場所を指定してみてください。”

と出て検索できません。

“google luul muul”等で検索してみても、これはと言うドキュメントも出てきませんでした。

と言うことでこの欄は空欄で設定しました。残念。

リクエストURLで現在位置を変更する方法をご存知のかたいらっしゃいましたら、教えて下さい。

  • Google での現在地の変更
    https://support.google.com/websearch/answer/179386?hl=ja
  • Seleniumを使って↑を行ってから検索している例
    FirefoxDriverを使用してGoogleで地域設定を行って検索順位を取得するサンプル @nakazy
    http://www.zealseeds.info/site/it/theory/lang/java/library/selenium/firefox/FirefoxDriver/sample/google/search/getLocationRank/index.html

注意(押してはいけないボタン)

押したい位置に実行ボタンが有りますが、この2つは押してはいけません(後述)

Serposcope07

このボタンは押さないほうが良い

定期実行

サイトの追加ができたらテストと定期実行の設定をします。

手動実行(テスト)

cd /var/www/html/serposcope && /usr/bin/php /var/www/html/serposcope/cron.php

結果が返るのは思っているよりも遅いです(proxyを設定しない場合)。

上記の設定(デフォルト)だと1リクエスト/30秒。内部的には10件づつ検索するので該当キーワードが90番目にあった場合は、1キーワードでも270秒かかります。参考までに現在私が計測している70キーワードで3時間ほどかかっています(なぜこうなっているのかはフォーラムに書かれています)。※遅いからと言ってCtrl+Cで止めてはいけません(後述)

定期実行の設定

上記がうまく行けば、

crontab -e
00 1 * * * cd /var/www/html/serposcope && /usr/bin/php /var/www/html/serposcope/cron.php 1>/dev/null 2>&1

など、cronに登録します(例では毎日1:00に実行)。レンタルサーバではコントロールパネル等にcronを設定できる場所があると思います。

トラブルシューティング

まだβ版ということもあり、若干作りは甘いです。何度か体験したのは定期的にチェックしてくれないこと。ほとんどは下記が原因でした(バージョンが上がれば修正されるのかもしれません)。

  • Webから「Force run」等を使って実行→途中で止めた/エラー等で止まった
  • 手動で実行したが遅いのでCtrl+C等で止めた
    →データベースにゴミデータが残っているので次回から動きません

直し方

  1. serposcopeが動いてないことを確認
  2. phpmyAdmin等でserposcope用に作成したデータベースの?????run(?????は最初に設定したprefix)テーブルを見る
  3. dateSTOPカラムがNullになっている場合→そのレコードを消す

他の検索エンジンの追加

検索エンジンはモジュールと呼ばれるモノを書けば追加できるようになっています。

楽天、amazon、るるぶ、じゃらん等、うまく書けば順位が出るんじゃないかなぁと思います(と書きつつ、実はちょっとだけ楽天を挑戦してみたのですが、proxyまわりがややこしくて上手く動きませんでした…)。yahoo japanだけでも時間作って作っておきたいですね。

さいごに

半年以上使用していますが、定期チェックで落ちかけているキーワードに早めに気づけたり、なかなか上がらないので違う施策を練ったりなど助けられています。チェックそのものには時間かかりますが、夜中にかけておけばそんなに気にもなりません。便利ですよ。

コメント

タイトルとURLをコピーしました