SEO

無料検索順位チェックツール「Serposcope」をMacにインストールする手順

[PR]記事内のアフィリエイトリンクから収入を得る場合があります

f:id:photoblg:20160930000301p:plain

更新:2018/10/24

無料の検索順位チェックツールといえば検索順位チェックツールGRCが恐らくシェアNo.1ですよね。

しかし残念ながらMacでは使えなくてRankTrackerを試したり、その他のソフトを探したのですが良いのが見つからず、結局VirtualBoxでWindowsの仮想環境を作ってGRCを使う運用をしていました。

www.weblog-life.net

とりあえずは問題なく使っていたのですが、記事数が多くなりロングテールキーワードが増えてくると計測したいキーワードも増えてきます。しかしGRCの無料版は3URL、20キーワードまでの制限があるため、新しく計測したいキーワードが出てきたら古いワードを削除するなりしての運用を余儀なくなれていました。

そんな若干の不満を持ちつつ先日知ったのが「SERPOSCOPE」という無料の検索順位チェックツール。嬉しいことにキーワードは無制限(Unlimited Keyword)。興味がわいてきましたがMacのインストール手順のあるページが無いようでしたので残しておこうと思います。

SERPOSCOPEとGRC(無料版)との違い

前述した通りSERPOSCOPEは計測キーワード、URLは無制限。これが最大のメリットじゃないでしょうか。ちなみに検索エンジンはGoogleのみです。

SERPOSCOPE GRC
URL数 無制限 3URL
キーワード数 無制限 20
検索エンジン Google Google/Yahoo/Bing

ツールの言語は英語ですが、それほど難しいワードが出てくるわけではないので問題はないでしょう。

SERPOSCOPEのダウンロード

ウェブサイトにアクセスしてロゴの下にある「Download」をクリック。

Open source rank checker for SEO | serposcope

f:id:photoblg:20160930004353p:plain

右から2番めのファイルの「Download」をクリックしてダウンロードします。

f:id:photoblg:20160930204229p:plain

インストール準備

ダウンロードしてきたファイルはクリックしてもそのままでは何もおきないです

f:id:photoblg:20160930204905p:plain:w350

SerposcopeではJDK 1.8以上が必要になります。ターミナルでまず確認していきます。

[Finder]-[移動]-[ユーティリティ]を開いてターミナル.appをクリック

f:id:photoblg:20160930210208p:plain

以下のコマンドを入力してエンターを押します。

java -version

f:id:photoblg:20160930205634p:plain:w350

インストールされていない場合、以下のメッセージが表示されます。 OKをクリック。

"java"コマンドラインツールを使用するには、JDKをインストールする必要があります。

f:id:photoblg:20160930210616p:plain:w350

JDKのダウンロード

Accept License Agreement(使用許諾契約に同意)を選択、Mac OS X用のJDKをダウンロードします。

Java SE Development Kit 8 - Downloads

f:id:photoblg:20160930211305p:plain:w350

JDKのインストール

ダウンロードしたdmgファイルをクリック。中央の箱の部分をダブルクリックするとインストーラーが立ち上がります。

f:id:photoblg:20160930211557p:plain:w350

続けるをクリック。

f:id:photoblg:20160930211630p:plain:w350

インストールをクリック。

f:id:photoblg:20160930211834p:plain:w350

パスワードを入力して「ソフトウェアをインストール」をクリック。

f:id:photoblg:20160930212554p:plain:w350

数十秒でインストールは終ります。「閉じる」で終了。

f:id:photoblg:20160930212720p:plain:w350

もう一度java -versionでチェックしてインストールしたJDKのバージョンが返ってこれば成功です。

XXX:~ hogehoge$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

ダウンロードしたフォルダに移動します。以下ダウンロードフォルダの場合。

XXX:~ hogehoge$cd Downloads

ファイルがあるかlsコマンドで確認。現在のディレクトリにあるファイルの一覧が表示されます。もし違うフォルダにある場合は先ほどのcdコマンドで移動してください。

XXX:Downloads hogehoge$ls

ダウンロードしてきたserposcope.jarがあったらjava -jar serposcope-2.10.0.jarと入力してエンター。

XXX:Downloads hogehoge$java -jar serposcope-2.6.0.jar
starting serposcope service
[2016-09-30 21:37:39,843] [NinjaJetty] INFO  c.SerposcopeConf - serposcope.version          : 2.10.0
[2016-09-30 21:37:39,846] [NinjaJetty] INFO  c.SerposcopeConf - serposcope.datadir          : /Users/hogehoge/serposcope
[2016-09-30 21:37:39,846] [NinjaJetty] INFO  c.SerposcopeConf - serposcope.logdir           : /Users/hogehoge/serposcope/logs
[2016-09-30 21:37:39,846] [NinjaJetty] INFO  c.SerposcopeConf - serposcope.db.url           : jdbc:h2:/Users/hogehoge/serposcope/db;MODE=MySQL
[2016-09-30 21:37:39,846] [NinjaJetty] INFO  c.SerposcopeConf - serposcope.db.debug         : false
[2016-09-30 21:37:39,846] [NinjaJetty] INFO  c.SerposcopeConf - serposcope.listenAddress    : 0.0.0.0
[2016-09-30 21:37:39,846] [NinjaJetty] INFO  c.SerposcopeConf - serposcope.listenPort       : 7134
[2016-09-30 21:37:39,931] [NinjaJetty] WARN  o.e.j.s.h.ContextHandler - Empty contextPath
[2016-09-30 21:37:39,941] [NinjaJetty] INFO  s.l.MyNinjaJetty - Trying to start jetty vnull on 0.0.0.0:7134
[2016-09-30 21:37:40,146] [NinjaJetty] INFO  c.Module - now logging to /Users/hogehoge/serposcope/logs/2016-09-30.log
Can't establish connection to database
org.h2.jdbc.JdbcSQLException: データベースが使用中です: null. 可能な解決策: 他の接続を全て閉じる; サーバモードを使う
Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-189]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:168)
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:187)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2450)
at org.h2.engine.Database.open(Database.java:672)
at org.h2.engine.Database.openDatabase(Database.java:269)
at org.h2.engine.Database.(Database.java:263)
at org.h2.engine.Engine.openSession(Engine.java:65)
at org.h2.engine.Engine.openSession(Engine.java:175)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:153)
at org.h2.engine.Engine.createSession(Engine.java:136)
at org.h2.engine.Engine.createSession(Engine.java:28)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:107)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:91)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at com.serphacker.serposcope.di.db.DataSourceProvider.get(DataSourceProvider.java:40)
at com.serphacker.serposcope.di.db.DataSourceProvider.get(DataSourceProvider.java:21)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
at com.google.inject.Guice.createInjector(Guice.java:96)
at ninja.Bootstrap.initInjector(Bootstrap.java:204)
at ninja.Bootstrap.boot(Bootstrap.java:94)
at ninja.servlet.NinjaServletListener.createNinjaBootstrap(NinjaServletListener.java:131)
at ninja.servlet.NinjaServletListener.getInjector(NinjaServletListener.java:109)
at com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:47)
at ninja.servlet.NinjaServletListener.contextInitialized(NinjaServletListener.java:61)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:800)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:444)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:294)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:387)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:354)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at ninja.standalone.NinjaJetty.doStart(NinjaJetty.java:107)
at ninja.standalone.AbstractStandalone.start(AbstractStandalone.java:166)
at ninja.standalone.AbstractStandalone.run(AbstractStandalone.java:87)
at serposcope.lifecycle.Daemon.start(Daemon.java:19)
at serposcope.lifecycle.Daemon.main(Daemon.java:15)
Caused by: java.lang.IllegalStateException: The file is locked: nio:/Users/hogehoge/serposcope/db.mv.db [1.4.189/7]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.FileStore.open(FileStore.java:172)
at org.h2.mvstore.MVStore.(MVStore.java:342)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2884)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
... 57 more

以下のURLにアクセスしてユーザー作成画面が表示されたらインストールは完了です。

http://127.0.0.1:7134/create-admin

f:id:photoblg:20160930214029p:plain:w350

ユーザーの登録

Eメールアドレスとパスワードを入力して「Create」をクリック

f:id:photoblg:20160930214414p:plain

Admin account createdと表示されたら管理ユーザー作成完了です。

f:id:photoblg:20160930214506p:plain

最後に

以上で無料検索順位チェックツール「Serposcope」をMacにインストールが出来ました。

長くなりましたのでログイン〜キーワードの登録などは次の記事にしたいと思います。

初期設定の手順追加しました

-SEO
-,