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

    Общий рейтинг статьи: 0 (проголосовало 0 )
    Опубликовано:  [просмотров 251]


    Ссылочная структура сайта, это один из ключевых моментов 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-конвейера.

     


    Связанные записи в блоге

    Обсуждение статьи

    Ваш комментарий: