クエリページ生成:検索データからSEO最適化されたページへ
本記事では、検索データから数千ものクエリページを自動生成する方法について説明します。
問題点:すべての検索クエリに対するページ作成
ユーザーは様々な方法で製品を検索します:
-
「オフィス用ミニPC」
-
「16GB RAM 小型コンピューター」
-
「Windows 11 コンパクトデスクトップ」
各クエリには、専用のページが必要です:
-
一致する製品:クエリの意図に基づいてフィルタリング
-
SEO最適化されたコンテンツ(タイトル、説明、メタタグ)
-
関連検索:ユーザーの探索を支援
-
多言語サポート:グローバルユーザー向け
これらのページを手動で作成することは、規模(65,000以上のクエリ)的に不可能です。
解決策:自動化されたクエリページ生成
SEOパイプラインはクエリページを自動生成します:
- 類似クエリのクラスタリング(例:「ミニPC」+「小型コンピューター」)
- クエリテキストからのフィルター抽出(例:「16GB RAM」→ RAMフィルター)
- 意味的類似性を用いた製品マッチング
- AI(DeepSeek)によるコンテンツ生成
/q/<slug>へのページ作成
クエリページモデル
クエリページはDynamoDBにQueryPageV3モデルを使用して保存されます。各ページには以下が含まれます:
-
スラッグ:URLフレンドリーな識別子(プライマリキー)
-
フィルター:製品マッチングのための基本フィルター
-
SKU:上位100件の一致するSKUのキャッシュリスト
-
タイトル:SEO用のページタイトル
-
説明:多言語コンテンツ(タグライン+本文)
-
メタデータ:最終更新タイムスタンプ、合計スコア
生成プロセス
クエリページはSEOパイプラインによって生成されます:
- クエリのクラスタリング:ベクトル類似性を用いて類似クエリをグループ化
- 製品マッチング:クエリクラスターに一致する製品を検索
- スラッグ生成:URLフレンドリーな識別子を作成
- SKUのキャッシュ:上位100件の一致するSKUを保存
- コンテンツ生成:AI生成による説明
コンテンツ生成
クエリページのコンテンツはAIを使用して生成されます:
-
DeepSeek:製品説明、クエリページコンテンツ
-
システムプロンプト:キャッシュ効率化のため
-
Temperature:バランスの取れた創造性のために0.7
AIは以下を生成します:
-
タグライン:短く魅力的な見出し
-
本文:詳細な製品情報
多言語サポート
クエリページは複数の言語をサポートします:
-
英語(ソース)
-
スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語
-
ロシア語、ヒンディー語、ベンガル語、グジャラート語、カンナダ語
-
マラヤーラム語、マラーティー語、パンジャブ語、タミル語、テルグ語
-
アラビア語、中国語、日本語、韓国語
フィルター抽出
フィルターはフレーズマッチングを使用して検索クエリから抽出されます:
- JSONからフレーズとフィルターのマッピングを読み込む
- 正規表現の単語境界を使用してクエリ内のフレーズをマッチング
- フィルターのキーと値のペアを抽出
- クエリページの基本フィルターとして保存
製品マッチング
製品は以下の方法でクエリページにマッチングされます:
- ベクトル類似性:クエリ埋め込み vs 製品埋め込み
- フィルターマッチング:抽出されたフィルター vs 製品属性
- 製品名マッチング:製品名に対するファジーマッチング
キャッシュ戦略
クエリページは複数のキャッシュレイヤーを使用します:
-
DynamoDB:クエリページデータの主要ストレージ
-
Valkey:高速な製品読み込みのためのキャッシュされたSKU
-
CloudFront:静的コンテンツのためのCDNキャッシング
リクエストフロー
flowchart TD
A[クライアントリクエスト] --> B{スラッグは存在する?}
B -->|はい| C[QueryPageV3を読み込む]
B -->|いいえ| D[製品を検索]
C --> E[URLフィルターを解析]
E --> F[基本フィルターとマージ]
F --> G[キャッシュされたSKUを取得]
G --> H[製品を読み込む]
H --> I[ページをレンダリング]
D --> Iまとめ
クエリページ生成は以下を提供します:
-
動的ページ:検索データから自動生成
-
AIコンテンツ:自動化されたコンテンツ生成
-
多言語:15以上の言語をサポート
-
高速読み込み:複数のキャッシュレイヤー
-
スマートフィルタリング:フレーズベースのフィルター抽出