robots.txtとads.txtは、ブログやWebサイトの運営において重要なファイルだ。robots.txtは、検索エンジンのクローラーがサイト内の特定ページにアクセスできるかどうかを制御するために使用される。一方、ads.txtは、Google Adsenseなどの広告を掲載するために用いられる。この記事では、Ghost CMSでこれらのファイルを設置する方法について記す。

robots.txtの手動設置の必要性

Ghostでは、デフォルトで以下のようなrobots.txtファイルが自動生成される。そのため、自動で生成される内容で問題ない場合は、自分でrobots.txtを配置する必要はない。

User-agent: *
Sitemap: https://nctn.me/sitemap.xml
Disallow: /ghost/
Disallow: /email/
Disallow: /members/api/comments/counts/
Disallow: /r/
Disallow: /webmentions/receive/

自動生成されるrobots.txt

デフォルトのrobots.txtファイルでは、サイトマップの場所を示し、Ghost CMSにおけるコンテンツ部分とは関係のない部分をクローリングの対象から除外している。

クローリング対象から除外したいURLが別にある場合や、特定のUser-agentについて挙動を変えたい場合は、自分でrobots.txtを更新する必要がある。

robots.txtの設置・更新方法

robots.txtを更新するには、テーマのアップロード機能を通して行う。具体的には、以下の手順を取ることになる。

  1. 自身が使用しているテーマをPCで開く(zipファイルになっている場合は、解凍する)
  2. テーマのディレクトリ直下に、新たに使用したいrobots.txtファイルを配置する
  3. デザイン設定画面からテーマをアップロードする(zipファイルに再度圧縮しておく必要がある)

使用しているGhostのテーマがもし手元になければ、デザイン設定のテーマ一覧から、アップロード済みのテーマはダウンロードすることができる。

例えば、「GPTBotによるクローリング対象から全てのコンテンツを除外」し、「すべてのUser-agentのクローリング対象からsecretsディレクトリ以下のURLを除外」する場合、robots.txtは以下のような内容になる。

User-agent: GPTBot
Disallow: /

User-agent: *
Disallow: /ghost/
Disallow: /email/
Disallow: /members/api/comments/counts/
Disallow: /r/
Disallow: /webmentions/receive/
Disallow: /secrets/

Sitemap: https://nctn.me/sitemap.xml

更新後のrobots.txtの例

新たにrobots.txtを配置した場合、既存の設定は完全に上書きされてしまうため、上記のように、元々自動生成されていた内容をコピーしてからルールをそこに追記すると良い。

配置したファイルは、https://<domain>/robots.txt にアクセスすることで確認をすることができる。ルートディレクトリ(ドメインのすぐ下)に置かないとクローラーが読んでくれないので、注意が必要だ。

ads.txtの設置方法

robots.txtと違って、ads.txtはGhostでは自動生成されない。そのため、ads.txtをサイトに設置するためには、手動で追加する必要がある。

基本的には、ads.txtはrobots.txtと同じ方法で追加できる。テーマのルートディレクトリに追加して、サイトデザインの設定画面からアップロードをすると設置完了だ。ファイルの内容は、Google Adsense等で記述するように指定されている内容をそのまま書き込めば良い。例えば、ads.txtは以下のような形式になる。

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

ads.txtの例

設置したファイルは、https://<domain>/ads.txt にアクセスすることで確認することができる。もしも、正しく追加したはずなのに404エラーが返ってくる場合は、ブラウザのキャッシュをクリアするかプライベートウィンドウで再度確認をしてみてほしい。Ghostでは未定義ファイルにアクセスした際に、末尾にスラッシュを追加した形でリダイレクトするので、ads.txtを配置する前に一度アクセスをしたことがあると、誤ったURL(https://<domain>/ads.txt/)へのリダイレクトがキャッシュされている可能性があるためだ。

サーバー内に直接設置する方法

テーマに含めてアップロードする方法をここまで説明してきたが、Ghostをセルフホスティングしている場合は稼働しているサーバーに直接ファイルを置くこともできる。その場合は、/var/www/<sitename>/content/themes/<theme>/ 以下にファイルを配置するとアクセスできるようになる。

この方法でファイルを配置した場合は、UI上で後からテーマをアップロードすると上書きされてファイルが消えてしまうのでその点は注意が必要だ。

また、ファイルのパーミッションにも注意が必要になる。幸い、Ghost CLIにはパーミッションに関する問題等を検知するghost doctor コマンドが用意されているので、手動で変更を加えた後は実行してみると良い。もし問題が見つかった場合は、解決方法とともに詳細を教えてくれるので便利だ。