Слаги URL и SEO: почему побеждает kebab-case

Лучший слаг (slug) URL — это несколько слов строчными буквами, соединённых дефисами: kebab-case-slugs, а не Kebab_Case_Slugs. Документация самого Google рекомендует дефисы вместо подчёркиваний, а поскольку Google считает пути URL чувствительными к регистру, строчные буквы избавляют от случайных страниц-дубликатов. Почти всё остальное, что говорят о слагах (идеальная длина, стоп-слова, расположение ключевых слов), — вопрос здравого смысла, а не правило, и в этой статье мы разделяем одно и другое.
Дефисы или подчёркивания: что на самом деле говорит Google
Полагаться на SEO-фольклор здесь не нужно, потому что Google говорит об этом прямо в своих рекомендациях по структуре URL:
We recommend using hyphens (-) instead of underscores (_) to separate words in your URLs, as it helps users and search engines better identify concepts in the URL. (Мы рекомендуем разделять слова в URL дефисами (-), а не подчёркиваниями (_): так пользователям и поисковым системам проще распознавать понятия в URL.)
Логику понять несложно. Подчёркивания уже используются, чтобы удерживать слова вместе: программисты называют функцию format_date именно потому, что хотят, чтобы имя читалось как единое целое. Дефис же читается как промежуток между отдельными словами. На странице это показано примерами вроде таких:
| Путь URL | Вердикт Google |
|---|---|
/summer-clothing/filter?color-profile=dark-grey | Рекомендуется (дефисы) |
/summer_clothing/filter?color_profile=dark_grey | Не рекомендуется (подчёркивания) |
/greendress | Не рекомендуется (слова слиплись) |
Обратите внимание на то, чего Google не говорит. Он нигде не утверждает, что URL с подчёркиваниями не может ранжироваться или что его игнорируют. Вам попадутся самоуверенные статьи, которые утверждают именно это; считайте это слухами. В документации — рекомендация с разумным объяснением.
Насколько важны ключевые слова в слаге?
Меньше, чем многие думают. В Google SEO Starter Guide «keywords in the domain name or URL path» (ключевые слова в доменном имени или пути URL) отнесены к тому, на чём не стоит сосредотачиваться, и сказано, что с точки зрения ранжирования они «have hardly any effect beyond appearing in breadcrumbs» (почти ни на что не влияют, кроме отображения в хлебных крошках). В том же руководстве при этом советуют описательные URL, потому что части URL могут появляться в результатах поиска в виде хлебных крошек, и по ним люди судят, полезен ли результат.
Так что честная причина писать хорошие слаги — люди. Слаг вроде /blog/seo-url-slugs-kebab-case говорит, что человек получит, ещё до клика, не ломается при вставке в чат и легко читается вслух. Слаг вроде /p?id=8812 не делает ничего из этого.
Это снимает и распространённое опасение: нужно ли переименовывать все старые URL вида my_post в my-post? Мы бы не стали, если только вы и так не перестраиваете сайт. Смена URL означает настройку редиректов и ожидание, пока поисковые системы подтянутся, а задокументированная выгода невелика. Для всего нового используйте дефисы, а работающие URL не трогайте. Если же вы решите их перенести, как это сделать, рассказывает наше руководство о постоянных ссылках, структуре URL и безопасных редиректах.
Почему слаги URL лучше писать строчными буквами
Доменная часть URL (Example.com) нечувствительна к регистру, а вот всё, что идёт после неё, может быть чувствительно. Документация Google прямо говорит, что обработка URL у него чувствительна к регистру, и приводит пример: /APPLE и /apple считаются двумя разными URL со своим содержимым.
Что будет дальше, зависит от вашего сервера. На многих конфигурациях /Blog/My-Post просто вернёт 404, потому что нет файла или маршрута с таким точным именем. На других любое написание отдаёт одну и ту же страницу, и тихо появляются дубликаты. Совет Google для второго случая: привести весь текст к одному регистру, чтобы было проще понять, что URL ведут на одну страницу.
Очевидный выбор — строчные буквы. Большинство людей набирает URL строчными, и никто не помнит, было это Pricing или pricing. Если ваш сервер уже отвечает на запросы со смешанным регистром, добавьте постоянный редирект с любого пути с заглавными буквами на его строчный двойник. (У доменов и адресов электронной почты правила другие; о них мы рассказываем в статье о регистре текста в доменных именах и адресах электронной почты.)
Как превратить заголовок в аккуратный слаг
Вот что обычно делает генератор слагов, и так же можно действовать вручную:
- Привести всё к нижнему регистру.
- Удалить апострофы, а не заменять их, чтобы don't превратилось в
dont, а не вdon-t. - Заменить каждую серию пробелов и знаков препинания одним дефисом.
- Обрезать дефисы в начале и в конце.
- Решить, что делать с диакритикой и нелатинскими буквами.
- Прочитать результат и отредактировать его как человек.
Именно на шестом шаге начинается ремесло. Несколько реальных преобразований с помощью кнопки Slugify в нашем конвертере:
| Заголовок | Автоматический слаг | После правки |
|---|---|---|
| SEO Best Practices for URL Slugs: Why kebab-case Wins (SEO-рекомендации по слагам URL: почему побеждает kebab-case) | seo-best-practices-for-url-slugs-why-kebab-case-wins | seo-url-slugs-kebab-case |
| Don't Panic: 10 Tips for Café Owners! (Без паники: 10 советов владельцам кафе!) | dont-panic-10-tips-for-cafe-owners | cafe-owner-tips |
| C++ vs C# | c-vs-c | cpp-vs-csharp |
Первая строка — настоящий слаг этой статьи. Мы убрали «best practices», «why» и «wins», потому что они прибавляют длину, но не смысл. Третья строка показывает, почему шаг редактирования пропускать нельзя: символы вроде + и # несут в этом заголовке весь смысл, а механический слаг их выбрасывает.
Стоп-слова: убирайте воду, сохраняйте смысл
Короткие слова вроде «a», «the» и «of» в английских слагах можно отбросить, чтобы сократить длинный слаг. Но это не правило. Оставляйте любое короткое слово, которое меняет смысл: coffee-without-sugar и coffee-sugar — разные страницы, а «not», «no» и «vs» крошечные, но держат на себе смысл.
Длина
Google не публикует предельной длины слага в символах. Его совет прост: делайте URL простыми и читаемыми. Наше практическое правило — от трёх до шести слов, называющих тему: так слаг читается в хлебных крошках и достаточно короток, чтобы им делиться. Слагу не нужно повторять весь заголовок, и он не должен меняться всякий раз, когда вы слегка правите заголовок.
Диакритика и другие языки
Google рекомендует использовать в URL слова на языке вашей аудитории. В латинском тексте с диакритикой многие генераторы слагов убирают диакритические знаки, так что crème brûlée становится creme-brulee. Обычно это нормально, но иногда меняет слово: немецкое schön (красивый) превращается в schon (уже). Перечитывайте результат. Для письменностей вроде греческой, кириллицы или японской можно оставить исходные буквы; о плюсах и минусах слагов не из ASCII рассказывает наше руководство о постоянных ссылках.
kebab-case и Slugify в ConvertCaseHQ
В нашем конвертере регистра есть и кнопка kebab-case, и кнопка Slugify, и это не одно и то же. Обе приводят текст к нижнему регистру, убирают апострофы, сохраняют нелатинские письменности вроде греческой, кириллицы и японской (пустой слаг никому не нужен) и соединяют слова дефисами. Различия такие:
- Диакритика: Slugify убирает её у латинских букв (é → e, ł → l, ß → ss). kebab-case сохраняет, так что Café становится
café. - Ввод в camelCase: kebab-case разбивает его (
XMLHttpRequest→xml-http-request), и для кода это то, что нужно. Slugify считает это одним словом (xmlhttprequest).
Ни одна из кнопок не убирает стоп-слова; это ваше решение. Обе считают всё поле ввода одной строкой, так что переводы строк тоже превращаются в дефисы. Преобразуйте по одному заголовку.
Короткий чек-лист по слагам URL
- Только строчные буквы, и редирект для вариантов со смешанным регистром, если ваш сервер на них отвечает.
- Дефисы между словами. Без подчёркиваний, без пробелов, без слипшихся слов.
- Без апострофов, знаков препинания и лишних символов, но переписывайте заголовки, где символы важны.
- От трёх до шести значимых слов. Убирайте воду, оставляйте слова, которые меняют смысл.
- Напишите один раз и не трогайте. Стабильный URL лучше идеального.


