こんにちは、もっつーです!
Shopifyで多言語サイトを運営していると、こんな悩みはありませんか?
「英語版にはある専門ページを、日本語版では非表示にしたい」
「特定の言語でだけ、このメニュー項目を消したい」
実はShopifyの標準機能や公式翻訳アプリ「Translate & Adapt」には、「特定の言語の時だけページやメニューを消す」という機能がありません。

この画像のように、公式翻訳アプリには『翻訳を入力する欄』はありますが、
『特定の言語だけページを非表示にする(ON/OFFする)』というスイッチはどこにもありません。
もちろん、デフォルト言語である日本語のページ自体を消してしまうと、翻訳元がなくなるため英語版のページも消えてしまいます。
そこで今回は、アプリを一切使わず、
テーマコード(Liquid)を少し書き換えるだけで、特定の言語の時だけページやメニューを「消す」カスタマイズ方法を公開します。
この記事でわかること
- 言語判定(Liquid)を使って表示を制御する方法
- 日本語版だけページをトップへリダイレクトさせる方法
- メニューから特定の項目だけを隠すCSSテクニック
- トップページの特定セクション(バナー等)だけを非表示にする方法
- 【SEO対策】検索エンジンに日本語版のページをインデックスさせない方法
もくじ
実装の全体像
今回行うのは「物理的にページを消す」のではなく、「ユーザーがアクセスした言語を判定して、特定の条件なら非表示にする」というアプローチです。
- アクセス制御: 日本語環境でのアクセスなら、特定のページをトップへ飛ばす。
- メニュー制御: 特定のメニューを日本語環境でのみCSSで隠す。
- SEO制御: 日本語ページが検索に出ないよう noindex を設定する。
【STEP1】アクセス制御とSEO対策(リダイレクト)
まずは、特定のページに日本語版でアクセスされた場合、自動的にトップページへ戻す設定を行います。
テーマのコード編集画面から layout/theme.liquid を開き、</head> の直前に以下のコードを貼り付けます。
{% if request.locale.iso_code == 'ja' %}
{% if page.handle == '対象ページA' or page.handle == '対象ページB' %}
<meta name="robots" content="noindex">
<script>window.location.href = '/';</script>
<style>body { display:none !important; }</style>
{% endif %}
{% endif %}※ 対象ページ の部分は、URLの末尾(ハンドル)に書き換えてください。
これで、万が一URLを直接叩かれても、日本語版なら強制的にトップへ戻り、かつGoogle検索にもヒットしなくなります。
【STEP2】メニューから特定の項目を消す
メニュー(ヘッダー・フッター)から項目を消すには、CSSを使います。同じく theme.liquid の <style> タグの中に追記します。
{% if request.locale.iso_code == 'ja' %}
<style>
/* 指定したリンクへのメニュー項目を非表示にする */
a[href*="/pages/対象ページA"],
a[href*="/pages/対象ページB"] {
display: none !important;
}
/* 親メニューごと消したい場合はクラス名を指定 */
.navmenu-id-販売代理店一覧 {
display: none !important;
}
</style>
{% endif %}※ クラス名はブラウザの「検証」機能で確認してください。

【STEP3】トップページの一部セクションを言語ごとに非表示にする
トップページは「顔」ですが、キャンペーンや研究内容など、「日本市場だけで見せたい(あるいは隠したい)」セクションが混在することもありますよね。
Shopifyのセクションは、Liquidコード(theme.liquid)からIDを指定して非表示にすることで、特定の言語でのみ隠すことができます。
1. 消したいセクションのIDを調べる
トップページをブラウザ(Google Chrome)で開き、消したいセクションの上で 右クリック > 検証 を選択します。
HTMLコードを少し上に遡ると、以下のような id が見つかります。
例:
id="shopify-section-template--24412494299437__dynamic_slideshow"
この長い文字列をすべてメモしておきましょう。

2. CSSで非表示にする
調査したIDを使い、以下のコードを先ほどの <style> タグの中に追加します。
{% if request.locale.iso_code == 'ja' %}
<style>
{% if template == 'index' %}
/* トップページの特定セクションを日本語の時だけ非表示にする */
#shopify-section-template--24412494299437__dynamic_slideshow {
display: none !important;
}
{% endif %}
</style>
{% endif %}ここがポイント!
- {% if template == 'index' %}:これが「トップページ限定」という指示です。
- IDをカンマで繋げれば、複数のセクションを一括で消すことも可能です。
- これを使えば、「特定の言語だけバナーを消す」「期間限定のセクションを日本だけ隠す」といった柔軟な運用が誰でもできるようになります!
実装時の注意点
- キャッシュに注意:
反映されない場合はブラウザのキャッシュが原因です。シークレットモードで確認しましょう。 - スマホメニューへの対応:
スマホのハンバーガーメニューなどは独自のクラス名を持っていることが多いです。
PCで消えてもスマホで残る場合は、スマホ用のクラスを探してCSSを追加してください。 - 検証は全言語で:
修正後は必ず「日本語(非表示になっているか)」だけでなく、「英語・その他言語(表示されているか)」の両方をチェックしてください!
まとめ
今回のカスタマイズのポイントです。
- request.locale.iso_code を使えば、アクセスしている言語を正確に判定できる
- ページ自体を消すのではなく、リダイレクトとCSSで「見えなくする」のが安全
- トップページのバナーや特定コンテンツも、セクションIDを指定すれば個別に隠せる
- 検索結果に残らないよう、noindex の設定も忘れずに!
Shopifyの多言語サイトは奥が深く、今回のように「標準機能の隙間を埋める」ちょっとしたコードカスタマイズで、運用の質がぐっと向上します。
「特定の言語だけ見せたくない」という細かな要望は、ショップのブランディングやリージョンごとの戦略において重要ですよね。
もしコードの書き換えに自信がない、あるいは「もっと複雑な条件分岐をしてほしい!」という場合は、
無理せずShopify専門のエンジニアに相談するのも一つの手です。
今回のカスタマイズで、より快適な多言語ストア運営を目指しましょう!