Какие методы или инструменты рекомендуются для поиска неработающих ссылок на веб-сайте?
У меня есть доступ к файлам журналов, поэтому я мог бы проанализировать их на предмет ошибок 404, но хотел бы что-то автоматизированное, которое будет следовать (или пытаться перейти) по всем ссылкам на сайте.
Если вы заинтересованы в поиске неработающих ссылок, включая рассмотрение, является ли идентификатор фрагмента активным, рассмотрите github.com/gajus/deadlink.
@DaviddCeFreitas: Создайте ответ, чтобы мы могли увидеть, как именно мы можем использовать httrack для поиска мертвых ссылок?
Лучший вариант - попросить провести обзор доступного программного обеспечения. Такой список, хотя он будет быстро обновляться из-за смены программного обеспечения, по-прежнему будет полезен. Это, если сделать это беспристрастно и объективно, позволяет избежать спама и проблем с мнениями в достаточной степени, чтобы оставить полезный ответ.
Я построил это, lnkchk.com, я использую его все время, но опять же, я предвзято лол
Лучший способ - создать небольшого бота, который будет работать по всему сайту и записывать результат. Я сделал это, чтобы протестировать свои сайты перед развертыванием, и это действительно хорошо работает.
Другой вариант - brokenlinkfinder.com






Для расширения Chrome есть гексометр
См. LinkChecker для Firefox.
Для Mac OS существует инструмент Честность, который может проверять URL-адреса на наличие битых ссылок.
Для Windows есть Сыщик Зену.
Сыщик Зену Link выглядит как раз билет.
Честность - это здорово! Спасибо, что поделился.
Я за checkerr.org
вы можете использовать этот онлайн-инструмент для проверки неработающих ссылок 99webtools.com/broken-links-checker.php
Братан! это круто! Thakns mang! Целостность работает в Mac OS X 10.9 (Mavericks) (на случай, если кому-то интересно).
Ссылка LinkChecker не работает
Либо используйте инструмент, который анализирует ваши файлы журналов и выдает отчет о «битых ссылках» (например, Аналоговый или Google Инструменты для веб-мастеров), либо запустите инструмент, который проверяет ваш веб-сайт и сообщает о битых ссылках (например, W3C Link Checker).
Я здесь с 2020 года, и сейчас доступны довольно крутые, быстрые и информативные онлайн-инструменты, которые помогают находить не только неработающие ссылки, но и любые другие плохие для сотрудников UX и SEO. Рассмотрим попробовать https://seofy.io или Siteguru
Мне нравится W3C Link Checker.
Я тоже. Если вы отметите Check linked documents recursively и оставите поле recursion depth пустым, кажется, что в указанном домене будет выполняться бесконечная рекурсия.
См. Инструмент Linkchecker:
LinkChecker is a free, GPL licensed website validator. LinkChecker checks links in web documents or full websites.
Это хорошо, потому что он работает локально и показывает как источник, так и попытку назначения неработающих ссылок.
Действительно хороший инструмент. У него есть графический интерфейс, версия интерфейса командной строки и веб-версия.
Лучше всего собрать собственного паука на выбранном вами языке сценариев, это можно сделать рекурсивно, используя следующие строки:
// 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, их инструменты для веб-мастеров будут неоценимы для показа неработающих ссылок, с которыми могут столкнуться пользователи, но это довольно реакционно - мертвые ссылки могут существовать в течение нескольких недель, прежде чем Google их проиндексирует и регистрирует 404 в панели для веб-мастеров.
Написание собственного скрипта, как указано выше, покажет вам все возможные битые ссылки, не дожидаясь, пока Google (инструмент для веб-мастеров) или ваши пользователи (404 в журналах доступа) наткнутся на них.
У меня больше нет времени на такие интеллектуальные задачи (как бы забавно это ни звучало), и я как бы надеялся, что кто-то уже мог написать такого паука! :-)
Если кто-нибудь когда-нибудь напишет удобный конвертер псевдокода -> PHP / Perl, тогда мы будем в деле!
+1 информация всегда хорошо, подробнее: P
Я бы вообще не рекомендовал этот подход, если у вас нет МНОГО свободного времени. Существует так много разных способов встраивания ссылки на страницу, что для написания точного парсера требуется много времени (например, javascript / AJAX, CSS, а также стандартные теги href, link, script и iframe), плюс вам нужно взять учитывать любой указанный «базовый» тег и все различные способы выполнения одного и того же действия. Написание функции find_links_on_page () потребует нескольких человеко-дней работы и бессмысленно, учитывая, что существует так много хороших (бесплатных и / или с открытым исходным кодом) инструментов.
Есть приложение для Windows под названием CheckWeb. Его больше не разрабатывают, но он хорошо работает, и код открыт (я считаю, C++).
Вы просто даете ему URL-адрес, и он будет сканировать ваш сайт (и внешние ссылки, если вы выберете), сообщая о любых ошибках, «весе» изображения / страницы и т. д.
В приложении .NET вы можете настроить IIS для передачи всех запросов в ASP.NET, а затем в вашем глобальном обработчике ошибок вы сможете перехватывать и регистрировать ошибки 404. Это то, что вы должны сделать в дополнение к сканированию своего сайта, чтобы проверить наличие внутренних недостающих ссылок. Это может помочь найти неработающие ссылки с ДРУГИХ сайтов, а затем вы сможете исправить их с помощью переадресации 301 на правильную страницу.
Чтобы помочь внутреннему тестированию вашего сайта, существует также набор инструментов Microsoft SEO.
Конечно, лучший способ - избежать проблемы во время компиляции! В ASP.NET вы можете приблизиться к этому, потребовав, чтобы все ссылки создавались из статических методов на каждой странице, чтобы всегда было только одно место, где генерируется любой заданный URL. например http://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx
Если вам нужен полный сканер C#, вот он: - 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
Кредит для этого принадлежит эта страница.
32-битную версию wget для Windows можно найти на SourceForge здесь. (Ссылки на другие двоичные файлы GNU для Windows можно найти здесь). страница руководства для wget можно найти как здесь.
Проблема с этим методом в том, что интерпретация журнала - не самая простая задача. Вы можете использовать grep для 404 и broken link, но ясно, где находится ссылка.
Также есть HTTrack, который неплохо справляется с этой задачей.