Shopifyのrobots.txt:メモ

おそらく2021年6月からrobotx.txtの編集ができるようになったのでメモとして。

参考情報

上記が公式の情報なので、それらを読めば問題ないはずです。

補足

以下は個人的な理解のための補足です。

概要

  • 何もせずともShopifyは自動でrobots.txtを生成している
  • ストア独自でrobots.txtを用いる場合は、robots.txt.liquidというliquidファイルを作成する必要がある
  • デフォルトの内容に追加や変更が行われるのではなく、robots.txt.liquidの内容のみが出力されるようになる

robots.txt.liquidの作成と設置方法

  • 管理画面から行う場合は、templatesの「新しいtemplateを追加する」をクリックし、「目的」のドロップダウンリストの下部にあるrobots.txtを選ぶ。自動で内容が生成される。
  • Theme kitの場合は、templateディレクトリにrobots.txt.liquidを作成する

管理画面のコード編集からrobots.txt.liquidを生成した場合に自動で表示されるのは以下の内容です。


# we use Shopify as our ecommerce platform
{%- comment -%}
# Caution! Please read https://help.shopify.com/en/manual/promoting-marketing/seo/editing-robots-txt before proceeding to make changes to this file.
{% endcomment %}
{% for group in robots.default_groups %}
  {{- group.user_agent -}}

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

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

上記のコードでデフォルトと同じ内容が出力されます。

liquidを使わず通常のrobots.txtと同じプレーンテキストとして全て記述可能ですが、liquidを使えばShopify側が適宜最適化する内容を反映することができるため、liquid(正確にはrobotsオブジェクト)の使用が推奨されます。

編集や追加方法の検討

  • Shopifyが生成する内容を変更したい場合には、ループ内に分岐を作って対応するか(推奨)、全てプレーンテキストで書き出した上で編集するか(非推奨)
  • liquidコードの外側にプレーンテキストで記載する

具体的には前出の以下のドキュメントを参照します。

特に利用しそうなコードを引用します。


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

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

  {%- if group.user_agent.value == '*' -%}
    {{ 'Disallow: /*?q=*' }}
  {%- endif -%}

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

例えばUser-agent: *に追加する場合、group.user_agentではなくgroup.user_agent.valueを使います。

現時点では以下のUser-agentに対する記述が存在します。

  • User-agent: *
  • User-agent: adsbot-google
  • User-agent: Nutch
  • User-agent: AhrefsBot
  • User-agent: AhrefsSiteAudit
  • User-agent: MJ12bot
  • User-agent: Pinterest

留意点

Shopifyは適宜robots.txtの出力内容を書き換えています。
そのため、デフォルトのliquid自体を書き変えるアップデートが行われることも考えられます。

実際に発生する可能性は低いとは思いますが、もしもliquidを書き換えるようなアップデートが行われた場合、robots.txt.liquidに対して都度の対応が必要になるかもしれません。
少なくとも常にアンテナを貼っておく必要性が生じると思います。

以前の留意点

[追記:2023.10.3]
2023.10.3に確認しますと以下の問題は発生せず、robots.txt.liquidを作成後に削除すると、作成前の初期状態に戻ることを確認しました。

以前の内容

ECにおいては結構大きな問題になりかねないので、以下の点には注意した方がよいように思います。

robots.txt.liquidの中身を全て消してはいけない

  • robots.txt.liquidの中身を全て消すと、ストアのrobots.txtには何も出力されなくなる

仕組みを考えると当然ですが、robots.txt.liquidがあるとデフォルトのrobots.txtが生成されないため、robots.txt.liquidの中身を消せば空白のrobots.txtが出力されてしまいます。

robots.txt.liquidを一度作成すると消しても影響が残る

  • robots.txt.liquidを作成してから削除すると、robots.txtの内容が変わってしまう

robots.txt.liquidの作成前は細かく指示が書かれていたのですが、robots.txt.liquidを削除すると以下の記述だけになりました。試したのが開発ストアだったからなのかもしれませんが。


# we use Shopify as our ecommerce platform

User-agent: *
Disallow: /

本番ストアで確認しないと判断できませんが、いったん作成してしまった場合は編集する気がなかったとしても削除せずにデフォルトの状態で残しておいた方が安全に思います。

参考情報

そもそもrobots.txtとは何かを把握していない方は、上記のGoogleのドキュメントを読み込むことをお勧めします。

特にECサイトではクロールされてはいけないページが多いと思われますのでしっかりと理解する必要があります。

Googelには以下のようなrobots.txtの確認用ツールが用意されているため、必要に応じてチュックを行うことをお勧めします。

結び

何かしらクローラーの制御をしたかった方には朗報ですが、個人的にはそれなりの必要性がない限り実行することはお勧めしません。

実行する場合、SEO絡みの問題でrobots.txtの記述ミスが原因というのはわりとあり得る話なので細心の注意が必要です。

少なくとも「クロール」や「インデックス」という単語の意味を理解していないなら、robots.txtの編集を行うことは避けた方が良いです。

2人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄