Дубли WordPress и редирект 301


Как убрать дубли WordPress

Все пользователи WordPress знают, что данная CMS создает огромное количество дублей.

Get Header WordPress

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

Забегая немного вперед, хочется отметить тот факт, что далеко не все редиректы одинаково полезны, а некоторые так еще и вредны.

Шаг в сторону

Опасные редиректы JavaScript

Буквально сегодня на одном сайте я встретил о_Очень странный редирект, который выполнялся с помощью JavaScript, вот его примерный код:

<?php
//некорректный php код;
?>
<script type="text/javascript">
window.location="<?php echo $переменная, содержащая урл для редиректа; ?>";
</script>

Все исходящие ссылки на сайте имели следующий вид:

sites.com/redirect.php?http://othersite.com

Это конечно очень полезно для поисковой оптимизации, но встроенный в урл вектор:

sites.com/redirect.php?555";prompt(document.domain,stop())//1

Тут же выполнил JS.

JavaScript Redirect XSS

Правда тестировал я совершенно другую тему в php редиректах, но волей случая (и т. к. пост о редиректах) решил про это написать. :)

Дубли WordPress

CMS WordPress создает очень большое количество дублей, что идет в разрез с SEO.

Каждый прожженный блоггер знает об этом, однако многие ведут блоги (кстати я тоже в их числе) просто, как онлайн дневники (конспекты) если можно так выразиться, в которые записывают собственный опыт, какие-то интересные мысли, зная о том,  что когда-то эта информация еще может пригодиться, причем не только ее автору. 😀

Береги честь смолоду

Конечно же сайт нужно оптимизировать до того, как он выйдет в свет и на нем появятся первые публикации.

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

Учиться, учиться и еще раз учиться, от себя лишь добавлю, что лучше всего это делать на чужих ошибках, если есть такая возможность. 😉

1. Replitocom и сопливый индекс Google

Если на WordPress разрешены древовидные комментарии, а в robots.txt нет даже инструкции

disallow /?

то однажды обнаружив свой сайт под фильтром Яндекс или Google, особо не удивляйтесь.

Каждая кнопочка ответить в комментариях, создает ссылку вида сайт.ру/страница?replitocom=туева-куча-цифер-1234567 и этот линк, есть ничто иное, как законная ссылка на страницу.

Дубли Replytocom WordPress

В итоге со временем поисковый индекс забивается кучей совершенно не нужных дублей и ПС накладывает фильтр, возможен даже (в зависимости от ширины размаха и настроения тех. поддержки) тотальный бан.

Что делать?

Вытирать сопли, принимать лекарство.

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

Нужно принять во внимание все индивидуальные особенности больного сайта, и лучше предварительно проконсультироваться с врачом специалистом.

Есть один относительно универсальный рецепт.

Открываем robots.txt и (если вы еще этого не сделали, то) добавляем туда инструкцию:

disallow /?replitocom=

Эта строчка в robots.txt защитит сайт от пессимизации Яндексом, и даже проследит за тем, чтобы эти сопли не попали в основной индекс Google.

Но они  так и будут висеть, а со временем еще и плодиться в дополнительном индексе (Supplemental index) Google.

По своей душевной простоте, я упустил этот момент, и по прошествии 1,5 лет с основания этого блога в Supplemental index висело уже порядка 1,8-2 к дублей. При условии, что в блоге было всего 50 страниц!

Пол года тому назад, я написал небольшую функция (конкретно для своей темы WordPress) которая удаляет все ссылки с replitocom из шаблона (нет ссылки — нет проблемы), но какая-то часть дублей все еще висит в Supplemental index.

Подобную задачу можно решить с помощью плагинов (WordPress Thread Comment и т. п.)

2. Программные недоработки в ЧПУ и дубли страниц

Этот вид дублей присутствует практически во всех CMS (если разработчик не добавил исключение), самописных движках с ЧПУ и т. д.

Универсальное лекарство на этот счет только одно: совсем отказаться от ЧПУ.

Порядка недели тому назад, в панели веб мастера Яндекс я обнаружил странные страницы в индексе, которые имели вид:

страница.html/1

страница.html/2

страница.html/3

страница.html/103

Кому именно пришла идея скормить Яндексу такие ссылки, я еще не выяснил, хотя и знаю как. 😀

Но сейчас речь не об этом, а о том, что делать в таких случаях?

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

Решение было предложено очень простое, но эффективное в тот же момент. Это редирект.

Единственное на что хотелось бы обратить внимание, это заголовки редиректа.

Если редирект направлен на борьбу с дублями, то он должен отдавать соответствующие заголовки т. е. redirect 301 Moved Permanently (требуемый ресурс перемещен на постоянной основе) или  404 Not Found (не найдено).

По умолчанию функция header с параметрами (‘Location: куда-то_туда-то’) отдает заголовок 302 Moved Temporarily. (Ресурс временно перемещен) , т. е. говорит поисковому роботу, что запрашиваемый ресурс найдет, но временно перемещен, т. е. зайдите позже.

В следствии такого редиректа все проиндексированные страницы так и будут висеть в индексе. Это вам любой, смышленый сеошник скажет.

Поэтому предложенный код мы немного доработаем:

<?php
if (is_singular())
{
$check = get_bloginfo('url') . $_SERVER['REQUEST_URI'];
if ( $check != get_permalink() )
{
header("HTTP/1.1 301 Moved Permanently");
header('Location: ' . get_permalink() );
}
}
?>

Этот же редирект со временем уберет все сопли ссылки с replitocom из Supplemental index Google.

Добавлять данный код необходимо в header.php своей WordPress темы.

Ну а мораль сей басни такова: стая гиен затопчет льва.  😀

P.S. Если вы откуда-то копируете код на свой сайт, то не ленитесь разобраться что именно в нем происходит (какие функции используются, что можно оптимизировать, как можно нарушить логику работы кода и т. д.)