Читаемые URL улучшают кликабельность в выдаче, упрощают навигацию и помогают поисковым системам понимать тему страницы. В этой статье разберём, как создавать SEO-friendly URL: транслитерация кириллицы, генерация slug, типичные ошибки и инструменты.
Для транслитерации и генерации slug используйте инструмент транслитерации на reChecker. Для анализа ключевых слов в URL — анализатор ключевых слов reChecker.
Зачем нужны читаемые URL
Преимущества для SEO
- Ключевые слова — URL участвует в ранжировании; релевантные слова в пути усиливают сигнал
- Кликабельность — понятные ссылки вызывают больше доверия в сниппете
- Якорный текст — при копировании ссылки сам URL может выступать описанием страницы
- Совместное использование — короткие читаемые ссылки удобнее в соцсетях и мессенджерах
Примеры
| Плохо | Хорошо |
|---|---|
| /page?id=12345 | /kupit-iphone-15 |
| /category/42 | /smartfony-apple |
| /%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3 | /katalog |
Транслитерация кириллицы
Кириллица в URL создаёт длинные percent-encoded последовательности. Транслитерация в латиницу делает URL короче и читаемее.
Таблица соответствий (ГОСТ 7.79-2000, тип B)
| Кириллица | Латиница |
|---|---|
| а, б, в, г, д, е, ё, ж, з | a, b, v, g, d, e, e, zh, z |
| и, й, к, л, м, н, о, п | i, y, k, l, m, n, o, p |
| р, с, т, у, ф, х, ц, ч, ш, щ | r, s, t, u, f, h, ts, ch, sh, shch |
| ъ, ы, ь, э, ю, я | "", y, "", e, yu, ya |
Варианты: «ё» → e или yo, «й» в конце слова → y или i. Важна консистентность в рамках одного сайта.
Программная реализация
const translitMap = {
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'e',
'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'y', 'к': 'k', 'л': 'l', 'м': 'm',
'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u',
'ф': 'f', 'х': 'h', 'ц': 'ts', 'ч': 'ch', 'ш': 'sh', 'щ': 'shch',
'ъ': '', 'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya'
};
function transliterate(str) {
return str.toLowerCase().split('').map(char =>
translitMap[char] || char
).join('');
}
Для продакшена используйте библиотеку (например, transliteration) или транслитерацию на reChecker.
Генерация slug
Slug — часть URL, идентифицирующая страницу. Обычно генерируется из заголовка.
Правила
- Только латиница, цифры, дефисы — без пробелов, подчёркиваний, спецсимволов
- Нижний регистр — единообразие и избежание дублей из-за регистра
- Дефисы между словами —
kupit-iphone, неkupitiphone - Удаление стоп-слов — по желанию: «как», «что», «для» часто опускают для краткости
- Ограничение длины — 3–5 слов, 50–60 символов
Алгоритм
function slugify(title) {
return transliterate(title)
.replace(/[^a-z0-9\s-]/g, '') // только буквы, цифры, пробелы, дефисы
.replace(/\s+/g, '-') // пробелы в дефисы
.replace(/-+/g, '-') // множественные дефисы в один
.replace(/^-|-$/g, ''); // убрать дефисы с краёв
}
slugify('Как купить iPhone 15 Pro');
// "kak-kupit-iphone-15-pro"
Сокращение slug
Для длинных заголовков можно обрезать до N слов или символов:
function shortSlug(title, maxWords = 5) {
const words = slugify(title).split('-');
return words.slice(0, maxWords).join('-');
}
Уникальность slug
В базе данных slug должен быть уникален в рамках раздела (категории, типа контента). При коллизии добавляют суффикс:
// slug: "kupit-iphone"
// коллизия → "kupit-iphone-2" или "kupit-iphone-abc12"
Альтернатива — добавлять числовой ID: /post/12345/kupit-iphone. Число гарантирует уникальность, слова — читаемость.
Стоп-слова
Удаление стоп-слов сокращает URL, но может снизить релевантность. Рекомендация: удалять только очевидно лишние («и», «в», «на», «с») и сохранять значимые («как», «купить», «сделать»).
| Удалять | Оставлять |
|---|---|
| и, в, на, с, к, по, для | как, купить, сделать, лучший |
Редиректы при смене URL
При изменении slug настройте 301 редирект со старого URL на новый. Иначе теряется ссылочный вес и возможны 404.
/kupit-iphone-14 → 301 → /kupit-iphone-15
Многоязычные сайты
Для hreflang используйте разные slug по языкам или поддомены/пути:
/en/buy-iphone-15
/ru/kupit-iphone-15
Консистентность структуры важнее дословного перевода slug.
Практические рекомендации
- Ключевые слова — включайте главное ключевое слово в slug; проверяйте плотность через анализатор ключевых слов reChecker
- Консистентность — выберите одну схему транслитерации и придерживайтесь её
- Длина — 3–5 слов, избегайте перегруженных URL
- Числа — ID в конце допустимы:
/blog/12345/seo-guide - Канонические URL — при дублировании контента указывайте canonical на предпочтительный вариант
Инструменты транслитерация и анализ ключевых слов на reChecker помогают быстро сгенерировать и проверить SEO-friendly slug.
Обработка чисел и спецсимволов
Числа в slug допустимы и часто полезны (версии, годы, модели). Спецсимволы (&, +, #) удаляйте или заменяйте. Апострофы и кавычки лучше убрать. Дефис — единственный рекомендуемый разделитель слов.
slugify('iPhone 15 Pro Max');
// "iphone-15-pro-max"
Мягкий и твёрдый знаки
При транслитерации «ъ» и «ь» обычно опускают (пустая строка в таблице). Это сокращает slug и соответствует практике большинства сайтов. Альтернатива — заменять на " и ' соответственно, но такие символы в URL нежелательны.
Редиректы при смене slug
При изменении URL страницы настройте 301 редирект. В .htaccess (Apache):
RedirectMatch 301 ^/old-slug/?$ /new-slug/
В Nginx:
location = /old-slug {
return 301 /new-slug/;
}
Сохранение ссылочного веса и предотвращение 404 критично для SEO.
Многоуровневые URL
Для иерархии категорий используйте вложенные пути: /katalog/smartfony/apple. Каждый сегмент — отдельный slug. Избегайте избыточной вложенности (более 3–4 уровней) — длинные URL хуже воспринимаются и сложнее в поддержке.
Конфликты с зарезервированными путями
Проверяйте, что slug не совпадает с системными путями: /admin, /api, /login, /static и т.д. При коллизии страница может не открываться или отдаваться неправильный контент. Ведите список зарезервированных slug в конфигурации приложения.
Автоматическая генерация при создании контента
В CMS и админках slug часто генерируется автоматически при сохранении заголовка. Реализуйте функцию slugify на бэкенде и вызывайте её при создании/обновлении. Предусмотрите ручное переопределение — иногда автоматический slug не оптимален. Валидация: только a-z, 0-9, -; длина до 100–150 символов.
Проверка slug перед публикацией
Перед публикацией проверьте slug через транслитерацию reChecker — корректность отображения кириллицы. Используйте анализатор ключевых слов для страницы с новым URL — убедитесь, что целевая фраза присутствует в пути и контенте.
Итог
SEO-friendly URL — результат транслитерации, slugify и проверки на уникальность. Инструменты reChecker ускоряют генерацию и валидацию slug перед публикацией.