Блог Тимура Казанского

Дубликаты страниц на сайте. Часть 2


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

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

Не нужно копировать именно все адреса, потому что их может быть очень много и они повторяются, нужно копировать повторяющийся параметр в url, т.е. то, что идет после знака вопроса. К примеру если взять самый распространенный блог на движке WordPress, то там вы обязательно найдете такие повторяющие параметры в url адресах, как:

ваш-сайт.ru/?replytocom=какое-то значение
ваш-сайт.ru/?replytocom=другое какое-то значение
ваш-сайт.ru /?attachment=какое-либо значение
ваш-сайт.ru /?attachment_id=в данном примере в качестве значения будет находится скорей всего какая-либо цифра
ваш-сайт.ru /?attachment_id=1
ваш-сайт.ru /?attachment_id=4
ваш-сайт.ru /?attachment_id=12 и так далее
ваш-сайт.ru /?feed=что-нибудь
ваш-сайт.ru /?feed=и еще, что-нибудь

Как вы видите из вышеуказанного примера, адресов много, а параметры (то, что идет после знака вопроса) повторяются, меняются только их значения (все, что идет после знака равно), так вот, копируем в блокнотик только имена параметров, если взять параметры из примера, то нам нужно скопировать такие параметры как: «replytocom», «attachment», «attachment_id», «feed».

Отлично! Теперь нам нужно сделать так, чтобы в следующий раз поисковая система при попытке индексировать подобный адрес вашего сайта, видела, что таких страниц не существует и просто обходила их. Как это сделать? Очень просто, нам нужно написать код, который будет выдавать 404 ошибку (именно она дает понять поисковой системе, что страницы не существует) поисковым роботам, когда те будут попадать на адреса страниц с дублями вашего сайта. Рассмотрим следующий код:

function redirect_404() {
if($_GET['replytocom']) { // в ковычки помещаем параметр
header("HTTP/1.0 404 Not Found");
include('404.php'); // эту строку кода указываем в том случае, если у вас есть отдельный файл для 404 ошибки, в данном примере это файл «404.php»
die;
if($_GET['feed']) { // в ковычки помещаем параметр
header("HTTP/1.0 404 Not Found");
include('404.php'); // если есть файл для 404 ошибки, если нет, просто удаляем эту строчку. die;
}

Как вы уже догадались, берем один из повторяющихся параметров, которые вы записали себе в блокнотик, и прописываем или просто копируем его в глобальную переменную GET ($_GET['сюда копируем все ваши ранее записанные параметры']), далее копируем весь блок кода if {}, вставляем его ниже и прописываем уже другой параметр и так далее, т.е. сколько у вас параметров в блокнотике, столько должно быть и блоков кода (условий) if. Хорошо, сделали, теперь нам только осталось указать функцию в самом начале шапки нашего сайта или блога, и наслаждаться результатом. Делается это так:

<?php
include("functions.php"); // это файл где находятся наша функция redirect_404() или другими словами все блоки кода или условия if{} в которые мы вставляли параметры из блокнота.
redirect_404(); //вызов функции.
?> <!doctype html> - Важно! Вставляйте php код вызова функции поверх html кода
<html>

Если у вас блог wordpress – это делается так:

Заходим в админку вашего блога, нажимаем меню внешний вид, выбираем пункт «редактор», справа ищем пункт «функции темы (function.php)», нажимаем на него и видим, как откроется редактор c кодом, далее просто копируем туда нашу функцию redirect_404() (например, в самый верх), и все, а вот как это будет выглядеть:

устанавливаем функцию для запрета дубликатов станиц на сайте

Далее слева выбираем пункт «Заголовок (header.php)» и в самый верх открывшегося окна вставляем код вызова функции:

<?php
redirect_404(); //вызов функции.
?>

вызываем функцию для запрета дубликатов станиц на сайте

Из-за чего возникают дубликаты страниц на сайте?

На сайтах, блогах и так далее, написанных на языке php, а в особенности, когда используется чпу (т.е. короткий, понятный url сайта без всяких закорючек и непонятных букв, об этом я писал тут) посредством mod_rewrite, а также при неправильной настройки файла «.htaccess» (где указываются данные правила) или может изначально вы забыли поменять url на сайте, что-то не почистили, установили какой-то плагин, и так далее, вот после всего этого и появляются эти самые копии или url со знаками вопроса.

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

А что делать, если есть копии страниц, url которых без знака вопроса, т.е. без параметров и так далее? Например это могут быть множественные страницы сайта. Их же мы не можем превратить в несуществующие страницы! Да, в этом случае закрываем url адреса страниц кодом JavaScript и запрещаем индексацию в robots.txt. Об этом я напишу чуть позже, так как я думаю это тема отдельной статьи и я хочу затронуть ее более детально. На этом я думаю, с устранением дубликатов разобрались, а в следующей статье, мы наконец-то раз и навсегда избавимся от дубликатов страниц на сайте путем удаления всего этого мусора из поисковых систем. Всем пока. И увидимся в следующих статьях

Категория: Все для создания сайтов

Читайте также - самые интересные истории обо мне

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

Комментарии: 0