Скрипт для поиска битых ссылок на сайте

HELP-ME-24.COM (Freelance Team), Черноусов Антон

Ссылочная структура сайта, это один из ключевых моментов SEO и за ней необходимо следить. Изменения в ссылочной структуре могут возникнуть при переезде сайта или внесении изменений в его движок.

Как известно, битые ссылки (выдающие 404-ый ответ сервера) это очень даже нехорошо и поисковые системы Yandex, Google и Bing уделяют большое значение наличию на сайте битых ссылок (выдающих ответ 404). В панелях веб-мастера поисковых систем имеются соответствующие разделы, а битые ссылки говорят поисковой системе, что за сайтом не следят и ваш сайт начинает хуже ранжироваться.

Сегодня мы рассмотрим каким образом без сторонних инструментов найти битые ссылки на сайте.

Для анализа нашего сайта мы будем использовать консольные утилиты wget и curl, если они у вас не установлены, то обязательно их установите:

# aptitude install wget curl

Начнем с поиска битых ссылок на нашем сайте и для этого будем использовать команду wget с набором параметров:

$ wget --spider -o ~/wget-spider.log -e robots=off -w 1 -r -p http://127.0.0.1:8000

Команде wget переданы следующие параметры:

  • --spider - Wget не будет загружать файлы, а только будет проверять их наличие.
  • -o ~/wget-spider.log - Вывод данных в определенный файл
  • -e robots=off - Свежие версии wget используют файл robots.txt как и настоящие поисковые системы и этой директивой мы запрещаем использование файла robots.txt
  • -w 1 - Период ожидания между запросами в секунду (на тестовом сайте можно убрать)
  • -r - Рекурсивный обход сайта
  • -p - Дополнительно загружаем все связанные файлы web-страницы CSS/Картинки/JS и т.п.

По завершении сканирования сайта необходимо провести анализ полученных сведений для этого можно просто открыть результирующий файл текстовым редактором и в конце файла будут представлены интересующие нас ссылки объединенные в блок:

Найдено 15 битых ссылок.http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/ldap-ad-integration.png
http://127.0.0.1:8000/media/files/RemoteApp_Tool_5300.msi
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/ldap-user-and-group-backend.png
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/login-attr.png
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/group-filter.png
http://127.0.0.1:8000/media/files/Termiserv_XPSP2-SP3_i386_2.1.exe
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/next-cloud-install-modules.png
http://127.0.0.1:8000/webdev/
http://127.0.0.1:8000/media/files/UniversalTermsrvPatch_20090425.rar
http://127.0.0.1:8000/media/uploads/images/blog/hdd-health-check-windows/207.gif
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/active-directory-user.png
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/locate-dn-ad.png
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/server-settings.png
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/php-ldap-module-install.png
http://127.0.0.1:8000/media/uploads/images/blog/next-cloud-server/user-filter.png

Или можно использовать специальный shell-конвейер для получения аналогичной информации:

$ grep -B 2 '404' ~/wget-spider.log | grep "\-\-\ http"

Естественно, что можно проверять не только 404-ые коды ответа, но и любые другие коды ошибок, для этого вам потребуется лишь небольшая модификация shell-конвейера.

 

Оставьте комментарий

Вы должны быть вошедший в чтобы отправить комментарий