Knowledge Diary

Shopify Liquidでrobots.txtを条件分岐させてクロール制御する方法|最新の設定手順と注意点

Published: Updated:

Shopify Liquidでrobots.txtを条件分岐させてクロール制御する方法|最新の設定手順と注意点

こんにちは、Webデザイナーの 夢拓(Muhiro)です。

ShopifyでSEO最適化を進める中で、「robots.txtを条件分岐で制御したい」と考えたことはありませんか?
Shopifyでは2021年からrobots.txtのカスタマイズが可能になり、Liquidを使って柔軟に制御できるようになりました。
この記事では、Shopifyのrobots.txtの基本仕様から、条件に応じたクロール制御の方法まで、実践的なテクニックを詳しく解説します。

Shopifyストア運営においてSEOの効果を最大化したいと考えている方、
特にrobots.txtの制御を通じて不要なクロールを抑え、検索結果に載せたくないページを正しく制御したい方に向けた記事です。
Shopifyテーマのコード編集が可能な方であれば、誰でも実装できます。

この記事を読んで、Shopifyでrobots.txtを動的に制御する実践的なテクニックを使用して、柔軟で高度なSEO対応を実現したWebサイトを制作いただけるようになります!

それでは、どうぞ!

Index

CloseOpen

Shopifyのrobots.txtは編集できる?【2025年の仕様】

Shopifyでは、2021年7月から robots.txt.liquid テンプレートによるカスタマイズが可能になりました。
従来はrobots.txtファイルの編集が制限されていましたが、この変更によりLiquidを使用して動的に内容を出力できるようになりました。
この機能は、テーマファイル内にrobots.txt.liquidを作成することで有効になり、Shopifyテーマの構成に組み込む形で利用します。
参考:Shopify公式ドキュメント

デフォルトのrobots.txtの中身とは?

Shopifyのデフォルトrobots.txtには、以下のようなディレクティブが含まれています。

User-agent: *
Disallow: /admin
Disallow: /cart
Disallow: /orders
Disallow: /checkout
Disallow: /account
Disallow: /collections/*+*
Disallow: /collections/*?*sort_by=
Allow: /
Sitemap: https://example.myshopify.com/sitemap.xml

これらはすべての検索エンジンボットに対して適用される設定であり、特定のページ(カート、管理画面、チェックアウトなど)を除外対象としています。
商品やコレクションページなど、インデックスされて問題のないページは基本的に許可されたままとなっています。

robots.txtのカスタマイズ方法【robots.txt.liquidの使い方】

カスタマイズを行うには、テーマのルートに robots.txt.liquid ファイルを新規作成します。
このファイルにはLiquid構文を使用できるため、ページタイプに応じた条件分岐など柔軟な制御が可能です。
以下に基本構造を示します。

User-agent: *
Disallow: /cart
{% if request.path contains '/custom-page' %}
Disallow: {{ request.path }}
{% endif %}
Allow: /

ShopifyテーマエディタまたはGitを使ってファイルを作成し、デプロイすることで即座に反映されます。

Shopifyテーマカスタマイズでrobots.txt.liquidの作成方法

管理画面のオンラインストア
オンラインストア > …(三点リーダー) > コード編集
管理画面のコード編集
templatesフォルダの中にあるrobots.txt.liquidを編集する

Shopifyで条件分岐させるLiquidコードの実例

実装例

{% if request.page_type == 'collection' and collection.handle == 'private-products' %}
Disallow: /collections/private-products
{% endif %}

このコードは、特定のコレクション(例:private-products)をクロールから除外する処理です。
他にも request.page_typetemplate.name を使って細かい制御が可能です。

条件分岐が動かない原因とその対処法

Shopifyの robots.txt.liquid はLiquidによる条件分岐が可能ですが、 一部の構文が期待通りに動作しないケースがあります。
特に、 group.user_agent contains '*' が効かない問題には注意が必要です。

問題点:contains '*' が機能しない

robots.default_groups に含まれる group.user_agent は文字列ではなく、オブジェクト形式である場合があるため、 contains による比較では常にfalseを返す可能性があります。

解決策:group.user_agent.value == '*' を使う

{% for group in robots.default_groups %}
  {{- group.user_agent -}}

  {% if group.user_agent.value == '*' %}
    Disallow: /en/
    Disallow: /fr/
  {% endif %}

  {% for rule in group.rules %}
    {{- rule -}}
  {% endfor %}

  {% if group.sitemap != blank %}
    {{ group.sitemap }}
  {% endif %}
{% endfor %}

このように .value を明示的に使うことで、確実な比較が可能になります。

動作確認方法

  • ストアドメインで確認 テンプレート編集後、ブラウザで次のURLを直接確認してください。
    https://your-store.myshopify.com/robots.txt
  • 独自ドメインを利用している場合 https://yourdomain.com/robots.txt で確認可能です。

補足:robots.default_groupsの構造例

{
  "user_agent": { "value": "*" },
  "rules": [ "Disallow: /admin/", ... ],
  "sitemap": "https://example.com/sitemap.xml"
}

このように、user_agent はオブジェクトであるため、.value を通じて比較する必要があります。

応用:言語コードを用いた条件出力

例えば、現在のストアで有効な言語ロケールに基づいて Disallow を動的に出力したい場合、以下のように記述可能です。

{% for locale in shop.enabled_locales %}
  Disallow: /{{ locale.code }}/
{% endfor %}

これにより、多言語ストアで各言語ページのクロールを制御する高度な設計も可能になります。

クロールを避けたい代表的なURLパターン

  • カート・チェックアウトページ/cart/checkout は不要なクロール対象です。
  • フィルター付きURL?sort_by=*+* を含むURLは重複コンテンツを招く可能性があります。
  • 検索結果ページ/search?q= などの動的ページもクロール不要です。

注意点:noindexとの併用とSEO影響について

robots.txtでクロールをブロックすると、Googleなどの検索エンジンはそのページの内容を把握できません。
結果としてnoindexのメタタグも認識されないため、インデックスからの除外を正確に行いたい場合は「クロール許可+noindexメタタグ」の併用が望ましいです。
一方で、確実にアクセスを遮断したい場合にはrobots.txtによる制御が有効です。

robots.txtを変更したら必ず確認すべきポイント

Search Consoleでの確認

「robots.txt テスター」や「URL検査ツール」で意図通りの制御が行われているかをチェックします。

キャッシュの反映

Googleのrobotsキャッシュが反映されるまで時間差があるため、即時反映を期待しすぎないことも重要です。

他の制御との整合性

meta robotsタグ、canonicalタグなど他のSEO施策との干渉を避けるよう設計しましょう。

robots.txt以外でクロール制御する代替方法

metaタグによるnoindex

Liquidを使って特定テンプレートにmetaタグを埋め込む方法です。

canonicalタグの適切な設定

重複URLを正規化することで、クロール効率を高める効果があります。

Google Search Consoleでの削除依頼

robots.txt変更後もインデックスが残っている場合に活用できます。

この記事に関連するよくあるご質問

Q
Shopifyのrobots.txt.liquidはすべてのテーマで使えますか?
A

はい。すべてのOnline Store 2.0テーマで使用できます。 テーマにファイルを追加することで有効になります。

まとめ

いかがでしたでしょうか?
今回の記事では、Shopifyでのrobots.txtの編集方法と、Liquidによる条件分岐による柔軟なクロール制御について解説しました。

今回のポイントをまとめますと、次のとおりです。

他にもShopifyに関する技術や実用テクニックを随時発信しています。
「役に立った」と思っていただけた方は、ぜひブックマークやSNSでのシェアをお願いいたします!

最後までお読みいただきありがとうございました!

免責事項

  • 当ブログでは、執筆者の経験に基づいた技術情報や知識を提供していますが、その正確性や普遍性を保証するものではありません。情報は執筆時点のものであり、技術の進展により古くなる可能性があります。これらの情報を利用する際は、自己責任で行ってください。必要に応じて専門家の助言を求めることをお勧めします。
  • 当ブログで提供するプログラムコードは、執筆者の最善の知識に基づいていますが、その正確性や完全性を保証するものではありません。コードの利用や実行により生じた損害や問題については、一切の責任を負いかねます。コードの使用は、自己責任で行ってください。
  • 当サイトで使用しているスクリーンショット画像について、著作権はサイトの権利者に帰属します。掲載に不都合がある場合、お手数ですがお問い合わせフォームよりご連絡ください。
  • 当サイトからリンクよって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いかねますのでご了承ください。
  • 当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。