この記事でわかること
この記事の目次Contents閉じる開く
Shopifyの商品ページでソースを表示して、application/ld+json を検索してみてください。そこに書かれているものが、「このページの商品は何か」というGoogleの問いに対して、あなたのストアが返している答えです。
テーマとレビューアプリとSEOアプリが入ったストアでは、この問いに複数の当事者が、互いに面識のないまま、それぞれ答えています。
先に結論
Shopifyは商品マークアップを自動で出力していて、それは必ずしも Product ではない。 Liquidフィルタ structured_data は、バリアントのない商品には schema.org の Product を、1つ以上のバリアントがある商品には ProductGroup を出力します。Dawnはこれを sections/main-product.liquid の中で1行呼んでいるだけです。
Googleはこの2つを別物として扱う。 Googleの商品バリアント向けドキュメントは、バリアント用プロパティに加えて Product 構造化データを追加するよう書いています。また ProductGroup の productGroupID とバリアント側の inProductGroupWithID を両方書く場合、一致していなければならないと明記しています。
実際のストアでは、ページが1つのことを言っていることはあまりない。 2026年9月15日に米国のShopifyストア10件から商品ページを1件ずつ取得し、すべてのJSON-LDブロックを解析しました。3件は1つのURLに複数の Product 系エンティティを持っていました。2件はHTMLに商品マークアップがなく、JavaScript実行後にだけ現れました。1件は最後まで何も出力しませんでした。1件は星評価を @type も @context もないブロックに入れていて、どのエンティティにも結び付いていませんでした。
立場の明確な2社が、正面から対立している。 Ilana's JSON‑LD for SEO (TM)は「The myth of duplicate structured data(構造化データ重複の神話)」という記事を公開し、Googleは気にしないと主張しています。Webrex: AI SEO, Schema JSON‑LDはリスティングで「Fix schema errors & duplicates in one click」と書いています。
前者は、その削除作業を別売りしている。 100ドルの買い切りで、テーマを手作業で編集する形です。そして同社の商品ページ自身が、テーマ更新で消えることを警告しています。「If you update or change your theme, you'll override the changes to your code and will need to purchase the service again.」
アプリが黙ってそれをやることはできない。 Admin API 2023-04以降、Assetリソースへの PUT と DEL は write_themes スコープに加えて、Shopifyが個別に付与する例外許可を必要とします。SEOは例外対象カテゴリーに挙がっていますが、どのアプリが許可を持っているかはリスティングのどこにも書かれていません。
最も安上がりな対処は、自分で5分の監査をすること。 この記事で扱う内容は、すべてソース表示とRich Results Testで確認できます。
アプリを入れる前にShopifyが出力しているもの
Shopifyの structured_data フィルタは、オブジェクトをschema.org形式へ変換するものとして文書化されており、product と article オブジェクトに対して使えます。多くのマーチャントが読んだことのない部分は、出力ルールです。
Product objects are output as a schema.org
Productif they have no variants, and aProductGroupif they have one or more variants.
Dawnはこれを使っています。sections/main-product.liquid の末尾で、実装はこの3行だけです。
<script type="application/ld+json">
{{ product | structured_data }}
</script>
これは良い知らせであると同時に落とし穴でもあります。テーマ制作者ではなくShopify自身が生成した、構造的に妥当なマークアップが無料で出力されるということです。同時に、商品にバリアントが付いた瞬間——サイズや色で売るアパレルやシューズはほぼすべてそうです——そのページのエンティティは ProductGroup になり、素の Product を追加するアプリは、その隣に型の違う2つ目の答えを置くことになります。
米国10ストアが実際に出力していたもの
米国のShopifyストア10件から商品ページを1件ずつ選び、生HTMLを取得し、同じURLをヘッドレスブラウザで読み込んでJavaScript実行後のDOMも解析しました。10件すべてが稼働中のShopifyストアフロントです。2回に分けて測るのは、GoogleのShopping向けクロールが必ずしもJavaScriptを実行せず、そのことをGoogle自身が文書に書いているからです。
| ストア | HTML内 | JavaScript実行後 | 意味 |
|---|---|---|---|
| allbirds.com | ProductGroup(91バリアント入れ子)+ トップレベルのキーが aggregateRating だけのブロック | 同じ | 評価ブロックに @type も @context もなく、商品に結び付いていない |
| brooklinen.com | BreadcrumbList のみ | Product ×2 + BreadcrumbList | 商品エンティティは2つともクライアント側で <head> に注入される。うち1つはYotpoのもので、評価と別の価格・別の画像を持つ |
| blendjet.com | Product ×8 | 同じ | バリアントごとに1エンティティ。8つすべてが同じストア単位の評価(4.9、69,439件)を繰り返している |
| chubbiesshorts.com | Organization, BreadcrumbList, Product, ProductGroup | 同じ | 1つのURLに商品名が2つ。ProductGroup の productGroupID はShopifyのCollection GIDで、隣の Product の sku は 603263-002 |
| gymshark.com | なし | ProductGroup(7バリアント) | 初期HTMLに商品マークアップがない |
| deathwishcoffee.com | Organization, Product | 同じ | 問題なし |
| drsquatch.com | なし | なし | 商品構造化データが一切ない |
| hauslabs.com | Product | 同じ | 問題なし |
| nativecos.com | BreadcrumbList ×2, Product | 同じ | パンくずが重複、商品エンティティは1つ |
| thesill.com | Organization, Product, BreadcrumbList | 同じ | 問題なし |
10件のうち3件は問題なし。3件は1つのURLに複数の Product 系エンティティ。2件は商品マークアップがブラウザ内にしか存在しない。1件は何も出力しない。1件は妥当な ProductGroup を出力したうえで、評価を読み取れない場所に置いています。
Brooklinenのページが、この問題の最も分かりやすい形です。両方の書き手が見えるからです。片方は id="productData" を持ち、sku は BT-WFL-148、評価なし。もう片方は class="y-rich-snippet-script"——Yotpo: Product Reviews Appのものです——で、aggregateRating は4.3・24件、画像が違い、価格は53.4。同じ商品名に価格が2つ、画像が2つ、星が付いているのは片方だけ。そしてどちらも、Googleの最初のパスが見るHTMLには存在しません。
Allbirdsのページは惜しい例です。ProductGroup 自体は整っていて、productGroupID は MENS_TREE_DASHERS2、name は Men's Tree Dasher 2、hasVariant に91バリアントが入っています。そのうえで、aggregateRating 4.5・3,449件だけを含むブロックが別に置かれ、トップレベルに @type がありません。2つを結ぶものは何もなく、評価はページ上にあるのに、ページ上のどのエンティティのものでもありません。
Googleのドキュメントが実際に書いていること
Google検索セントラルの商品バリアントのリファレンスから、上の表と突き合わせて読む価値のある3か所を引用します。
ProductGroup の必須プロパティは name だけです。productGroupID も variesBy も hasVariant も推奨止まりです。つまり ProductGroup は、出すのも簡単で、役に立たない形で出すのも簡単です。
識別子について。
Each product group must have a unique ID in its corresponding structured data markup, specified with the
inProductGroupWithIDproperty in variantProductproperties or theproductGroupIDproperty in theProductGroupproperty.
そして productGroupID について。
If you provide the identifier for both the
ProductGroupproperty and its variantProductproperties, they must match.
Chubbiesのページでは、ProductGroup がCollection GIDを持ち、隣の Product がSKUを持っています。一致していません。
マークアップの置き場所について。
If you're a merchant optimizing for all types of shopping results, we recommend putting
Productstructured data in the initial HTML for best results.
さらに。
For JavaScript-generated
Productmarkup: Be aware that dynamically-generated markup can make Shopping crawls less frequent and less reliable, which can be an issue for fast-changing content like product availability and price.
GymsharkとBrooklinenはどちらもこの後者に該当します。ここでGoogleが言っていないことにも注意してください。Product が2つあることをペナルティだとは言っていません。識別子が一致しなければならないこと、レンダリングが必要なマークアップは読み取りの信頼性が落ちること、この2つを言っています。
2つのアプリ、2つの正反対の立場

出典: Shopify App Store(Ilana's JSON‑LD for SEO (TM)、2026-09-15時点)
Ilana's JSON‑LD for SEO (TM)(開発元: Ilana Davis LLC)は年399ドル・無料トライアルあり、評価4.9・443件。ここで扱う4アプリのうち、無料プランがない2つのうちの1つです。Built for Shopifyバッジはありません。
同社自身の記事「The myth of duplicate structured data」は明確です。「Google doesn't care if you have duplicate sets of the same structured data on a page」と書き、そのあとにGoogleが最良のセットを選ぶ過程についての6段階モデルを示しています。アプリは自社のデータを追加するだけで、テーマ側のデータは削除しません。
そして同じサイトに、100ドルの別商品「Remove Theme Structured Data」があります。削除を勧める理由は3つだけ挙げられています。
- The theme provided markup has errors.
- You're having issues with Merchant Center.
- More than one set of review (
aggregateRating) data is present.
3番目は、まさにBrooklinenのページとBlendJetのページのことです。そしてこの商品に付いた注意書きが、この記事で最も実務的な一文です。
When you purchase this service, I will remove the theme microdata and JSON-LD code once. If you update or change your theme, you'll override the changes to your code and will need to purchase the service again.

出典: Shopify App Store(Webrex: AI SEO, Schema JSON‑LD、2026-09-15時点)
Webrex: AI SEO, Schema JSON‑LD(開発元: Webrex Studio)は正反対の立場を取ります。Built for Shopify、評価4.9・853件、無料プランと無料トライアルあり。リスティングには「automatically Fixes schema errors & remove duplicates」とあり、箇条書きの1つは「Fix schema errors & duplicates in one click - clean structured data, no code」です。リスティング画像では、テーマ由来のスキーマ、レビューアプリのスキーマ、重複した商品スキーマの3つが削除対象として示されています。
リスティングが書いていないのは、どうやって削除するのかです。これは重要です。Shopifyのルール上、インストール済みのアプリがテーマ由来のスキーマを表示させなくする方法は2つしかなく、その2つは挙動が違うからです。
「削除」が簡単ではない理由
Admin API 2023-04以降、Assetリソースへの PUT と DEL リクエストは write_themes スコープの背後に制限されています。shopify.devは、App Store掲載アプリにとってそれが何を意味するかを明示しています。
If an app that's distributed in the Shopify App Store needs to use Asset resource
PUTorDELrequests, then it needs to be granted an exemption by Shopify to use thewrite_themesaccess scope.
SEOは例外許可の対象カテゴリーに入っているため、スキーマアプリが許可を持つことはあり得ます。Shopifyは、例外許可がBuilt for Shopify取得にも有効だと書いています。ただし許可は個別審査で、どのアプリが持っているかを示すリスティング項目は存在しません。
つまりアプリの選択肢は次のどちらかです。
- 例外許可を持ち、テーマファイルを編集する。
<script>タグは本当に出力されなくなります。同時にそれはテーマへの恒久的な編集であり、テーマ更新やテーマ差し替えで元に戻り得ます。100ドルの手作業サービスと同じ失敗パターンです。 - ブラウザ内でノードを取り除く。 タグはShopifyのサーバーから返ってくるHTMLには残っていて、アプリのJavaScriptが動いたあとにDOMから消えます。HTMLしか読まないクローラーには、依然として見えています。
どちらが間違いというわけではありません。答えている問いが違うだけです。そして掃除の理由がMerchant Center——返されたものをそのまま読みます——であれば、状況が変わるのは前者だけです。
スキーマ特化型4アプリの比較
数値はすべて2026年9月15日時点のShopify App Store(en-US表示)のものです。
| アプリ | 開発元 | 料金 | 評価 | Built for Shopify | 無料プラン | 既存スキーマへの立場 |
|---|---|---|---|---|---|---|
| Ilana's JSON‑LD for SEO (TM) | Ilana Davis LLC | $399/year、無料トライアルあり | 4.9(443) | なし | なし | 追加のみ。削除は100ドルの別サービス |
| Webrex: AI SEO, Schema JSON‑LD | Webrex Studio | 無料プランあり、無料トライアルあり | 4.9(853) | あり | あり | エラー修正と重複削除をワンクリックで行うと表示。方式はリスティングに記載なし |
| Schema Markup Snippets by Nabu | AdNabu Global, Inc. | 無料 | 5.0(4) | なし | あり | 「no theme code」で全ページに追加。削除の記載なし |
| Schema App Total Schema Markup | Schema App | Core $15/month、Advanced $30/month | 2.5(3) | なし | なし | 既存コンテンツからマークアップを生成・配信。削除の記載なし |

出典: Shopify App Store(Schema Markup Snippets by Nabu、2026-09-15時点)
Nabuは、一般的なケースを素直な形で表しています。無料で、Product、Collection、Breadcrumb、Article、Blog、Merchantのスキーマを追加し、「no theme code needed」と明記しています。何かを削除するとはリスティングのどこにも書いていません。テーマが既に structured_data を呼んでいるストアでは、これは1つ目の隣に2つ目の商品エンティティが来るということです。この記事の残りが扱っているのがまさにその状況であり、それ自体はアプリの欠陥ではありません。

出典: Shopify App Store(Schema App Total Schema Markup、2026-09-15時点)
Schema App Total Schema Markupは、エンタープライズ向けスキーマベンダーのShopify向けプラグインです。Coreが月15ドル、Advancedが月30ドルで、Advancedでは商品・ブログ・記事以外のページ向けにエディタが使えます。評価2.5はレビュー3件によるもので、どちらの方向にも一般化できる件数ではありません。
なお、スキーマも書く総合SEOアプリのほうが、スキーマ特化型よりレビュー件数ははるかに多くなっています。SearchPie: SEO, Schema & Speed(PieLab、Built for Shopify、4.9・2,454件)とSmart SEO AI & Image Optimizer(Sherpas Design、Built for Shopify、5.0・952件)は、どちらも機能一覧にスキーママークアップを挙げています。どちらかが既に入っているなら、メタタグや画像altのために入れたアプリが、商品ページに構造化データを書いている可能性があります。
自分のストアを5分で確認する
- バリアントのある商品ページを開き、ソースを表示して
application/ld+jsonを検索し、ブロック数を数えます。 - 各ブロックの
@typeを確認します。見るべきはブロックが複数あることではなく、ProductまたはProductGroupが複数あることです。商品と並んでOrganizationやBreadcrumbListがあるのは正常です。 ProductGroupとProductの両方がある場合、productGroupIDとinProductGroupWithID、skuを突き合わせます。両方書く場合は一致が必要です。aggregateRatingの数を数えます。複数あるケースは、ここで挙げたどのベンダーも直す価値があると認めている唯一の点です。- URLをGoogleのRich Results Testにかけ、コードタブを読みます。書いたものではなく、Googleが解析したものが表示されます。
- ソース表示とレンダリング後のDOMを比べます。商品マークアップが後者にしかない場合、Googleが信頼性が落ちると明記している側にいます。
どうすべきか
商品エンティティが1つ、評価が1つなら、何もしなくてよい。 今回の10件のうち3件がこの状態です。スキーマアプリが買えるのは、Shopifyのフィルタが出力しない項目——配送、返品、priceValidUntil、FAQ、動画——であって、存在しない問題の修正ではありません。
問題が aggregateRating の重複だけなら、レビューアプリ側から手を付ける。 多くの場合はレビューアプリのウィジェット設定にある項目で、費用はかかりません。
Merchant Centerで商品が弾かれているなら、削除はサーバー側でなければならない。 Merchant Centerはサーバーが返したものを読みます。ブラウザ側での掃除は届きません。例外許可を持つアプリを使うか、テーマを編集するかで、テーマ変更後にやり直す前提で考えてください。
フロントエンドが独自実装なら、入れる前に監査する。 上の表で問題のあった7件は、どれも structured_data を呼んで終わりの素のテーマには見えません。それぞれが独自の方法で独自のマークアップを書いています。既に自前でマークアップを組んでいるフロントエンドの上にスキーマアプリを載せるのが、1つのURLに Product が8つ並び、ストア単位の評価が8回繰り返される経路です。
何をするにせよ、テーマ更新の前ではなく後にやる。 両社のドキュメントが一致している唯一の点であり、そうしなければ100ドルの請求書が2回それを教えてくれることになります。
出典
- Liquid filters: structured_data — Shopify
- Dawnテーマ
sections/main-product.liquid— Shopify - The Asset API resource (legacy) — Shopify
- Product variant structured data (ProductGroup, Product) — Google検索セントラル
- The myth of duplicate structured data — Ilana Davis
- Remove Theme Structured Data — Ilana Davis
- Ilana's JSON‑LD for SEO (TM)、Webrex: AI SEO, Schema JSON‑LD、Schema Markup Snippets by Nabu、Schema App Total Schema Markup、SearchPie: SEO, Schema & Speed、Smart SEO AI & Image Optimizer、Yotpo: Product Reviews AppのShopify App Storeリスティング(2026-09-15取得)
Shopifyの無料リンクまとめページLinkpopは2025年7月7日に終了し、linkpop.comは現在shopify.comへリダイレクトされます。2026年8月15日にはヘルプセンターに、SNSで商品リンクを共有するための月額5ドルのStarterプランが「新規ストアには提供されない」と記載されました。そして2026年7月21日付のShopify公式ブログがリンクまとめツールとして紹介する6ツールのうち、Shopify App Storeのリスティングにリンクしているのは2つだけ。LinkShopと、Marketplacesカテゴリに分類され、請求がShopifyの請求書の外で行われ、18件のレビューで評価3.6のLinktreeです。2026年9月18日に7つのリンクまとめアプリの料金を確認しました。分かれ目は月額0〜15ドルの料金ではなく、ページがどこに置かれるか。4つのアプリはShopifyのapp proxy経由で自ストアのドメイン上にページを配信します。つまりページはストアのパスワードの内側にあり、新しい月額0ドルのAgenticプランではそのパスワードが外れることはありません。Shopifyヘルプセンター、shopify.dev、Shopify App Store、稼働中のストアページで確認しています。