検索順位計測ツールと言えばGRCがメジャーですが、mac版は無いため使用する場合はひと手間掛かってしまいます。 

macでも無料で使用できる検索順位計測ツールがSERPOSCOPE。

しばらく自分のmacに入れて使っていますが、計測時間にPCの電源を入れておかなくてはならなく忘れるとデータが欠けてしまいますし、PCを使用していない場合そのために電源を入れる必要があり面倒です。

SERPOSCOPEはWindows、Mac版以外にLinux版もあるため、javaが動く環境であればレンタルサーバーでも動作します。

今回はさくらのVPSにSERPOSCOPEをインストールした手順を説明したいと思います。

動作環境の確認

今回設定したのは、さくらのVPS CentOS6+nginxという環境です。

ウェブサーバーはApacheでもnginxでもどちらでもOKですが、Serposcopeはjavaが動作する必要があります。

以下コマンドで「-bash: java: コマンドが見つかりません」となった場合はインストール、既にインストールされている場合は飛ばしてください。

[admin@hogehoge ~]$ java -version
-bash: java: コマンドが見つかりません

yumでインストールできるjavaを確認します。

[admin@hogehoge ~]$ yum search openjdk
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
 * base: mirrors.cat.net
 * epel: ftp.iij.ad.jp
 * extras: mirrors.cat.net
 * updates: mirrors.cat.net
epel                                                                                                             12707/12707
zabbix-non-supported                                                                                                     4/4
=================================================== N/S matched: openjdk ====================================================
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility-debug.i686 : OpenJDK accessibility connector for packages with debug on
java-1.8.0-openjdk-accessibility-debug.x86_64 : OpenJDK accessibility connector for packages with debug on
java-1.8.0-openjdk-debug.i686 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-demo.i686 : OpenJDK Demos
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-demo-debug.i686 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-devel-debug.i686 : OpenJDK Development Environment with full debug on
java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with full debug on
java-1.8.0-openjdk-headless.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless-debug.i686 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages with debug on
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK API Documentation compressed in single archive
java-1.8.0-openjdk-javadoc-zip-debug.noarch : OpenJDK API Documentation compressed in single archive for packages with debug
                                            : on
java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk-src-debug.i686 : OpenJDK Source Bundle for packages with debug on
java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with debug on
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
openprops.noarch : An improved java.util.Properties from OpenJDK

  Name and summary matches only, use "search all" for everything.

First, check if java > 1.8 is setup. Open a terminal and execute java -version and be sure it is at least 1.8 version.

Serposcopeで推奨しているバージョンが1.8以上なので1.8.0をインストール。

[root@hogehoge ~]# yum install java-1.8.0-openjdk

無事インストールが確認できました。

[root@hoge ~]# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

SERPOSCOPEのダウンロード

ダウンロードは公式サイトからブラウザでダウンロードしてFTPクライアントでアップロードでも良いですが、今回はターミナル(SSHクライアント)から実行しました。

ウェブのルートディレクトリ(今回は/var/www/serposcope/DocumentRoot)に移動してSERPOSCOPEをダウンロード。

[root@hoge ~]# cd /var/www/serposcope/DocumentRoot
[root@hoge DocumentRoot]# wget https://serposcope.serphacker.com/download/2.10.0/serposcope-2.10.0.jar

ウェブサーバーの設定

nginxですがこのような設定にしました。

ベーシック認証は通常必要ないのでauth_basic、auth_basic_user_fileのあたりは無くても良いでしょう。またポートが7134ですので、Firewallのポートを開ける必要があります。

server {
    listen 80; 
    server_name search.hogehoge.com; #ドメイン名
    access_log  /var/www/serposcope/log/nginx/access.log main; #アクセスログ
    error_log   /var/www/serposcope/log/nginx/error.log warn; #エラーログ
    auth_basic "admin only";  #ベーシック認証
    auth_basic_user_file "/var/www/serposcope/.htpasswd";
    charset UTF-8;
    client_max_body_size 50M;
    root  /var/www/serposcope/DocumentRoot;

    location / { 
        root  /var/www/serposcope/DocumentRoot
        proxy_pass  http://127.0.0.1:7134;
        proxy_set_header X-Forwarded-Host $host;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }   

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}   

設定変更後はnginxの再起動。

Serposcopeの起動

次にSerposcopeを起動します。

ターミナルを閉じても実行したままにするためnohupコマンドで実行。

[root@hoge ~]# nohup java -jar /var/www/serposcope/DocumentRootserposcope-2.10.0.jar

データのエクスポート・インポート

データのエクスポートは[ADMIN]-[SAVE]でexport-utf8.sql.gzというファイルがダウンロードできました。

インポートはダウンロードしたファイルの解凍後、[ADMIN]-[RESTORE]でSQLファイルを指定してあげれば全て(今までの順位データ・設定)引き継げます。

エラーにならない設定

Googleは同じIPから何度も検索をすると負荷軽減のためにロボットかどうかの判定が入ります。

キーワード数が増えてくるとエラーになることが多くなり、有料のアンチCAPTCHAサービスを利用するか、取得間隔を延ばすことで回避可能。アンチCAPTCHAも1000認証/1ドルとそれほど高くはありませんがチリツモですので取得間隔で調整しています。

以下が[ADMIN]-[GOOGLE]の設定画面。

PauseのMin、MaxはGoogleへのリクエスト間の一時停止時間(秒数)Min120秒、Max180秒にしてますが、この設定にしてからエラーになったことはありません。時間はかかりますが・・・。

サーバーにインストールしておけば外からでも見れますし、かなり快適になりました。

さくらのVPSやAWSはもちろん、ConoHa VPSでも動作しますのでSERPOSCOPEをローカルPCで運用していて不便に感じている方は是非チャレンジしてみてはどうでしょうか。

Sponsor link