メインコンテンツまでスキップ
SEO・集客アプリ

Shopifyはフィルタ付きURLにcanonicalを既に出している。そして自前のrobots.txtがGoogleにそれを読ませない

「Shopifyはフィルタページにcanonicalを付けない」と書く記事と「既に付けている」と書く記事が、どちらも英語圏の検索上位に並んでいます。実在する米国Shopifyストア4件のHTMLを取得して決着させました。canonicalは出ています。filterとsort_byのパラメータは除去され、pageだけが保持されます。さらに4件の/robots.txtを実測したところ、デフォルトルールはsort_byとフィルタパラメータ2つ以上を含むURLをDisallowする一方、フィルタ1つのURLは素通しでした。同じコレクションでフィルタ1つはクロール可、2つは不可という線が引かれています。しかもGoogleは「canonicalの目的でrobots.txtを使うな」と明言しています。加えて「robots.txt.liquidはShopify Plus限定」という広く出回った誤り。実在6アプリで何が変えられるかを検証しました。調査日: 2026年9月2日

AIECアプリ研究所 AI編集部公開日 更新日 読了 16#SEO・アクセス改善#アプリ比較#Shopifyブログ運営

この記事でわかること

この記事の目次Contents閉じる開く

Shopifyのコレクションフィルタが生むパラメータ付きURLについて英語で検索すると、真っ向から矛盾する主張が上位に並びます。「Shopifyはフィルタ適用後のページにcanonicalを出さないのでアプリが必要だ」と書く記事と、「とっくに出している」と書く記事です。さらに「robots.txt.liquidの編集はShopify Plus限定」と書く記事も複数あります。

どちらか一方しか正しくありませんし、3つ目は単純に間違いです。そこで読むのをやめ、実在ストアの/robots.txtとHTMLのheadを取得して公式ドキュメントと突き合わせました。

先に結論

  • Shopifyはフィルタ付きURLにcanonicalを出している。 実在4ストアで測定した結果、?filter.*?sort_by=は除去され、素のコレクションURLを指します。?page=だけは保持されます。
  • デフォルトrobots.txtはsort_byと、フィルタパラメータを2つ以上含むURLをDisallowする。 ただし1つだけのURLはブロックしません。ルールがDisallow: /collections/*filter*&*filter*で、filterfilterの間に&を要求するからです。結果として、同じコレクションでフィルタ1つはクロール可、2つは不可という線が引かれます。
  • 2つのデフォルトが互いを打ち消している。 Googleは「canonicalの目的でrobots.txtを使うな」と明言しています。Shopifyは正しいcanonicalを出したうえで、それを読みに行くことを自分で禁止しています。
  • robots.txt.liquidはPlus限定ではない。 2021年6月21日にリリースされ、公式のどこにもプラン条件の記載はありません。
  • SEOアプリのほとんどは手が届かない。 canonicalやnoindexを扱うアプリはリソース単位で動くため、パラメータの組み合わせを指定できません。

実測: canonicalは何を指しているか

米国の実在Shopifyストアに各URLをリクエストし、生HTMLからrel="canonical"を読み取りました。

リクエストしたURL返ってきたcanonical
/collections/mens/collections/mens
/collections/mens?filter.v.availability=1/collections/mens
/collections/mens?sort_by=price-ascending/collections/mens
/collections/mens?utm_source=test&fbclid=abc/collections/mens
/collections/mens?page=2/collections/mens?page=2

allbirds.comとdeathwishcoffee.comで5パターンすべてを、bombas.comとhellotushy.comで追試し、4ストアすべて同じ挙動でした。「Shopifyはcanonicalを出さない」は誤りです。注目すべきはpageの例外で、ページネーションされたURLは自己参照のcanonicalを持ちます。Googleがページネーションに推奨している形です。

ただし、このタグを出しているのはテーマであってHTTPレイヤーではありません。実体はLiquidのcanonical_urlオブジェクトで、headから外したテーマではcanonicalは出ません。

デフォルトrobots.txtの実物

deathwishcoffee.comの/robots.txtから、コレクション関連のブロックをそのまま引用します(2026年9月2日取得)。

Disallow: /collections/*sort_by*
Disallow: /*/collections/*sort_by*
Disallow: /collections/*+*
Disallow: /collections/*%2B*
Disallow: /collections/*%2b*
Disallow: /*/collections/*+*
Disallow: /*/collections/*%2B*
Disallow: /*/collections/*%2b*
Disallow: /collections/*filter*&*filter*
Disallow: /*/collections/*filter*&*filter*
Allow: /collections/
Allow: /*/collections/

/*/付きの行はShopify Marketsのロケールサブフォルダ用、%2B%2bはプラス記号のURLエンコード対応です。

ヘルプセンターはDisallow: /collections/*+*を「絞り込まれたコレクションページがインデックス登録されるのを防ぎ、重複コンテンツの問題が発生するのを回避します」と説明しています。ただしこのルールの対象は/collections/all/red+smallという旧来のタグ形式のパスであり、現在のSearch & Discoveryが生成するクエリパラメータ形式ではありません。

フィルタ1つはクロールされ、2つはされない

Disallow: /collections/*filter*&*filter*は、URLにfilter&filterがこの順で現れたときだけマッチします。公式ドキュメントのURL形式で確認するとこうなります。

  • ?filter.p.product_type=shoes — パラメータ1つ。ブロックされない。末尾のAllow: /collections/が効きます
  • ?filter.p.product_type=shoes&filter.v.option.color=redブロックされる
  • ?sort_by=price-ascendingsort_byルールでブロックされる
  • /collections/all/red+small+ルールでブロックされる

厄介なのはここからです。Shopifyは、同じフィルタで複数の値を選ぶ書き方を2通り公式に示しています。

filter.v.option.color=red,blue
filter.v.option.color=red&filter.v.option.color=blue

返る商品は同じです。カンマ形式はパラメータが1つなのでクロール可、繰り返し形式はブロックされます。同一の結果ページが、書き方だけで正反対の扱いになります。

「Shopifyはフィルタページをブロックしている」が半分しか正しくない理由もここにあります。色や商品タイプといった、検索需要が実際にありそうな単一ファセットのURLこそ、クロール可能なまま残されています。

2つのデフォルトが噛み合っていない

Googleのcanonicalに関する公式ドキュメントは、この問題を一行で言い切っています。

canonicalの目的でrobots.txtファイルを使わないこと。robots.txtでDisallowされたURLも、コンテンツなしでインデックスされる場合がある。

これがShopifyの標準構成そのものです。フィルタ2つのURLに対し、Shopifyは正しいcanonicalをレンダリングし、そのうえで自前のrobots.txtがGooglebotに「取得するな」と伝えます。canonicalは永久に読まれません。内部リンクや外部リンク経由でそのURLが発見されると、内容もcanonicalもないURLだけのエントリとしてインデックスされ得ます。

Shopify自身もヘルプセンターで、Search Consoleの「インデックス登録済み、robots.txt によりブロック」は通常の動作だと説明しています。多くのストアではそのとおりです。ただし、その通知の原因がShopify自身の2つのデフォルトの衝突であり、Googleが推奨する解決策がデフォルトファイルの真逆だということは知っておく価値があります。

同じ罠は、テーマコードでフィルタページにnoindexを入れる場合にも当てはまります。クロールが禁止されたページのnoindexは到達できず、何の効果もありません。

「Plus限定」は誤り

上位表示されている複数の記事が、robots.txt.liquidの編集にはShopify Plusが必要だと書いています。そう述べているShopifyの一次情報は1つも見つかりませんでした。

changelogの2021年6月21日の記事は「オンラインストアのコンテンツをクローラーがどう発見するかを制御できるよう、robots.txt.liquidをリリースします」と書くだけで、プラン名は出てきません。ヘルプセンターの「robots.txt.liquidを編集する」も、オンラインストア → コードを編集 → 新しいテンプレートを追加robots という手順を示すのみです。shopify.devのリファレンスも、2025年3月25日のrequest.host追加のchangelogも同様です。

一方でShopifyが実際に書いているのは、これがサポート対象外のカスタマイズだということです。「この機能を誤って使用すると、すべてのトラフィックが失われる可能性があります」。この警告は本物で、おそらく誤解の出どころもここです。サポート対象外と利用不可はまったく別の話です。

なお、自分のストアがデフォルトのままだと決めつけないでください。取得した4ストアのうちgymshark.comにはfilter*&*filterのペアがありません。テンプレートをプレーンテキストに置き換えるとルールが固定されるとShopifyも警告しています。

アプリで変えられる範囲

フィルタURLに効くレバーはcanonicalタグ、robotsメタタグ、robots.txtルールの3つです。App Store上のcanonical系・noindex系アプリはリソース単位(特定の商品、コレクション、ページ、記事)で設計されています。Admin APIが公開しているのがそれだからです。パラメータ付きURLはリソースではありません。

以下は2026年9月2日にShopify App Storeの日本語(ja)ロケール表示で確認した内容です。アプリ名と価格は英語表示と同一(USD請求)で、プラン名だけが日本語化されます。

アプリ開発元Built for Shopify料金(USD)評価(レビュー数)フィルタURLの制御
Shopify Search & DiscoveryShopifyなし無料2.7(465)なし。URLを生成する側
Robots.txtDJP Digitalなし一度限りの請求額 $295.0(3)可能。robots.txtルールとして
Canonical Tag URL WizardDJP Digitalなし月額 $1.995.0(22)不可。リソース単位のみ
Sitemap NoIndex Pro SEODJP Digitalあり無料 / $3.99 / $11.99 月額5.0(159)リソース単位。用途不明の機能名が1つ
NoIndexly ‑ Sitemap ManagerGroPulseあり無料 / 月額 $3.494.9(18)不可。リソース単位のみ
BOOSTER AI SEO + AEO OPTIMIZERBooster SEOあり無料 / $39 / $69 月額4.8(5,264)記載なし

6本のうち3本が同じ開発元(DJP Digital)です。組み合わせて導入する前に知っておくとよい事実です。

Shopify Search & Discovery

Shopify Search & DiscoveryのShopify App Storeリスティングページ上部。評価2.7が表示されている

出典: Shopify App Store(Shopify Search & Discovery、2026-09-02時点)

このパラメータ付きURLを生み出しているShopify純正の無料アプリです。フィルタは在庫状況、価格、商品タグ、商品タイプ、販売元、バリエーションオプション、メタフィールドなどを基に作成でき、shopify.devは最大25個という上限を明記しています。評価は465件で2.7。掲載されている機能(フィルタ、シノニム、商品ブースト、レコメンド、分析)のどれも、クロールやインデックス、canonicalには触れません。

Robots.txt

Robots.txt(開発元DJP Digital)のShopify App Storeリスティングページ上部。一度限りの請求額29ドルと表示されている

出典: Shopify App Store(Robots.txt、2026-09-02時点)

一度限りの請求額$29で、robots.txtのエントリをダッシュボードから編集します。パラメータ付きURLに本当に効くレバーを触る唯一の存在ですが、注意点が2つ。評価5.0はレビュー3件の上に乗った数字で、統計的な意味はほぼありません。またShopifyが文書化している/robots.txtの変更手段はrobots.txt.liquidテンプレートであり、リスティングの「テーマの変更は不要」はマーチャントが自分でコードを触らなくてよいという意味です。アンインストール後の挙動を開発元に確認してください。

Canonical Tag URL Wizard

Canonical Tag URL WizardのShopify App Storeリスティングページ上部。月額1.99ドルと表示されている

出典: Shopify App Store(Canonical Tag URL Wizard、2026-09-02時点)

月額$1.99、年額$19.99。掲載機能は「商品・コレクション・ページ・記事のcanonicalを編集」「canonical URLの一括設定」で、つまりリソース単位です。/collections/mens全体のcanonicalは変えられますが、?filter.v.option.color=red=blueに別々のcanonicalを与えることはできません。アプリから見ればどちらも同じコレクションだからです。リスティング冒頭の「Shopifyにはcanonicalタグやurlを編集する方法がありません」も言い過ぎで、canonicalはテーマ出力でありtheme.liquidで編集できます。

Sitemap NoIndex Pro SEO と NoIndexly ‑ Sitemap Manager

Sitemap NoIndex Pro SEO(開発元DJP Digital)のShopify App Storeリスティングページ上部

出典: Shopify App Store(Sitemap NoIndex Pro SEO、2026-09-02時点)

NoIndexly ‑ Sitemap Manager(開発元GroPulse)のShopify App Storeリスティングページ上部

出典: Shopify App Store(NoIndexly ‑ Sitemap Manager、2026-09-02時点)

どちらもBuilt for Shopifyバッジ付きで、選んだリソースにnoindexnofollowを付け、カスタムXML/HTMLサイトマップを管理します。Sitemap NoIndex Pro SEOは無料 / $3.99 / $11.99の3段構成(日本語表示ではスターター / グロース / スケール)。NoIndexlyは対象範囲を「商品ページ、コレクションページ、ブログと記事ページ、ページ」と明示し、無料プランとPro月額プラン $3.49です。

この一覧に含まれていないものが答えです。フィルタ済みURLはありません。特定のコレクションや下書きページを隠すには適切ですが、「フィルタが2つ適用されたときだけnoindexにする」は表現できません。

ただしSitemap NoIndex Pro SEOのスケールプランにはCustom URL Indexing Engineという機能名が載っています。任意のURLを対象にすることを示唆する唯一の名称ですが、リスティングに説明はなく、クエリパラメータ付きURLを扱えるかは確認できませんでした。未確認として扱ってください。

BOOSTER AI SEO + AEO OPTIMIZER

BOOSTER AI SEO + AEO OPTIMIZERのShopify App Storeリスティングページ上部。5,264件のレビューで評価4.8

出典: Shopify App Store(BOOSTER AI SEO + AEO OPTIMIZER、2026-09-02時点)

大手の総合SEOアプリの代表として入れました。5,264件で評価4.8、Built for Shopify、無料プランに月額$39のProと月額$69のプレミアム。掲載機能はメタタイトルとディスクリプション、代替テキスト、リンク切れの検出と修正、構造化データ、自動サイトマップ送信、llms.txtです。パラメータ付きURLのクロールやインデックスを制御するという記述はどこにもありません。同カテゴリの他の大手アプリも同様です。

ケース別の判断

  • 商品数が数千未満で、フィルタの使われ方も普通。 何も変えないのが正解です。canonicalが既に集約していますし、Search Consoleの通知はこの規模なら表示上の問題にすぎません。
  • Search Consoleでフィルタ付きURLが大量に検出され、きちんと集約したい。 正しい手は直感に反します。filter*&*filterのDisallowを外し、GooglebotがShopifyの出すcanonicalを読めるようにすることです。robots.txt.liquidで公式が示すunlessパターンを使って特定ルールだけスキップし、前後でSearch Consoleを観察してください。
  • 本当の制約がクロールバジェット。 巨大なカタログでファセットの組み合わせにリクエストを食われているなら、Disallowを維持してURLのみのインデックスをコストとして受け入れます。ブロックと集約はここで本当にトレードオフです。
  • テーマコードを触らずにルールを足したい。 一度限り$29のRobots.txtが、この6本で唯一パラメータ付きURLに届く選択肢です。
  • 特定のコレクションやページを隠したいだけ。 Sitemap NoIndex Pro SEOかNoIndexlyで安く確実に済みます。
  • やってはいけないこと。 Disallowを残したままフィルタページにnoindexを入れる。クローラーはタグを見られず、保守の手間だけが増えます。

多くのストアにとって最も価値のある行動は、自分の/robots.txtとフィルタ付きURLのheadを一度読んで、そのうえで何もしないことです。本当に噛み合っていないのはShopifyの2つのデフォルト同士の衝突で、これはApp Storeのどのアプリでも解決できません。テーマレベルのrobots.txt編集だけが届く場所です。

出典

RelatedShopifyのダイレクトメール・ポストカードアプリ: App Storeの価格は、実際に払う価格ではない

課金の分母が揃っていないShopifyのダイレクトメールアプリ6本を、同じ土俵に並べ直した。Direct Mail ManagerはApp Storeで月額$0/$5/$10と表示される一方、自社の料金ページでは月額$0または$199に加えて4x6ポストカード1枚$0.686〜$0.873となっている。PostPilotはリスティング上は無料インストールだが、実際には月額$99または$499と1通あたりの単価がかかる。Poplar MailのApp Store表示の単価は自社ページよりおよそ8〜11パーセント安く、住所の名寄せは1マッチ$0.07という別建ての行になっている。郵送料が含まれると明記しているのは6本中3本だけである。Shopify自体には郵便チャネルもFlowの郵送アクションもZIPコードのセグメントフィルターも無い。調査日は2026年9月3日です。