Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Разбор

Абсолютные и относительные ссылки: где какие уместны

Ссылка на странице сайта может быть записана полным адресом с доменом или короткой записью относительно текущего расположения. Разбираем, когда какой вариант работает надёжнее.

В чём разница между двумя типами

Тип ссылкиПримерЧто означает
Абсолютнаяhttps://site.ru/catalog/divany/Полный адрес с доменом и протоколом
Относительная от корня/catalog/divany/Путь от корня текущего домена
Относительная от текущей страницы../divany/ или divany/Путь относительно расположения текущего документа

Браузер разворачивает относительную ссылку в полный адрес автоматически, ориентируясь на текущий адрес страницы, но в исходном коде сайта она хранится в короткой форме.

Плюсы относительных ссылок

  • Меньше кода — короче писать и легче читать в разметке.
  • Переносимость между окружениями. Ссылки, записанные от корня, продолжают работать на тестовом сервере, на локальной копии и на боевом сайте без изменений, потому что не привязаны к конкретному домену.
  • Автоматический учёт протокола. Относительная ссылка не завязана на http или https — если сайт целиком переведён на защищённый протокол, ссылки менять не нужно.

Плюсы абсолютных ссылок

  • Однозначность в письмах, RSS, соцсетях. Вне контекста сайта — например, в email-рассылке — относительная ссылка не работает, потому что там нет «текущей страницы», от которой можно оттолкнуться.
  • Надёжность при синдикации контента. Если статья копируется на другую площадку, абсолютная ссылка продолжает вести на исходный сайт, а относительная сломается и укажет на несуществующий путь внутри чужого домена.
  • Явные требования некоторых тегов. Канонический адрес и микроразметка BreadcrumbList, разобранная в статье про хлебные крошки, всегда должны быть абсолютными — относительная запись там не работает надёжно.

Практическое правило. Внутренняя навигация сайта — меню, ссылки между страницами, хлебные крошки в вёрстке — используют относительные ссылки. Всё, что покидает контекст сайта или встраивается в метаданные для внешних систем — canonical, og:url, ссылки в письмах, — используют абсолютные.

Частые ошибки

Относительная ссылка от текущей страницы вместо корня. Запись вида divany/ без начального слэша интерпретируется относительно текущего пути, а не корня сайта, и при переносе одного и того же блока вёрстки на страницу другого уровня вложенности ссылка начинает вести не туда.

На странице /catalog/:        divany/  →  /catalog/divany/  (верно)
На странице /catalog/divany/: divany/  →  /catalog/divany/divany/  (ошибка)

Именно поэтому относительные ссылки от корня, начинающиеся со слэша, надёжнее — они не зависят от того, откуда именно происходит переход.

Смешанный протокол в абсолютных ссылках. Если часть ссылок на сайте прописана с http://, а сайт работает по https://, каждый такой переход проходит через лишний редирект, даже внутри одного домена.

Особый случай: canonical и hreflang

Оба этих тега технически допускают относительную запись по стандарту, но на практике многие системы обработки данных интерпретируют их надёжно только в абсолютной форме. Правило простое: любой тег в разделе head, который читает не браузер посетителя, а внешняя система — поисковый робот, агрегатор, парсер, — должен содержать полный абсолютный адрес.

Что выбрать для разных случаев на практике

Место использованияРекомендация
Меню и внутренняя навигацияОтносительная от корня
Ссылки внутри текста статьиОтносительная от корня
Тег canonicalАбсолютная
Микроразметка (BreadcrumbList, Product и другие)Абсолютная
Ссылки в email-рассылкеАбсолютная
Изображения и подключаемые файлыОтносительная от корня

Чек-лист

  1. Внутренняя навигация — относительные ссылки от корня со слэшем в начале.
  2. Canonical, hreflang и микроразметка — только абсолютные адреса.
  3. Ни одна ссылка на сайте не содержит http, если сайт работает по https.
  4. Относительные ссылки проверены на страницах разных уровней вложенности.

Протокол-независимые ссылки: устаревший приём

Раньше существовал ещё один вариант — ссылка без протокола вовсе, начинающаяся сразу с двух слэшей: //site.ru/catalog/. Браузер подставлял тот же протокол, что использовался для текущей страницы. Этот приём был полезен, пока сайты существовали в двух версиях — http и https — одновременно. Сегодня, когда https стал единственным стандартом, необходимость в таком приёме отпала, и вместо него достаточно обычной относительной ссылки от корня.

Тег base и его влияние на относительные ссылки

Отдельная тонкость — HTML-тег <base>, который может переопределить, от какого адреса разворачиваются все относительные ссылки на странице. Он редко используется на обычных сайтах, но встречается в шаблонах некоторых конструкторов и одностраничных приложений. Если на сайте относительные ссылки ведут не туда без видимой причины, стоит проверить исходный код страницы на наличие этого тега.

Частые вопросы

Что лучше использовать в меню сайта — абсолютные или относительные ссылки?

Относительные от корня, начинающиеся со слэша. Они короче, переносимы между окружениями и не зависят от домена или протокола.

Можно ли указывать canonical относительной ссылкой?

Формально стандарт это допускает, но на практике надёжнее использовать полный абсолютный адрес — так тег корректно интерпретируется всеми системами, включая поисковые роботы.

Почему ссылка вида divany/ иногда ведёт не туда?

Потому что без начального слэша она интерпретируется относительно текущей страницы, а не корня сайта. На страницах разного уровня вложенности такая ссылка разворачивается по-разному.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также