Проблема.
Сайт на WP.
В результате сбоя в работе сайта в течение нескольких часов в базах поисковиков оказались битые ссылки. Посещалка на сайте несколько десятков тысяч уников, поэтому боты на сайте всегда присутствуют.
Теперь при заходе по неправильной ссылке из поисковика пользователь (да и бот) 301 редиректом перенаправляется на главную страницу.
Особенность ситуации в том, что у правильных и неправильных ссылок на один и тот же пост есть одинаковые фрагменты. Это транслитерация названий постов. Эти участки URL одинаковые и в правильной и в неправильной ссылке.
Отличаются неправильные ссылки наличием и форматом категорий, разделенных слешами, бывают ссылки со слэшем в конце. Бывают с .html в конце. Бывают открытые. С правильными ссылками то же самое, только в разнобой. Это видно по sitemap.xml.
Вероятной причиной может быть некорректная работа плагина Custom Permalinks, который года два назад непонятно зачем поставили и так им и не пользовались.
Задача.
1. Перехватить неправильную ссылку.
2. Выделить транслитерацию названия.
3. По ней определить правильную ссылку.
4. Положить обе ссылки в таблицу. В этой таблице должно быть поле с ID поста. В этой же таблице накапливать статистику обращений по неправильной ссылке.
5. Далее варианты, которые можно настраивать.
вернуть правильную страницу с кодом 200. (возможно раздвоение статей, поэтому в возвращаемую страницу нужно будет добавлять мета-теги канонической страницы(правильной);
вернуть редирект на правильную страницу с кодом 301;
вернуть ошибку 404.
Возможны варианты решения задачи доработкой имеющихся в базе WP плагинов. Например Redirection.
Работа срочная. Страницы продолжают выпадать из индекса.
Исполнитель должен в совершенстве знать структуру данных и структуру и алгоритмику функционирования движка WP.
Опубликован 17.12.2015 в 10:29 Последнее изменение: 17.12.2015 в 10:29