生成AIで見直すSEOコンテンツ戦略と、競合ベンチマークの方法6つ(後編)
この記事は、前後編の2回に分けてお届けしている。
SEOのコンテンツ戦略に生成AIサービス(LLM)を活用し、データに基づいたオーディエンスインサイトの発見と影響の大きいコンテンツを特定する6つの方法を紹介している。
この記事で紹介しているメソッドは次の6つだ:
- 自分と競合他社のウェブサイトを分析して、オーディエンスのインサイトを得る(前編)
- Redditでコミュニティのインサイトを見つける(前編)
- ニュース速報や話題のトピックを発見する(前編)
- Google Discoverのトレンドを追跡して、コンテンツの機会を明らかにする(前編)
- コンテンツ監査とテーマのタグ付けをする(この記事)
- コンテンツのギャップ分析にAIを使う(この記事)
前編では、「Redditでコミュニティのインサイトを見つける方法」や「Google Discoverのトレンドを活用する方法」などを解説した。
後編となる今回は、「コンテンツ監査とテーマのタグ付け」「コンテンツのギャップ分析」にAIを活用する方法について見ていこう。
方法5コンテンツ監査とテーマのタグ付けをする
コンテンツのギャップを埋める前に、サイト上にすでにあるものを理解する必要がある。AIコンテンツツールを使うと、Googleスプレッドシートでコンテンツ監査とテーマのタグ付けを自動化できる。
私が使っているやり方は次の通りだ:
プロセス1サイトをクロールする
まず、何らかのツールを使うか、サイトマップのエクスポート機能を使ってすべてのサイト内URLを抽出しよう(MozのSite Crawlが便利だ)。「Pooch & Mutt」の場合は、ブログと商品ページに重点を置くようにクロールをフィルタリングしたが、優先順位に応じて調整しても構わない。また、サイトマップを使ってプロセスを簡素化するのもいいだろう。
プロセス2コンテンツをテーマでタグ付けする
URLを取得したら、Googleスプレッドシートにインポートしよう。OpenAIのAPIを使ってGPTの式を適用すると、あらかじめ定義されているカテゴリに基づいて各URLにテーマが割り当てられる。
設定するには、Googleスプレッドシートで[拡張機能]>[Apps Script]に移動し、この動画ガイドに従ってスプレッドシートにGPTスクリプトを追加する。インストールすると、スプレッドシートでChatGPTを使ってプロンプトを追加できる。
私が使っている式の構造は、次のようなものだ:
"ここにプロンプトを追加"
―― ChatGPTで通常追加する内容を追加する&CELL
―― セルを追加する。
私の場合は、この式をURLの文字列に適用した。
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ごとに、対応するテーマが隣の列に表示された。上の画像は、「Pooch & Mutt」のブログのURLがテーマごとに分類されたことで、コンテンツのパターンが見分けやすくなったことを示している。
プロセス3データをクリーンアップする
AIで生成されたタグは完璧ではないため、手作業でのクリーンアップが不可欠だ。「Pooch & Mutt」の場合、GPTではコンテンツが誤って分類されることがあった。たとえば、一般的な犬の健康に関する記事が「犬の下痢」とタグ付けされた。
クリーンアップの方法は次のとおりだ:
Googleスプレッドシートで[データ]>[フィルタを作成]を選択する。
シート上のどこか別の列で、テーマが入力されている列を対象に、入力されている値の一覧を出す。
UNIQUE
関数を使うのが楽だろう。たとえばテーマがB列にあり1行目が見出し行の場合、シート上のどこか別の列で次のようにする:=UNIQUE(B2:B)
入力されているテーマの値の一覧におかしなものがあったら、フィルタを使ったりCTRL+Fキーでその値が入力されている場所を探したりして、手作業で更新する。
作業が終了したら
UNIQUE関数
で作った一覧は削除しておいていい。
プロセス4コンバージョンデータを重ね合わせる
コンテンツにタグを追加したら、URLごとにGoogleアナリティクスのコンバージョンデータを重ね合わせる。これで、次のような成果の多いテーマが明らかになる:
- トラフィック
- コンバージョン
- 売上高
Pooch & Muttでは、次のことがわかった。
「犬の健康」に関するコンテンツは、エンゲージメント率とコンバージョン率が最も高かった。
「季節性」に関するコンテンツは急増したが、コンバージョンは少なかった。
「犬用レシピ」はトラフィックを集めたが、オンサイトでのエンゲージメント率は低かった。
専門的なアドバイス: 必ず「その他」カテゴリを含めよう。主要なテーマから外れたコンテンツの受け皿となり、出力結果を整理できる。
方法6コンテンツのギャップ分析にAIを使う
アンディ・クレストディナ氏がAIを使ったギャップ分析に関する記事を書いているので、ぜひチェックしてみてほしい。
コンテンツを監査したら、次のステップは競合サイトと比較してコンテンツのギャップを明らかにすることだ。見逃していたテーマやトピックを発見するのに役立つ。
私が使っているやり方を紹介しよう:
プロセス1競合コンテンツをテーマ別にタグ付けする
自分のサイトで使ったのと同じテーマ別のタグ付けプロセスを、今度は競合サイトに対してくり返す。ここでは、「Pooch & Mutt」と直接競合する「tails.com」に対してこれを実施した。
何らかのツールを使って競合サイトの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」にはこれらの分野が不足していた。
より明確にするには、次を行おう:
- テーマ別でフィルタリングし、記事数を並べて比較する
- 自分より競合他社の方がコンテンツの多いセルをハイライトする
プロセス4フォローアップの質問をしてギャップを埋める
分析をさらに進めるため、私は両方のデータセットをChatGPTに入力した。使ったのは次のようなプロンプトだ:
これが私のコンテンツデータセットと競合他社のデータセットで、どちらもテーマ別にタグ付けしています。
競合他社の方がはるかにコンテンツの多いテーマを特定してください。
検索意図に基づいて、機会が大きなトピックとキーワードのクラスタを提案してください。
ChatGPTでは、優先すべきテーマのリストが生成された。さらには、
- インフォメーション(情報収集)型
- トランザクション(取引)型
- ナビゲーション(案内)型
など、ユーザーの意図ごとにグループ化もされたため、優先順位を付けやすくなった。
専門的なアドバイス: 次の3つの要素に基づいて、ギャップに優先順位を付けよう:
検索ボリューム: 検索での関心がより高いテーマに重点を置く
オーディエンスの関連性: ユーザーペルソナに沿ったテーマを選ぶ
サイトのオーソリティ: 関連するトピックで自分のサイトが上位に表示されている場合は、周辺のテーマへの拡大がしやすくなる
結論: 生成AIを利用して、データをアクションに変えよう
生成AIで競合他社をベンチマークにすれば、コンテンツ戦略のギャップが見つかりやすくなる。既存のコンテンツを監査し、競合他社のページをテーマごとにタグ付けし、検索の需要と関連性に基づいてギャップに優先順位を付けよう。
オーディエンスの調査とギャップ分析が完了したら、コンテンツ戦略を立てる準備が整う。
ソーシャルもやってます!