Рекомендации Google по созданию структуры URL

Google поддерживает URL, которые соответствуют стандарту RFC 3986. Символы, определяемые в нем в качестве зарезервированных, должны быть закодированы с использованием знаков процента. Нерезервируемые символы ASCII можно не кодировать. Кроме того, символы, которые не входят в диапазон ASCII, должны иметь кодировку UTF-8.

По возможности используйте в URL осмысленные слова, а не длинные цифровые идентификаторы.

Рекомендуется использовать в URL простые слова, которые описывают контент на странице:

https://en.wikipedia.org/wiki/Aviation

Рекомендуется транслитерировать слова в URL, если это возможно:

https://example.com/lebensmittel/pfefferminz

Рекомендуется при необходимости использовать кодировку UTF-8. Ниже показан пример использования кодировки UTF-8 для арабских символов в URL:

https://example.com/%D9%86%D8%B9%D9%86%D8%A7%D8%B9/%D8%A8%D9%82%D8%A7%D9%84%D8%A9

В этом примере кодировка UTF-8 используется для китайских символов:

https://example.com/%E6%9D%82%E8%B4%A7/%E8%96%84%E8%8D%B7

В этом – для умлаутов (двоеточий над гласными):

https://example.com/gem%C3%BCse

А в этом – для эмодзи:

https://example.com/%F0%9F%A6%99%E2%9C%A8

Не рекомендуется использовать в URL символы, не относящиеся к кодировке ASCII:

https://example.com/نعناع
https://example.com/杂货/薄荷
https://example.com/gemüse
https://example.com/🦙✨

Не рекомендуется использовать в URL длинные цифровые идентификаторы, которые не будут понятны пользователю:

https://example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1

Не используйте фрагменты, чтобы изменять контент страницы, поскольку Google, как правило, не поддерживает фрагменты URL. Если же вы изменяете контент с помощью JavaScript, перейдите на History API.

Не рекомендуется использовать фрагменты URL:

https://example.com/#/potatoes

Если ваш сайт посещают люди из разных регионов, используйте такую структуру URL, которая позволит легко выделить фрагменты, указывающие на регион. Другие примеры структурирования URL можно найти в инструкции по указанию региона в URL.

Рекомендуется использовать домен страны:

https://example.de

Рекомендуется использовать подкаталог, обозначающий ту или иную страну:

https://example.com/de/

Чтобы разделять слова в URL, можно использовать дефисы. В этом случае пользователям и поисковым системам будет проще определять, к чему относится тот или иной URL. Используйте в URL дефисы (-), а не символы подчеркивания (_).

Рекомендуется использовать в URL дефисы (-):

https://example.com/summer-clothing/filter?color-profile=dark-grey

Не рекомендуется использовать для разделения символ подчеркивания (_):

https://example.com/summer_clothing/filter?color_profile=dark_grey

Не рекомендуется объединять слова в URL:

https://example.com/greendress

Указывайте параметры URL при помощи следующих общих принципов кодирования: разделяйте пары "ключ-значение" знаком равенства (=) и добавляйте параметры через амперсанд (&). Указать несколько значений для одного ключа из пары "ключ-значение" можно через любой символ, совместимый со стандартом IETF STD 66, например запятую (,).

Рекомендуется разделять пары "ключ-значение" знаком равенства (=) и добавлять параметры через амперсанд (&):

https://example.com/category?category=dresses&sort=low-to-high&sid=789

Рекомендуется указывать значения для одного ключа через запятую (,), разделять пары "ключ-значение" знаком равенства (=) и добавлять параметры через амперсанд (&):

https://example.com/category?category=dresses&color=purple,pink,salmon&sort=low-to-high&sid=789

Не рекомендуется разделять пары "ключ-значение" двоеточием (:) и добавлять параметры в квадратных скобках ([ ]):

https://example.com/category?[category:dresses][sort:price-low-to-high][sid:789]

Не рекомендуется разделять пары "ключ-значение" одной запятой , и добавлять параметры через двойную запятую (,,):

https://example.com/category?category,dresses,,sort,lowtohigh,,sid,789

Распространенные проблемы с URL

Если URL сайта слишком сложные, например содержат много параметров, то разные URL могут указывать на страницы с одним и тем же или похожим контентом. Это затрудняет сканирование. В результате робот Googlebot может создавать значительную нагрузку на ваш сервер. Кроме того, есть вероятность, что ему не удастся полностью просканировать весь контент сайта.

Наличие избыточного количества URL может быть связано с самыми разными факторами. Некоторые из них описаны ниже.

  • Добавочная фильтрация набора элементов. На многих сайтах имеются разные представления одного и того же набора элементов или результатов поиска, с помощью которых пользователь может фильтровать его по определенным критериям (например, "показать гостиницы на побережье"). Если фильтры можно сочетать (например, "гостиницы на побережье с фитнес-центром"), на этих сайтах значительно увеличивается количество URL (представлений данных). Вовсе не обязательно создавать множество практически одинаковых списков гостиниц, поскольку роботу Googlebot достаточно изучить совсем небольшое количество списков, с помощью которых он сможет перейти на страницу каждой гостиницы. Пример:
    • Гостиницы по выгодной цене:
      https://example.com/hotel-search-results.jsp?Ne=292&N=461
    • Гостиницы по выгодной цене на побережье:
      https://example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240
    • Гостиницы с фитнес-центром по выгодной цене на побережье:
      https://example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240+4294967270
  • Динамически создаваемые документы. Такие документы могут незначительно отличаться друг от друга из-за добавления счетчиков, меток времени или объявлений.
  • Параметры в URL, способные вызвать проблемы. Некоторые факторы, например идентификаторы сеансов, могут приводить к частому дублированию URL и значительному росту их количества.
  • Упорядочивание параметров. Некоторые крупные интернет-магазины предусматривают разные способы упорядочивания одних и тех же элементов. В результате создается большое количество URL. Пример:
    https://example.com/results?search_type=search_videos&search_query=tpb&search_sort=relevance&search_category=25
  • Нерелевантные параметры в URL, такие как параметры источника перехода. Пример:
    https://example.com/search/noheaders?click=6EE2BF1AF6A3D705D5561B7C3564D9C2&clickPage=OPD+Product+Page&cat=79
    https://example.com/discuss/showthread.php?referrerid=249406&threadid=535913
    https://example.com/products/products.asp?N=200063&Ne=500955&ref=foo%2Cbar&Cn=Accessories.
  • Проблемы, связанные с календарем. Динамически создаваемый календарь может генерировать ссылки на последующие и предшествующие даты без ограничения по началу и окончанию периода. Пример:
    https://example.com/calendar.php?d=13&m=8&y=2011
  • Неработающие относительные ссылки. Подобные элементы нередко приводят к появлению бесконечных пространств. Зачастую эта проблема вызвана повторяющимися элементами пути. Пример:
    https://example.com/index.shtml/discuss/category/school/061121/html/interview/category/health/070223/html/category/business/070302/html/category/community/070413/html/FAQ.htm

Устранение проблем с URL

Чтобы избежать возможных проблем, связанных со структурой URL, следуйте рекомендациям ниже.

  • Создайте простую структуру URL. Попробуйте упорядочить контент так, чтобы структура URL могла быть понятна человеку.
  • Заблокируйте роботу Googlebot доступ к проблемным URL с помощью файла robots.txt. Как правило, следует блокировать динамические URL, например страницы результатов поиска или URL, создающие бесконечные пространства (такие как календари). С помощью регулярных выражений в файле robots.txt можно без труда заблокировать большое количество URL.
  • Старайтесь не использовать в URL идентификаторы сеансов. Вместо них рекомендуется применять файлы cookie.
  • Если веб-сервер обрабатывает URL со строчными и прописными буквами одинаково, приведите все URL к одинаковому регистру. Это поможет роботам Google определять, что те или иные URL ведут на одну страницу.
  • По возможности укоротите URL, удалив из них ненужные параметры.
  • Если на сайте есть бесконечный календарь, добавьте атрибут nofollow в ссылки на страницы, которые динамически создаются календарем и относятся к будущему.
  • Убедитесь, что все относительные ссылки на сайте работают правильно.