Moz - SEOとインバウンドマーケティングの実践情報

生成AIで見直すSEOコンテンツ戦略と、競合ベンチマークの方法6つ(後編)

オーディエンスのニーズを生成AIを活用して深く掘り下げ、影響力の高いコンテンツを見つける6つの方法を解説する。
この記事の内容はすべて筆者自身の見解であり(ありそうもないことだが、筆者が催眠状態にある場合を除く)、Mozの見解を反映しているとは限らない。

この記事は、後編の2回に分けてお届けしている。

SEOのコンテンツ戦略に生成AIサービス(LLM)を活用し、データに基づいたオーディエンスインサイトの発見と影響の大きいコンテンツを特定する6つの方法を紹介している。

この記事で紹介しているメソッドは次の6つだ:

前編では、「Redditでコミュニティのインサイトを見つける方法」や「Google Discoverのトレンドを活用する方法」などを解説した。

後編となる今回は、「コンテンツ監査とテーマのタグ付け」「コンテンツのギャップ分析」にAIを活用する方法について見ていこう。

方法5コンテンツ監査とテーマのタグ付けをする

コンテンツのギャップを埋める前に、サイト上にすでにあるものを理解する必要がある。AIコンテンツツールを使うと、Googleスプレッドシートでコンテンツ監査とテーマのタグ付けを自動化できる。

私が使っているやり方は次の通りだ:

プロセス1サイトをクロールする

テーマごとにコンテンツをグループ化/タグ付けする 手持ちのツール類を使ってサイトをクロールし、すべてのサイト内URLを収集する あるいは、サイトマップを入手する
Moz Site Crawlのインターフェースに、ブログと商品ページからフィルタリングされたURL抽出結果が表示されている。

まず、何らかのツールを使うか、サイトマップのエクスポート機能を使ってすべてのサイト内URLを抽出しよう(MozのSite Crawlが便利だ)。「Pooch & Mutt」の場合は、ブログと商品ページに重点を置くようにクロールをフィルタリングしたが、優先順位に応じて調整しても構わない。また、サイトマップを使ってプロセスを簡素化するのもいいだろう。

プロセス2コンテンツをテーマでタグ付けする

URLを取得したら、Googleスプレッドシートにインポートしよう。OpenAIのAPIを使ってGPTの式を適用すると、あらかじめ定義されているカテゴリに基づいて各URLにテーマが割り当てられる。

設定するには、Googleスプレッドシートで[拡張機能]>[Apps Script]に移動し、この動画ガイドに従ってスプレッドシートにGPTスクリプトを追加する。インストールすると、スプレッドシートでChatGPTを使ってプロンプトを追加できる。

私が使っている式の構造は、次のようなものだ:

  • "ここにプロンプトを追加" ―― ChatGPTで通常追加する内容を追加する
  • &CELL ―― セルを追加する。

私の場合は、この式をURLの文字列に適用した。

コンテンツをテーマに応じてタグ付けするための指示を式に追加しよう 私のテーマ: 犬の健康 犬の行動 犬種 季節性/イベント 犬用レシピ その他(必ず追加)
テーマで分類するGPTの式が実装されたGoogleスプレッドシートと構文の例。

GPTでは、URLごとに、あらかじめ定義された次のテーマでコンテンツが分類された:

  • 犬の健康
  • 犬用レシピ
  • 犬の行動
  • 犬種
  • 季節性/イベント
  • その他(主要なテーマ以外のすべて)

次の式を使ってプロンプトの精度を最適化した。


=GPT("Based on the string provided, assign it to one of these themes: 
'Dog Health', 
'Dog Recipes', 
'Dog Behavior',
'Dog Breed', 
'Seasonality/Events',
'OTHER', 
Use the examples as a guide but return only the theme name in a concise form, without any additional text. Examples: 
\nString: 'overweight-dogs' - Theme: 'Dog Health'
\nString: 'chihuahua' - Theme: 'Dog Breed'
\nString: 'how-to-help-a-hyper-nervous-badly-behaved-dog' Theme: 'Dog Behaviour'
\nString: 'how-can-i-encourage-my-fussy-dog-to-eat' - Theme: 'Dog Behaviour'
. Output only the theme name, without any prefix or quotes. Now, analyze this string: '" & A2)
【日本語訳】
=GPT("提示された文字列に基づいて、次のいずれかのテーマに割り当ててください:
'犬の健康',
'犬用レシピ',
'犬の行動',
'犬種',
'季節性/イベント',
'その他',
例を参考に、ただしテキストを追加せずにテーマ名のみを簡潔な形で返してください。例:
\nString: 'overweight-dogs(太りすぎの犬)' - テーマ:'犬の健康'
\nString: 'chihuahua(チワワ)' - テーマ:'犬種'
\nString: 'how-to-help-a-hyper-nervous-badly-behaved-dog(極度に神経質で問題行動のある犬の助け方)' テーマ:'犬の行動'
\nString: 'how-can-i-encourage-my-fussy-dog-to-eat(好き嫌いのある犬に餌を食べさせるにはどうすればいいか)' - テーマ:'犬の行動'
。テーマ名のみを出力し、接頭辞や引用符は不要です。それでは、この文字列を分析してください:'" & A2)

上記のプロンプト構造をコピーし、テーマと例のURLの文字列を置き換えれば、より正確に分類できる。

個人的には、「=SPLIT(A2, "/")」という式を使ってURLの文字列でタグ付けする方が好きだが、ページの内容をより適切に要約できるなら、「title要素」または「h1要素」の内容でタグ付けすることもできる。

URLの文字列にGPTの式を適用する あらかじめ定義されているテーマを使用した場合 あらかじめ定義されているテーマを使用しない場合
Googleスプレッドシートに、テーマごとに分類されたブログのURLと、対応するテーマのラベルが隣の列に表示されている。

URLごとに、対応するテーマが隣の列に表示された。上の画像は、「Pooch & Mutt」のブログのURLがテーマごとに分類されたことで、コンテンツのパターンが見分けやすくなったことを示している。

プロセス3データをクリーンアップする

AIで生成されたタグは完璧ではないため、手作業でのクリーンアップが不可欠だ。「Pooch & Mutt」の場合、GPTではコンテンツが誤って分類されることがあった。たとえば、一般的な犬の健康に関する記事が「犬の下痢」とタグ付けされた。

データのクリーニング(残念ながら、GPTは完璧ではない) Ctrl+Fでテーマを検索する: シート上のすべてのインスタンスを空白のボックスに置き換える UNIQUE (B2:B)関数でフィルタリングする 誤っているテーマごとにCTRL+Fで検索し、手作業で更新する
データのクリーンアッププロセスでは、Googleスプレッドシートでフィルターを適用し、誤って分類されたコンテンツ項目を検索し、修正する。

クリーンアップの方法は次のとおりだ:

  1. Googleスプレッドシートで[データ]>[フィルタを作成]を選択する。

  2. シート上のどこか別の列で、テーマが入力されている列を対象に、入力されている値の一覧を出す。UNIQUE関数を使うのが楽だろう。たとえばテーマがB列にあり1行目が見出し行の場合、シート上のどこか別の列で次のようにする:

    =UNIQUE(B2:B)

  3. 入力されているテーマの値の一覧におかしなものがあったら、フィルタを使ったりCTRL+Fキーでその値が入力されている場所を探したりして、手作業で更新する。

  4. 作業が終了したらUNIQUE関数で作った一覧は削除しておいていい。

プロセス4コンバージョンデータを重ね合わせる

コンテンツにタグを追加したら、URLごとにGoogleアナリティクスのコンバージョンデータを重ね合わせる。これで、次のような成果の多いテーマが明らかになる:

  • トラフィック
  • コンバージョン
  • 売上高
 テーマ別コンテンツの割合 Googleアナリティクスのコンバージョン/売上高のデータと重ね合わせる。
Googleアナリティクスのダッシュボードにコンテンツテーマのデータを重ね合わせると、トラフィックやコンバージョンが多いトピックがわかる。

Pooch & Muttでは、次のことがわかった。

  • 「犬の健康」に関するコンテンツは、エンゲージメント率とコンバージョン率が最も高かった。

  • 「季節性」に関するコンテンツは急増したが、コンバージョンは少なかった。

  • 「犬用レシピ」はトラフィックを集めたが、オンサイトでのエンゲージメント率は低かった。

専門的なアドバイス: 必ず「その他」カテゴリを含めよう。主要なテーマから外れたコンテンツの受け皿となり、出力結果を整理できる。

方法6コンテンツのギャップ分析にAIを使う

アンディ・クレストディナ氏がAIを使ったギャップ分析に関する記事を書いているので、ぜひチェックしてみてほしい。

※Web担編注 リンク先の記事は日本語未翻訳。生成AIなどで翻訳して確認してください

コンテンツを監査したら、次のステップは競合サイトと比較してコンテンツのギャップを明らかにすることだ。見逃していたテーマやトピックを発見するのに役立つ。

私が使っているやり方を紹介しよう:

プロセス1競合コンテンツをテーマ別にタグ付けする

自分のサイトで使ったのと同じテーマ別のタグ付けプロセスを、今度は競合サイトに対してくり返す。ここでは、「Pooch & Mutt」と直接競合する「tails.com」に対してこれを実施した。

競合分析によるコンテンツギャップ分析 同じテーマを使い、競合他社に対して同じコンテンツのテーマ別タグ付けプロセスを繰り返す
Googleスプレッドシートで競合のコンテンツ分析を行うと、テーマごとに分類されたURLが表示されて比較できる。

何らかのツールを使って競合サイトのURLを収集しよう(改めてだが、MozのSite Crawlが便利だ)。その後、GoogleスプレッドシートにURLをインポートし、自分のサイトに使ったのと同じGPTの式を適用する。

(再掲)

=GPT("Based on the string provided, assign it to one of these themes: 
'Dog Health', 
'Dog Recipes', 
'Dog Behavior',
'Dog Breed', 
'Seasonality/Events',
'OTHER', 
Use the examples as a guide but return only the theme name in a concise form, without any additional text. Examples: 
\nString: 'overweight-dogs' - Theme: 'Dog Health'
\nString: 'chihuahua' - Theme: 'Dog Breed'
\nString: 'how-to-help-a-hyper-nervous-badly-behaved-dog' Theme: 'Dog Behaviour'
\nString: 'how-can-i-encourage-my-fussy-dog-to-eat' - Theme: 'Dog Behaviour'
. Output only the theme name, without any prefix or quotes. Now, analyze this string: '" & A2)  

各競合ページは、「犬の健康」「犬用レシピ」「季節性/イベント」などのテーマに分類された。

プロセス2コンテンツをテーマごとにカウントする

競合他社のコンテンツにタグ付けしたら、Googleスプレッドシートで次の式を使って、テーマごとに記事の数をカウントしよう。

=COUNTIF(C:C, G4)

この式は記事の数(行の数)を出力するもので、次のことを前提としている(君のシートで列が違うならそれにあわせて調整してほしい):

  • C:Cは競合他社のテーマの列
  • G4はカウントしたい特定のテーマ(「犬の健康」など)が入力されているセル

これにより、競合他社ごとに各テーマのページ数をすばやくカウントでき、「Pooch & Mutt」よりアクティブなページが浮き彫りになった。

プロセス3 コンテンツのギャップを明らかにする

両方のデータセットを並べて比較することで、コンテンツのギャップを簡単に特定できた。たとえば、「tails.com」は犬の栄養や季節ごとの犬のケアに関するコンテンツが充実していたのに対し、「Pooch & Mutt」にはこれらの分野が不足していた。

自分のテーマを競合他社と比較する 2つのデータセットを1つのシートに追加し、競合他社のテーマごとに=COUNTIF関数を使用する 例
Pooch & Muttと競合他社のテーマ別コンテンツ分量を比較したコンテンツのギャップの視覚化。

より明確にするには、次を行おう:

  • テーマ別でフィルタリングし、記事数を並べて比較する
  • 自分より競合他社の方がコンテンツの多いセルをハイライトする

プロセス4フォローアップの質問をしてギャップを埋める

分析をさらに進めるため、私は両方のデータセットをChatGPTに入力した。使ったのは次のようなプロンプトだ:

これが私のコンテンツデータセットと競合他社のデータセットで、どちらもテーマ別にタグ付けしています。

競合他社の方がはるかにコンテンツの多いテーマを特定してください。

検索意図に基づいて、機会が大きなトピックとキーワードのクラスタを提案してください。

ChatGPTでは、優先すべきテーマのリストが生成された。さらには、

  • インフォメーション(情報収集)型
  • トランザクション(取引)型
  • ナビゲーション(案内)型

など、ユーザーの意図ごとにグループ化もされたため、優先順位を付けやすくなった。

コンテンツギャップ分析 自分のブランドと競合他社について、1つのテーマでコンテンツをフィルタリングする 自分のシートと競合他社のシートの両方をChatGPTに入力する 質問する!
ユーザーの意図(インフォメーション型、トランザクション型、ナビゲーション型)ごとにテーマがグループ化されたコンテンツギャップ分析結果が、ChatGPTのインターフェースで表示されている。

専門的なアドバイス: 次の3つの要素に基づいて、ギャップに優先順位を付けよう:

  • 検索ボリューム: 検索での関心がより高いテーマに重点を置く

  • オーディエンスの関連性: ユーザーペルソナに沿ったテーマを選ぶ

  • サイトのオーソリティ: 関連するトピックで自分のサイトが上位に表示されている場合は、周辺のテーマへの拡大がしやすくなる

結論: 生成AIを利用して、データをアクションに変えよう

生成AIで競合他社をベンチマークにすれば、コンテンツ戦略のギャップが見つかりやすくなる。既存のコンテンツを監査し、競合他社のページをテーマごとにタグ付けし、検索の需要と関連性に基づいてギャップに優先順位を付けよう。

オーディエンスの調査とギャップ分析が完了したら、コンテンツ戦略を立てる準備が整う。

用語集
API / Discover / Googleアナリティクス / SEO / URL / エンゲージメント / クロール / コンバージョン / コンバージョン率 / サイトマップ / タグ / ダッシュボード / ナビゲーション / ペルソナ / リンク / 検索意図
この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

ソーシャルマーケティング
企業が自社の利益中心にマーケティング活動を行うのではなく、社会全体とのかかわりを ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]