seo-ecommerce について
ECのSEO担当者向けに、商品ページの分析とマーケットプレイス調査を行うスキルです。ページ内要素とProductスキーマは単独で確認でき、DataForSEOを使うとGoogle ShoppingやAmazonの価格・競合情報を分析できます。
主な機能
- 01商品ページのSEO要素分析
- 02Productスキーマの検証と拡充
- 03Google Shoppingの競合・価格調査
- 04Google ShoppingとAmazonの比較
- 05オーガニック検索とShoppingのキーワード差分検出
活用シーン
- 01商品タイトル・画像・説明文の確認
- 02商品構造化データの項目確認
- 03商品価格と販売者分布の調査
- 04オーガニック検索とShoppingの可視性比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ agricidaniel/ codex-seo --skill seo-ecommerceインストール後、Claude Code で/seo-ecommerceを入力して読み込まれたか確認します。
同梱ファイルreferences/marketplace-endpoints.md
詳細
EコマースSEO分析
共有データキャッシュ
ステップ 0 -- 共有データキャッシュを確認します:
情報を収集する前に、関連するSEOスキルから再利用できるコンテキストがないか、.seo-cache/ を確認してください。
スキーマと依存関係マップについては、../seo/references/shared-data-cache.md を参照してください。
次のキャッシュファイルがある場合は確認してください:
-
.seo-cache/site-meta.json:ドメイン、ビジネスタイプ、業界、クロールのコンテキスト -
.seo-cache/audit-scores.json:以前のフル監査での優先事項 -
.seo-cache/pages/{url-slug}/page-analysis.json:URLが指定されている場合のページ単位のコンテキスト -
見つかった場合:明らかに有効なフィールドを解析して使用します(「[日付]の[X]のキャッシュを使用」と記録します)
-
見つからない場合、破損している場合、または関連性がない場合:新たな証拠を収集します
-
ユーザーが「refresh」または「re-run」と指示した場合:キャッシュの読み取りを無視し、書き込み時に上書きします
包括的な商品ページ最適化、マーケットプレイスのインテリジェンス、競合価格分析を行います。単独(オンページ+スキーマ)でも、DataForSEO Merchant API と連携してGoogleショッピングやAmazonのライブデータを利用する場合でも機能します。
コマンド
| コマンド | 用途 | DataForSEO? |
|---|---|---|
/seo ecommerce <url> | 商品ページまたはストアのEコマースSEOを全面的に分析します | 任意 |
/seo ecommerce products <keyword> | Googleショッピングの競合分析 | 必須 |
/seo ecommerce gaps <domain> | キーワードギャップ:オーガニック検索とショッピングでの可視性 | 必須 |
/seo ecommerce schema <url> | 商品スキーマの検証と拡張 | 不要 |
1. 商品ページ分析(DataForSEOは不要)
任意の商品ページを取得して解析し、オンページSEOの品質を評価します。
ワークフロー
1. python scripts/fetch_page.py <url> → raw HTML
2. python scripts/parse_html.py --url <url> → SEO elements
3. Analyze product-specific signals (below)
商品SEOチェックリスト
タイトルタグ
- 主要な商品キーワードを含む
- ブランド名を含む
- 60文字未満(SERPで省略されない)
- 形式:
[Product Name] - [Key Feature] | [Brand]
メタディスクリプション
- 商品キーワードとメリットを含む
- 価格または「$XXから」を含む(リッチスニペットへの関心を高めます)
- 行動喚起がある(今すぐ購入、購入、送料無料)
- 155文字未満
見出し構成
- 主要な商品名と一致するH1が1つだけある
- 特徴、仕様、レビュー、関連商品にH2を使用している
- 商品バリエーション間でH1タグが重複していない
商品画像
- 代替テキストに商品名と識別できる特徴を含む
- ファイル名が説明的である(
IMG_001.jpgのような名前ではない) - WebP形式で配信されている(JPEGフォールバックあり)
- 商品ごとに画像が3枚以上ある(メイン、詳細、ライフスタイル)
- Googleショッピングの掲載要件を満たす画像サイズ(800px以上)
- 遅延読み込みはスクロールせずに見えない画像のみに適用されている
内部リンク
- パンくずリスト:ホーム > カテゴリ > サブカテゴリ > 商品
- 関連商品セクション(クロスセル/アップセル)
- キーワードを豊富に含むアンカーテキストでカテゴリページに戻るリンクがある
- レビューセクションから、別ページの場合はレビューの全ページにリンクしている
コンテンツ品質
- 商品説明が独自の内容である(メーカーの説明文をそのまま転載していない)
- 商品説明本文が200語以上ある
- 説明文だけでなく仕様表がある
- ページ上にユーザーレビューがある(UGCシグナル)
スコアリング
| カテゴリ | 配点 | 基準 |
|---|---|---|
| スキーマの完全性 | 25% | Productの必須フィールドと推奨フィールド |
| タイトルとメタ | 15% | キーワードの配置、長さ、形式 |
| 画像最適化 | 20% | 代替テキスト、形式、サイズ、枚数 |
| コンテンツ品質 | 20% | 独自の商品説明、仕様、レビュー |
| 内部リンク | 10% | パンくずリスト、関連商品、カテゴリ |
| 技術面 | 10% | ページ速度、モバイル表示、canonical |
2. Googleショッピングのインテリジェンス(DataForSEO Merchant API)
Googleショッピングの検索結果に基づく、リアルタイムの競合分析です。
コストガードレール(必須)
Merchant APIを呼び出す前に、毎回必ず実行してください:
python scripts/dataforseo_costs.py check merchant_google_products_search
"status": "approved"-- 続行します"status": "needs_approval"-- コストを提示し、ユーザーに確認を求めます"status": "blocked"-- 停止し、ユーザーに知らせます
各呼び出しの後:
python scripts/dataforseo_costs.py log merchant_google_products_search <cost>
ワークフロー
# Product search: who sells what at what price
python scripts/dataforseo_merchant.py search "<keyword>" --marketplace google
# Seller analysis: merchant ratings and dominance
python scripts/dataforseo_merchant.py sellers "<keyword>"
# Normalize results for analysis
python scripts/dataforseo_normalize.py results.json --module merchant
分析結果
価格インテリジェンス
- 価格分布:最小、最大、中央値、P25、P75
- 価格の外れ値(中央値から標準偏差の 2 倍を超えるもの)
- 価格と評価の相関
- 通貨を USD(またはユーザー指定の通貨)に正規化
販売者の状況
- 出品数上位 10 社
- 販売者評価の分布
- 送料無料の割合
- 新規販売者と既存販売者
商品出品の品質
- 上位出品のタイトルにおけるキーワードパターン
- 平均評価とレビュー数のベンチマーク
- 出品ごとの画像数
- 在庫状況の分布
API パラメーターの詳細については、references/marketplace-endpoints.md を読み込んでください。
3. Amazon マーケットプレイス(DataForSEO)
Google Shopping と Amazon を比較する、マーケットプレイス横断型のインテリジェンスです。
コストガードレール(必須)
python scripts/dataforseo_costs.py check merchant_amazon_products_search
Amazon のエンドポイントは warn_endpoints セットに含まれているため、必ずユーザーの承認が必要です。
ワークフロー
# Amazon product search
python scripts/dataforseo_merchant.py search "<keyword>" --marketplace amazon
# Cross-marketplace comparison
python scripts/dataforseo_merchant.py compare "<keyword>"
マーケットプレイス横断レポート
| 指標 | Google Shopping | Amazon |
|---|---|---|
| 平均価格 | $ | $ |
| 評価の中央値 | X.X | X.X |
| 平均レビュー数 | N | N |
| 上位販売者のシェア | % | % |
| 送料無料の割合 | % | % |
4. マーケットプレイスのキーワードギャップ
オーガニック検索と Shopping の可視性の不一致を特定します。
ワークフロー
- seo-dataforseo を使用してオーガニック検索順位を取得します:
ドメインの
dataforseo_labs_google_ranked_keywords - Merchant API を使用して Google Shopping での掲載状況を取得します:
上位オーガニックキーワードの
merchant_google_products_search - 結果を相互参照します
ギャップの種類
| ギャップの種類 | 意味 | 対応 |
|---|---|---|
| オーガニックのみ | オーガニック検索で上位表示されるが、Shopping 広告がない | Google Merchant Center フィードを作成し、これらのキーワードに入札します |
| Shopping のみ | Shopping での可視性はあるが、オーガニック検索での可視性が低い、またはない | これらのキーワードに対応するコンテンツ(購入ガイド、比較ページ)を作成します |
| 両方に掲載 | 両方のチャネルで表示される | 最適化します:価格の一貫性を確保し、スキーマを強化します |
| どちらにも掲載なし | どちらにも表示されない | 検索ボリュームが大きくない限り、優先度は低くします |
出力形式
## Keyword Gap Analysis: example.com
### Opportunities: Organic → Shopping (12 keywords)
| Keyword | Organic Pos | Volume | CPC | Recommended Action |
|---------|------------|--------|-----|-------------------|
### Opportunities: Shopping → Organic (8 keywords)
| Keyword | Shopping Rank | Volume | CPC | Content Type Needed |
|---------|-------------|--------|-----|-------------------|
5. 商品スキーマの強化
Google の最新要件に従って、Product スキーマを検証し、生成します。
必須プロパティ(Google Merchant)
{
"@context": "https://schema.org",
"@type": "Product",
"name": "",
"image": [""],
"description": "",
"brand": { "@type": "Brand", "name": "" },
"offers": {
"@type": "Offer",
"url": "",
"priceCurrency": "USD",
"price": "0.00",
"availability": "https://schema.org/InStock",
"seller": { "@type": "Organization", "name": "" }
}
}
推奨プロパティ(リッチリザルトを強化)
sku-- 商品識別子gtin13/gtin14/mpn-- グローバル取引商品番号aggregateRating-- 星評価とレビュー数review-- 個別のレビュー(最低 1 件)color、material、size-- バリエーション属性shippingDetails-- 送料と配送時間を含む ShippingDetailshasMerchantReturnPolicy-- 種類と日数を含む MerchantReturnPolicy
検証ルール
priceは数値文字列にする必要があります。「$29.99」のように通貨記号を含めてはいけませんavailabilityには Schema.org の完全な URL 列挙値を使用する必要がありますimageは高解像度の画像 URL を 1 件以上含む配列にする必要がありますpriceCurrencyは ISO 4217(USD、EUR、GBP)に準拠する必要がありますbrand.nameは空欄または「N/A」にしてはいけませんpriceValidUntilの日付は ISO 8601 形式にする必要がありますaggregateRatingがある場合、ratingValueとreviewCountが必須です
スキーマのスコア
| 完全性 | スコア |
|---|---|
| すべての必須フィールド | 50/100 |
| + aggregateRating | 65/100 |
| + sku/gtin/mpn | 75/100 |
| + shippingDetails | 85/100 |
| + merchantReturnPolicy | 90/100 |
| + レビュー(3 件以上) | 100/100 |
スキル間の連携
| スキル | 連携ポイント |
|---|---|
| seo-schema | Product スキーマの生成を委任し、検証ロジックを再利用します |
| seo-images | 商品画像の監査(代替テキスト、形式、寸法) |
| seo-content | 商品説明の E-E-A-T と独自性を分析します |
| seo-dataforseo | ギャップ分析用にオーガニックキーワードの検索順位を取得します |
| seo-technical | 商品ページの Core Web Vitals(ヒーロー画像の LCP) |
| seo-google | GSC を使用して Google Merchant Center フィードを検証します |
エラー処理
| エラー | 原因 | 対応 |
|---|---|---|
| Product スキーマが見つかりません | ページに JSON-LD がありません | ページのコンテンツを分析し、推奨スキーマを生成します |
| DataForSEO の認証情報がありません | 環境変数が設定されていません | マーケットプレイスのデータを使わずに分析を実行し、制限事項を記載します |
| コストチェックでブロックされました | 1 日の予算を超過しています | ユーザーに通知し、無料データのみでの分析を提案します |
| Shopping の検索結果が空です | キーワードに該当する商品がありません | より広いキーワードを提案し、ロケーション設定を確認します |
| Amazon API がタイムアウトしました | ネットワークまたはレート制限の問題です | バックオフして再試行し、Google のみを使用する方法に切り替えます |
| 無効な URL です | 入力形式に誤りがあります | google_auth.validate_url() で検証し、エラーを表示します |
| 商品ページではありません | URL がカテゴリページまたはホームページです | ページの種類を検出し、代わりに /seo ecommerce schema を提案します |
出力テンプレート
## E-commerce SEO Report: [URL or Keyword]
### Overall Score: XX/100
### Product Page SEO
- Schema Completeness: XX/100
- Title & Meta: XX/100
- Image Optimization: XX/100
- Content Quality: XX/100
- Internal Linking: XX/100
### Marketplace Intelligence (if DataForSEO available)
- Google Shopping Listings: N products found
- Price Range: $XX - $XX (median: $XX)
- Top Seller: [name] (XX% market share)
- Amazon Comparison: [available/not checked]
### Top Recommendations
1. [Critical] ...
2. [High] ...
3. [Medium] ...
Generate a PDF report? Use `/seo google report`
共有データキャッシュへの書き込み
すべての作業が完了し、ワークフローで長期的に有用な情報が得られた場合は、簡潔な JSON の概要を .seo-cache/ に書き込みます。
../seo/references/shared-data-cache.md のスキーマと命名規則を使用し、少なくとも cache_type、analyzed_at、ソース URL/ドメイン、主な調査結果、問題点、推奨事項、ツールの制限事項を含めます。.gitignore に .seo-cache/ がない場合は追加します。