- ITインフラ・システム開発
- WEBサービス開発
ホームページ内のリンク切れを自動でチェック!監視システムを作ってみました
- [更新日]2020/11/19
- [公開日]2016/06/22
- 3476 view
- 株式会社SUPINF
こんにちは!SUPINFのポメです。
リンク切れチェック みなさんどうしてますか?
先月、ひとつWebサイトを作りまして、他にサーバーの運用も任せてもらいました。
あとWebページ内の外部サイトと画像のリンク切れチェックもしておいてね、ということで。
ブラウザでリンク先を全部クリックしてちゃんと表示されるかどうか確かめて、
画像も全て表示されているか確認して、
ドメイン内へのリンクは、さらにその先のリンク先もクリックして画像も見て、あーもう、めんどくさ。
これらを全て自動でやってくれるようなサービスを探してみたものの、適当なものがなかなか見つからず。
「なんかいいのありませんか?」と温厚なW先輩に相談したつもりが、なにかと手厳しいN先輩から「じゃー作りなよ」と言われてしまい……。
お二人と相談しながら、よちよち歩きでなんとか開発してみました。
実装した機能は、こんな感じです。
トップページURLの指定で一発!
クローラーの要領でWebサイトを巡回し、同ドメインの深い階層まで潜って、リンク先(画像を含む)のレスポンスコードを取得します。
もしレスポンスコードが4xx、5xxなら異常として通知。
しかし、一つのページに含まれるURLを全ていちいちGETしていると、サーバーにかなり負担がかかります。
レスポンスコードの取得が目的だったらHEAD(先っちょだけ取得)でもいいかな、ということで、HEADメソッドを主に使っています。
リンク先がHEADに対応していない、ということも考えられるので、その時だけGETを使うように。GETした後は待機時間を作って、とことんサーバーを労ります。
また、トップページのURLは複数指定することもできるようにしました。
これでドメインが違う複数のWebサイトを管理していても、一括でらくちん。
Googleモバイルフレンドリーテストも自動化
スマホのブラウザでわざわざ開いてみるのも億劫なので、モバイル対応できているかのチェックもついでに自動化してみました。
Googleが提供しているモバイルフレンドリーテストを呼び出して、その結果を自動で取得。
https://www.google.com/webmasters/tools/mobile-friendly/
巡回したURLそれぞれのスコア(モバイルフレンドリーテストが内部的に算出した得点)と、テストにパスしているかどうかを通知します。
で、これをWebページとは別のサーバーに置いて、
・1時間おきに、トップページのURLだけHEADでレスポンスコードを取得。(そもそもサーバーが落ちてないかをチェック)
・1日おきに、トップページのURLから深層まで巡回してリンク先、画像など全てのレスポンスコードを取得。(Webページに不調がないかをチェック)
これで完了です。これ、本当に楽です。きっかけと助言を下さった先輩方に感謝。
今後
マルチスレッドでの処理速度向上や、og:imageが設定できているかなどのチェックなども実装していきたいと思っております。
今回の川柳
雨の中
傘もささずに
ワイルドだろ〜?
(あのー社長……これホントに必要ですか?)
今回作ったシステムに関して、詳細にご興味がおありでしたら、ぜひお気軽にご連絡ください!ではでは。
ご相談はこちらから
企画や要件が固まっていないご相談でも
お気軽にお問い合わせください。
-
01
相談する
-
02
要件ヒアリング
-
03
専門企業のご紹介
-
04
企業との
ご面談&見積取得 -
05
企業選定〜契約締結
サポート -
06
専門企業と直接
プロジェクト進行
※ステップ5以降はご希望に応じて
サポートいたします。
EDITOR PROFILE
株式会社SUPINF
堀江 浩史
AWS/コンテナ/AI/MSP/システム開発など、お気軽にご相談ください。
BTL アンバサダーとしても活動中です!
株式会社SUPINF
株式会社SUPINFでできること
-
WEBサービス開発
-
インフラ構築
-
ソフトウェア・業務システム開発