TASK: gyuhiya.com サイト修正(タイトル・説明文・OGP・アクセス情報・構造化データ)

このファイルはAIコーディングエージェント(Claude Code等)が読んで実行するための指示書です。 人が読む用の解説は https://gyuhiya-meo.pages.dev/meo-manual にあります。


0. あなたへの指示(最初に必ず読む)

あなたはこのリポジトリで Phase 2 のタスクA〜D だけ を実行します。(タスクEは「実施しない」が結論です。理由はタスクEの節を読んでください)

やること

  1. Phase 1 の探索を必ず先に行う。 このファイルにはファイルパスの推定が書いてありますが、推定です。 実際にどのファイルに何があるかは、あなたが grep で確認してから判断してください。
  2. タスクA〜Dを、受入条件を満たすまで実装する。タスクEは実装しない。
  3. Phase 3 の検証スクリプトを実行し、PASS/FAIL を確認する。
  4. Phase 4 の形式で報告する。

絶対にやってはいけないこと

禁止 理由
main ブランチで直接作業する GitHub連携テーマのため、pushが即本番反映されます
既存の構造化データ(JSON-LD)を書き換える・消す Organization / Store / Product / ShippingService / MerchantReturnPolicy は実装済みで正常動作中です。追記のみ可
{% schema %} の内側にコードを入れる テーマが壊れます。入れるなら必ず直上
既存の og: タグを残したまま新しい og: タグを追加する 二重出力になります。タスクAの手順に従ってください
aggregateRating / review を追加する クチコミが0件です。虚偽の申告になりGoogleの手動対策の対象です
shopify theme push / shopify theme dev で本番テーマを直接更新する 経路はgitの1本に固定します
ページ本文に無い情報を構造化データに書く スパム判定の対象です
確認できない値を推測で埋める 停止して報告してください
検証せずに「完了」と報告する Phase 3 の実行結果を必ず添えてください

停止条件(下記に当たったら、実装を中断して報告する)

停止は失敗ではありません。 推測で進めて誤った実装をするより、止めて確認するほうが望ましい対応です。


1. このタスクの範囲

範囲内(あなたが実装する)

タスク 内容
A OGP(SNS共有時の表示)を全ページで正しく出力する
B アクセス情報(最寄駅・徒歩分数)をページ本文に追加する
C Store の構造化データに geo(緯度経度)を追記する
D WebSiteBreadcrumbList の構造化データを追加する
E robots.txt にAIクローラーの方針を明記🛑 実施しない(理由はタスクEの節)

範囲外(あなたは実行しない)

項目 理由 対応
ページのタイトル・説明文(meta description)の設定 Shopify管理画面のデータで、テーマコードでは変更できません(theme.liquid{{ page_title }} という入れ物を出力しているだけ) 付録Aをそのまま出力して、オーナーに渡してください
OGP画像そのものの差し替え 画像ファイルのアップロードが必要 付録Aに記載
店名(Storename)の統一 実際の看板の表記を確認しないと決められません 付録Bを出力
構造化データの作り直し すでに実装済みで正常です 触らない

2. Phase 0:作業の準備

git clone <リポジトリURL>
cd gyuhiya-hp
git switch -c site-fix-202608

確認:

git branch --show-current   # → site-fix-202608 であること(main なら中断)

⚠️ 作業中は Shopify管理画面の「コードを編集」を開かないでください。 GitHub連携テーマでは管理画面の編集が自動的にGitHubへコミットされ、警告なしにローカルの変更を上書きします。


3. 現状(2026-08-29 15:00 実測)

この値と実際が食い違う場合は S-2(停止条件)です。

3-1. OGPタグの出力状況 — ページごとにバラバラです

トップ (/)                    : og:site_name, og:type, og:title, og:description,
                                og:url, og:image, twitter:card/title/description/image
                                → フルセットあり ✅

商品 (/products/求肥プリン3種セット) : og:image, og:image:secure_url, og:image:width,
                                og:image:height, og:image:alt のみ
                                → og:title / og:description / og:url / og:type が欠落 🔴

会社概要 (/pages/company)      : og: タグが1つもない 🔴
ブランド (/pages/brand)        : 同上 🔴
お問い合わせ (/pages/contact)  : 同上 🔴
商品一覧 (/collections/frontpage): 同上 🔴
ブログ (/blogs/ニュース)        : 同上 🔴

🔴 重要:この分布は「OGPが theme.liquid の共通headに無い」ことを示しています。 トップだけフルセットがあるので、トップ用のテンプレートかセクションに個別に書かれている可能性が高いです。 また商品ページの og:image/> で自己終了しており、トップとはコードの書き方が違います(=別の場所に書かれている)。

したがって「theme.liquid に追記する」だけでは、トップページで og:title が2つ出ます。 必ず Phase 1 で出力元を特定してから実装してください。

3-2. 構造化データ(すべて実装済み・触らない)

トップ  : Organization, Store+FoodEstablishment(@graph構造・@idで連結)
          MerchantReturnPolicy, ShippingService, OfferShippingDetails
商品    : Product(バリアント別Offer 4件・Shopifyの値から自動生成)
JSON-LDブロック数(トップ): 2
文法エラー: なし

未実装: WebSite(タスクD)/BreadcrumbList(タスクD)/geo(タスクC)

3-3. その他

NAP表記ゆれ  : 0件(住所・電話とも統一済み) ✅
robots.txt   : Shopify生成の116行。User-agent 2群・Disallow 50件・行頭スペース0行。
               冒頭にShopifyのエージェント商取引案内(agents.md / UCP / MCP)あり。
               AIクローラーのブロックは無し → 触らない(タスクE参照)
OGP画像      : 元は 1333 x 2000(縦長)。タスクAのcrop指定で 1200x630 になる(実測確認済み)
SEOアプリ    : 検出なし(=タグの出力元はテーマ内にあるはず)
アクセス情報 : 「天神橋筋六丁目」「11番出口」「徒歩」がサイト内に0件 🔴

4. Phase 1:探索(実装前に必ず実行)

結果をすべて記録してください。Phase 4 の報告に含めます。

# 1-1. OGPタグがどこに書かれているか
grep -rn "og:title\|og:image\|og:description\|og:url" --include="*.liquid" . | grep -v node_modules

# 1-2. metaタグを出すスニペットが呼ばれているか
grep -rn "meta-tags\|meta_tags\|render 'meta\|include 'meta" --include="*.liquid" .

# 1-3. headの構造
ls -la layout/
grep -n "</head>" layout/theme.liquid

# 1-4. 既存のJSON-LDの場所
grep -rn "application/ld+json" --include="*.liquid" .

# 1-5. 住所・営業時間が書かれている場所(タスクB用)
grep -rn "久野ハイツ\|営業時間\|531-0074" --include="*.liquid" --include="*.json" . | grep -v node_modules

# 1-6. robots.txtテンプレートの有無(タスクEは実施しないが、既存の有無だけ確認)
ls -la templates/robots.txt.liquid 2>/dev/null || echo "→ 未作成(タスクEは実施しないため、これで正常)"

判定

1-1の結果 対応
snippets/meta-tags.liquid 等の共通スニペットに集約されている そのファイルを編集する(タスクA-1)
layout/theme.liquid直書きされている そこを置き換える(タスクA-1)
トップ用セクション/テンプレートにだけ書かれている セクション側から削除し、theme.liquid に集約する(タスクA-2)
見つからない S-1で停止。 Shopify外部から注入されている可能性があり、重複の危険があります

5. Phase 2:実装

タスクA:OGPを全ページで正しく出力する

目的: 商品ページと下層5ページで、SNS共有時にタイトル・説明・画像が正しく出るようにする。

⚠️ 付録A(管理画面でのタイトル設定)との関係: このコードは page_title(=管理画面で設定したSEOタイトル)をそのまま og:title に使います。 付録Aが未実施でも動きますが、その場合は既定のタイトルが使われます。 付録Aを実施すると自動的にog:titleにも反映されるため、実装の順序は問いません。

A-1. 既存のOGPタグを特定して、削除する

Phase 1-1 で見つかった og: / twitter: のタグをすべて削除します。

A-2. 共通のOGPブロックを layout/theme.liquid</head> 直前に追加する

{%- comment -%} ===== OGP / Twitter Card(AMU 2026-08 追加・ここに集約) ===== {%- endcomment -%}

{%- comment -%}
  og:title は「管理画面で設定したSEOタイトル(= page_title)」をそのまま使います。
  こうしないと、付録Aでタイトルを設定したあとに
  「ブランドについて|大阪・天六の求肥屋|大阪・天六の求肥屋」のように語尾が重複します。
  未設定のページだけ、保険として店名を後置します。
{%- endcomment -%}
{%- if page_title != blank -%}
  {%- assign og_title = page_title -%}
{%- else -%}
  {%- assign og_title = '【公式】求肥屋|大阪・天六の求肥プリン専門店' -%}
{%- endif -%}
{%- unless og_title contains '求肥屋' -%}
  {%- assign og_title = og_title | append: '|大阪・天六の求肥屋' -%}
{%- endunless -%}

{%- if page_description != blank -%}
  {%- assign og_desc = page_description | strip_html | strip | truncate: 120 -%}
{%- else -%}
  {%- assign og_desc = 'もち米からつくる求肥となめらかなプリンを重ねた「求肥プリン」。大阪・天神橋筋六丁目の求肥屋から、冷凍で全国へお届けします。' -%}
{%- endif -%}

{%- comment -%}
  Shopify CDN の crop パラメータで、既存の縦長画像を 1200x630 に中央クロップしています。
  → 専用画像を用意しなくても、共有時の「上下が切れる」問題はこの時点で解消します(AMUで実測確認済み)。
  付録Aで専用の横長画像を用意した場合は、このURLを差し替えてください(crop指定は不要になります)。
{%- endcomment -%}
{%- assign og_fallback_url = 'https://gyuhiya.com/cdn/shop/files/set-box.jpg?v=1787210799&width=1200&height=630&crop=center' -%}
{%- assign og_fallback_w = '1200' -%}
{%- assign og_fallback_h = '630' -%}

<meta property="og:site_name" content="求肥屋">
<meta property="og:locale" content="ja_JP">
<meta property="og:url" content="{{ canonical_url }}">
<meta property="og:title" content="{{ og_title | escape }}">
<meta property="og:description" content="{{ og_desc | escape }}">
<meta property="og:type" content="{% if template.name == 'product' %}product{% elsif template.name == 'article' %}article{% else %}website{% endif %}">
{%- if template.name == 'product' and product.featured_image -%}
  {%- comment -%}
    🔴 重要:商品画像は縦長(1333x2000)です。そのまま渡すとSNS側で上下が切られるため、
    Shopifyの画像変換で 1200x630 に中央クロップします。crop指定を外さないでください。
  {%- endcomment -%}
  <meta property="og:image" content="https:{{ product.featured_image | image_url: width: 1200, height: 630, crop: 'center' }}">
  <meta property="og:image:width" content="1200">
  <meta property="og:image:height" content="630">
  <meta property="og:image:alt" content="{{ product.featured_image.alt | default: product.title | escape }}">
{%- else -%}
  <meta property="og:image" content="{{ og_fallback_url }}">
  <meta property="og:image:width" content="{{ og_fallback_w }}">
  <meta property="og:image:height" content="{{ og_fallback_h }}">
{%- endif -%}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ og_title | escape }}">
<meta name="twitter:description" content="{{ og_desc | escape }}">

twitter:image は書いていません。未指定時は og:image が使われるため、二重管理を避けています。

受入条件(A)


タスクB:アクセス情報をページ本文に追加する

目的: 「天神橋筋六丁目駅 11番出口から徒歩5分」がサイト内に1件も無いため追加する。 来店前に必ず調べられる情報であり、地域検索の手がかりにもなります。

手順

Phase 1-5 で見つかった、住所・営業時間を表示している箇所に1行追加します。

追加する文言(この通りに):

アクセス:Osaka Metro / 阪急 天神橋筋六丁目駅 11番出口から徒歩5分

分岐

Phase 1-5 の結果 対応
.liquid ファイル内にハードコードされている そこに追記する
config/settings_data.json にある 🔴 S-4で停止。 テーマ設定なのでコードで書き換えると管理画面と競合します。付録Cに手順を出力して人に渡してください
見つからない 店舗情報を表示しているセクションを探し、無ければ S-4 で報告

受入条件(B)


タスクC:Storegeo(緯度経度)を追記する

目的: 店舗の座標を明示する。値はGoogleビジネスプロフィールに登録されているピンと同一です(AMUで確認済み)。

Phase 1-4 で見つかった JSON-LD のうち、"@type": ["Store", "FoodEstablishment"] のオブジェクトに、 以下のキーを追記してください(hasMap の隣が分かりやすいです)。

"geo": {
  "@type": "GeoCoordinates",
  "latitude": 34.7117015,
  "longitude": 135.5089722
}

⚠️ 既存のキーは1つも変更しないでください。 追記のみです。 ⚠️ JSONのカンマ位置に注意してください。追記後に必ず構文チェック(Phase 3)を通してください。

受入条件(C)


タスクD:WebSiteBreadcrumbList を追加する

D-1. WebSite

既存の @graph 配列に、以下のオブジェクトを追加してください(Organization の隣)。

{
  "@type": "WebSite",
  "@id": "https://gyuhiya.com/#website",
  "url": "https://gyuhiya.com/",
  "name": "求肥屋",
  "inLanguage": "ja",
  "publisher": { "@id": "https://gyuhiya.com/#organization" }
}

potentialAction / SearchAction は入れないでください。 商品が1点のみでサイト内検索の実態がなく、 機能していない検索を申告することになります。

D-2. BreadcrumbList

商品ページのテンプレート(sections/main-product.liquid 等・Phase 1で特定)の {% schema %} の直上に追加してください。

{%- if template.name == 'product' -%}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "ホーム", "item": "https://gyuhiya.com/" },
    { "@type": "ListItem", "position": 2, "name": "商品一覧", "item": "https://gyuhiya.com/collections/frontpage" },
    { "@type": "ListItem", "position": 3, "name": {{ product.title | json }} }
  ]
}
</script>
{%- endif -%}

受入条件(D)


タスクE:robots.txt — 🛑 実施しないでください(2026-08-29 実測により方針変更)

当初は「AIクローラーへの許可を明記する」提案でしたが、本番の robots.txt を精査した結果、 実施すべきでないと判断しました。エージェントは何も実装せず、この節の内容を報告に含めてください。

理由1:効果がゼロ

現在の robots.txtAIクローラーを1つもブロックしていません。 robots.txt は「禁止」を書く仕組みなので、ブロックされていない相手に Allow: / を足しても動作は一切変わりません。

理由2:失うもののほうが大きい

本番の robots.txt116行あり、冒頭に Shopifyが自動生成しているエージェント商取引の案内が入っています。

# Agent instructions: https://gyuhiya.com/agents.md
# UCP discovery: https://gyuhiya.com/.well-known/ucp
# UCP/MCP endpoint: https://gyuhiya.com/api/ucp/mcp
# Agents should use UCP/MCP for catalog, cart, and checkout...

これは AIエージェントが商品を機械的に取得し、購入まで到達するための案内で、GEOの観点ではむしろ資産です。

templates/robots.txt.liquid を作ると出力を完全に自前で持つことになりますが、 robots.default_groups が返すのは User-agent とルールだけで、この見出しブロックは含まれません。カスタムテンプレートを作った時点で、この案内が消える可能性があります。

理由3:出力の劣化

Shopify公式のテンプレート例をそのまま使うと Disallow: 行に先頭スペースが入ります。 現在の本番出力は行頭スペースが0行なので、書式が劣化します (Googleのパーサーは許容しますが、わざわざ崩す理由がありません)。

例外:将来「AIに使わせたくない」と方針が変わった場合のみ

Disallow を書くには確かに robots.txt.liquid が必要になります。 ただし上記の見出しブロックが残るかを実機で確認しながら進める必要があるため、 このファイルでは実装せず、あらためてご相談ください。

受入条件(E)


6. Phase 3:検証

デプロイ後(プレビューURLまたは本番)に実行してください。

#!/bin/bash
# BASE をプレビューURLに変えて実行
BASE="https://gyuhiya.com"
UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/124.0 Safari/537.36"
PROD="/products/%E6%B1%82%E8%82%A5%E3%83%97%E3%83%AA%E3%83%B33%E7%A8%AE%E3%82%BB%E3%83%83%E3%83%88"
pass(){ printf "  PASS  %s\n" "$1"; }
fail(){ printf "  FAIL  %s (実測: %s)\n" "$1" "$2"; }
chk(){ # chk "ラベル" 実測値 期待値
  [ "$2" = "$3" ] && pass "$1" || fail "$1" "$2 / 期待 $3"; }
# 出現回数で数える(grep -c は行単位なので、タグが1行に詰まったテーマだと数え落とします)
cnt(){ printf '%s' "$1" | grep -o "$2" | wc -l | tr -d ' '; }

for p in "/" "$PROD" "/pages/brand" "/pages/company" "/pages/contact" "/collections/frontpage"; do
  H=$(curl -sL --max-time 25 -A "$UA" "$BASE$p")
  echo "=== $p"
  chk "og:title が1件"       "$(cnt "$H" 'property="og:title"')" "1"
  chk "og:description が1件" "$(cnt "$H" 'property="og:description"')" "1"
  chk "og:url が1件"         "$(cnt "$H" 'property="og:url"')" "1"
  chk "og:type が1件"        "$(cnt "$H" 'property="og:type"')" "1"
  chk "og:image が1件"       "$(cnt "$H" 'property="og:image"')" "1"
done

echo "=== トップ 固有"
H=$(curl -sL --max-time 25 -A "$UA" "$BASE/")
chk "JSON-LDが2ブロック"  "$(cnt "$H" 'application/ld+json')" "2"
chk "GeoCoordinates あり" "$(cnt "$H" 'GeoCoordinates')" "1"
chk "WebSite あり"        "$(cnt "$H" '"WebSite"')" "1"
chk "BreadcrumbList 無し" "$(cnt "$H" 'BreadcrumbList')" "0"
printf '%s' "$H" | grep -q "天神橋筋六丁目" && pass "アクセス情報あり" || fail "アクセス情報あり" "見つからない"
printf '%s' "$H" | grep -q "徒歩5分" && pass "徒歩5分あり" || fail "徒歩5分あり" "見つからない"
# 既存構造化データが壊れていないこと
for k in '"Organization"' '"ShippingService"' 'MerchantReturnPolicy' '久野ハイツ1A'; do
  printf '%s' "$H" | grep -q "$k" && pass "既存 $k 健在" || fail "既存 $k 健在" "消失"
done

echo "=== 商品ページ 固有"
H=$(curl -sL --max-time 25 -A "$UA" "$BASE$PROD")
chk "BreadcrumbList あり" "$(cnt "$H" 'BreadcrumbList')" "1"
printf '%s' "$H" | grep -q '"Product"' && pass "既存 Product 健在" || fail "既存 Product 健在" "消失"
printf '%s' "$H" | grep -q 'property="og:title"' && pass "商品のog:title あり" || fail "商品のog:title あり" "欠落"

echo "=== robots.txt(変更していないことの確認)"
R=$(curl -sL --max-time 20 "$BASE/robots.txt")
printf '%s' "$R" | grep -q "Sitemap:" && pass "Sitemap宣言 健在" || fail "Sitemap宣言 健在" "消失"
printf '%s' "$R" | grep -q "Disallow: /checkout" && pass "既定Disallow 健在" || fail "既定Disallow 健在" "消失"
printf '%s' "$R" | grep -q "UCP discovery" && pass "Shopifyのエージェント案内 健在" || fail "Shopifyのエージェント案内 健在" "消失(robots.txt.liquidを作った可能性)"
chk "行頭スペースの行が0" "$(printf '%s' "$R" | grep -c '^[[:space:]]\+')" "0"

JSON-LDの構文チェック

curl -sL -A "Mozilla/5.0" https://gyuhiya.com/ \
 | python3 -c "
import sys,re,json
h=sys.stdin.read()
for i,b in enumerate(re.findall(r'<script[^>]*application/ld\+json[^>]*>(.*?)</script>',h,re.S),1):
    try:
        json.loads(b.strip()); print(f'  PASS  JSON-LD #{i} 構文OK')
    except Exception as e:
        print(f'  FAIL  JSON-LD #{i} {e}')
"

公式ツール(最後に必ず)


7. Phase 4:報告フォーマット

この形式で報告してください。検証結果の貼り付けを省略しないでください。

■ Phase 1 探索結果
  OGPの出力元       : (ファイルパス:行番号/複数なら全部)
  JSON-LDの場所     : (ファイルパス:行番号)
  住所・営業時間の場所: (ファイルパス:行番号 / settings_data.json の場合はその旨)
  robots.txt        : 既存 / 新規作成
  3章の実測値との差異 : なし / あり(内容:            )

■ 削除した既存タグ(タスクA-1)
  (削除した行をそのまま貼る。無い場合は「なし」)

■ 実装
  A OGP            : 完了 / 未 / 停止(理由:        )
  B アクセス情報    : 完了 / 未 / 停止(理由:        )
  C geo            : 完了 / 未 / 停止(理由:        )
  D WebSite+Breadcrumb: 完了 / 未 / 停止(理由:        )
  E robots.txt     : 完了 / 未 / 停止(方針の指示待ち)

■ Phase 3 検証結果
  (スクリプトの出力をそのまま貼る)
  リッチリザルトテスト : エラー0件 / エラーあり(        )

■ 変更ファイル一覧
  (git diff --stat の出力)

■ 判断に迷った点・オーナーに確認が必要な点
  (あれば記載。無ければ「なし」)

■ 人の作業として残っているもの
  (付録A・B・Cのうち、該当するものを列挙)

付録A:Shopify管理画面での作業(エージェントは実行しない)

エージェントへ:この付録はあなたの作業ではありません。 報告の最後に、この付録をそのままオーナーへの引き継ぎとして出力してください。

A-1. 各ページのタイトルと説明文を設定する

現状:サイト全7ページのタイトルに「大阪」「天六」が一度も出てきません。 また brand(英語スラッグのまま)、ホームページ(商品一覧なのに)という設定漏れがあります。

操作場所: 管理画面 → オンラインストア → 各ページ → 一番下「検索エンジンでの表示を編集する」 (トップページのみ:オンラインストア → 各種設定 → 「検索エンジンでの表示を編集する」)

① トップページ

タイトル:【公式】求肥屋|大阪・天六の求肥プリン専門店

説明文:もち米からつくる求肥となめらかなプリンを重ねた「求肥プリン」。絹のようにのびる新食感を、大阪・天神橋筋六丁目の店舗と全国発送でお届けします。みたらし・黒ごま・あんこの3種。

② 商品ページ(求肥プリン)

タイトル:求肥プリン 3種セット|大阪・天六の求肥屋【公式】

説明文:大阪・天六の求肥屋がつくる「求肥プリン」3種セット(¥2,360・税込)。みたらし・黒ごま・あんこ。卵不使用、冷凍でお届け。手土産・ギフトにも。単品770円〜。

🔴 現在の説明文は本文の先頭がそのまま入っており(「冷凍でお届けします。冷蔵庫で8時間…」)、 長すぎて検索結果で切られ、商品名も価格も地名も表示されません。 ここは効果が大きい修正です。

③ ブランド /pages/brand

タイトル:ブランドについて|大阪・天六の求肥屋

説明文:「日本のおいしさに、あたらしい所作を。」求肥屋がなぜ求肥とプリンを重ねたのか、素材と製法についてご紹介します。

④ 会社概要 /pages/company

タイトル:会社概要|株式会社求肥屋(大阪市北区)

説明文:株式会社求肥屋の会社概要。所在地・代表者・事業内容をご案内します。大阪市北区本庄東、天神橋筋六丁目駅から徒歩5分。

⑤ お問い合わせ /pages/contact

タイトル:お問い合わせ|大阪・天六の求肥屋

説明文:求肥屋へのお問い合わせ。商品・ご注文・催事・お取り扱いに関するご相談を承ります。

⑥ 商品一覧 /collections/frontpage

タイトル:商品一覧|求肥プリン|大阪・天六の求肥屋

説明文:求肥屋の商品一覧。求肥プリン3種セット、みたらし・黒ごま・あんこの単品をご覧いただけます。

現在「ホームページ」というタイトルです。コレクション名自体の変更が必要な場合があります。

⑦ ブログ /blogs/ニュース

タイトル:お知らせ|大阪・天六の求肥屋

説明文:求肥屋からのお知らせ。新商品、催事出店、季節限定のご案内を掲載しています。

A-2. OGP画像(SNS共有画像)を差し替える

朗報:タスクAを実装した時点で、この問題は暫定的に解消します。 Shopifyの画像変換機能(crop=center)で、既存の写真を自動的に 1200×630 に切り出すようにしたためです。 AMU側で実際に切り出して確認したところ、掛け紙の「求肥屋」が大きく入る良い構図になりました。 下記は「さらに良くしたい場合」の作業です。急ぎではありません。

現状:元画像は 1333 × 2000 の縦長。 LINE・X・Facebookは横長(約1.91:1)に切り取ります。 自動クロップは中央を切り出すため構図は選べません。意図した構図にしたい場合のみ、専用画像をご用意ください。

必要なサイズ:1200 × 630 ピクセル(横長)
形式        :JPGまたはPNG/1MB以下が望ましい
内容        :商品が横位置で収まるもの。文字を入れる場合は中央寄せ

手順: 管理画面 → コンテンツ → ファイル にアップロード → URLをコピー → layout/theme.liquidog_fallback_url / og_fallback_w / og_fallback_h を差し替え(開発担当へ依頼)

画像はAMU側でご用意できます。 既存の商品写真から1200×630版を作成してお渡しできますので、ご連絡ください。


付録B:店名の統一(判断が必要・実装しない)

現在3通りに割れています。

場所 表記
Googleビジネスプロフィール 求肥専門店“求肥屋”
構造化データ Storename 求肥屋 天六店
構造化データ Organizationname 株式会社求肥屋

店名はGoogleが「同じ店だ」と判定する軸です。割れていると結びつきが弱まります。

決め方:実際の看板・入口の表記に合わせてください。 Googleのガイドラインでは、ビジネス名は現実世界で使われている名称であることが求められます。

Organization株式会社求肥屋(法人名)なのは正しいので変更不要です。揃えるのは Store です。


付録C:テーマ設定にアクセス情報がある場合(S-4のとき)

住所・営業時間が config/settings_data.json にある場合、コードで直すと管理画面と競合します。

管理画面 → オンラインストア → テーマ → カスタマイズ から、 住所・営業時間を表示しているセクションを開き、以下の1行を追加してください。

アクセス:Osaka Metro / 阪急 天神橋筋六丁目駅 11番出口から徒歩5分

付録D:今回やらないこと(次のフェーズ・優先度順)

  1. ブログ記事の追加/blogs/ニュース は記事0件。AI検索に引用されるうえで最も効くのは記事本文の質と量なので、最大の伸びしろです
  2. FAQページの新設 — 本文にFAQを載せたうえで FAQPage 構造化データを入れます。本文なしで構造化データだけ入れるのはガイドライン違反です(順序を逆にしないこと)
  3. 多言語対応(英・韓・繁中) — 現在サイトは日本語のみ。GBPは4言語化済みなので、/en/ 等の独立URL+hreflang で対応するとインバウンドを取り込めます
  4. 商品重量の登録 — 全商品0g。現在は地域別固定送料なので実害はありませんが、送料自動計算に切り替える際に必要です