Перейти к содержимому
SEO · GEO под нейросети · реклама · сайты — Беларусь, Россия, СНГ
@felix_adminЕжедневно 10:00–20:00
Блог

Как убрать повторяющиеся слеши в URL

Адреса site.by/catalog// и site.by/catalog/ для поисковика — две разные страницы. Если сервер отвечает на оба кодом 200, появляются дубли: вес делится между копиями, а в индекс может попасть «неправильный» адрес. Лечится это одним правилом редиректа.

Рассчитать стоимость
Обновлено 09.11.20262 мин чтенияАвтор: SEOpro, частный SEO-специалист

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

  • ошибки в шаблоне или меню, где путь склеивается из частей: $base . '/' . $path;
  • ссылки, поставленные вручную в текстах;
  • внешние сайты, которые ссылаются с ошибкой;
  • боты и парсеры, которые перебирают адреса.

Проверить просто: откройте любую страницу, добавьте лишний слеш — site.by//uslugi///. Если страница открылась без перенаправления, проблема есть.

Решение для Apache (.htaccess)

Правило ставится в начало .htaccess, после RewriteEngine On:

RewriteEngine On
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]

Apache сам схлопывает повторяющиеся слеши в переменной пути, поэтому $0 уже содержит чистый адрес, а условие по THE_REQUEST срабатывает только тогда, когда в исходном запросе действительно были двойные слеши.

Решение для nginx

У nginx по умолчанию включена директива merge_slashes on: он склеивает слеши при обработке запроса, но не перенаправляет пользователя. Для редиректа добавьте в блок server:

if ($request_uri ~ "//") {
    rewrite ^(.*)$ $1 permanent;
}

Перед применением проверьте конфигурацию командой nginx -t.

Решение для 1С-Битрикс

Если на хостинге Битрикс работает за nginx или правила .htaccess не срабатывают, можно сделать редирект средствами PHP — например, в /bitrix/php_interface/init.php:

$uri = $_SERVER['REQUEST_URI'];
$clean = preg_replace('#/{2,}#', '/', $uri, -1, $count);
if ($count > 0) {
    LocalRedirect($clean, false, '301 Moved Permanently');
}

WordPress

WordPress сам обрабатывает часть таких адресов, но не всегда. Надёжнее правило на уровне сервера (см. выше). Плагины редиректов тоже подойдут, но серверное правило работает быстрее и не зависит от обновлений плагинов.

После настройки

  1. Проверьте несколько адресов с лишними слешами: должен быть один 301 на чистый адрес, без цепочек.
  2. Найдите и исправьте ссылки с двойными слешами внутри сайта — краулером или поиском по базе.
  3. Заодно проверьте другие источники дублей: www и без www, http и https, слеш в конце и без него, index.php в адресе.

Смотрите также

FAQ

Вопросы и ответы

Можно ли вместо редиректа указать canonical?

Можно, но редирект надёжнее: canonical для поисковика — подсказка, а 301 — однозначная инструкция. Плюс пользователь сразу видит правильный адрес.

Бесплатно и без обязательств
Пришлите сайт — покажу, где он теряет клиентов
  • 3 главные точки роста в поиске и нейросетях
  • Честно скажу, если SEO сейчас не окупится
  • Ответ в течение рабочего дня — в Telegram, Viber или на почту
Telegram Viber Расчёт