Автоматизация
Внедрение битрикс24 бесплатно
При покупке лицензии у меня
Подробнее
Битрикс24
Для новых клиентов -30%
На все годовые тарифы облачной версии Битрикс24 до 31 июля 2026 года!
Назад

Как устранить дубли страниц на сайте через .htaccess

Как устранить дубли страниц на сайте через .htaccess
Как устранить дубли страниц на сайте через .htaccess

Дубли страниц — одна из самых частых SEO-проблем, которая приводит к:

  • Размыванию веса страниц (PageRank делится между дублями)

  • Снижению скорости индексации (поисковые роботы тратят ресурсы на обход одинаковых URL)

  • Ошибкам в аналитике (трафик распределяется по разным адресам)

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

1. Как работают редиректы в .htaccess

Файл .htaccess позволяет управлять перенаправлениями через модуль mod_rewrite.

Основные принципы:

  • Правила обрабатываются сверху вниз.

  • RewriteCond — условия, RewriteRule — само правило.

  • Флаг [R=301] — постоянный редирект (лучший для SEO).

  • Флаг [L] (Last) — остановка обработки дальнейших правил.

Перед внедрением:
✔ Протестируйте редиректы (например, через curl -I или Redirect Inspector).
✔ Сделайте бэкап .htaccess — ошибки могут "положить" сайт.

2. Основные редиректы для устранения дублей

1. Редирект с HTTP на HTTPS

Лучше настраивать через хостинг, но если нужно в .htaccess:

RewriteCond %{HTTPS} off  
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]  

2. Редирект с www на без www (или наоборот)

Без www → с www:

RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]  
RewriteRule ^(.*)$ https://www.site.ru/$1 [R=301,L]  

С www → без www:

RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]  
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]  

3. Добавление слеша / в конец URL

(если его нет и это не файл)

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_URI} !\..{1,10}$  
RewriteCond %{REQUEST_URI} !(.*)/$  
RewriteRule ^(.*)$ https://site.ru/$1/ [L,R=301]  

4. Удаление index.php и index.html

(редирект на "чистый" URL)

RewriteCond %{REQUEST_METHOD} =GET  
RewriteCond %{REQUEST_URI} ^(.*)/index\.(php|html)$  
RewriteRule ^(.*)$ %1/ [R=301,L]  

3. Дополнительные редиректы (для SEO)

Удаление UTM-меток и лишних параметров

(если они создают дубли)

RewriteCond %{QUERY_STRING} ^(.*)(utm_source|utm_medium|utm_campaign)=[^&]+(.*)$  
RewriteRule ^(.*)$ /$1?%1%3 [R=301,L]  

Приведение URL к нижнему регистру (для Битрикс)

(если CMS чувствительна к регистру)

RewriteCond %{REQUEST_URI} [A-Z]  
RewriteRule ^(.*)$ ${lc:$1} [R=301,L]  

Редирект с мобильной версии на основную (если не нужна отдельная)

RewriteCond %{HTTP_USER_AGENT} (Android|iPhone|iPad) [NC]  
RewriteCond %{HTTP_HOST} !^m\.site\.ru$  
RewriteRule ^(.*)$ https://m.site.ru/$1 [R=301,L]  

4. Полный пример .htaccess для Битрикс

<IfModule mod_rewrite.c>  
  Options +FollowSymLinks  
  RewriteEngine On  

  # HTTP → HTTPS  
  RewriteCond %{HTTPS} off  
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]  

  # www → без www  
  RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]  
  RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]  

  # Добавление /  
  RewriteCond %{REQUEST_FILENAME} !-f  
  RewriteCond %{REQUEST_URI} !\..{1,10}$  
  RewriteCond %{REQUEST_URI} !(.*)/$  
  RewriteRule ^(.*)$ https://site.ru/$1/ [L,R=301]  

  # Удаление index.php / index.html  
  RewriteCond %{REQUEST_METHOD} =GET  
  RewriteCond %{REQUEST_URI} ^(.*)/index\.(php|html)$  
  RewriteRule ^(.*)$ %1/ [R=301,L]  

  # Битрикс-специфичные правила  
  RewriteCond %{REQUEST_FILENAME} !-f  
  RewriteCond %{REQUEST_FILENAME} !-l  
  RewriteCond %{REQUEST_FILENAME} !-d  
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$  
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]  
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]  
</IfModule>  

5. Проверка и тестирование

Как проверить редиректы?

  • Через браузер (DevTools → вкладка Network → смотрим статус 301).

  • Через curl:

    curl -I http://site.ru/old-url

  • Через онлайн-инструменты (например, Redirect Checker).

Что делать, если редиректы не работают?

  1. Проверить, включён ли mod_rewrite на сервере.

  2. Убедиться, что нет конфликтующих правил.

  3. Проверить кеш браузера (используйте инкогнито-режим).

Вывод

Итоговый чек-лист:

  • Настроен редирект HTTP → HTTPS
  • Убраны дубли www / без www
  • Добавлены слеши / где нужно
  • Удалены index.php и index. Проверены UTM-метки и регистр URL

Готово! Теперь ваш сайт защищён от дублей, а поисковые системы будут правильно индексировать страницы.

Получите план улучшений для вашего сайта — бесплатно
Оставьте заявку и получите аудит сайта по ключевым параметрам, включая скорость, безопасность и SEO-ошибки, которые мешают сайту привлекать клиентов.
Заказать аудит
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи
Содержание