1 / 1
画像:1/1
{** ============================================================ 1. 基本メタ — charset は
先頭 1024 byte 以内必須(WHATWG)。 referrer: strict-origin-when-cross-origin(2021 以降ブラウザ既定・EC 最適、計測も維持)。 msvalidate.01: Bing Webmaster 認証(AI 検索=Copilot/ChatGPT の索引元。head 内・重複禁止)。 theme-color / color-scheme: モバイル UI ブランド統一・ダークモード誤反転防止。 ============================================================ **}> <{** ============================================================ 2. Resource Hints — preconnect は重要 origin 3〜4 個に限定(Algolia / jsdelivr / 画像 file002)。 計測・FA 等の二次 origin は dns-prefetch。crossorigin は CORS 必要 origin のみ。 ============================================================ **}> <{** ============================================================ 3. Cookiebot Consent SDK(Phase M-T1-8)— 計測タグより「前」に置き auto-blocking を効かせる。 ─ CBID は Cookiebot Dashboard の GUID。未設定時は free251 内で SDK load skip。 ─ 規制対応: 改正電気通信事業法(外部送信規律) / GDPR / APPI。 ─ 本セクション以降のマーケタグ(§9)は本 SDK の同意判定で gating される前提。 ─ 参考: docs/operations/cookiebot-setup.md ============================================================ **}> <{assign var="gpd_cookiebot_cbid" value=""}> <{assign var="gpd_cookiebot_lang" value="auto"}> <{assign var="gpd_cookiebot_block" value="auto"}> <{assign var="gpd_consent_api_url" value=""}> <{include file="$my_tpl/free251.tpl"}> <{** ============================================================ 4. Critical preload(LCP / INP 短縮)— 全ページで使う Swiper + Algolia 一式。 実 <{** ============================================================ 6. アイコン / スライダー CSS ─ Font Awesome: 旧 4.0.3(netdna.bootstrapcdn=廃止 CDN) → cdnjs FA6.5.1 + v4-shims(async)。 v4-shims でレガシー `fa fa-` クラスの後方互換を維持。render-blocking 回避のため preload→onload。 ─ css.gg: 商品詳細の .gg-chevron-double-right-o で使用(維持)。 ─ bxSlider CSS: free17(TOP キービジュアル)で使用。JS 版数(jsdelivr 4.2.12)に CSS を統一。 ============================================================ **}> <{** ============================================================ 7. レガシーサイト JS(自社ホスト) ─ lazysizes: free222(画像最適化) / free224(ブランドロゴ data-src) の遅延読込で使用(async・維持)。 将来ネイティブ loading=lazy へ移行予定(free222 被覆確認後)。 ─ SOPScript: 自社カスタム(用途未確定のため保守的に維持)。 ============================================================ **}> <{** ============================================================ 8. SEO 索引制御 (canonical + robots) — 設計原則 v1.0 第 3 章 / docs/operations/seo-indexing-policy.md ─ 索引許可ホワイトリスト: top / cate(cbid+csbid) / grp(gid) / product(pid)。 ─ 子テンプレ(商品一覧.tpl の CollectionPage 等)は $seo_canonical を参照(未定義時は自動 fallback)。 ============================================================ **}> <{assign var="seo_base" value="https://grandpasdedeux.com"}> <{assign var="seo_mode" value=$smarty.get.mode|default:""}> <{assign var="seo_canonical" value=""}> <{assign var="seo_noindex" value=false}> <{** ファセット/並び/ページ等の「索引対象外パラメータ」が 1 つでも存在するか **}> <{assign var="seo_extra_params" value=false}> <{if $smarty.get.q ne "" || $smarty.get.keyword ne "" || $smarty.get.brand ne "" || $smarty.get.category ne "" || $smarty.get.color_group ne "" || $smarty.get.audience ne "" || $smarty.get.sort ne "" || $smarty.get.sale ne "" || $smarty.get.stock ne "" || $smarty.get.tag ne "" || $smarty.get.page ne "" || $smarty.get.price_min ne "" || $smarty.get.price_max ne ""}> <{assign var="seo_extra_params" value=true}> <{/if}> <{if $tpl_name eq "top"}> <{assign var="seo_canonical" value="`$seo_base`/"}> <{elseif $seo_mode eq "srh"}> <{** 検索結果ページは全変種 noindex(curated コンテンツ無し・home の検索機能と機能的重複・ Google + Lumar / MoreVisibility / Inflow が一致して「内部検索は noindex」を推奨)。 canonical は出力しない(索引除外を優先)。詳細は seo-indexing-policy.md §E-E-A-T。 **}> <{assign var="seo_noindex" value=true}> <{elseif $seo_mode eq "cate" && $smarty.get.cbid ne ""}> <{capture name="seo_cate_canon"}><{$seo_base}>/?mode=cate&cbid=<{$smarty.get.cbid|escape:"url"}><{if $smarty.get.csbid && $smarty.get.csbid ne "0"}>&csbid=<{$smarty.get.csbid|escape:"url"}><{/if}><{/capture}> <{assign var="seo_canonical" value=$smarty.capture.seo_cate_canon}> <{if $seo_extra_params}><{assign var="seo_noindex" value=true}><{/if}> <{elseif $seo_mode eq "grp" && $smarty.get.gid ne ""}> <{capture name="seo_grp_canon"}><{$seo_base}>/?mode=grp&gid=<{$smarty.get.gid|escape:"url"}><{/capture}> <{assign var="seo_canonical" value=$smarty.capture.seo_grp_canon}> <{if $seo_extra_params}><{assign var="seo_noindex" value=true}><{/if}> <{elseif $tpl_name eq "product" && $smarty.get.pid ne ""}> <{capture name="seo_prod_canon"}><{$seo_base}>/?pid=<{$smarty.get.pid|escape:"url"}><{/capture}> <{assign var="seo_canonical" value=$smarty.capture.seo_prod_canon}> <{elseif $seo_mode eq "cart" || $seo_mode eq "member" || $seo_mode eq "order" || $seo_mode eq "favorite" || $seo_mode eq "login" || $seo_mode eq "f180"}> <{** カート / 会員 / 注文 / お気に入り / ログイン は低価値ページとして全変種 noindex。 canonical は出力しない(個人情報・購入動線は SERP に出さない EC ベストプラクティス)。 **}> <{assign var="seo_noindex" value=true}> <{/if}> <{if $seo_canonical ne ""}> "> <{/if}> <{** robots: index 対象に max-image-preview:large(Google Discover / リッチ画像 / AI Overview の画像引用に必須) + max-snippet:-1 / max-video-preview:-1。noindex 対象は noindex,follow(内部リンクの商品発見性を維持)。 **}> <{if $seo_noindex}> <{else}> <{/if}> <{** ============================================================ 9-A. meta description + OGP + Twitter Card(ページ別に動的最適化、未指定は全社 fallback) ※ title 要素は ColorMe「検索エンジン対策」ネイティブ枠で設定($page_title 機構)。 ============================================================ **}> <{assign var="seo_site_name" value="グランパドドゥ"}> <{assign var="seo_default_description" value="バレエ・ダンス用品の総合専門店「グランパドドゥ」。レオタード・バレエシューズ・トゥシューズ・スカート・ウェア・タイツ・小物まで、初心者からプロまで国内外正規ブランドを取り揃え。大阪実店舗 + 全国通販対応。"}> <{assign var="seo_default_image" value="https://file002.shop-pro.jp/PA01295/454/img/logo.png"}> <{assign var="seo_description" value=$seo_default_description}> <{assign var="seo_image" value=$seo_default_image}> <{assign var="seo_og_type" value="website"}> <{assign var="seo_image_alt" value=$seo_site_name}> <{if $tpl_name eq "product" && $product.name ne ""}> <{capture name="seo_prod_desc"}><{$product.name|strip_tags|truncate:120}>。<{$seo_site_name}>で取扱中のバレエ用品。送料・在庫・サイズ詳細はこちらからご確認いただけます。<{/capture}> <{assign var="seo_description" value=$smarty.capture.seo_prod_desc}> <{assign var="seo_image_alt" value=$product.name|strip_tags}> <{if $product.image_url ne ""}> <{assign var="seo_image" value=$product.image_url}> <{/if}> <{assign var="seo_og_type" value="product"}> <{elseif $seo_mode eq "cate" && $smarty.get.cbid ne ""}> <{** cbid 別 description: 主要カテゴリは KW 密度・購入意図を反映した固有文を生成。未指定 cbid は総合 fallback。 **}> <{if $smarty.get.cbid eq "1809273"}> <{capture name="seo_cate_desc"}>バレエ用レオタード一覧 | <{$seo_site_name}>。レッスン用シンプルからコンクール・舞台用エレガントまで、ノースリーブ・半袖・長袖・ユニタード幅広く品揃え。Mirella / Capezio / Wear Moi 等正規取扱。ジュニア〜大人サイズ対応。<{/capture}> <{elseif $smarty.get.cbid eq "1809245"}> <{capture name="seo_cate_desc"}>トゥシューズ (ポアントシューズ) 一覧 | <{$seo_site_name}>。Grishko / GAYNOR MINDEN / Bloch / Sansha 等の正規ブランドを初心者ソフトからプロハードまで網羅。延べ 5 万件超のフィッティング実績で最適な一足をご案内。<{/capture}> <{elseif $smarty.get.cbid eq "1809271"}> <{capture name="seo_cate_desc"}>バレエシューズ一覧 | <{$seo_site_name}>。フルソール・スプリットソール、布製・サテン・革製まで、入門者からプロ仕様まで幅広く取扱。ジュニアからメンズサイズまで対応、サイズ相談無料。<{/capture}> <{elseif $smarty.get.cbid eq "1809272"}> <{capture name="seo_cate_desc"}>ジャズシューズ・ジャズスニーカー一覧 | <{$seo_site_name}>。Sansha / Bloch / カペジオ 等のジャズダンス専用シューズを取扱。レッスンから舞台まで対応する柔軟性とフィット感。<{/capture}> <{elseif $smarty.get.cbid eq "1809278"}> <{capture name="seo_cate_desc"}>バレエタイツ・アンダーウェア一覧 | <{$seo_site_name}>。フットレス・コンバーチブル・フルフット、ピンク・スキン・ブラック各色を取扱。発表会・コンクール・レッスン用、ジュニア〜大人サイズ。<{/capture}> <{elseif $smarty.get.cbid eq "2357892"}> <{capture name="seo_cate_desc"}>バレエバッグ・小物・アクセサリー一覧 | <{$seo_site_name}>。シューズバッグ・トートバッグ・ボディスーツケアグッズ・ヘアアクセサリーまで、レッスン日常使いから発表会まで対応。<{/capture}> <{else}> <{capture name="seo_cate_desc"}>バレエ用品カテゴリー別商品一覧 | <{$seo_site_name}>。レオタード・バレエシューズ・トゥシューズ・タイツ・スカート・小物まで、国内外正規ブランド (Grishko / Mirella / GAYNOR MINDEN 等) を品揃え。<{/capture}> <{/if}> <{assign var="seo_description" value=$smarty.capture.seo_cate_desc}> <{elseif $seo_mode eq "grp" && $smarty.get.gid ne ""}> <{capture name="seo_grp_desc"}>バレエ用品ブランド別商品一覧 | <{$seo_site_name}>。Grishko / Mirella / GAYNOR MINDEN / Bloch / Capezio / Sansha 等、海外バレエ用品メーカー正規取扱店として、ブランド・型番から商品をお探しいただけます。<{/capture}> <{assign var="seo_description" value=$smarty.capture.seo_grp_desc}> <{/if}> <{assign var="seo_og_url" value=$seo_base}> <{if $seo_canonical ne ""}> <{assign var="seo_og_url" value=$seo_canonical}> <{/if}> <{if $seo_og_type eq "product"}> <{/if}> <{** ============================================================ 9-B. マーケティング計測タグ(Cookiebot 同意 SDK §3 の後ろに配置 → auto-block 対象) ⚠ ピクセル ID は公開クライアント識別子(機微情報ではない)。 ⚠ 法令(改正電気通信事業法/GDPR)対応の本筋は GTM 一元化 + Consent Mode v2(@todo)。 現状は Cookiebot auto-blocking で同意前発火を抑止する前提。クローンで発火タイミング要確認。 ─ Google Ads (AW-959400080) / Facebook Pixel (297460668599968) / Twitter Pixel (o82ye) / KARTE ─ <{literal}> <{/literal}> <{* Twitter (X) Pixel *}> <{literal}> <{/literal}> <{* Facebook (Meta) Pixel *}> <{literal}> <{/literal}> <{* KARTE (CX / パーソナライゼーション。free165 等が karte イベントを送信) *}> メインコンテンツへ