URL с/без слэша, www/без www: как навести порядок
Один контент по нескольким URL = размытие веса. Настройка 301-редиректов и canonical.
Симптом
- Один и тот же контент доступен по нескольким URL (например,
https://example.com/pageиhttps://example.com/page/). - В Google Search Console видны обе версии страницы, но с разным CTR и ранжированием.
- В отчётах по позициям появляются дублирующиеся URL с разными позициями.
- Внутренние ссылки ведут как на версию с слэшем, так и без него.
- В файле
robots.txtнет правил, запрещающих индексацию обеих версий. - В мета‑теге
<link rel="canonical">указана одна из версий, но не обе.
Причина
- Отсутствие 301‑редиректа: сервер не перенаправляет одну версию URL на другую, поэтому поисковые системы видят два разных ресурса.
- Неправильная настройка
try_files/rewriteв Nginx илиmod_rewriteв Apache, что приводит к тому, что обе версии обслуживаются как отдельные страницы. - Отсутствие canonical‑тега или его некорректное указание, что не сообщает поисковикам, какая версия является «правильной».
- Внутренние ссылки указывают на обе версии, усиливая дублирование.
Как проверить
- Проверка наличия редиректа
bash curl -I https://example.com/page curl -I https://example.com/page/В ответе должен бытьHTTP/1.1 301 Moved Permanentlyи заголовокLocation: https://example.com/page/(или наоборот). - Проверка canonical‑тега
Открой страницу в браузере, посмотри исходный код и убедись, что в<head>есть
html <link rel="canonical" href="https://example.com/page/"> - Проверка внутренней ссылочной структуры
Воспользуйся инструментом Screaming Frog или аналогичным, чтобы вывести все внутренние ссылки и убедиться, что они ведут только на одну версию URL. - Проверка в Google Search Console
Перейди в раздел «Покрытие» и посмотри, сколько страниц с и без слэша проиндексировано.
Решение
1. Настройка 301‑редиректа в Nginx
Если используешь Nginx, добавь в серверный блок:
# Перенаправление без слэша → с слэшем
rewrite ^([^.]*[^/])$ $1/ permanent;
# Перенаправление с www → без www (или наоборот)
if ($host ~* ^www\.(.*)$) {
return 301 https://$1$request_uri;
}
Важно: ставь правило перенаправления до
try_files, чтобы оно срабатывало первым.
2. Настройка 301‑редиректа в Apache
В .htaccess:
RewriteEngine On
# Перенаправление без слэша → с слэшем
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.+)$ https://%{HTTP_HOST}/$1/ [R=301,L]
# Перенаправление с www → без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
3. Добавление canonical‑тега
В шаблоне страницы вставь:
<link rel="canonical" href="https://example.com/page/">
Если сайт динамический, генерируй URL в зависимости от текущего запроса.
4. Корректировка внутренних ссылок
Проверь шаблоны и CMS‑плагины, чтобы все внутренние ссылки указывали на canonical‑версию (с слэшем и без www, если так принято).
5. Проверка и обновление индексации
- После внесения изменений в Google Search Console нажми «Проверить URL» для обеих версий, чтобы убедиться, что они теперь корректно обрабатываются.
- Если дубли всё ещё видны, подожди 24–48 ч, пока поисковики обновят индекс.
Связанные
SEO КП · нужна помощь?
Не хотите разбираться сами?
Запустите технический аудит сайта за 5 минут — получите PDF-отчёт с разбором всех 64 параметров и конкретными точками роста. Или закажите комплексное SEO-продвижение сайта — починим всё это и возьмём на себя дальнейшую оптимизацию.