Webサイトで壊れたリンクを見つけるために推奨されるテクニックやツールは何ですか?
私はログファイルにアクセスできるので、おそらくこれらを解析して404エラーを探すことができますが、サイト上のすべてのリンクを追跡する(または追跡を試みる)自動化されたものを望みます。
Chrome Extension for hexometer の場合
Firefoxについては LinkChecker を参照してください。
Mac OSには、リンク切れがないかURLをチェックできるツール Integrity があります。
Windowsには Xenu's Link Sleuth があります。
あなたが求めていることを実行するwgetスクリプトを見つけました。
wget --spider -o wget.log -e robots=off --wait 1 -r -p http://www.example.com
このクレジットは このページ に送られます。
W3Cリンクチェッカー が好きです。
linkchecker ツールを参照してください:
LinkCheckerは、無料のGPLライセンスのウェブサイト検証ツールです。 LinkCheckerは、WebドキュメントまたはWebサイト全体のリンクをチェックします。
ログファイルを解析して「リンク切れ」レポートを提供するツール(例 Analog またはGoogle Webmaster Tools )を使用するか、Webサイトをスパイダーするツールを実行します壊れたリンクを報告します(例 W3Cリンクチェッカー )。
.NETアプリケーションでは、IISを設定してすべての要求をASP.NETに渡すように設定できます。その後、グローバルエラーハンドラーで404エラーをキャッチしてログに記録できます。これは、これにより、他のサイトからの壊れたリンクを見つけるのに役立ち、正しいページへの301リダイレクトでそれらを修正できます。
サイトの内部テストを支援するために、Microsoft SEOツールキットもあります。
もちろん、最善の方法は、コンパイル時に問題を回避することです! ASP.NETでは、すべてのリンクを各ページの静的メソッドから生成する必要があるため、これに近づくことができます。これにより、特定のURLが生成される場所は1つだけになります。例えば http://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx
完全なC#クローラーが必要な場合は、こちらにあります:- http://blog.abodit.com/2010/03/a-simple-web-crawler-in-c-using-htmlagilitypack/
当社の商用製品 DeepTrawl はこれを行い、Windows/Macの両方で使用できます。
情報開示:私はDeepTrawlの開発をリードしています。
あなたの最善の策は、選択したスクリプト言語で自分のスパイダーを一緒にノックすることです。それは、次の行に沿って再帰的に行うことができます。
// Pseudo-code to recursively check for broken links
// logging all errors centrally
function check_links($page)
{
$html = fetch_page($page);
if(!$html)
{
// Log page to failures log
...
}
else
{
// Find all html, img, etc links on page
$links = find_links_on_page($html);
foreach($links as $link)
{
check_links($link);
}
}
}
サイトがGoogleからある程度の注目を集めると、その webmaster tools は、ユーザーが遭遇する可能性のある壊れたリンクを表示するのに非常に役立ちますが、これはかなり反動的です-デッドリンクが数週間続く場合がありますグーグルがそれらを索引付けし、ウェブマスターパネルに404を記録する前に。
上記のように独自のスクリプトを作成すると、Google(ウェブマスターツール)またはユーザー(アクセスログの404)がつまずくのを待つことなく、リンク切れの可能性のあるすべてが表示されます。
LinkTiger は、これを行うための非常に洗練された(非フリーではありますが)サービスのようです。私はそれを使用していませんが、まだ言及されていないため、追加したかっただけです。