URLのリダイレクト先を一括で確認する「redirect-checker-ruby」を公開しました
ドメイン移行のあと、301が意図どおりに効いているか。リンク監査で、どのURLがどこへ飛ばされているか。こうした確認を一括で行うスクリプトを公開しました。
- リポジトリ: phrase-llc/redirect-checker-ruby
- ライセンス: MIT
何をするツールか
URLの一覧を読み込んで、各URLについて次を記録します。
- 最初に返ったリダイレクトのステータスコード(301 など)
- リダイレクトをたどりきったあとの最終的な遷移先URL
入力はCSVでも、1行1URLのテキストでも構いません。ヘッダー行の有無は自動で判別します。
追加インストールが要らない
Ruby さえあれば動きます。標準ライブラリだけで実装されているため、gem のインストールも Bundler も不要です。推奨バージョンは 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を検証する、という使い方を想定しています。