Дубли страниц в Joomla 3
Дублирование страниц присуще любой CMS, независимо от того, платная она или нет, и Joomla не исключение.
Пример дубля страницы на Joomla:
- http://domen.ru/blog.html
- http://domen.ru/blog
- http://domen.ru/blog/
- http://domen.ru/blog.html/
По всем четырем ссылкам будет открываться одна и та же страница. Представим ситуацию:
Пункт меню ведёт на открытие страницы A (http://site.ru/blog.html), и вы начинаете продвигать данную страницу (делаете перелинковку, продвигаете в социальных сетях, заказываете посты и прочее) с ссылкой на данную страницу. Но поисковая система не предсказуема, и есть вероятность, что будет проиндексирована страница B (http://site.ru/blog), на которую практически нет никаких усиливающих значимость страницы ссылок и сигналов, что сделает все усилия по продвижению страницы А тщетными.
И если у вас ёмкий многостраничный сайт, то управлять его индексированием будет весьма проблематично, учитывая, что поисковый алгоритм может индексировать множество непродвигаемых дублей.
Еще один факт: наличие дублей актуально не только для сайтов, работающих на CMS, и если вы считаете, что на вашем сайте их нет, то читайте дальше.
Какие виды дублей свойственны Joomla?
Существут следующие виды дублей страниц:
- с www и без
- с https:// и без
- со слешем в конце
- с суффиксом расширения
- со символом вопроса
- с index.php
- в формате RSS, PDF и для печати
- свойственные компоненту контента
- из-за смены алиаса
Рассмотрим каждый из пречисленных видов подробнее.
Дубли с www и без
При создании сайта важно решить как ваш сайт будет фигурировать в поиске и как его будут набирать пользователи с www или без этой приставки. Т. е. http://www.site.ru или http://site.ru.
По умолчанию, если вы ничего не предпримите, то сможете открыть сайт по URL-адресу как с www, так и без его указания. В результате у вас есть дубли всех страниц сайта. Чем чревато: при продвижении домена с www поисковая система может индексировать страницы без www.
Для новых сайтов рекомендуется использовать вариант без www. Но вы должны сами решить и решение может зависеть от того, как поисковые системы проиндексировали ваш сайт на текущий момент, если он уже есть в поисковой выдаче.
Как убрать такие дубли?
Добавить в .htaccess после строки RewriteEngine On
следующие строки кода:
# если сайт доступен по https RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# если сайт доступен по http RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Это обеспечит редирект страниц с www на без.
Зеркальные дубли с https:// и без
Эти дубли становятся актуальны после установки SSL-сертификата на сайт.
Пример: https://site.ru/blog и http://site.ru/blog/.
Убрать эти дубли на Joomla 3 и выше можно с помощь правильной установки и настройки SSL-сертификата, в результате чего обеспечивается правильная работа сайта и всех его страниц по защищенному протоколу https. О установке SSL и переводе Joomla на https читайте здесь.
Дубли с символом «/» на конце
Дубли со слешем в конце — это так называемые структурные дубли.
Пример: http://site.ru/blog и http://site.ru/blog/.
Как убрать такие дубли?
Добавить в .htaccess после строки RewriteEngine On
следующий код:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ https://site.ru/$1 [R=301,L]
В последней строке указываем протокол (http или https) и доменное имя.
Кром того, в Joomla генерируются дубли страниц с множеством слешей, независимо от того, в какой части URL они находятся:
- http://site.ru/blog//
- http://site.ru//blog/
- http://site.ru///blog///
Для устранения таких дублей добавьте после указанного выше еще и этот код:
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$ RewriteRule . %1/%2 [R=301,L]
Дубли с суффиксом .html
Эти дубли образуются в Joomla при активной опции Добавлять суффикс к URL в Общих настройках. В результате все внутренние ссылки будут иметь .html в конце URL, что приведёт к образованию дублей без этого суффикса.
Пример: http://site.ru/blog.html и http://site.ru/blog.
Чтобы предотвратить проблемы с таким дублированием страниц, рекомендуем не активировать функцию Добавлять суффикс к URL: .html в конце URL не даёт ничего, только усложняет адрес, делая его более длинным.
Как убрать такие дубли?
Если вы хотите перенаправить все страницы на без .html, то сперва отключите указанную выше опцию Добавлять суффикс к URL, после чего добавьте в .htaccess после строки RewriteEngine On
следующий код:
RewriteRule (.+)\.html?$ http://site.ru/$1 [R=301,L]
Обратите внимание, что необходимо указывать протокол (http или https) и доменное имя.
Дубли с символом вопроса
Такие дубли образуются от GET-запросов в URL-адресах.
Пример: http://site.ru/page?itemid=120 будет дублировать страницу http://site.ru/page.
Дубли с GET-запросами в Джумле могут быть, но в основном в виде исключений от некорректно написанных роутеров сторонних компонентов. А вот переход на ваш сайт по UTM-меткам может обеспечить индексирование страницы с данной меткой, а основная страница (без метки) будет исключена из индекса.
Как избавиться от таких дублей?
Настраивать редиректы не рекомендуется, т. к. они могу нарушить исполнение скриптов, для которых и создаются параметры после символа «?» в URL. Поэтому лучше просто отгородить такие адреса от индексирования поисковыми роботами, добавив в файл robots.txt следующую строку кода:
Disallow: /*?
Подробнее о настройке robots.txt на Joomla здесь.
Дубли с index.php
Подразумевается наличие index.php в структуре URL-адресов сразу после названия домена (например: https://site.ru/index.php).
Такие дубли свойственны для CMS Joomla в частности, и все страницы сайта по умолчанию будут доступны по URL-адресам с index.php, идущим сразу после названия домена, например:
- site.ru/index.php
- site.ru/index.php/page
- site.ru/index.php/category/page
Устранить index.php из внутренних ссылок сайта можно активировав опцию Перенаправление URL в Общих настройках, но при этом все страницы также будут доступны и по адресу с index.php.
Решать эту проблему с помощью редиректов в .htaccess не рекомендуется. Вместо этого следует добавить правило исключения всех таких дублей от индексирования в файле robots.txt, добавив в него следующую строку кода:
Disallow: /*index.php
Подробнее о настройке robots.txt на Joomla здесь.
Дубли в формате RSS, PDF и для печати
Подразумеваются страницы RSS-ленты, страницы печати и PDF-версии страниц.
Вы наверняка переходили по таким страницам из поисковой выдачи. Заходите на сайт, а там версия сайта для PDA-устройства или для печати. Как следствие: больше одной страницы посмотреть не получится.
Эти дубли убрать проще всего: достаточно отключить генерацию данных страниц в настройках материала.
Дубли материалов компонента контента
В Джумле есть и свои особенности в структуре. Например, в стандартном компоненте контента одна страница может открываться по следующим адресам:
- http://site.ru/category/256-article.html
- http://site.ru/category/256
- http://site.ru/256-article.html
Избавиться от таких дублей очень сложно и практически невозможно без танцев с бубном, но они не так страшны: поисковые системы принимают во внимание те URL-адреса, которые встречаются в ссылках. Поэтому во избежание попадания таких дублей в индекс поисковой системы побеспокойтесь о том, чтобы все внутренние ссылки сайта формировали нужные адреса.
Дубли из-за смены алиаса
Рассмотрим на примере:
Вы написали материал, сохранили его. Но вам не понравился URL-адрес, который получился, и вы решили изменить алиас в материале или даже поменять категорию.
В результате материал переехал на новый адрес, точнее начал открываться по новому адресу. Но старый URL-адрес никуда при этом не девается, и страница открывается в том числе и по нему. Если материал уже проиндексирован поисковой системой по старому URL, то это может стать проблемой.
Как убрать дубли в Joomla?
Для разных дублей существуют различные варианты их устранения, среди которых есть способы, актуальные для Joomla в частности:
- указание поисковым системам на актуальные страницы
- редиректы с помощью функционала Joomla
- редиректы через файл .htaccess
Подробно рассмотрим каждый из способов.
Указание поисковым системам на актуальные страницы
Этот способ не предполагает удаление дублей (они останутся и будут доступны по запросу в адресной строке), но поисковики не станут придавать им значения.
Для этого требуются действия, являющиеся непременной частью SEO-оптимизации любого сайта:
- обеспечение правильности всех внутренних ссылокURL-адреса внутренних ссылок должны быть такими, какими вы хотите их видеть в поисковой выдаче: если задумано, что индексироваться должны URL’ы без www в начале и без слеша в конце, значит, так они должны выглядеть и внутри сайта. Это же правило касается ссылок, которые содержат файлы Sitemap.
- настройка исключений в файле robots.txtФайл robots.txt предназначен именно для того, чтобы исключить от индексации ненужные страницы сайта, в том числе и дубли актуальных страниц. Подробнее о настройке robots.txt для Joomla здесь.
- указания на канонические URL-адресаСлучается, что один материал доступен для нескольких категорий преднамеренно. И мы можем посодействовать тому, чтобы поисковики определили актуальный для индексирования URL-адрес, указав на всех дублях тег
link
с атрибутомrel=canonical
и со ссылкой на один актуальный адрес. Например, страница доступна по адресам:- http://site.ru/category-1/page
- http://site.ru/category-2/page
- http://site.ru/category-3/page
Если мы хотим видеть в поисковой выдаче страницу по http://site.ru/category-1/page, то все перечисленные страницы в теге
head
должны содержать тегlink
в следующем виде:<link rel="canonical" href="/category-1/page" />
Как правило, в Joomla это реализуется автоматически на уровне компонентов, которые предусматривают добавление материалов в различные категории. Также это можно сделать с помощью отдельных SEO-расширений, но не рекомендуется во избежание лишней нагрузки на сервер, возникающей при генерации страниц.
Редиректы с помощью функционала Joomla
Редиректом называется перенаправление пользователя с запрашиваемого URL-адреса на другой. Идеальным вариантом убрать дубли как для сайта на Joomla, так и для сайта на любой другой CMS, является их склейка с помощью редиректов: когда при запросе URL’а будет осуществляться перенаправление на адрес актуальной для индексирования страницы.
Например:
пользователь запрашивает адрес www.site.ru, а попадает на https://site.ru
Базовый функционал Joomla не позволяет реализовать это через панель управления: компонент Перенаправление может обеспечить только редиректы с несуществующих URL-адресов, но не с дублей. В помощь приходят сторонние компоненты (RSSEO) и файл .htaccess, о чем далее.
Редиректы через .htaccess
Файл .htaccess позволяет осуществить множество шагов в SEO-оптимизации сайта на Joomla, в числе которых и реализация редиректов на нужные URL-адреса (склейка дублей). Большинство способов редиректов для конкретных типов дублей через .htaccess упоминается выше, в описаниях данных типов.