特定のキーワードのGoogleでの検索順位を得る
運営しているサイトが持つ検索キーワードの順位を得たいと思ったのだが、きっと世の中には同じことを考える人がいるだろうからとRuby Gemsを探ったら所望するGemがあったので試してみた。
google-search_rank | RubyGems.org | your community gem host
例えば自分のブログが「安住紳一郎の日曜天国」というキーワードでGoogle検索した際に何番目に表示されるかを調べたい場合は
require 'google/search_rank' client = Google::SearchRank.new(api_key: "(APIキー)", cse_id: "(カスタム検索エンジンの設定で得られるID)") keywords = ["安住紳一郎の日曜天国"] rank = {} keywords.each {|keyword| rank[keyword] = client.find(keyword, %r{http://hideack.hatenablog.com/.*}) } p rank
これを実行すると、
start: 1, i: 0 rank: 1, query: 安住紳一郎の日曜天国, link: http://www.tbsradio.jp/nichiten/ (snip) start: 11, i: 6 rank: 17, query: 安住紳一郎の日曜天国, link: http://hideack.hatenablog.com/entry/2016/04/20/225328 {"安住紳一郎の日曜天国"=>17}
といった具合で順位が把握できる。
プログラム中にあるAPIキーはGoogle developer console から認証情報として取得する。併せて利用するAPIとして Custom Search API を有効にする。
カスタム検索エンジンID(CSE ID)はGoogleカスタム検索エンジンで設定した画面から得ることができる。
無償で利用できるCustom Search APIの呼び出し回数は100回/日なの大量のキーワードに対して検索順位を得るにはあまり合わないかもしれないがターゲットとしているキーワードが明確で少数の場合は利用できると思う。