Решение проблемы 404-х битых ссылок: обзор плагина Redirection для WordPress

У меня есть блог с длинной историей, работающий на WordPress уже славных 7 лет. Для мониторинга его состояния и индексации основным российским поисковиком, я года два назад добавил его в сервис Яндекс.Вебмастер, что дало полное представление как о положительных моментах сайта — количество внешних ссылок и статистике поисковых запросов и переходов, но и об отрицательных моментах — ошибках в индексации.

Меня, в частности, заинтересовал вопрос о том, что у моего сайта накопилось огромное количество битых ссылок со статусом 404 (Страница не найдена). В итоге, мне помог WordPress плагин Redirection, но обо всем по порядку…

Причины появления 404-тых не найденных страниц

Есть две основные причины наличия ошибочных страниц с HTTP status 404:

  1. Кто-то, на каком-то индексируемом поисковиками сайте, добавил ссылку на ваш ресурс, но ошибся в указании URL;
  2. Либо же установленная когда-то ссылка была изначально валидна, но со временем изменилась сама структура вашего сайта или URL-алиасы конкретных страниц. Например, вы откорректировали первичную человеко-читаемую постоянную ссылку (alias) страницы или записи. Или, возможно, вы поменяли год публикации (при некоторых настройках, достаточно даже изменить месяц), и постаянная ссылка на страницу уже поменялась.

Ссылки подразделяются на внутренние и внешние. Надо понимать, что ссылки-инвалиды могут быть проставлены не только на внешнем, неконтролируемом вами сайте, но и на своем собственном ресурсе. Внутренние ссылки исправить всегда легче, чем внешние.

Советы по предупреждению образования некорректных URL

Дам несколько основных советов, для начала, для новых сайтов:

  1. Первым шагом к успеху является правильная и желаемая для вас настройка в разделе «Параметры / Постоянные ссылки» или «Options / Permalink». По-умолчанию стоит простая настройка — ID статьи и будет URL вашей страницы. Но эта настройка очень несовременна и неудобна как для прочтения человеком, так и для целей оптимизации страницы под запросы поисковых систем (SEO). Поэтому обычно выбирают вариант, когда будет показан год публикации (%year%) или даже месяц (%month%), а также категория поста (%category%) и собственно сам алиас поста (%postname%), а не просто его цифровой ИД. У нас, к примеру, включено правило ЧПУ:
    /%year%/%category%/%postname%/
  2. Крайне важно заранее спроектировать структуру вашего блога, какие там будут категории и тэги, тем более, если они будут влиять на URL постоянных ссылок (permalinks). Какая будет структура, вложенность, страниц.
  3. Сразу же позаботится о правильном заполнении алиасов URL, чтобы не переделывать их позже. Чаще всего, вы не захотите, чтобы в url появлялся русский кирилический текст. Это не по фен-шую, ну может если только у вас не домен в зоне «.рф». В нормальных же ситуациях рекомендуется допускать в URL ссылки только латиницу строчным регистром без пробелов (тире или пробел вместо них). Это может быть, как минимум, автоматический транслит (хороший и простой WP плагин Cyr to Lat enhanced). Желательно же еще и переводить ссылки на чистый английский. Хотя здесь, у кого какие предпочтения.
  4. Заранее планировать и точно проверять постоянные ссылки материалов перед публикацией. Это также касается и загружаемых медиа-файлов. На этом этапе можно избежать большого количества ведущих в никуда ссылок. Но рано или поздно, они все-равно появятся и вам придется думать, как решить эту проблему.

Эти правила помогут вам сократить количество бракованных ссылок на вашем сайте в будущем. Но рано или поздно, они все-равно появятся.

Для старых, давно существующих сайтов, эта проблема встает особо остро, т.к. за время жизни сайт не раз мог переезжать с одного движка на другой, менять свою структуры, подходы к построению постоянных ссылок и тому подобное. Всё это влечет целое море 404-ых ошибок и страниц.

Как же решить проблему битых ссылок?

В причинах и методах предупреждения вроде разобрались, можно перейти к практике. На моем сайте, по статистике поискового робота Яндекс, накопилось 95 битых ссылок.

Первым шагом, надо разобраться, возможно ли устранить причину самостоятельно: убрать или скорректировать ссылку. Это всегда можно сделать откорректировав или убрав ненужные внутренние ссылки вашего сайта. В отчете Яндекс.Вебмастера «HTTP-статус: Ресурс не найден (404)» есть отметка «Найдена по внутренней ссылке». Так можно попасть на список страниц с устаревшими линками. У меня, к примеру, нашлась инвалидная ссылка в правом меню, повторяющаяся на всех страницах сайта! Я её естественно, просто убрал. Также можно поступить и с другими ненужными ссылками. Если же ссылка нужна, то просто исправьте её, чтобы она вела на нужный материал.

А что делать со ссылками со внешних ресурсов?

Если у вас нет доступа к площадке, с которой ведет на ваш сайт некорректная ссылка, то остается один выход. Позаботиться конкретно об этой ссылке и показать пользователю интересующий его материал. Это можно сделать двумя способами:

  1. Создать страницу с нужным URL и добавить туда релевантную информацию. Но это не всегда возможно и очень затратно по времени. Хотя, по логике, если уж сослался на вашу страницу внешний источник, то там была какая-то интересная информация и было бы хорошо ее показать пришедшему на сайт пользователю.
  2. Автоматически перенаправить пользователя именно на нужную страницу. Это действительно актуально, когда ссылка просто немного устарела или с ошибкой синтаксиса и достаточно просто показать посетителю и поисковой системе нужную статью.

Настроить 301-е перенаправление удобно в WP плагине Redirection

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

Я рассматриваю именно на примере WordPress, так как это наиболее современная и удобная CMS система, на мой взгляд. Она произвела революцию в сфере Веб-дизайна. Наконец-то пришло время, когда веб-студии перестали заламывать ценники на изготовление базовых сайтов, например вот прайс на услуги по WordPress. Ведь CMS уже достаточно давно стали хорошо проработаны, в следствии чего стали доступны для массового использования даже самими клиентами студий, что позволяет им оперативно обновлять сайт.

Далее, я постараюсь кратко описать все функции Redirection плагина, а главное, указать на то, как преодолеть возможные трудности, которые преодолел сам.

Краткое описание и смысл плагина переадресации можно изложить так:

Автоматическая и ручная переадресация (редирект) с 301, 302 или 307 HTTP статусом Плагин включает поддержку регулярных выражений, анализ рефферера, фильтрацию по User-Agent посетителя, настройку транзита, показа случайной записи и многие другие точные настройки. Имеется отслеживание появления 404-х ошибок и ведение журнала для быстрого исправления проблем. Технически, плагин может прописать редирект как на уровне ядра WordPress, так и средствами Apache файла «.htaccess».

То есть функций там в избытке для самого дотошного Веб-мастера. Для простого же решения проблемы битых ссылок, будет достаточно выполнить следующие шаги:

  1. После установки плагина, у вас появится дополнительный раздел «Инструменты / Перенаправления» или «Tools / Redirection» в левом меню админ части, войдите туда.
  2. Первое что нужно сделать, это проставить на вкладке «Настройка» галочку «Отслеживание URL», чтобы плагин автоматически отслеживал изменения, возникающие в алиасах ваших постов и структуре. Эта функция поможет впредь не заботиться об изменении URL ваших постов и страниц, т.к. алгоритм будет автоматически создавать редиректы, ведущие на последнюю активную версию страницы.
  3. Далее, по списку выявленных вами битых ссылок (я описывал это выше на примере сервися Яндекс.Вебмастер), вы должны принять решение, можно ли исправить данную ссылку, если она внутренняя, либо же нужно сделать постоянный редирект на нужную статью. Основной смысл, чтобы ваш посетитель попал на страницу с ожидаемой информацией, а иначе он скорее всего просто уйдет с сайта.
  4. После исправления текущих проблем, нужно периодически заходить на вкладку «Журнал» и смотреть статистику неверных входов пользователей, добавляя в случае необходимости, новые редиректы.

Это весь алгоритм действий, вкратце.

Теперь приведу проблемы с которыми я столкнулся и их решение.

Как правильно создавать перенаправления

Очень важно правильно вставлять URL источника и перенаправления. В начале обязательно должен быть слеш. В случае человеко-читаемых ссылок, в конце слеш также обязателен! Вот пример заполнения, если вы хотите перенаправить некорректную из-за изменения месяца публикации, ссылку:

URL источника = /2012/01/post_name/
URL назначения = /2012/03/post_name/

Таким же образом можно сделать перенаправление и на внешний сайт:

URL источника = /redirect-me-to-example-site/
URL назначения = http://example.com/

Правила для массового редиректа многих страниц

Конкретно в моем блоге, частой ошибкой внутренних ссылок, помимо изменения пермалинка, также стало добавление в пост относительной ссылки, например, «../files». На странице самого поста такая ссылка активна, а на страницах категорий и архивов, она становится некорректной. Помогли переадресации с регулярными выражениями, например:

URL источника = /(.*)/funct/(.*)event=1
URL назначения = /funct/?event=1

Это сработает благодаря установленной галочке «Регулярные выражения». Такой метод сильно пригодится при миграции данных со старого сайта или при масштабной переделке структуры сайта. В обоих случаях заранее можно прописать нужные правила. Но здесь уже потребуется более глубокое понимание и тщательный подход.

Обилие 404-х мета-страниц, на которые ссылаются загруженные Word файлы

Так может получиться, что на ваш сайт будут загружены HTML страницы, сохраненные редактором Word со ссылкой на папку с ресурсами «files». Поисковик открывает документ и видит в нем ссылку на связанную папку «files», которая, естественно, не загрузилась вместе с самой HTML страничкой. Решением может стать правильное сохранение HTML файла, например с фильтрацией. В общем, таким инструментом как Word нужно пользоваться с осторожностью. Он всегда оставляет много лишних следов. В моем случае, появилось около 70-ти невалидных ссылок с разных, сформированных неправилно из Ворда, файлов. Ссылки мета-страниц будут такого вида:

/files/uploaded-html-file%E4.files/colorschememapping.xml
/files/uploaded-html-file%E4.files/filelist.xml
/files/uploaded-html-file%E4.files/filelist.xml

Я решил не обращать внимание на данную проблему, оставив всё на откуп интеллектуальности поисковиков. Пускай сами разбираются, что там Word себе нагенерировал… Иначе бы пришлось вручную переформатировать данные файлы и загружать их повторно. Переадресация бы не спасла, т.к. там должны открываться именно технические данные. Не будем заниматься этим мартышкиным трудом.

Подведем итоги

Навести порядок на вашем сайте не так уж и сложно. Для этого сейчас есть все необходимые инструменты. Не ленитесь позаботится о там, чтобы ваши посетители всегда попадали именно на ожидаемый контент, а не на угрюмую 404-ю ошибку. Помимо пользы для людей, эти меры поднимут ваш сайт и в глазах поисковиков.

2 комментария

  • При глобальной смене структуры сайта — можно прописать код для редиректа со старых адресов?
    с /%post_id%.htm на /%category%/%postname%.htm

  • Vankof

    Я так понимаю, что возможно. Плагин для этого и сделан..

  • Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *