First CH Apps / リンク切れ・alt属性チェック
URLを1つ入れると、そのページに書かれているリンク(a href)をサーバー側でまとめて取りに行き、404などのリンク切れを洗い出します。あわせて画像(img)の alt 属性の欠落・中身の無い alt も一覧にします。納品前・検収前のチェックにどうぞ。
対象は入力した1ページだけです(サイト全体のクロールはしません)。リンク一覧を手元に持っているなら「HTTPステータス一括チェック」、1本の転送経路を追うなら「リダイレクトチェーン追跡」が担当です。
リンクは重複を除いてから確認します(同じURLが3か所にあれば1行にまとめ、「ページ内に3箇所」と添えます)。末尾の #アンカー は取り除いて数えます。
404(見つからない)・410(削除済み)が「リンク切れ」です。403 は当社サーバーからのアクセスが拒否された状態で、ブラウザでは開けることがあります(bot対策)。3xx は転送先が生きていれば実害はありませんが、リンク先を新URLへ書き換えておくと確実です。
alt 属性は「無い」と「空(alt="")」を区別します。属性そのものが無いと読み上げソフトがファイル名を読むため要修正、alt="" は装飾画像の正しい書き方なので指摘ではなく内訳として数えます。ファイル名のままの alt・「画像」等の定型文・125字を超える長い alt は要検討として挙げます。
対象は入力した1ページだけです。リンク先のページの中身までは辿りません(サイト全体のクロールはしません)。JavaScriptで後から挿入されるリンク・画像は、HTMLに書かれていないため対象外です。
生死を確認するのは先頭40件までで、それ以降は「未検査」と表示します(無料枠のサブリクエスト上限に収めるため)。1件あたり8秒でタイムアウトし、リダイレクトは5回まで追います。
送るもの: 入力したURLだけ。当社サーバー(Cloudflare Workers)がそのページを公開GETで取得し、続けてページ内のリンクへHEAD相当のGETを送ります(Cookieもログイン情報も送りません)。
保存するもの: ありません。検査はリクエストの中だけで完結し、URL・結果ともデータベース(KV/D1)へ書き込みません。処理が終わった時点でメモリから消えます。ログイン・登録もありません。
返すもの: 抽出したリンクのURLと各リンクのステータス、画像の src と alt の判定だけです。取得したページのHTML原文は返しません(このアプリを経由して他サイトを閲覧することはできません)。
注意: 会員限定ページ・社内ネットワーク・localhost・プライベートIP宛のURLは受け付けません。認証が要るページは当社サーバーからは未ログイン状態で見えるため、結果が実際の表示と食い違うことがあります。
POST /link-check/api/inspect に JSON({"url": "https://example.com/"})を送ると、同じ結果が JSON で返ります。ページ内のリンクだけを取り出したいときは /link-check/api/extract、URL一覧の生死だけを確認したいときは /link-check/api/check(1回10件まで)が使えます。