1. 内部リンク
ウェブサイトのリンクを分析するスクリプトは、サーバーの応答コードに関するレポートを取得し、404エラー(ページが見つかりません)を生成する壊れたリンクを特定することができます。
時間が経つにつれて、サイトにはページやリンクが追加され、古いリンクは無効になり、訪問者が存在しないページに誘導されることがあります。これは、名刺サイトではなく、多くのページを持つサイトの場合に特に重要です。
すべてのリンクを分析した後、どのページに壊れたリンクが含まれているかがレポートに表示され、それらを修正することができます。
2. 外部リンク
すべてのサイトはリンクで何らかの形で接続されています。他のサイトへのリンクは、時間が経つと古くなります。理由は、構造の変更、新しいサイトの作成、またはサイトの閉鎖など、さまざまです。他のサイトの素材、スクリプト、またはサービスにリンクしているため、それはあなたに依存せず、別のオーナーによって管理されています。
このスクリプトは、あなたのサイトから外部サイトへのリンクの可用性も分析します。レポートには、もはや存在しないリンクを含むページが示され、それを確認して修正することができます。
3. スクリプトのインストール
例として、Debian 12に必要なパッケージであるphp8.2とphar形式の検証スクリプトをインストールし、Linuxコンソールから実行します。
apt install php php-xml
apt install wget
wget https://github.com/dantleech/fink/releases/download/0.10.3/fink.phar
4. 使用例
ドメイン名をdomain.tld
に置き換え、必要に応じてレポートファイルのパスを調整します。
php /root/fink.phar https://domain.tld -x0 -o /root/report.json
スクリプトが完了すると、レポートが生成されます。サイト内のページに指定されたリンクをクロールする全プロセスをリアルタイムで観察することもできます。
例として、5,000ページを持つサイトが14分で処理されましたが、これはオンラインサービスを使用するよりもはるかに高速です。
4.1 レポートファイルの分析
apt install jq
cat /root/report.json | jq -c '. | select(.status==404) | {url: .url, referrer: .referrer}' | jq
ファイルには、壊れたリンクが存在するページが次の例のように示されます:
4.1.1 正常なリンクを除外して表示
cat /root/report.json | jq -c '. | select(.status!=200) | {url: .url, referrer: .referrer}' | jq
この例では、200コードを含むページ以外のすべてのページが表示されます。
コンテンツの追加頻度に応じて、リンクの定期的な確認と分析を行うことで、訪問者にとってさらに快適なサイトにすることができます。