【非エンジニア向け】PythonとExcelをSEO施策に活用するための分析例をわかりやすく解説
SEO施策においては、データを確認したうえで施策の内容や方向性を決めることは非常に重要です。しかし、データで何かを判断できるようになるには、いくつかのステップがあると思います。
それは「データを集める」ということです。
本記事を読んでいる方の中には、その「データ集め」をパワープレイ(手作業で集める)で行っている方も多いと思います。結論から述べると、今話題のプログラミング言語である「Python(パイソン)」と「Excel(エクセル)」を活用すれば、データ集めが自動化でき、分析まで可能です。
この流れができれば、あなたの隣にいるマーケターよりもワンランク上の分析業務ができること間違いありません。今回はSEO施策に従事している人向けに、PythonとExcelを組み合わせたSEO施策用の分析例をわかりやすく紹介していきます。
Pythonってよく聞くけど、SEO施策にどう使えるの?
Pythonは自然言語処理が得意なプログラミング言語の一つです。
自然言語処理とは、簡単にいうと言葉をコンピュータで活用する技術のことです。昨今はAIブームにより「Python = AIの活用」と思われる方も多いと思いますが、AIに使われるようになったのも自然言語処理が得意だったことが理由の一つです。
Pythonの他にも、プログラミング言語は数多くありますが、実はそれぞれに得手不得手があります。たとえば「C言語」は処理スピードがとても速いという特長があり、そのため、ゲームなどの反応速度を求められるものに、よく使われています。
Pythonの使い方でおすすめは「情報収集」と「形態素解析」
ここからは、Pythonを実際にSEO施策に活用する方法を紹介していきます。SEO施策に活用する方法は2つあります。
- 情報収集(スクレイピング)
- 形態素解析
スクレイピングとは?
「スクレイピング」とは、Webページから情報を自動で集めてくることです。たとえば、いつもチェックしているサイトが、更新されたかどうか定期的にチェックしたり、特定のウェブサイトに投稿された全記事のタイトルや内容をすべてCSVに吐き出したりすることもできます。
形態素解析とは?
「形態素解析」は文章を単語ごとに分けることを指します。当然ですが、SEOで狙ったキーワードで順位を上げたいのであれば、コンテンツの文章内にキーワードと一緒に検索される共起語を含めるというのが鉄則です。
ですが記事を執筆していく過程で、「どのキーワードをどれくらい使ったか」ということを常に意識するのは難しいと思います。そんなとき、形態素解析を使えば文章内に、どんな単語が、どれくらいの数、含まれているかがわかります。
Pythonをブラウザで動かすには「Colaboratory」を使う
今回はこの2つを「Python」で活用する方法を紹介していきます。非エンジニア向けの内容になっていますので、安心して読み進めてください。1点補足させていただくと、Pythonを使うためには、本来開発環境を自分のパソコンに設定しないといけません。
しかし、Googleが提供しているColaboratory(以下:Colabコラボ)というツールを使えばブラウザ上でPythonを動かすことができるため、煩わしい初期設定は必要なくなります。今回の記事用に作成したプログラムは、筆者のColabで公開をしています。
公開されているColabをコピーして自身の環境ですぐに動かせますので、プログラミングに慣れ親しんでいない人も、ぜひやってみてください。
Python活用例 ① 「SEO施策」の最新トレンドを掴んでみよう
それではPythonを使って、トレンドを掴む「情報収集」の方法から紹介します。
トレンドを掴む方法の一つとしては、「信頼度の高い人の言動」や「ウェブサイトの動向をウォッチする」ことが挙げられます。今回は例として、「Web担当者Forum」のSEOカテゴリに投稿された記事のタイトルをPythonで収集します。
収集したタイトルの一覧をPythonで形態素解析にかけ、最後はExcelのピボットテーブルで集計を行います。
Web担のSEOカテゴリにある記事のタイトルを自動で収集してみよう
Web担当者ForumのSEOカテゴリページに存在するページのタイトルを収集します。手作業で行おうと思うと、なかなか骨の折れる作業です。細かいプログラムの説明は置いておいて、まずは実際にプログラムを動かした結果を見ていただきましょう。
ここでは「トレンド=Web担でたくさん題材にされているもの」と定義づけているので、上位の単語は「トレンド」に関連するキーワードということです。当然ですが、キーワード一覧のなかには、セミナーの案内などトレンドではない情報も含まれています。
たとえば「コンテンツ」「Google」「サイト」などのキーワードが上位にきています。「コンテンツ」が上位に来ているのは納得の結果ではないでしょうか。2011年のパンダアップデート以降、ページの質を向上させるための「コンテンツSEO」はマストで行わなければいけないSEO施策の一つです。
言ってしまえば、「コンテンツSEO」は約10年間に亘りずっとトレンド上位に入り続けているもののため、「最近注目され始めているトレンド」としては除外できます。「Google」「サイト」に関しても同様の理由でトレンドとは言い難いので除外します。結果としては、現在(2021年4月時点)SEO界隈で最もホットな話題は「ローカルSEO」ではないかと分析しました。また、「マイビジネス」というキーワードも多く散見されました。
実際の記事での使用例
「Googleマイビジネス」は年々検索ボリュームを上げてきていました。下図は、「Googleマイビジネス」と「ローカルSEO」の過去5年間の検索ボリュームの推移をGoogle トレンドで表示したグラフです。
企業や店舗がGoogleを使って集客を進めていきたいというニーズが増えていることが伺えます。今回の分析はあながち間違った結果にはなっていないのではないかと思います。
収集した記事をCSVに落として、Excelで分析してみよう
続いて、Pythonで集めてきたデータをCSVでダウンロードして、Excelでさらに分析していきましょう。サンプルプログラムを動かすと、[result.csv]というファイルがダウンロードできるようになります。
ダウンロードすると、今回スクレイピングしてきた情報から「日付、記事タイトル、著者、KWD、出現回数」の情報が含まれています。
これをExcelのピボットテーブル機能を使って著者別で分析していきます。
ピボットテーブルであれば、自分が注目している著者だけに絞って分析をすることもできますし、年や月などの時期を絞って容易に分析できます。
このようにExcelだけでは難しい「情報収集」、「形態素解析」をPythonにやらせて、その結果をCSVに吐き出し、集計はExcelのピボットテーブルで行うことで他の人よりも一歩進んだ分析業務ができるようになります。
もちろんPythonだけでデータの整形や分析まで実施できますが、プログラムは長くなりますし、難易度も上がります。いきなりPythonだけで完結するのではなく、集めてきたデータをCSV形式でダウンロードしてからExcelで分析するほうが、最初のうちは直観的でわかりやすいと思います。
とはいえ、Excelを使わずにPythonだけで完結できる分析を知っておきたい! と思われる方もいると思います。そのため本記事ではもう一つ、Pythonだけを使った記事の分析方法を紹介します。
Python活用例 ② 記事の内容をPythonだけで分析してみよう
ここからは記事の本文をスクレイピングして、形態素解析を行い、単語の出現頻度や組み合わせを分析してみようと思います。すべてをPythonで行うため、プログラムは長くなっていますが、いきなり全部を理解する必要はもちろんありません。
「あ~、Pythonを使えばこんなこともできるのか」ということを感じていただければと思います。
「形態素解析」で記事の中で使われている単語の使用回数を集計してみる
最初の分析では、スクレイピングしてきた見出しの一覧に対して形態素解析を行いました。ここでは「記事の本文」をスクレイピングしてきて、「形態素解析」を行って、記事の特徴を分析してみましょう。
プログラムはこちら
単語の出現回数や組み合わせの出現回数を比較してみよう
今回、分析の対象としたURLは「2021年のSEO施策」をテーマにした記事です。2つのページに使われている単語を比較してみましょう。
- 2021年のSEOに役立つこと間違いなし! 13個のSEOアドバイス【SEO情報まとめ】: https://webtan.impress.co.jp/e/2021/01/08/38678
- 2021年 SEO最前線、ユーザーのための施策こそが成果につながる: https://webtan.impress.co.jp/e/2021/04/16/39536
リンク先にグラフの全容は載せているので、お時間ありましたら見てみてください。青のグラフが①のURL、緑が②のURLをスクレイピングして形態素解析を行った結果です。使用された単語の数が横棒グラフで描画されています。
結果を見ていくと、①のURLでは「コアウェブバイタル」、「グーグルマイビジネス」「エクスペリエンス」といった単語が使われています。
一方、②のURLでは、「ユーザー」「コンテンツ」「コミュニケーション」「ビルディング」「オーディエンス」という単語が多く使われていることがわかりました。
①のURLでは、コンテンツSEO、テクニカルSEOを包括的に取り扱っている内容だとわかります。一方、②のURLは、主にユーザーニーズを取りまとめたものなので、キーワードの使用傾向が一致しているというわけではありません。ただ、これだけ見てもいまいちピンとこないかもしれませんので、さらに分析を続けます。
次に「セットで使われている単語」の分析結果を見ると、もう少しページに書かれている内容について理解が深まります。
「セットで使われている単語」とは専門用語で「N-gram(エヌグラム)」と呼ばれており、簡単にいうと「隣接している単語の組み合わせ」を集計したものです。
単語だけで集計すると、どういう意図で使われているのかという「文脈」がわかりづらくなるのですが、N-gramの集計を行うことで、単語の使われ方の意図がより把握できます。
セットで使われている単語の組み合わせを分析してみる
どのような単語が使われているのかを把握できました。続いて、単語の組み合わせの回数を分析してみようと思います。組み合わせ、と表現していますが要するにセットで使われている単語は何かということです。
「2つずつの組み合わせ」と「3つずつの組み合わせ」をExcelで集計するのはかなり面倒ですが、Pythonであれば割と簡単に集計ができます。それでは、「単語の組み合わせ」の分析結果も見ていきましょう。
2つの単語の組み合わせ(N-gram=2)を見ると、記事の特徴がよりつかみやすくなっているのではないでしょうか。
①のページでは「ページエクスペリエンス」「コアウェブバイタル ページ」「構造化」「顧客反応」「クロールバジェット」というキーワードが使われています。対して②のページではツール名や筆者情報が多く集計されてしまって、コンテンツの内容から引用される数は少なかったです。
このように、Pythonだけで「情報収集~集計~グラフ化」までを行うことができます。今回取り上げた2つのページはテーマこそ似ていましたが、比較には適さなかったかもしれません。
本来の使い方としては、あるキーワードの検索結果の1位と2位のページを分析にかければ、それぞれのページでどんな単語が使われているかが分析でき、複数のキーワードで調査をすることで傾向が見えて、次への施策を考えられるようになります。
ちなみにサンプルコードのURLの部分を変更すれば、他のページで同様の分析が可能ですので、ぜひ使ってみてください。
必然的に上位のページで頻出回数が多い単語ほど、「ユーザーの関心が高い単語」となります。狙ったキーワードの順位が悪い場合は、ユーザーニーズを上手く捉えられていないということになりますが、このサンプルコードを使って「上位ページはどのような単語が、どのように使われているのかを分析し、自分のページ何が足りないのかを考えるきっかけ」になるのではないでしょうか。
まとめ
いかがでしたでしょうか。今回は「PythonとExcelを使ってWeb担のエントリーからSEOトレンドをつかむ」と、「Pythonのみで本文中に使用されている単語の組み合わせを分析する」の2点を紹介しました。
後半はPythonのみを使用しましたが、ExcelのピボットテーブルとPythonを組み合わせて分析できるのです。「脱Excel」という言葉があるように、Excelを使わないほうがいいと思われている方もいるかもしれませんが、もちろんExcelにもメリットはあります。
特にピボットテーブルは分析業務において非常に強力なツールです。逆にPythonはピボットテーブルのような直観的な操作はできません。プログラムを書かなければ使うことができないというデメリットがありますが、「情報収集」や「形態素解析」といったExcelでは行えないことが可能になるというメリットがあります。
PythonとExcel、2つを使うことで他のマーケターのワンランク上を進むことができるようになるでしょう。この記事を足がかりにして、Pythonを使ってみよう、勉強してみようと思ってもらえれば幸いです。
ソーシャルもやってます!