この記事でわかること
この記事の目次Contents閉じる開く
「Shopifyではrobots.txtを編集できない」という説明は、2021年以降は誤りです。robots.txt.liquidというテンプレートを自分で作れば編集できます。
ただし、この記事でお伝えしたいのはその先です。Shopifyの公式ドキュメントに載っているコードをそのままコピーしてテンプレートを作ると、現在のデフォルト設定より古いルールセットに巻き戻ります。 警告は一切出ません。
これを確認するため、実在するShopifyストア6件の/robots.txtを2026年9月1日に直接取得して比較しました。カスタマイズしていないストアと、独自ルールを含む出力をしているストアで、ベースになっているルールセットが明確に違っていました。
この記事では、robots.txtとsitemap.xmlについてShopify標準でどこまで触れるのか、SEOアプリが実際に何を代行しているのか、そして「触らないほうがいい」のはどういうケースかを、一次情報と実測で切り分けます。
先に結論
robots.txtを変更する明確な理由がないなら、robots.txt.liquidを作らないでください。 作成した瞬間に、現行デフォルトより古いルールセットへ静かに退行します。これが今回の調査で最も実務的な結論です。
Shopifyのオンラインストアが配信するsitemap.xmlは、標準機能でもアプリでもカスタマイズできません。 Shopifyが生成する実ファイルのコメントに「The sitemap can not be edited manually, but is kept up to date in real time.」と明記されています。sitemapから特定リソースを外す方法は、seo.hiddenメタフィールドと商品のUnlistedステータスの2つだけです。
noindexとDisallowを併用するのは逆効果です。 robots.txtでブロックされたページはクロールされないため、noindexが読まれません。他サイトからリンクされていれば検索結果に残り続けます。
主要な総合SEOアプリでrobots.txtを扱えるものはほとんどありません。 App Storeの機能タグを全件確認したところ、Yoast SEO、Smart SEO、Tiny SEO、SearchPie、SEO Manager のいずれもRobots.txtタグを保有していませんでした。今回確認した範囲でRobots.txtタグを保有していたのは、総合型のSEOWILL(旧SEOAnt)と、専用アプリのRobots.txt(DJP Digital)の2本だけです。
そして、Shopifyヘルプセンターの「デフォルトのrobots.txtについて」という説明は、2026年9月1日時点で実物と食い違っています。詳細は後述します。
robots.txtはどこまで触れるのか
編集にはテーマのテンプレートを自作する必要がある
robots.txt.liquidはデフォルトのテーマには含まれていません。オンラインストア > テーマ > コードを編集 から、「新しいテンプレートを追加 > robots」を選んで自分で作成します。ファイル自体をアップロードすることはできず、JSONテンプレートにも対応していません。
編集できる内容は次のとおりです。
- 特定URLのAllow / Disallowの追加・削除
- Crawl-delayの追加
- 追加のサイトマップURLの記載
- 特定クローラーのブロック・許可(AIクローラーを含む)
request.hostを使ったホスト(市場)別のルール分岐
使えるLiquidオブジェクトはrobots / group / rule / user_agent / sitemap / requestの6つに限定されています。shopのような通常のグローバルオブジェクトは使えません。
Shopify自身が「サポート対象外」と明記している
日本語版のヘルプセンターにも、次の趣旨が明記されています。この機能はサポートされていないカスタマイズであり、誤って使用するとすべてのトラフィックを失う可能性があり、Shopifyサポートでは対応できない、というものです。
加えて、運用上の罠が2つあります。
robots.txt.liquidはテーマ単位で管理される。 公開中のテーマに保存する必要があり、テーマを切り替えるとrobots.txtも切り替わります- 管理画面の「テーマ」からテーマをアップロードしても、
robots.txt.liquidはインポートされません。 ThemeKitやコマンドライン経由なら保持されます
テーマの入れ替えやリニューアルのタイミングで、robots.txtの設定が音もなく消えるということです。
実在6ストアで確認した、新旧デフォルトの差分
ここが本題です。Shopifyの公式ドキュメントは、既定のルールを保ったまま独自ルールを足すために次のようなコードを提示しています。
{% for group in robots.default_groups %}
...
{% endfor %}
ところが、このrobots.default_groupsが返す内容が、Shopifyが現在配信しているデフォルトのrobots.txtと一致していません。2026年9月1日に実在ストアの/robots.txtを直接取得して比較した結果が次のとおりです。
| 項目 | 新世代(テンプレートなし) | 旧世代(テンプレートあり) |
|---|---|---|
| 検証ストア | deathwishcoffee.com / shop.polaroid.com / mini-mal.tokyo | allbirds.com / gymshark.com / hiutdenim.co.uk |
| ヘッダーコメント | UCP/MCP・agents.md・shop.app/SKILL.mdへの言及あり | デフォルト由来のものはなし |
明示的なAllow:行 | あり(多数) | デフォルト由来のものはなし |
Disallow: /search | なし(クロール可能) | 3ストアともあり |
Disallow: /policies/ | なし(クロール可能) | 3ストアともあり |
Disallow: /services, /sf_* | あり | なし |
Disallow: /cart.js | あり | 3ストアともなし |
Disallow: /recommendations/products | あり | allbirdsのみあり |
| Nutch / AhrefsBot / AhrefsSiteAudit / MJ12bot / Pinterest グループ | なし | 3ストアともあり(Crawl-delay付き) |
旧世代を出力している3ストアは、いずれもデフォルトには存在しない独自ルールを含んでいます(allbirdsの/a/click*、gymsharkのes-US関連、hiutdenimのAllow: /search/)。このうちallbirdsとhiutdenimは、/robots.txtのレスポンスにpowered-by: Shopifyとオンラインストアのrobotsテンプレート由来を示すヘッダーが付いており、テーマ側のテンプレートで配信されていることが確認できます。gymsharkはCloudFront経由で配信されているため、出力元がテーマテンプレートかどうかは外形からは断定できませんでした。
なお表の「デフォルト由来のものはなし」は、Shopifyが現在配信している新世代デフォルトに含まれるヘッダーコメントやAllow:行が失われている、という意味です。各ストアが独自に追加した行(gymsharkの1行コメント、hiutdenimのAllow: /search/など)は別に存在します。
つまり、「1行だけルールを足すつもり」で公式どおりにテンプレートを作ると、/searchと/policies/が新たにブロックされ、AIエージェント向けのヘッダーとAllowルール群を失います。
この不整合は、2026年6月9日付でShopify Communityにも報告されています(Technical Q&A「Robots.default_groups returns outdated rules, mismatch with the default robots.txt」)。投稿者が挙げている差分は、今回の実測とほぼ一致します。同スレッドには一般ユーザーからの返信が2件ありますが、Shopify公式スタッフによる回答は2026年9月1日時点で確認できませんでした。投稿者は「先にShopifyサポートへ問い合わせたところ、フォーラムで議論するよう案内された」とも書いています。今回の検証は、その報告を実ファイルで裏付けたものです。
公式ヘルプの記述も実物と食い違っている
さらに、Shopifyヘルプセンターの「Shopifyのデフォルトのrobots.txtについて」というセクションは、Disallow: /searchとDisallow: /policies/を挙げています。しかし現行の実デフォルトファイルには、そのどちらも存在しません。
shopify.dev側も同様です。Liquidのruleオブジェクトの解説ページはルールの例としてDisallow: /policies/を挙げ、「robots.txtをカスタマイズする」のチュートリアルは「既定ルールを削除する」例として/policies/のDisallowを取り除くコードを示しています。いずれも、/policies/がデフォルトでブロックされている前提のままです。
ドキュメントより自分のストアの/robots.txtを見るほうが確実です。 ブラウザで https://(自分のドメイン)/robots.txt を開けば、いま実際に配信されている内容が読めます。
sitemap.xmlはどこまで触れるのか
結論:オンラインストアが配信するsitemapはカスタマイズできない
Shopifyのsitemap.xmlは自動生成・自動更新で、手動編集も自作ファイルの差し替えもできません。実ファイルの冒頭コメントに、手動編集不可でリアルタイムに最新化される旨が書かれています。
構造は親サイトマップが子サイトマップを参照する形式で、2026年9月1日時点で確認できた子ファイルは次のとおりです(そのリソースが存在する場合のみ出力されます)。
sitemap_agentic_discovery.xmlsitemap_products_1.xmlsitemap_pages_1.xmlsitemap_collections_1.xmlsitemap_blogs_1.xmlsitemap_metaobject_pages_1.xml(メタオブジェクトページがある場合)
冒頭のsitemap_agentic_discovery.xmlは、AIエージェント向けに追加された子サイトマップです。今回検証した6ストアのうち、Shopifyのオンラインストアがsitemap.xmlを配信している4ストア(deathwishcoffee / shop.polaroid / mini-mal.tokyo / allbirds)ではすべて存在しました。とくにallbirdsは旧世代のrobots.txtを出力しているにもかかわらずsitemap_agentic_discovery.xmlが存在し、/agents.mdと/llms.txtも配信されています。sitemapやAI向けファイルはテーマのrobots.txtとは別レイヤーで生成される、ということです。
一方、gymsharkとhiutdenimではsitemap_agentic_discovery.xml・/agents.md・/llms.txtがいずれも404でした。この2ストアはCDNやHydrogen/Oxygenなどオンラインストア以外の経路でsitemapを配信しており(hiutdenimは/sitemap/products/1.xml形式、gymsharkはhreflang_sitemap.xmlを含む独自構成)、Shopify標準のsitemapではありません。「カスタマイズできない」という制約が効くのは、Shopifyのオンラインストアが配信するsitemap.xmlに対してです。 ヘッドレス構成や前段にCDNを置く構成では、自前のsitemapを配信すること自体は可能です(ただしShopifyは、ストアの前段にプロキシを置く構成を推奨せず、サポートもできないとしています)。
sitemapから外す正しい方法は2つだけ
| やりたいこと | 方法 | 効果の範囲 |
|---|---|---|
| 商品を「直リンクからのみ購入可能」にしたい | 商品のステータスを Unlisted にする | sitemap・検索エンジン・ストア内検索・Shopify Catalog・Shopに加えて、コレクション・レコメンド・サードパーティ販売チャネルからも除外 |
| sitemapと検索エンジンから外したいが、コレクションやレコメンドには残したい | seo.hiddenメタフィールド(整数、値=1)を設定 | sitemap・検索エンジン・ストア内検索・Shopify Catalog・Shopから除外。コレクション・レコメンド・サードパーティ販売チャネルには残る |
| 検索結果からだけ消したい(sitemapには残ってよい) | theme.liquidの<head>に<meta name="robots" content="noindex">を条件付きで出力 | インデックスを止めるだけ。sitemapからは消えない |
両方を設定した場合はUnlistedが優先されます。
なおseo.hiddenを設定できるリソースは、商品・ページ・ブログ記事です。コレクションは対象外です。
そして、ここに1つ重要な事実があります。seo.hiddenはShopifyのシステムメタフィールドで、ヘルプセンターには「サードパーティアプリがリソースを検索エンジンとサイトマップから隠す際のデータ保存に使用されることがある」と書かれています。
実際、ヘルプセンターは「Namespace and key seo.hidden は既に使用されています」というメッセージが出た場合、それはサードパーティアプリがseo.hiddenを使っていて管理画面から編集できない状態だ、とも説明しています。つまり、SEOアプリの「noindex機能」「sitemap除外機能」の実体が、このseo.hiddenへの書き込みであるケースが実際にあるということです。これを知っていれば、アプリを入れなくても管理画面から同じ設定ができます。同時に、「同種のアプリを2本入れると衝突する」「乗り換え後に前のアプリのseo.hiddenが残る」といったリスクの説明もつきます。
noindexとDisallowを併用してはいけない
「確実に消したいから両方入れる」は、意図と逆の結果になります。robots.txtでブロックされたページはクロールされないため、noindexが読まれません。他サイトからリンクされていれば、検索結果に残り続けます。Googleは、robots.txt内でのnoindex指定をサポートしていません。
また、Search Consoleに出る「インデックス登録済み、robots.txtによりブロック」は、Shopifyでは通常の動作です。Shopifyのヘルプも「ほとんどの場合、何もする必要はありません」としています。
SEOアプリは何を代行しているのか
Shopify App StoreのSEOアプリは「robots.txtまで管理してくれる」と期待されがちです。実際にどうなのかを、App Storeの機能タグで全件確認しました。
| アプリ | robots.txt編集 | sitemap関連 | noindex | 最低料金 | 無料プラン | 日本語UI | BFS | 評価/件数 |
|---|---|---|---|---|---|---|---|---|
| Yoast SEO ‑ Store optimization | ✗ | ✗ | 記載あり | $19/月 | ✗(14日間無料トライアル) | ✗ | ✗ | 4.5 / 157 |
| Smart SEO AI & Image Optimizer | ✗ | ✓ | ✓(無料プラン含む) | 無料 / $14.99 | ✓ | ✓ | ✓ | 4.9 / 852 |
| Tiny SEO Speed Image Optimizer | ✗ | ✓ | ✓ | Free to install / $14 | ✓(従量課金) | ✓ | ✓ | 5.0 / 2,284 |
| SearchPie: SEO, Speed & Schema | ✗ | ✓ | ✓ | 無料 / $39 | ✓ | ✓ | ✓ | 4.9 / 2,355 |
| SEO Manager | venntov | ✗ | ✓ | ✓ | $9/月 | ✗(7日間無料トライアル) | ✗ | ✗ | 4.7 / 389 |
| SEOWILL: AI SEO & AI Blog Post(旧SEOAnt) | ✓ | ✓ | 記載なし | 無料 / $29.99 | ✓ | ✓ | ✓ | 4.8 / 1,741 |
| Robots.txt(DJP Digital) | ✓(専用) | ✗ | ✗ | $29 買い切り | ✗ | ✗ | ✗ | 5.0 / 3 |
| LLMs, Robots and Agents Editor | 機能タグなし(説明文では対応を明記) | ✗ | ✗ | 無料 | ✓ | ✗ | ✗ | 5.0 / 2 |
すべて2026年9月1日時点、金額はUSD。「robots.txt編集」「sitemap関連」「noindex」の欄は、App Storeのリスティングに付与されている機能タグ(Robots.txt / Sitemaps / Page indexing)の有無で判定しています。Tiny SEOの最下位プランは「Free to install」で、月50枚までの画像最適化が無料、超過分が従量課金という形式です。
この表から読み取れることが3つあります。
1つ目は、レビュー数の多い総合SEOアプリはrobots.txtを扱っていないという点です。5本中5本がRobots.txt機能タグを持っていません。これらのアプリが提供しているのは、メタタグ、構造化データ、画像最適化、404リダイレクト、そしてseo.hiddenによると思われるnoindex/sitemap除外です。robots.txtの編集は、そもそも守備範囲外です。
2つ目は、robots.txtを明示的に扱うアプリの実績が極めて薄いことです。専用アプリのRobots.txt(DJP Digital)はレビュー3件、LLMs, Robots and Agents Editorはレビュー2件です。件数が少なすぎて、レビューから傾向を読み取ることはできません。LLMs, Robots and Agents Editorの2件は5つ星1件・1つ星1件で、1つ星のほうは「インストール直後にアプリが起動せずApplication Errorになった」という内容です(開発元は返信で、依存関係の更新に起因する不具合であり修正済みと説明しています)。なお、この2件の内訳に対してリスティング上の表示評価は5.0のままで、集計が追いついていないように見えます。
3つ目は、そのLLMs, Robots and Agents Editorが、この記事で扱っている問題を正面から製品説明に書いていることです。リスティングには、Shopifyはrobots.txt・llms.txt・agents.mdを自動生成しているがカスタマイズにはLiquidテーマテンプレートの編集が必要で、Shopifyが自動更新しているルールを壊すリスクがある、という趣旨が書かれています。そのうえで、動的ルールを保持したまま編集する、変更ごとに差分表示・検証・復元可能なバックアップを行う、テーマが変更された場合やShopifyがルールを変更した場合にアラートする(Radar)、としています。
ただしこのアプリは無料である一方、対応言語がスペイン語と英語のみで、リスティングに「開発元は英語での直接サポートを提供していない」と明記されています。開発元はスペイン・マドリードのPholidota Studio SLUです。日本語UIもありません。
また、このアプリはApp Storeのカテゴリーが「Site optimization - Other」で、SEOカテゴリーの機能タグを持ちません。そのためRobots.txtタグ自体は付与されておらず、robots.txt編集への対応はリスティング本文の記述で確認したものです。機能タグで検索しても、このアプリはヒットしません。
なお、SEOWILLのRobots.txt機能については、App Storeの機能タグの存在を確認しただけで、具体的にどう実装されているか(テンプレートを生成するのか、robots.default_groupsの巻き戻り問題に対処しているのか)は公式情報から確認できませんでした。 導入前に開発元へ問い合わせる必要があります。
ケース別の判断
robots.txtを変更する理由が明確にない
何もしないでください。 これが最も安全です。デフォルトの内容はShopifyが継続的に更新しており、テンプレートを作ることでその更新から切り離されます。
特定のAIクローラーをブロックしたい、独自パラメータのクロールを抑えたい
社内にLiquidの知見があるか、依頼できるShopifyパートナーがいるなら、robots.txt.liquidを自作します。ただし次の手順を必ず踏んでください。
- 作成前に、現在の
/robots.txtを全文コピーして保存する - テンプレート作成後、新旧をdiffで比較する
- 差分(
/search、/policies/、Allow:群、ヘッダーコメント)を手動で補完する - 公開テーマに保存し、テーマを切り替えた際は再確認する
なお、robots.txtでAIクローラーをブロックしても、Shopify Catalog経由のエージェント型ストアフロントへの商品配信は止まりません。制御レイヤーが別だからです。
月額を増やさず単発の変更だけしたい
Robots.txt(DJP Digital)は$29の買い切りです。レビュー3件という実績の薄さは踏まえる必要があります。また、リスティングには「テーマを変更する必要はありません」と書かれていますが、robots.txtがテーマテンプレート経由でしかカスタマイズできないというShopifyの仕様との整合性を、公開情報からは確認できませんでした。
sitemapから特定ページを外したい
アプリは不要です。Unlistedステータスかseo.hiddenメタフィールドで対応できます。すでにSEOアプリを導入しているなら、そのアプリのnoindex機能が同じメタフィールドを使っている可能性があるため、二重に設定しないよう注意してください。
Shopify Marketsで多言語・多国展開している
hreflang、canonical、多言語sitemap、クローラーの自動リダイレクト除外は、すべて自動です。触らないでください。 自動hreflangは全ストアでデフォルト有効で、自動リダイレクトは顧客にのみ適用され、既知の検索エンジンクローラーは除外されます。テーマやアプリが独自にhreflangを出力している場合にのみ、オンラインストア > 環境設定 の「ソーシャルシェア画像とSEO」から自動hreflangをオフにして重複を防ぎます。
ドメイン別にクロール制御を分けたい場合だけ、robots.txt.liquidでrequest.hostを使います。
導入前チェックリスト
- まず自分のストアの
/robots.txtをブラウザで開いて、実物を確認したか robots.txt.liquidが既に設置されていないか(設置済みなら旧世代の可能性がある)- 変更したいルールは、本当にrobots.txtでなければ実現できないか
- 変更前の
/robots.txtを全文保存したか - 変更後にdiffを取り、意図しない差分がないか確認したか
- テーマを切り替える予定があるか(切替後にrobots.txtを再確認する運用にできるか)
- sitemapからの除外に、noindexではなく
seo.hiddenかUnlistedを選んでいるか - noindexとDisallowを併用していないか
- 導入済みのSEOアプリが
seo.hiddenを使っていないか(衝突・残存の確認) - Markets利用時、hreflangを自分で追加していないか
まとめ
判断の順番は次のとおりです。
- robots.txtは、変更する理由が明確でない限り触らない。 公式ドキュメントどおりにテンプレートを作ると、現行デフォルトより古いルールに退行します
- オンラインストアが配信するsitemap.xmlは、標準でもアプリでも変更できない。 除外は
seo.hiddenかUnlistedの2択です - noindexとDisallowは併用しない。 ブロックされたページのnoindexは読まれません
- 総合SEOアプリにrobots.txtの管理は期待しない。 主要5本のいずれも対応していません。必要ならパートナーに依頼するか、実績の薄い専用アプリのリスクを受け入れるかの選択になります
なお、今回の検証では日本のストア(mini-mal.tokyo)と米国のストア(deathwishcoffee.com / shop.polaroid.com)で、デフォルトのrobots.txtの内容は、ストア固有のIDを含む1行を除いて完全に一致していました。sitemap.xmlも構造は同一で、違いは商品やメタオブジェクトなど該当リソースの有無だけです。差が出るのは、Markets・テーマ・アプリといったストア側の設定です。
デフォルトの内容は2026年中に大きく世代交代しており、今後も変わる可能性があります。この記事の内容は2026年9月1日時点の確認結果です。作業の前に、必ずご自身のストアの/robots.txtを直接確認してください。
Shop Pay Installmentsは有効化無料、アプリ不要、そしてShopifyは手数料を公開していません。レートを見られるのは自社の管理画面の中だけです。加えてCapital OneとChaseのクレジットカードを受け付けず、月次プランはデビットカード限定、ギフトカードとサブスクリプション商品は対象外で、商品ごとにオン・オフを切り替えることもできません。Affirmはパスワード保護中のストア、英語以外の主要言語、主にB2Bという理由でアカウントを停止します。さらにShopifyの「Getting paid」ページは「disputeは管理画面に通知される」と書き、FAQは「管理画面には通知されない」と書いています。適格性を満たせない場合の代替はKlarna、Afterpay、Sezzle、Zip、PayPalのon-site messagingアプリで、このカテゴリーの評価は1.0〜3.2です。調査日は2026年9月2日です。