Ставить завершающий слеш в URL или нет: как лучше для SEO
Разбираемся, важен ли слеш в конце URL-адреса, на что влияет в SEO и как его добавить или удалить.
Перевод статьи из блога Sammy SEO.
Завершающий слеш — это косая черта в конце URL-адреса. Среди специалистов идут споры, какой адрес лучше для SEO: с завершающим слешем или без него.
Такой: https://www.sammyseo.com/trailing-slash-verse-no-trailing-slash/ Или такой: https://www.sammyseo.com/trailing-slash-verse-no-trailing-slash
Какое значение имеет завершающий слеш
У вас может возникнуть вопрос: завершающий слеш — это всего лишь ещё один символ в конце URL-адреса, разве он может влиять на SEO?
На самом деле этот незначительный на первый взгляд символ создаёт полную копию страницы, которая доступна для Google и которую эта поисковая система может проиндексировать.
Если страница доступна сразу по двум URL — со слешем и без, то мы получаем дубль страницы, что может негативно отразиться на SEO. Поэтому нельзя, чтобы страница была доступна для сканирования и индексирования по обоим адресам — нужно выбрать один из них.
Обязательно ли использовать завершающий слеш
Я предпочитаю URL-адреса с завершающим слешем. В основном я работаю с корпоративными или крупными клиентами, которые, как правило, используют programmatic SEO.
Такое SEO требует активного использования папок для обеспечения структуры сайта с правильной и точной иерархией.
На заре интернета завершающий слеш определял, что URL‑адрес обозначает папку, а URL‑адрес без завершающего слеша обозначал страницу — зачастую с расширением html или другим похожим расширением.
В то время можно было видеть такие URL‑адреса:
domain.com/folder/
domain.com/page.html
Затем эти URL‑адреса поменялись на такие:
domain.com/folder/
domain.com/page
В наше время семантически это уже не так важно, но иерархия и структура сайта всё ещё важны.
Кроме того, в WordPress по умолчанию используются URL‑адреса с завершающим слешем. На WordPress приходится 34 % сайтов, а рыночная доля этой CMS‑системы составляет 60 %. Может быть, владельцы всех этих сайтов сделали правильный выбор?
Тем не менее нельзя однозначно сказать, стоит использовать слеш на конце URL или нет.
В случае нового сайта можно выбрать любой вариант. Например, ориентируйтесь на то, как удобнее разработчикам сайта.
Если вы имеете дело с уже существующим сайтом, то среди двух вариантов страниц — с завершающим слешем и без него — выберите тот, у которого выше SEO‑показатели, и настройте на него редирект с другой страницы.
Как настроить редирект с одной версии страницы на другую
Независимо от выбранного варианта URL‑адресов необходимо настроить 301‑редирект (переадресацию) с одной версии URL‑адресов (например, с адресов без слеша) на выбранный тип URL‑адресов (например, на тот, что со слешем).
Хотя каноническая ссылка должна убирать или добавлять завершающий слеш, её будет недостаточно для того, чтобы индексация и сканирование сайта выполнялись правильно. Также не стоит делать редирект на стороне клиента при помощи JavaScript, так как это не предотвратит индексацию страниц.
Чтобы все индексировалось корректно, нужно настроить редирект на стороне сервера с кодом ответа 301.
Что значит код ответа 301 в списке кодов ответа сервера
Принудительное добавление завершающего слеша с помощью файла .htaccess
Можно обеспечить использование завершающего слеша и 301‑редирект, добавив следующий код в файл .htaccess вашего сайта:
RewriteCond %{REQUEST_FILENAME} !‑f RewriteRule ^(.*)([^/])$ /$1$2/ [L,R=301]
Однако этот код также будет перенаправлять расширения файлов. Если вы не хотите, чтобы они перенаправлялись, то нужно использовать следующий код:
RewriteCond %{REQUEST_URI} !.(php|html?|jpg|gif)$ RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
Оба эти правила в файле .htaccess добавляются после этой строки:
RewriteEngine On
Принудительное удаление завершающего слеша с помощью файла .htaccess
Вы можете убрать завершающий слеш, используя следующий код:
RewriteCond %{REQUEST_FILENAME} !‑d RewriteRule ^(.*)/$ /$1 [L,R=301]
Как и в случае принудительного добавления слеша, код для удаления добавляется после этой строки:
RewriteEngine On
Удаляем завершающий слеш в Cloudflare
К сожалению, добавить завершающий слеш к URL‑адресам в Cloudflare нельзя.
А удалить — можно, с помощью двух редиректов. Первый должен обеспечить сохранение параметров, а второй — убрать завершающий слеш.
Без строки запроса: https://foo.com/*/ → https://foo.com/$1
Со строкой запроса: https://foo.com/*/?* → https://foo.com/$1?$2
Если вы не слишком активно используете перелинковку на сайте или не используете и не использовали URL‑адреса с завершающим слешем, то эти два редиректа вам подойдут.
Однако если вы активно используете завершающий слеш в URL‑адресах, то стоит подумать, как можно реализовать такой редирект за один шаг, чтобы облегчить оптимизацию и очистку данных.