Googleのオープンソースのrobots.txtライブラリを使ってrobots.txtのマークアップをテストしてみた。
GoogleBotクローラーによるrobots.txtのテストには、Search Consoleのrobots.txtテスターを使う方法が一般的だが、利用にはネットワーク接続およびGoogleアカウントでのログインが必要となる。
本ライブラリは、ローカルでテストすることができるため環境を限定せずに手軽に利用することができる。
https://developers.google.com/search/docs/crawling-indexing/robots/create-robots-txt?hl=ja
環境
- robotstxt
- macOS Ventura 13.0
導入
robots.txtライブラリをGitHubよりダウンロードする。
https://github.com/google/robotstxt
ビルド
ライブラリは、C++で提供されているため、実行およびビルドにビルダーが必要となる。
READMEにBazelかCMakeを利用した手順の説明がされているので、環境にあったものを選択すると良い。
今回はBazelを導入してビルドしてみた。
Bazelインストール
インストーラーかHomebrewでの導入が可能。
https://bazel.build/install/os-x#install-on-mac-os-x-homebrew
$ brew install bazel
Bazelビルド
bazel build
コマンドでビルドを実行する。
$ bazel build --cxxopt='-std=c++14' :robots_main
Starting local Bazel server and connecting to it...
// 省略
INFO: Analyzed target //:robots_main (47 packages loaded, 408 targets configured).
INFO: Found 1 target...
Target //:robots_main up-to-date:
bazel-bin/robots_main
INFO: Elapsed time: 24.558s, Critical Path: 3.36s
INFO: 53 processes: 13 internal, 40 darwin-sandbox.
INFO: Build completed successfully, 53 total actions
READMEにも記載されているが、本ライブラリはC++14未満ではビルドすることができない。
macにインストールしていたgccではデフォルトで有効なのは、C++11であったため、言語規格(std値)を変更する必要がある。
そのため、--cxxopt='-std=c++14'
のオプションを指定した。
https://bazel.build/reference/command-line-reference
実行
bazel run
コマンドでビルド済みのライブラリを実行する。
https://masahosono.dev
というターゲットURLに対して、GoogleBotクローラーを用いてrobots.txtファイル(~/robotstxt/robots.txt)でテストを実行する。
$ bazel run --cxxopt='-std=c++14' robots_main -- ~/robotstxt/robots.txt GoogleBot https://masahosono.dev
INFO: Analyzed target //:robots_main (0 packages loaded, 0 targets configured).
// 省略
user-agent 'GoogleBot' with URI 'https://masahosono.dev': ALLOWED
robots.txtUser-agent: *
Disallow:
robots.txtに対してクローラーがアクセスできないURLである場合は、結果は、DISALLOWEDとなる。
$ bazel run --cxxopt='-std=c++14' robots_main -- ~/Code/robotstxt/robots.txt GoogleBot https://masahosono.dev
// 省略
user-agent 'GoogleBot' with URI 'https://masahosono.dev': DISALLOWED
robots.txtUser-agent: *
Disallow: /