Канонизация URL: www ↔ non‑www (Apache и nginx)
Коротко: всегда выбирайте одну каноническую версию домена (www или non‑www) и перенаправляйте остальные на неё через 301 Redirect. Используйте настройки Apache (.htaccess) или конфигурацию nginx, добавьте rel=canonical и проверяйте результат в поисковой консоли.

Что такое канонизация URL
Канонизация URL — это практика выбора единой «канонической» версии страницы и перенаправления или аннотирования всех остальных версий. Цель — избежать дублей контента и сконцентрировать ссылочный вес на одной версии.
Короткое определение: rel=canonical указывает предпочитаемую версию, 301 Redirect перенаправляет на неё посетителей и поисковые роботы.
Почему это важно
- Поисковые системы лучше индексируют одну версию страницы.
- Дублирование URL снижает эффективность SEO и может дробить «вес» ссылок.
- Консистентность URL облегчает кеширование и мониторинг 404/ошибок.
Важно: 301 — постоянное перенаправление. Оно сообщает роботам, что версия страницы перенесена навсегда.
Практический пример: перенаправление www → non‑www (Apache/.htaccess)
Разместите правила в корневом .htaccess сайта. Пример общего правила, которое перекинет любую www‑версию на соответствующую non‑www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,L]Если хотите жёстко указать домен, подставьте имя домена:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]Apache: перенаправление non‑www → www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^ http://www.domain.com%{REQUEST_URI} [L,R=301]Советы при использовании .htaccess:
- Правила выполняются по порядку. Размещайте общие правила в начале.
- Тестируйте в staging-окружении перед выкатом в прод.
- Следите за циклическими перенаправлениями.
Практический пример: nginx
Для nginx добавьте отдельный server-блок для версии, с которой вы перенаправляете. Пример www → non‑www:
server {
listen 80;
server_name www.domain.com;
rewrite ^/(.*) http://domain.com/$1 permanent;
}Пример non‑www → www:
server {
listen 80;
server_name example.com;
rewrite ^/(.*) http://www.example.com/$1 permanent;
}Советы для nginx:
- Помещайте правило перед основным server {} блоком для целевого имени.
- Используйте директиву return 301 вместо rewrite для простых перенаправлений (более читаемо и быстрее):
server {
listen 80;
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}Альтернативные и вспомогательные подходы
- rel=canonical — указывайте канонический URL в для дублированного контента. Работает как подсказка для роботов.
- Google Search Console — установите предпочитаемую версию (раньше была опция) и проверяйте индексирование.
- Hreflang — при мультиязычных сайтах сочетайте hreflang и канонизацию аккуратно, чтобы не помешать локализации.
- СКХ (Content Delivery Network) и прокси — проверьте, что конфигурация CDN не ломает заголовки Host и редиректы.
Когда канонизация может не сработать
- Если сервер или CDN кеширует старые заголовки.
- Если на сайте есть циклические редиректы или правила, конфликтующие между собой.
- Если используются динамические параметры URL и отсутствует нормализация (utm-, session-параметры и т. п.).
Чек‑лист по ролям
Разработчик/DevOps:
- настроить 301-редиректы на уровне сервера;
- проверить отсутствие циклов;
- обеспечить корректный ответ кода (301, а не 302) для постоянного перенаправления.
SEO‑специалист:
- добавить rel=canonical на шаблоны страниц;
- проверить внутренние ссылки на согласованную версию домена;
- мониторить индексирование в Search Console.
Контент‑менеджер:
- избегать вставки прямых ссылок на ненужные версии домена;
- по возможности унифицировать в CMS базовый URL.
Критерии приёмки
- При заходе на любую альтернативную версию происходит 301‑редирект на выбранную каноническую.
- Нет циклических редиректов.
- rel=canonical присутствует на страницах с дублированным контентом и указывает на ту же каноническую версию.
- В Google Search Console и логах видно снижение обращений к неканонической версии.
Советы по тестированию
- Используйте curl для проверки заголовков: curl -I http://www.domain.com
- Проверьте, что ответ — HTTP/1.1 301 Moved Permanently и Location указывает на ожидаемый URL.
- Тестируйте с параметрами GET и с разными путями, чтобы исключить потерю URI.
Риски и рекомендации
- Риск: неправильный редирект приведёт к потере трафика и индексации. Рекомендация: тестирование, бэкапы конфигурации и staged deployment.
- Риск: смешивание rel=canonical и редиректов без согласованности. Рекомендация: унифицировать обе меры на одну и ту же каноническую версию.
Короткое резюме
Выберите одну версию домена и приведите конфигурацию сервера и метаданные в соответствие. Комбинация 301-редиректов и rel=canonical даёт надёжную защиту от дублей и помогает концентрировать SEO‑вес.
Если хотите, я могу подготовить готовые сниппеты для вашей конкретной конфигурации (пример домена, HTTPS, порты, прокси).
Похожие материалы
Claude 2 AI — доступ и возможности
Добавление костей в модель Blender
Как разблокировать настройку сложности в Minecraft
Печать с телефона через Google Cloud Print
Уведомления о доступе к камере и микрофону на Mac