自作したキーワードサジェストツールを改造してもっと便利にしてみた

※記事内に商品プロモーションを含む場合があります

Googleから取得するキーワードサジェストツールを前回
WordPressの固定ページにキーワードサジェストツールを設置してみた
で非公開で設置しました。

しかし、同じキーワードが表示されるなど色々改善点があったので
コードを改造しました。

追記 2015年9月5日
コードが動かない重大なバグがあった為、コードを修正しました。

自作したキーワードサジェストツールを改造してもっと便利にしてみた

改造点その1・キーワードの重複を無くす

前回、こんな風に
自作したキーワードサジェストツールの出力でキーワードが重複

小野田坂道と検索すると、複数の同じキーワードは何箇所かで表示されます。
そうなると、見る時に同じキーワードを脳内で除外する必要があるので、
今日暇だったので重複キーワードが表示されない様に改造しました。

内部ではスペースを除去してるのでスペース有と無、どちらも重複とみなします。

処理的には、
配列(array)を作って、検索キーワードを空白を除去して代入。
サジェストキーワードが出力される度に、配列に同じキーワードが無いかチェック
同じキーワードが無い場合は、キーワードの表示とキーワードの空白を除去して配列に代入。
といった処理で重複を除去しました。

この処理の追加によって、出力が大分コンパクトになりました。

その2、Google検索とサジェスト検索の追加

出力されるサジェストキーワードがどういった意味なのか?
分からない事もあるので、そんな時の為に出力されたサジェストキーワードでGoogle検索
出来る機能(リンク)も追加しました。

また、出力されたキーワードに対するサジェストキーワードが知りたい時の為に
出力されたキーワードに対するサジェストキーワードを出力するリンクも追加しました。

サジェストキーワードツールのGoogle検索とサジェスト検索の追加

 

[G]がGoogle検索様のリンク、新しいタブ・ウィンドウで開きます。
[S]がさらにサジェストキーワードを取得するリンクです。

[S]ボタンをクリックした場合、
上の方に元のキーワードに戻るリンクも追加しました。

元のキーワードに戻るリンクも追加されたサジェストキーワードツール
これはリダイレクトをすると再読み込みされて負荷が掛かると思うので
クライアントサイドで処理するJavaScriptで実装しました。

後はサジェスト元の表示の変更と
サジェストワードに数字の追加、
h3タグで『●●』の検索結果と表示する様にしました。

改造したキーワードサジェストツールのソース

このソースはこちらのソースを元に改造しました。
WordPressに自作のGoogleキーワードサジェストツールを設置したったww

<!–Googleサジェストキーワードツール Ver.20141102-0817 modify at 2150905 by @eaxjp from http://webshufu.com/google-keyword-suggest-tool-of-my-own-in-wordpress/ ********** –>

<form method=”GET” action=”http://hoge/hoge/”>
<input type=”text” name=”q”>
<input type=”submit” value=”送信”>
</form>
<?php
$my_input_word=strip_tags($_GET[‘q’]); //検索キーワード
$before_input_word=strip_tags($_GET[‘b_q’]); //元の検索キーワード
$added_letters_array= array(“あ”,”い”,”う”,”え”,”お”,”か”,”き”,”く”,”け”,”こ”,”さ”,”し”,”す”,”せ”,”そ”,”た”,”ち”,”つ”,”て”,”と”,”な”,”に”,”ぬ”,”ね”,”の”,”は”,”ひ”,”ふ”,”へ”,”ほ”,”ま”,”み”,”む”,”め”,”も”,”や”,”ゆ”,”よ”,”ら”,”り”,”る”,”れ”,”ろ”,”わ”,”を”,”ん”,”が”,”ぎ”,”ぐ”,”げ”,”ご”,”ざ”,”じ”,”ず”,”ぜ”,”ぞ”,”だ”,”ぢ”,”づ”,”で”,”ど”,”ば”,”び”,”ぶ”,”べ”,”ぼ”,”ぱ”,”ぴ”,”ぷ”,”ぺ”,”ぽ”,”a”,”b”,”c”,”d”,”e”,”f”,”g”,”h”,”i”,”j”,”k”,”l”,”m”,”n”,”o”,”p”,”q”,”r”,”s”,”t”,”u”,”v”,”w”,”x”,”y”,”z”,”0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″);
if($my_input_word){
echo “<h3>『”.$my_input_word.”』の検索結果</h3>”;
if($before_input_word != “”){
echo “元のキーワード『<a href=\”#\” onClick=\”history.back(); return false;\”><strong>”.$before_input_word.”</a></strong>』に戻る”;
//Sボタンを押してキーワード検索時、元のキーワードに戻る機能をJavsScriptで実装
}
?>
<table>
<thead>
<tr>
<th>サジェスト元</th>
<th>キーワード</th>
</tr>
</thead>
<tbody>
<?php
$ss_word = array();
$ss_word[] = preg_replace(‘/(\s| )/’,”,$my_input_word);
foreach ($added_letters_array as $added_letter) {
$my_input_word_added_letter=$my_input_word.$added_letter;
$url = “http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q=”.urlencode($my_input_word_added_letter);
$toplevel = simplexml_load_file($url);
foreach ($toplevel->CompleteSuggestion as $completeSuggestion) {
$sword = preg_replace(‘/(\s| )/’,”,$completeSuggestion->suggestion->attributes()->data); //キーワード重複チェック様に一旦スペースを抜く
if(array_search($sword, $ss_word) == FALSE and $sword !== preg_replace(‘/(\s| )/’,”,$my_input_word) ){
//配列に重複するサジェストキーワードが無いorサジェストキーワードが入力キーワードでは無い場合、表示する
$ss_word[] = $sword; //次回検索様に配列に代入
$sword = $completeSuggestion->suggestion->attributes()->data; //スペースを抜く処理をしないサジェストキーワードを代入
echo “<tr><td>”.$my_input_word.”・”.$added_letter.”</td>\t<td>[<a href=\”https://www.google.co.jp/search?q=”.$sword.”\” target=\”_blank\”>G</a>][<a href=\”http://hoge/hoge/?q=”.$sword.”&b_q=”.$my_input_word.”\”>S</a>]”.$sword.”</td><tr>\n”;
}
}
}
unset($ss_word);
?>
</tbody>
</table>
<?php
}
?>
<!–/Googleサジェストキーワードツール –>

http://hoge/hoge/は環境により変更して下さい、変更しないと動作しません。
変更が必要なのは2箇所有り
上の方のformタグの所と下のサジェストキーワードを表示する所。
分からない場合は、テキストエディタなどで置き換えすると簡単です。

設置方法は、前回の記事を参考に
【参考】WordPressの固定ページにキーワードサジェストツールを設置してみた

サジェストキーワードツールを自前で設置した方が良い理由

サジェストキーワードツールは検索キーワード+1文字で検索して
出力されるサジェストキーワードを取得します。
なので、1回の検索で107回(あいうえお~わをん(゛ ゜)+A~Z+0~9と何と107回も
裏ではサジェストキーワードの取得をしています。

なので、それなりに負荷も掛かりますし
使っている人が多いとGoogleでデータの取得をする回数も爆発的に増えるので
Google側で一時ブロックされてしまう可能性もあります。

なので、自分だけのツールであればブロックされる程データの取得はしないと思うので
大丈夫だと思います。
基本的には非公開か、パスワード保護が良いのではないかと思います。

サジェストキーワードの使い道

Googleサジェストはユーザーがキーワードを入力した時に表示されるキーワードの候補。
表示される候補は、全体的に人気があるキーワードで
サジェストキーワードツールではそんなキーワードを取得する事が出来ます。

使い道としてはSEO上一番大事なタイトルを決める時のキーワード調査。

サジェストキーワードはユーザーが良く検索するキーワードなのでサジェストキーワードを
意識して記事を書くことで、サジェストキーワードからの検索流入が期待出来ます。

あとがき

最初は非公開でしたが、ログインが必要なのでパスワード認証にしました。

レンタルサーバーを契約していたり、WordPressサイトを持っている方は
是非自作してみてください。

この非公開用とほぼ同じソースで、公開用のツールも作りました!
Gサジェストキーワードツール・http://gskw.eax.jp/
まだ、テスト中で、負荷などにより中止するかもしれません。gst-0