URLのリダイレクト先を一括で確認する「redirect-checker-ruby」を公開しました
ドメイン移行後の301の検証や、リンク監査でのリダイレクト先の洗い出しでは、多数のURLを確認したい場面が出てきます。 こうした確認を一括で行うスクリプトを公開しました。
- リポジトリ: phrase-llc/redirect-checker-ruby
- ライセンス: MIT
何をするツールか
URLの一覧を読み込んで、各URLについて次を記録します。
- 最初に返ったリダイレクトのステータスコード(301 など)
- リダイレクトをたどりきったあとの最終的な遷移先URL
入力はCSVでも、1行1URLのテキストでも構いません。 ヘッダー行の有無は自動で判別します。
動作に必要な環境
標準ライブラリだけで実装されているため、gem のインストールも Bundler も要らず、Ruby 本体だけで動きます。 推奨バージョンは Ruby 3.4.3 以降です。
ruby check_redirects.rb -i urls.csv
出力形式は CSV と JSON を選べます。
ruby check_redirects.rb -i url_list.txt -o json
負荷を抑えるためのオプション
一覧を順に取得していくツールは、使い方を誤ると相手のサーバーへの負荷になります。 そのため、リクエスト間隔、リトライ、タイムアウトをすべてオプションで調整できるようにしてあります。
| オプション | 内容 | 既定値 |
|---|---|---|
--sleep |
リクエスト間隔(秒) | 1 |
--retry-sleep |
リトライ間隔(秒) | 3 |
--max-retries |
最大リトライ回数 | 3 |
--timeout |
タイムアウト(秒) | 10 |
件数が多いときや、応答の遅いサイトを相手にするときは、間隔を広げて実行します。
ruby check_redirects.rb -i urls.csv -o json --sleep 5 --retry-sleep 10 --max-retries 5 --timeout 20
他のツールと組み合わせる
入力がURLの一覧なので、sitemap2urls の出力をそのまま渡せます。 移行前のサイトからURLを取り出し、移行後にそのリストで301を検証する、という使い方を想定しています。