• Блог
  • Убираем дубли страниц

Поисковые системы (ПС) очень не любят дублированные страницы и наказывают сайт за это понижением в выдаче. А под дублями поисковые системы понимают страницы, которые доступны по разным адресам. Рассмотрим самые распространённые причины появления дублей.

  1. Страница открывается с www и без.
  2. Одна и та же страница открывается со слэшем (/) в конце и без.
  3. Страница с разными параметрами считается поисковыми системами дублем — site.ru/articles/?page=1(2,3,4), site.ru/search.html?name=modx и т.д.

Почему это плохо?

  • Ухудшается индексация сайта — объем сайта существенно разрастается из-за дублей.
  • Изменение релевантной страницы в поисковой выдаче — поисковая система может посчитать дублирующую страницу более релевантной чем основная. И в дальнейшем вообще может удалить главную страницу из индекса как ненужную.
  • Неправильно распределяется внутренний ссылочный вес — при неправильных внутренних ссылках пользователь может попасть на дублирующую страницу, из-за чего её вес повышается.
  • Потеря внешнего ссылочного веса — если внешняя ссылка ведёт на дубль, то можно сказать, что её нет, что также отражается на рейтинге сайта.

Выявление и ликвидация (склейка) дублированых страниц сайта — это одна из основных задач при разработке сайта. Сделать это можно несколькими способами.

Способ 1. Настроить переадресацию

Для веб-сервера Apache правила переадресации настраиваются в файле .htaccess. Он должен располагаться в корневой папке сайта. В MODX уже есть такой файл с настроенной инструкцией для переадресации, её просто нужно раскомментировать.

# Переадресация с www.site.ru на site.ru
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^site\.ru [NC]
RewriteRule (.*) http://site.ru/$1 [R=301,L]

# Добавляем слеш к адресам - site.ru -> site.ru/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://site.ru/$1/ [L,R=301]

Если используется веб-сервер Nginx, то это правило будет выглядеть так

# Редирект с www.site.ru на site.ru
server {
   server_name www.site.ru;
   return 301 $scheme://site.ru$request_uri;
}

# Добавляем слеш к адресам - site.ru -> site.ru/
server {
  if ($request_uri !~* "(?:\?)|(?:\.\w+$)|(?:\/$)") {
     return 301 $request_uri/;
  }
}

Способ 2. Запретить индексацию роботам в файле robots.txt

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

Disallow: /*?
# Указываем главное зеркало сайта без www
Host: my-site.ru

Более тонкую настройку можно сделать с помощью директивы clean-param.

Нужно понимать, что robots.txt не гарантирует 100% защиту от индексации. Если на страницу есть хоть одна ссылка, то она попадет в индекс независимо от того, запрещена она в robots.txt или нет.

Способ 3. Использовать канонические ссылки

Для страниц, доступных по нескольким URL, поисковые системы рекомендуют использовать канонические ссылки, указывающие адрес основной страницы, предпочтительный для индексации.

Задаются они с помощью тега link с атрибутом rel=«canonical» в секции head страницы и поддерживается всеми известными поисковыми машинами, в том числе Яндексом и Google. Атрибут rel=«canonical» помогает не только исключить из выдачи все дубликаты страницы, но и правильно сконцентрировать ценный ссылочный вес. Разместить такую ссылку нужно в секции head сайта. Для MODX она будет выглядеть так

<link rel="canonical" href="[[~[[*id]]? &scheme=`full`]]" />

Заключение

Данные рекомендации подойдут для большинства сайтов и помогут повысить его позиции в поисковой выдаче и уменьшить расходы на его продвижение. Но периодически нужно заниматься проверкой числа страниц в выдаче ПС. И ещё будет полезно освоить панели инструментов для web-мастеров Яндекса или Google.

0   8597

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Выделите опечатку и нажмите Ctrl + Enter, чтобы отправить сообщение об ошибке.