Ржанский Д.

Есть ли кроме # символы, которые обрезают URL для индексации?

Разбираем, какой символ действительно отсекает часть URL для поискового робота, чем отличаются фрагменты, параметры и путь и как использовать специальные символы без проблем с индексацией.

Дмитрий Ржанский Дмитрий Ржанский 3 просмотров

Нет: в обычном HTTP(S)-URL только символ # отделяет фрагмент, который не передаётся серверу и обычно не рассматривается поисковыми системами как отдельный индексируемый URL.

Например:

https://example.com/page#reviews

При HTTP-запросе сервер получает ресурс /page, а #reviews остаётся на стороне клиента — обычно браузера. Поэтому адреса:

https://example.com/page#reviews https://example.com/page#specifications

не являются двумя разными серверными ресурсами только из-за различий после #.

Google прямо рекомендует не использовать URL-фрагменты для показа контента, который должен отдельно обнаруживаться и индексироваться. Яндекс также указывает, что обычные адреса с якорями после # не индексируются как отдельные страницы.

Что происходит с другими специальными символами

Другого универсального символа, который работает аналогично # и заставляет HTTP-клиент отбросить всю последующую часть адреса, нет.

Символ Назначение Отбрасывается ли последующая часть
# начало фрагмента да, фрагмент не передаётся серверу
? начало query-параметров нет
& разделение параметров нет
= разделение имени и значения параметра нет
/ разделение сегментов пути нет
; зарезервированный символ, значение зависит от реализации нет
: используется, например, после схемы и перед портом нет
@ зарезервированный разделитель нет

Например:

https://example.com/catalog?color=red&size=large

Сервер получает не только /catalog, но и query:

?color=red&size=large

Поэтому URL:

https://example.com/catalog?color=red https://example.com/catalog?color=blue

технически могут представлять разные ресурсы. Поисковый робот также может обнаруживать и сканировать такие адреса. Будут ли они индексироваться отдельно, уже зависит от содержимого страниц, canonical, meta robots, доступности для сканирования и других условий. Сам ? ничего не «обрезает».

То же относится к & и =. Они являются частью структуры query:

?brand=sony&color=black

Часть color=black не исчезает для поискового робота только потому, что перед ней стоит &.

Если символ # нужен именно как часть URL

Литерал # нельзя оставлять в пути как обычный символ, если всё после него должно участвовать в идентификации серверного ресурса.

Например:

https://example.com/model#123

будет разобран как ресурс /model и фрагмент 123.

Если решётка действительно является частью данных, её нужно кодировать:

https://example.com/model%23123

%23 — процентно закодированный символ #. Он уже не выполняет функцию разделителя фрагмента и может быть передан серверу как часть URL.

Это принципиальное различие:

https://example.com/model#123 → серверу передаётся /model

https://example.com/model%23123 → сервер получает путь с закодированным символом %23

Аналогично следует кодировать другие зарезервированные символы, если они должны выступать именно как данные, а не выполнять свою синтаксическую функцию.

Почему иногда кажется, что URL обрезается и на других символах

Такое поведение возможно, но его причиной будет уже не стандарт URL.

Например, адрес может повредиться из-за:

  • неправильного формирования href в HTML;
  • неэкранированных кавычек в атрибуте;
  • ошибки JavaScript;
  • маршрутизации CMS или фреймворка;
  • серверного редиректа;
  • декодирования специальных символов приложением;
  • некорректной обработки URL прокси-сервером;
  • передачи уже повреждённой ссылки из внешней системы.

Например, кавычка может преждевременно закончить значение HTML-атрибута:

Но это ошибка HTML-разметки, а не правило, по которому поисковая система перестаёт индексировать часть URL после ". Аналогично пробелы, обратный слеш и некоторые управляющие символы могут кодироваться, нормализоваться или приводить к ошибке в зависимости от клиента и сервера, но они не являются аналогами #.

Если на конкретном сайте URL неожиданно «обрывается» после ;, &, %, кавычки или другого символа, нужно проверять фактическую ссылку в HTML и HTTP-запрос, который получает сервер. Это позволяет отличить стандартное поведение URL от ошибки CMS, JavaScript или серверной конфигурации.

Для SEO практическое правило простое: контент, который должен существовать как самостоятельная индексируемая страница, не следует различать только фрагментом после #. Используйте отдельный путь или, когда это оправдано архитектурой сайта, query-параметр с полноценным серверным URL.

Разобрать проблему на вашем сайте

Опишите проблему — найду вероятную причину и предложу понятный план исправлений без лишних работ.

Связаться