mcpField
P
product-reviews-ratings

product-reviews-ratings

github.com/finsilabsマーケティング・グロース6093 回インストール6 日前に更新
リポジトリ

product-reviews-ratings について

商品レビューシステムの選定と設定を扱う、EC 運営者向けスキルです。収集、モデレーション、表示、構造化データについて、Shopify、WooCommerce、BigCommerce、独自ストア別に説明します。

主な機能

  1. 01アプリまたは独自レビューシステムの選定
  2. 02購入後レビュー依頼の設定
  3. 03レビュー表示と評価マークアップの設定
  4. 04レビューの審査と購入確認
  5. 05レビュー関連指標の追跡

活用シーン

  1. 01新店舗へのレビューシステム導入
  2. 02商品ページへの評価表示追加
  3. 03レビューモデレーション手順の構築
  4. 04レビュー移行や依頼の自動化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill product-reviews-ratings

インストール後、Claude Code で/product-reviews-ratingsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

tile.json
evals/bayesian-rating-calculation-and-schema-o/
criteria.json
task.md
evals/review-display-helpful-votes-and-admin-m/
criteria.json
task.md
evals/review-submission-endpoint-with-auto-mod/
criteria.json
task.md

詳細

商品レビューと評価

概要

商品レビューは、Eコマースにおいて最も強力なソーシャルプルーフの指標です。レビューが5件以上ある商品は、レビューがない商品と比べてコンバージョン率が270%高くなります。主要なプラットフォームには、レビューの収集やモデレーション、Googleの星評価に対応するschema.orgマークアップ、購入確認済みバッジの付与を、カスタムコードなしで処理できるレビューアプリがあります。独自のモデレーションロジック、深いAPI連携、または自社データベースでのレビュー管理が必要な場合に限り、カスタムレビューシステムの構築を検討してください。

このスキルを使う場面

  • 新しいストアを立ち上げ、レビューの収集・表示システムが必要な場合
  • Google検索結果に星評価を表示するため、schema.orgのAggregateRatingマークアップを実装する場合
  • 偽レビューやスパムレビューを防ぐモデレーションのワークフローを構築する場合
  • レビューの信頼性を高めるため、購入確認済みバッジを表示する場合
  • 配達後に購入者へレビュー依頼メールを自動送信する場合
  • あるプラットフォームやアプリから別のプラットフォームやアプリへレビューをインポートする場合

主な手順

手順1:プラットフォームを確認し、適切なレビューツールを選ぶ
プラットフォーム推奨ツール理由
ShopifyJudge.me無料プランに、無制限のレビュー、写真付きレビュー、購入確認済みバッジ、schema.orgマークアップ、購入後のレビュー依頼メールが含まれます
ShopifyYotpoQ&A、ロイヤルティ連携、Google Shoppingへのレビュー配信など、より高度な機能を備えており、中堅以上のストアに最適です
WooCommerceWooCommerce標準のレビュー機能 + WP Product ReviewプラグインWooCommerceには星評価機能が標準搭載されています。schema.orgマークアップと購入確認の制御には、WP Product Reviewを追加してください
WooCommerceWooCommerce向けJudge.meShopify版と同じ機能を備え、WooCommerce連携として利用できます
BigCommerceJudge.meまたはYotpoどちらもBigCommerce App Marketplaceから利用でき、すべての機能を同等に備えています
カスタム/ヘッドレスレビューAPIを構築カスタムのモデレーションロジックを使い、レビューを自社データベースで管理する必要がある場合に必須です

手順2:プラットフォームごとの設定

Shopify

オプションA:Judge.me(推奨 — 無料、機能が充実)

  1. Shopify App StoreからJudge.me Product Reviewsをインストールします

  2. Judge.meは、設定可能な期間が経過した後に、購入後のレビュー依頼メールを自動送信します:

    • Judge.me → Settings → Review Request Emailsに移動します
    • 遅延をフルフィルメント後5~7日に設定します(顧客が商品を受け取り、使う時間を確保できます)
    • メールテンプレートをブランドカラーと商品画像でカスタマイズします
  3. レビュー表示を設定します:

    • Judge.me → Widgets → Install Widgetsに移動します
    • 商品テンプレートでレビュ​​ーウィジェットを有効にします(Judge.meではワンクリックでインストールできます)
    • 商品一覧で星評価スニペットを有効にします
  4. schema.orgマークアップを有効にします:

    • Judge.me → Settings → SEOに移動します
    • 「Add aggregate rating schema」が有効になっていることを確認します。これにより、Google検索結果に星評価が表示されます
  5. 購入確認とモデレーションを設定します:

    • Settings → Review Settingsに移動します
    • Verified Purchase Onlyを有効にします。商品を購入した顧客のみがレビューを投稿できます
    • Auto-publish verified reviewsを有効にし、購入確認ができないレビューは手動でモデレーションします
    • 不適切な表現のフィルターを「Medium」以上に設定します

オプションB:Yotpo(中堅・大企業向け)

  1. App StoreからYotpo Reviewsをインストールします
  2. Yotpo → Settings → Review Requestでレビュー依頼の送信タイミングを設定します
  3. Google Shoppingキャンペーンを実施している場合は、Google Shopping Reviews syndicationを有効にします。YotpoからGoogleへレビューのデータが直接送信されます
  4. Yotpo Q&Aを使って、PDPのレビューの下に質問と回答のセクションを追加します

schema.orgマークアップのテスト: Judge.meまたはYotpoのschema出力を有効にした後、商品ページのURLを使ってGoogleのリッチリザルトテストで検証します。インデックス登録後、1~2週間でGoogle検索に星評価が表示されます。


WooCommerce

WooCommerce 組み込みのレビュー(無料、基本機能):

  1. WooCommerce → Settings → Products → Reviews に移動します
  2. Enable product reviews を有効にします
  3. Show "verified owner" label on customer reviews を有効にします。これにより、商品の購入者のみがレビューを投稿できるようになります
  4. Reviews can only be left by "verified owners" を有効にして、未確認の投稿を制限します

schema.org マークアップと拡張表示の追加:

  1. WordPress プラグインディレクトリから WP Product Review をインストールします
  2. WP Product Review には以下の機能があります:
    • 集計した星評価の schema.org マークアップ(Google のリッチリザルトに必要)
    • 商品一覧での星評価表示
    • レビューのメリット/デメリット欄
  3. WP Product Review → Settings で設定します

レビュー依頼メールの自動化:

  1. 購入後のメール自動化のため、Klaviyo または AutomateWoo をインストールします
  2. Klaviyo では、「Placed Order」イベントをトリガーとして、7 日間の遅延を設定し、レビュー依頼リンクを含む Flow を作成します
  3. AutomateWoo では、AutomateWoo → Workflows → Add に移動し、トリガーに「Order Status Changed to Completed」を設定して、7 日間の遅延を指定します

WooCommerce 向け Judge.me:

  • Judge.me for WooCommerce をインストールします(judge.me から入手できます)
  • Shopify 版と同じレビュー依頼メール、購入確認による制限、スキーママークアップを利用できます

BigCommerce

BigCommerce 向け Judge.me:

  1. Apps → Search "Judge.me" に移動してインストールします
  2. Shopify 版と同じ設定で、レビュー依頼メール、スキーママークアップ、購入確認による制限を同様に利用できます

BigCommerce 組み込みの商品レビュー:

  1. Products → [Product] → Reviews tab に移動して、レビューを手動でモデレートします
  2. Settings → Store Settings → Miscellaneous に移動し、Product Reviews を有効にします
  3. 組み込みのレビューには schema.org マークアップが含まれないため、Google の検索結果に星評価を表示するには Judge.me または Yotpo をインストールします

BigCommerce 向け Yotpo:

  1. BigCommerce App Marketplace からインストールします
  2. メールに加えて、Google ショッピングレビューの配信と SMS によるレビュー依頼を利用できます

カスタム/ヘッドレス

ヘッドレスストアフロントでは、購入後のトリガー、モデレーション、ベイズ集計スコアリング、schema.org 出力を備えたレビューパイプラインを構築します:

// lib/reviews.ts

// POST /api/reviews — accept review submission with signed token verification
export async function submitReview(req: Request, res: Response) {
  const { token, productId, rating, title, body, authorName } = req.body;

  // Validate signed token (generated in post-purchase email, prevents spam)
  const tokenData = await verifyReviewToken(token);
  if (!tokenData) return res.status(401).json({ error: 'Invalid or expired review token' });

  const verifiedPurchase = await db.orderItems.exists({ orderId: tokenData.orderId, productId });

  // Auto-moderation: spam score + profanity check
  const spamScore = await checkSpam({ body, authorName, ip: req.ip });
  const hasProfanity = await checkProfanity(body + ' ' + title);

  const status =
    spamScore > 0.8 ? 'spam' :
    hasProfanity ? 'pending' :
    verifiedPurchase ? 'approved' : 'pending';

  const review = await db.reviews.create({
    productId, orderId: tokenData.orderId, customerId: tokenData.customerId,
    authorName, authorEmail: tokenData.email, rating, title, body,
    verifiedPurchase, status, approvedAt: status === 'approved' ? new Date() : null,
  });

  if (status === 'approved') await updateProductRatingSummary(productId);

  res.json({ reviewId: review.id, status });
}

// Bayesian aggregate: prevents a 2-review product with 5.0 outranking a 200-review product with 4.7
export async function updateProductRatingSummary(productId: string) {
  const reviews = await db.reviews.findMany({ where: { productId, status: 'approved' } });

  const rawAverage = reviews.length > 0
    ? reviews.reduce((sum, r) => sum + r.rating, 0) / reviews.length : 0;

  const globalMean = await db.reviews.globalAverageRating();
  const C = 5; // confidence weight — trust product's own average after 5+ reviews
  const bayesianAverage = (C * globalMean + reviews.reduce((s, r) => s + r.rating, 0)) / (C + reviews.length);

  await db.productRatingSummaries.upsert({ productId }, {
    productId, reviewCount: reviews.length,
    averageRating: Math.round(bayesianAverage * 10) / 10,
    rawAverageRating: Math.round(rawAverage * 10) / 10,
  });
}

// Emit schema.org AggregateRating JSON-LD — required for Google star ratings in search
export function buildProductSchema(product: Product, ratingSummary: { reviewCount: number; averageRating: number }) {
  return {
    '@context': 'https://schema.org',
    '@type': 'Product',
    name: product.name,
    image: product.images.map(i => i.url),
    description: product.description,
    sku: product.sku,
    offers: {
      '@type': 'Offer',
      price: (product.priceInCents / 100).toFixed(2),
      priceCurrency: 'USD',
      availability: product.inventoryQuantity > 0 ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
    },
    ...(ratingSummary.reviewCount > 0 && {
      aggregateRating: {
        '@type': 'AggregateRating',
        ratingValue: ratingSummary.averageRating.toFixed(1),
        reviewCount: ratingSummary.reviewCount,
        bestRating: '5',
        worstRating: '1',
      },
    }),
  };
}

// Trigger review request email 5 days after delivery
export async function triggerReviewRequest(orderId: string) {
  const order = await db.orders.findById(orderId, { include: ['lineItems.product', 'customer'] });
  const token = await createSignedReviewToken(orderId, order.customerEmail);

  await reviewQueue.add(
    'send-review-request',
    { orderId, email: order.customerEmail, token, products: order.lineItems.map(i => ({ productId: i.productId, name: i.product.name })) },
    { delay: 5 * 86400000, jobId: `review-request-${orderId}` }
  );
}

ステップ 3:モデレーションのワークフローを設定する

すべてのレビューアプリで、公開前にモデレーション方針を決める必要があります:

Judge.me の場合:

  • Settings → Review Settings → Moderation に移動します
  • 確認済みレビューは自動公開、未確認レビューは手動レビューキューに入るよう設定します
  • 不適切な表現のフィルターを有効にします
  • Judge.me → Reviews → Pending で、モデレーションキューを毎週確認します

Yotpo の場合:

  • Yotpo → Moderation → Settings に移動します
  • 自動承認ルールを設定します(例:星評価が 3 以上で、購入確認済みの場合に自動承認)
  • Yotpo は、設定したチームのメールアドレスにモデレーションの概要を毎日送信します

カスタム実装の場合: 購入確認済みのレビューのうち、スパムと不適切な表現のチェックに合格したものは自動承認し、それ以外はすべてキューに入れます。モデレーションを完全に省略せず、保留キューを毎日処理してください。


ステップ 4:レビューの効果を測定する
指標ベンチマーク確認場所
レビュー収集率配達済み注文の 3~8%Judge.me Analytics → Email Performance
レビューが 5 件以上ある商品有効な商品の割合を追跡Judge.me → Insights
平均評価4.2~4.7 が適正プラットフォームの商品一覧ページ
Google の星評価からのクリック率スキーマ公開後に Google Search Console で確認Search Console → Search Appearance → Rich Results

ベストプラクティス

  • 一から構築する前にJudge.meまたはYotpoを利用します — スキーママークアップ、メール送信のタイミング、購入確認のロジック、モデレーションキューを標準で処理できます
  • レビュー依頼は発送後ではなく、配達から5~7日後に送信します — 顧客が商品を受け取り、使用する時間が必要です
  • 否定的なレビューは絶対に削除しないでください — 非表示にすると信頼を損ない、FTCのガイドラインに違反する可能性もあります。代わりに公開で返信してください
  • 購入確認済みバッジを表示します — レビューの信頼性が高まり、顧客が本物のレビューを見分けやすくなります
  • 初回読み込み時のカルーセルは5~10件に制限します — ページのLCPを妨げないよう、追加のレビューは遅延読み込みします
  • 公開前にGoogleのリッチリザルトテストでschema.orgのマークアップを検証します — JSON-LDが正しくない場合、検索結果に星評価が表示されません

よくある問題

問題解決策
Google検索に星評価が表示されないAggregateRating.reviewCountが1以上であり、スキーマが<head>内にJSON-LDとして記述されていることを確認します。Googleのリッチリザルトテストで検証します
商品の配達前にレビュー依頼が送信される発送イベントではなく配達Webhookを起点にレビュー依頼メールを送信し、配達後に5日の猶予を設けます
スパムレビューがモデレーションキューに大量に届くWooCommerceでAkismetとの連携を有効にするか、Judge.me組み込みのスパムフィルターを使用します。スパムスコアが高い投稿は自動的に拒否します
同じ顧客から重複したレビューが投稿されるJudge.meとYotpoは、購入確認済みの商品ごとにレビューを1件に制限します。独自に構築する場合は、(customerId, productId)に一意制約を追加します
レビュー写真のせいでページの読み込みが遅くなるJudge.meとYotpoは、写真を自動的にリサイズしてCDN経由で配信します。独自に構築する場合は、アップロード時に200pxのサムネイルにリサイズします

関連スキル

  • @user-generated-content
  • @customer-segmentation
  • @personalization-engine
  • @conversion-rate-optimization

コメント