Implementation Guide — 2026.08.20
この資料は、Claude Code に読ませて実装していただくための指示書です。 コードはすべて記載済みですので、書き換えていただく必要はありません。
いちばん簡単な進め方は、このページをそのまま Claude Code に渡して「この指示書のとおりに実装して」と伝える方法です。 手順1のバックアップだけは、必ず先に行ってください。
Why
構造化データとは、ページの内容を検索エンジンとAIが誤解なく読めるように、機械向けの言葉で書き添えておくものです。 人間が見る画面は何も変わりません。
現在、gyuhiya.com には構造化データが1件も入っていません。 そのためGoogleやChatGPTは、商品名・価格・店舗の場所・営業時間を、本文から推測するしかない状態です。 推測が外れると、検索結果や生成AIの回答に誤った情報が出ます。
今回の実装で、次の4つを機械に伝えます。
| 種類 | 何を伝えるか | 入れる場所 |
|---|---|---|
Organization | 会社の情報と、公式SNS・各種掲載ページの一覧 | 全ページ |
LocalBusiness | 店舗の住所・電話・営業時間・地図上の位置 | 全ページ |
Product | 商品名・価格・在庫・原材料 | 商品ページ |
FAQPage | よくある質問と答え | トップページ |
sameAs です
Organization の中に sameAs という項目があり、ここに公式Instagram・Googleマップ・各掲載ページのURLを並べて書きます。
これは「これらはすべて同じ求肥屋である」と機械に宣言するものです。
ネット上に散らばった情報を1つに束ねる役割を持ち、AI検索で正しく引用されるための土台になります。
Step 1
公開中のテーマを直接編集すると、失敗したときに戻せません。必ず複製してから作業してください。
※ 万一おかしくなった場合は、元のテーマを公開し直せば即座に元に戻ります。
Step 2
下のコードを layout/theme.liquid の </head> の直前に貼り付けます。全ページに入ります。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://gyuhiya.com/#organization",
"name": "株式会社求肥屋",
"alternateName": ["求肥屋", "Gyuhiya"],
"url": "https://gyuhiya.com/",
"email": "contact@gyuhiya.com",
"telephone": "+81-6-7777-8757",
"foundingDate": "2026-05-01",
"founder": {
"@type": "Person",
"name": "坂本 康太"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "本庄東1-11-9 久野ハイツ1A",
"addressLocality": "大阪市北区",
"addressRegion": "大阪府",
"postalCode": "531-0074",
"addressCountry": "JP"
},
"sameAs": [
"https://www.instagram.com/gyuhiya/",
"https://maps.app.goo.gl/3yYAFPww9jwsFGVM6"
]
},
{
"@type": ["Store", "FoodEstablishment"],
"@id": "https://gyuhiya.com/#store",
"name": "求肥屋 天六店",
"parentOrganization": { "@id": "https://gyuhiya.com/#organization" },
"url": "https://gyuhiya.com/",
"telephone": "+81-6-7777-8757",
"servesCuisine": "和菓子",
"priceRange": "¥¥",
"currenciesAccepted": "JPY",
"address": {
"@type": "PostalAddress",
"streetAddress": "本庄東1-11-9 FOODBASE天六",
"addressLocality": "大阪市北区",
"addressRegion": "大阪府",
"postalCode": "531-0074",
"addressCountry": "JP"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 34.7117015,
"longitude": 135.5089722
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday"
],
"opens": "12:00",
"closes": "18:00"
}
]
}
]
}
</script>
①住所:現在、会社(Organization)は「久野ハイツ1A」、店舗(Store)は「FOODBASE天六」で書き分けています。
両者が同じ建物である場合は、どちらか一方の表記に統一してください。
②sameAs のURL:現在はInstagramとGoogleマップのみです。
今後Yahoo!プレイス・Apple・食べログ等へ登録した際は、そのURLをこの配列に追記してください。ここが情報を束ねる中心になります。
③緯度経度:Googleマップの登録位置から取得した値です。店舗の実際の位置が異なる場合は修正してください。
Step 3
商品ページのテンプレート(sections/main-product.liquid など、商品ページを描画しているファイル)の末尾に貼り付けます。
Shopifyの変数を使っているため、商品ごとに書き分ける必要はありません。1つ入れれば全商品に反映されます。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"@id": {{ request.origin | append: product.url | json }},
"name": {{ product.title | json }},
"description": {{ product.description | strip_html | truncate: 400 | json }},
"image": [
{%- for image in product.images limit: 5 -%}
{{ image | image_url: width: 1200 | prepend: "https:" | json }}
{%- unless forloop.last -%},{%- endunless -%}
{%- endfor -%}
],
"brand": {
"@type": "Brand",
"name": "求肥屋"
},
"category": "和菓子 / プリン",
"manufacturer": { "@id": "https://gyuhiya.com/#organization" },
"offers": {
"@type": "Offer",
"url": {{ request.origin | append: product.url | json }},
"price": {{ product.price | divided_by: 100.0 | json }},
"priceCurrency": "JPY",
"availability": {%- if product.available -%}
"https://schema.org/InStock"
{%- else -%}
"https://schema.org/OutOfStock"
{%- endif -%},
"seller": { "@id": "https://gyuhiya.com/#organization" },
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": 1400,
"currency": "JPY"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "JP"
}
},
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "JP",
"returnPolicyCategory":
"https://schema.org/MerchantReturnNotPermitted"
}
}
}
</script>
①価格の単位:Shopifyは金額を「銭」単位(100倍)で保持しています。divided_by: 100.0 はそのための変換です。消さないでください。
②返品ポリシー:冷凍生菓子のため「お客様都合の返品不可」を MerchantReturnNotPermitted として記述しています。特商法の記載と一致させています。
③レビューについて:現在サイトにレビュー機能がないため、評価(aggregateRating)は入れていません。
実在しない評価を書くとGoogleの手動対策(ペナルティ)の対象になります。レビュー機能を導入した際に追加してください。
Step 4
トップページのテンプレート(templates/index.json で読み込まれるセクション、または sections/ 内のトップ用ファイル)の末尾に貼り付けます。
構造化データに書いてよいのは、実際にページ上に表示されている内容だけです。 下記の質問はすべて、現在のトップページ(食べ方・賞味期限・店舗情報)に記載がある内容から作成しています。 ページに無い内容を足す場合は、本文にもその記述を追加してください。
ここに記載した6問は、別紙「GBP初期構築 実装案」のFAQ12問のうち、 公式サイトの記載だけで回答が確定している分です。 残る6問(店舗の場所、のし・包装、予約、イートイン、支払い方法など)は、 ヒアリングシートのご回答が確定してから追加します。追加分はこちらからご連絡します。
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "求肥プリンとは、どんなお菓子ですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "もち米からつくる求肥と、なめらかなプリンを重ねた新しいお菓子です。すくうと絹のようにのびる食感が特徴で、和菓子でも洋菓子でもない口あたりが楽しめます。海外では mochi pudding としてご紹介しています。"
}
},
{
"@type": "Question",
"name": "どうやって食べるのがおすすめですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "解凍の仕方で2通りの味わいがあります。冷蔵庫で8時間以上おくともっちりとよくのびる食感に、そこから常温に30〜45分おくといちばんよく伸びる頃合いです。湯煎の場合は弱火で15分あたためると、とろりとなめらかな口どけになります。"
}
},
{
"@type": "Question",
"name": "賞味期限はどのくらいですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "冷凍保存の場合、製造日から30日です。解凍後は冷蔵解凍なら48時間以内、湯煎解凍なら温かいうちにお召し上がりください。"
}
},
{
"@type": "Question",
"name": "店頭では単品で買えますか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "はい。天六の店頭ではみたらし・黒ごま・あんこを単品でお求めいただけます。オンラインショップでの販売は3種セットのみとなります。"
}
},
{
"@type": "Question",
"name": "全国に発送してもらえますか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "はい。佐川急便の飛脚クール便(冷凍)でお届けします。送料はお届け地域により1,400円からで、商品代金10,000円以上のお買い上げで送料無料です。ご注文確認後、5営業日以内に発送いたします。"
}
},
{
"@type": "Question",
"name": "アレルギー物質は含まれますか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "商品によって異なります。みたらしは小麦・乳成分・ごま・大豆、黒ごまは乳成分・ごま、あんこは乳成分・オレンジ・ごまを含みます。3種セットにはこれらすべてが含まれます。"
}
}
]
}
</script>
Step 5
実装後、下記2つのツールで確認してください。どちらも無料で、URLを入れるだけです。
| ツール | 見るところ |
|---|---|
| リッチリザルトテスト Google公式 |
「検出された項目」に 商品 よくある質問 が表示されればOK。エラー(赤)が0件であることを確認してください。警告(黄)は任意項目なので残っていて構いません。 |
| Schema Markup Validator | Organization Store Product FAQPage がすべて認識され、エラーが出ていないこと。 |
価格が236000のように100倍で出る → divided_by: 100.0 が抜けています。
JSONの構文エラーが出る → 商品説明文に引用符(")が含まれている可能性があります。上記コードは | json フィルタで自動的に処理していますが、この記述を外すと壊れます。
何も検出されない → 貼り付け位置が </head> の外側、またはLiquidのコメント内に入っている可能性があります。ページのソースを表示して application/ld+json で検索してみてください。
Caution
Advice
構造化データの調査にあたって公式サイトを拝見した際に気づいた点です。 いずれも今回の作業範囲には含まれませんが、Claude Codeで対応できる軽微なものばかりですので、 お時間のあるときにご検討ください。効果の大きい順に並べています。
検索結果でタイトルの下に表示される説明文が、1ページも設定されていません。 現状はGoogleが本文から自動で抜き出しているため、意図しない箇所が表示される可能性があります。 トップページ・商品ページ・ブランドページの3つだけでも設定する価値があります。
<meta name="description" content="{%- if page_description -%}
{{ page_description | escape }}
{%- elsif template.name == 'product' -%}
{{ product.description | strip_html | truncate: 120 | escape }}
{%- else -%}
求肥とプリンを重ねた「のびるプリン」の専門店。大阪・天六の店頭とオンラインでお求めいただけます。北新地の日本料理人・政次由宇監修。
{%- endif -%}">
※ Shopifyの管理画面(商品・ページごとの「検索エンジン用リスティング」)から個別に設定した内容が、page_description として優先的に使われます。
現在、サイトのURLをLINEやInstagram、X などで共有しても、画像もタイトルも表示されません。 商品の見た目が強みのブランドなので、ここは実装効果が大きい箇所です。
<meta property="og:site_name" content="求肥屋">
<meta property="og:type" content="{% if template.name == 'product' %}product{% else %}website{% endif %}">
<meta property="og:title" content="{{ page_title | escape }}">
<meta property="og:url" content="{{ canonical_url }}">
<meta property="og:description" content="{{ page_description | default: shop.description | escape }}">
{%- if template.name == 'product' and product.featured_image -%}
<meta property="og:image" content="https:{{ product.featured_image | image_url: width: 1200 }}">
{%- else -%}
<meta property="og:image" content="https://gyuhiya.com/cdn/shop/files/Shopify.jpg">
{%- endif -%}
<meta name="twitter:card" content="summary_large_image">
Shopifyの商品データを確認したところ、販売元が「マイストア」という初期値のままになっています。 この値は構造化データのブランド名としても使われるため、「求肥屋」へ変更してください。 管理画面の商品編集ページから、コード不要で変更できます。
商品の登録名が「求肥プリン みたらし」(全角スペース)と「求肥屋プリン あんこ/黒ごま」(半角スペース)で分かれており、 トップページの表示(求肥プリン ◯◯)とも一致していません。 検索エンジンとAIが同一商品と認識しにくくなるため、「求肥プリン ◯◯」への統一をおすすめします。
単品3種には原材料・アレルギー・栄養成分の記載がありますが、3種セットの商品ページには記載がありません。 3種を合わせると 小麦・乳成分・ごま・大豆・オレンジ を含みます。 食品表示の観点からも、AIが正確に回答するためにも、追記を強くおすすめします。
全商品の重量が 0g のまま登録されています。現在は地域別の固定送料で運用されているため実害はありませんが、 配送料の自動計算に切り替える場合や、海外発送の通関書類の自動生成では必要になります。
/blogs/ニュース というブログがすでに用意されていますが、記事は0件です。
生成AIに引用されるうえで最も効くのは記事本文の質と量のため、ここは大きな伸びしろです。
素材のこと、監修者のこと、食べ方、贈りものとしての使われ方など、書ける題材は十分にあります。
※ 記事の執筆は今回の対応範囲外ですが、Claude Codeで下書きを作成し、求肥屋様のお言葉で仕上げていく形が現実的かと思います。
After
実装が完了しましたらお知らせください。こちらでも検証し、あわせて Google Search Console でのインデックス登録をリクエストします。 構造化データが検索結果に反映されるまでには、通常数日から2週間程度かかります。