Google Merchant Centerのフィードエラーの多くは、構造化データの不備が原因です。正しいJSON-LDの書き方をプラットフォーム別に解説します。
前提条件
- Google Chrome(最新版)
- 対象ECサイトの管理画面へのアクセス権限
- 基本的なHTMLの知識(コピー&ペーストができれば可)
実装手順
Step 1: Product + Offer + AggregateRatingの基本構造を理解する
やること: JSON-LDの3大型(Product, Offer, AggregateRating)の関係を理解します。 基本構造:{
"@context": "https://schema.org",
"@type": "Product",
"name": "オーガニックコットンTシャツ",
"image": "https://example.com/tshirt.jpg",
"description": "100%オーガニックコットン使用。肌触りが良く、通気性に優れたTシャツ。",
"brand": {
"@type": "Brand",
"name": "ブランド名"
},
"offers": {
"@type": "Offer",
"price": "3980",
"priceCurrency": "JPY",
"availability": "https://schema.org/InStock",
"url": "https://example.com/products/organic-tshirt"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "128"
}
}
Merchant Centerとの関係: このJSON-LDが商品ページに埋め込まれていると、Merchant CenterのCrawler(Googlebot)が自動で商品情報を取得し、Google Shopping/無料リスティングに反映します。
---
Step 2: 必須プロパティ(name, image, offers.price, offers.availability)を設定する
やること: Merchant Centerがエラーなく受理するために必須の4プロパティを確認します。 必須プロパティ一覧: | プロパティ | 型 | 例 | 未設定時のエラー | |-----------|---|---|----------------| |name | Text | "オーガニックコットンTシャツ" | 「title が見つかりません」 |
| image | URL | "https://example.com/tshirt.jpg" | 「画像が見つかりません」 |
| offers.price | Number | "3980" | 「価格が見つかりません」 |
| offers.priceCurrency | Text | "JPY" | 「通貨が見つかりません」 |
| offers.availability | URL | "https://schema.org/InStock" | 「在庫状況が不明」 |
availability の値:
https://schema.org/InStock— 在庫ありhttps://schema.org/OutOfStock— 在庫なしhttps://schema.org/PreOrder— 予約受付中
---
Step 3: プラットフォーム別の実装方法
Shopify(Liquid): Shopifyの標準テーマ(Dawn等)はProduct JSON-LDを自動出力します。カスタマイズする場合はtheme.liquid または product.liquid の 内に追加。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "{{ product.title | escape }}",
"image": "{{ product.featured_image | img_url: 'grande' }}",
"offers": {
"@type": "Offer",
"price": "{{ product.price | money_without_currency }}",
"priceCurrency": "JPY",
"availability": "{% if product.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}"
}
}
</script>
WordPress(PHP):
functions.php または専用プラグイン(Yoast SEO, Rank Math)で出力。手動実装の場合:
function add_product_jsonld() {
if (is_product()) {
global $product;
$schema = [
'@context' => 'https://schema.org',
'@type' => 'Product',
'name' => $product->get_name(),
'image' => wp_get_attachment_url($product->get_image_id()),
'offers' => [
'@type' => 'Offer',
'price' => $product->get_price(),
'priceCurrency' => 'JPY',
'availability' => $product->is_in_stock()
? 'https://schema.org/InStock'
: 'https://schema.org/OutOfStock'
]
];
echo '<script type="application/ld+json">' . json_encode($schema) . '</script>';
}
}
add_action('wp_head', 'add_product_jsonld');
BASE / STORES: カスタムJSON-LDの追加手段がないため、標準の自動出力に依存。不足がある場合はプラットフォーム移行を検討。
---
Step 4: Google Rich Results Testでバリデーションする
やること: 実装したJSON-LDが正しく認識されるかを検証します。 手順:- Rich Results Test を開く
- 商品ページのURLを入力 → 「URLをテスト」をクリック
- 確認ポイント:
price, availability, image が正しく表示されているか
よくあるエラーと対処:
| エラー | 原因 | 対処 |
|-------|------|------|
| 「offers.price が見つかりません」 | priceプロパティの欠落 or 値が空 | offers内にpriceを追加 |
| 「画像のURLが無効」 | 相対パスで指定している | https:// から始まる絶対URLに変更 |
| 「availabilityの値が不正」 | InStock と書いている | https://schema.org/InStock (フルURL)に修正 |
---
Step 5: Merchant Centerの診断レポートでエラーを確認する
やること: Merchant Center管理画面で構造化データ起因のエラーを確認・修正します。 手順:- Merchant Center にログイン
- 左メニュー「診断」→「商品の問題」
- エラーを重大度順にソート → 「構造化データ」関連をフィルタ
- 不承認(Disapproved): 即時対応必須。商品がGoogle Shoppingに表示されない
- 警告(Warning): パフォーマンス低下。1週間以内に対応推奨
- 保留(Pending): Googleの再クロール待ち。48時間後に再確認
---
Step 6: 送料・返品ポリシーの構造化データを追加する
やること:ShippingDetails と MerchantReturnPolicy を追加し、Google Shopping検索結果に「送料無料」「返品可」のバッジを表示させます。
コード例:
{
"@type": "Offer",
"price": "3980",
"priceCurrency": "JPY",
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "0",
"currency": "JPY"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "d" },
"transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "d" }
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "JP"
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
"merchantReturnDays": 14
}
}
効果: 送料・返品ポリシーがリッチリザルトに表示されるとCTRが15〜25%向上するとされています。
---
まとめ
6ステップの手順を順番に実行することで、Google Merchant Centerのエラーを解消し、Google Shopping/無料リスティングでの露出を最大化できます。
まず今日やるべきこと: Step 4のRich Results Testで現状をチェック。エラーがあればStep 2の必須プロパティから修正。自社サイトの構造化データを確認するには、Pulse DigitalのChrome拡張で診断してみてください。Product/Offer/BreadcrumbList等の有無と正確性をワンクリックで検出できます。