Рекомендации 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
в ссылки на страницы, которые динамически создаются календарем и относятся к будущему. - Убедитесь, что все относительные ссылки на сайте работают правильно.