ウェブサイト上の壊れたリンクを見つけるためにどのような手法やツールをお勧めしますか?ウェブサイト上の壊れたリンクを見つける方法
私はログファイルにアクセスしているため、404エラーを解析すると考えられますが、サイト上のすべてのリンクに従う(または追跡しようとする)自動化が欲しいと思います。
ウェブサイト上の壊れたリンクを見つけるためにどのような手法やツールをお勧めしますか?ウェブサイト上の壊れたリンクを見つける方法
私はログファイルにアクセスしているため、404エラーを解析すると考えられますが、サイト上のすべてのリンクに従う(または追跡しようとする)自動化が欲しいと思います。
Firefox用LinkCheckerを参照してください。
Mac OSの場合、壊れたリンクのURLを確認できるツールIntegrityがあります。
Windowsの場合はXenu's Link Sleuthです。
XenuのLink Sleuthはちょうどチケットのようです。 –
完全性が素晴らしいです!共有してくれてありがとう。 –
私はhttp://checkerr.orgの後ろにいます – zupa
ベストな方法は、サイト全体を実行する小さなボットを作成し、その結果を記録することです。私は展開の前に私のサイトをテストするためにこれを行い、それは本当にうまく動作します。
いずれかのログファイルを解析し、あなたの「リンク切れ」レポート(例えばAnalogやGoogle Webmaster Tools)を与えるツールを使用するか、あなたのウェブサイトやレポート壊れたリンク(例えばW3C Link Checkerを)スパイダーツールを実行します。
私はW3C Link Checkerが好きです。
私も。 'Check linked documents in recursively'をチェックし、' recursion depth'フィールドを空のままにすると、指定されたドメインで無限に繰り返されるようです。 – mb21
がlinkcheckerツールを参照してください:
LinkCheckerは無料で、GPLは、ウェブサイトのバリデータのライセンスを取得しました。 LinkCheckerは、Webドキュメントまたは完全なWebサイトのリンクをチェックします。あなたのサイトが注目の一定のレベルを得た後
// 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); } } }
:
これはローカルで実行され、リンク元とリンク先の両方が壊れていることを示しています。 –
本当にいいツールです。 GUI、CLIバージョン、Webバージョンがあります。 – Geert
あなたの最善の策は、お好みのスクリプト言語で一緒にあなた自身のクモをノックすることで、それはの線に沿って再帰的に行うことができますGoogleからのwebmaster toolsは、ユーザーが遭遇する可能性のある壊れたリンクを表示する上で非常に貴重ですが、これはかなり反動的です - Googleがインデックスを作成してウェブマスターパネルに404を記録するまで数週間かかる可能性があります。
上記のような独自のスクリプトを書くと、Google(ウェブマスターツール)やユーザー(アクセスログ404)が偶然に遭遇するのを待つことなく、すべての壊れたリンクが表示されます。
CheckWebというWindowsアプリケーションがあります。それはもはや開発されていませんが、うまく動作し、コードはオープンです(C++と思います)。
などすべてのエラーを報告し、画像/ページ「体重」では、
をあなたはそれにURLを与え、そして(あなたが選択した場合、外部リンク)それはあなたのサイトをクロールします。 NETアプリケーションでは、ASP.NETにすべての要求を渡すようにIISを設定し、グローバルエラーハンドラで404エラーを捕捉してログに記録することができます。これは、あなたの内部リンクがないかどうかを確認するためにサイトをスパイダーすることに加えて、あなたがやることです。これを行うと、他のサイトからの壊れたリンクを見つけることができ、正しいページに301のリダイレクトを付けて修正することができます。
サイトを内部的にテストするために、Microsoft SEOツールキットもあります。
もちろん、最適な手法はコンパイル時にこの問題を避けることです! ASP.NETでは、各ページの静的メソッドからすべてのリンクを生成するように要求することで、これに近づくことができます。そのため、指定されたURLが生成される場所は1つだけです。例えばhttp://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx
あなたは完全なC#のクローラーをしたい場合は、1がここにあります: - http://blog.abodit.com/2010/03/a-simple-web-crawler-in-c-using-htmlagilitypack/
LinkTigerはこれを行うには(非自由が)非常に洗練サービスのように思えます。私はそれを使用していない、ちょうどそれがまだ言及されていないので、追加したい。
市販の製品DeepTrawlはこれを実行し、Windows/Macの両方で使用できます。
開示:私はDeepTrawlの主導的な開発者です。
あなたが求めていることをするwgetスクリプトが見つかりました。
wget --spider -o wget.log -e robots=off --wait 1 -r -p http://www.example.com
このクレジットはです。
Windows版** wget **の32ビット版はSourceForge [here](http://gnuwin32.sourceforge.net/packages/wget.htm)にあります。 *(Windows用の他のGNUバイナリのリンクはこちら[http://gnuwin32.sourceforge.net/packages.html])*。 ** man page ** ** wget **は[here](https://www.gnu.org/software/wget/manual/wget.html)にあります。 – DavidRR
この方法の問題は、ログの解釈が最も簡単ではないことです。あなたは '404'と'壊れたリンク 'についてgrepすることができますが、リンクがどこにあるかは明らかです。 – Flimm
仕事もかなりうまくいく[HTTrack](http://www.httrack.com/)もあります。 –
フラグメント識別子が有効であるかどうかを考慮して、デッドリンクを探したい場合は、https://github.com/gajus/deadlinkを参照してください。 – Gajus
@DaviddCeFreitas:デッドリンクを見つけるためにhttrackをどのくらい正確に使うことができるかを知るために、答えをつくるのに気をつけますか? –