Pythonでブログ訪問者の検索ワードをマイニング&可視化する

SEO

Google Search Consoleで検索クエリを調べるのは一般的ですが、それをひと目で確認できるようになったら便利ですよね。

そこで今回は、Pythonで自ブログに来る訪問者の検索クエリをマイニング、可視化する方法を紹介します。

スポンサーリンク

Google Consoleでデータを読み込む

まずはGoogle Search Consoleから必要なCSVデータを取得します。

Google Search Consoleにログインして、左側の【検索クエリ】をクリック、真ん中あたりにダウンロードマークがあるので【CSVをダウンロード】をクリック、指定の場所に保存します。

ファイルの名前はseo.csvとしましょう。

これで必要なデータは揃いました。

コードを書く

実際にプログラムを書いて行きます。

まずはMatplotlib、WordCloud、Pandasをインポートします。

import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt

次にPandasでcsvを読み込みます。

先ほど取得したCSVにはキーワード検索、クリック数、表示回数の行があります。一つのワードに対してクリック数を数えてもよいのですが、見た感じ同じような語句は複数回に渡って行に含まれているので、キーワード検索のリストだけ作成します。

df = pd.read_csv("seo.csv")
keywords = list(df["検索キーワード"])

最後にWordcloudのプログラムを組みます。

txt = " ".join(keywords)
font_path = "NotoSansCJK-Regular.ttc"
wordcloud = WordCloud(background_color="white", font_path=font_path, width=1024, height=674).generate(txt)
plt.imshow(wordcloud)
plt.axis("off")
plt.savefig("my_followers_profile.png")
plt.show()

ここで注意したいのがWordCloudはフォントを設定しなければならないことで、ボクはパソコン内部に最初からあるフォントをコピーして仮想環境に入れました。

WindowsやMacの場合、WordCloudがどう動くのか分からないので、その辺は試行錯誤が必要かもしれませんが、Ubuntu18.04は/usr/share/fonts/にフォントがありますので、そこからフォントを選んで下さい。

ちなみにボクはNotoSansCJK-regular.cttを選びました。

そして、実行結果がコレです。

英語、コストコ、自転車関係といったワードが目立ちますね、典型的な雑記ブログという感じです。

まとめ

以上、Pythonでブログの検索ワードをマイニング&可視化する方法の紹介でした。

ブログ運営者は「こんなブログにしたい」と意識して記事を書いていると思いますが、実際にビュアーはどういった目的、ワードでブログに訪れているのかという確認は大事です。

その確認作業を簡単かつ見やすくするツールとして、今回のWordCloudを利用した方法はとても使い勝手が良いと思います。

個人に限らず、企業HPや通販サイトのクエリ調査やプレゼン資料など、幅広く応用が効くでしょう。