Slug в WordPress
WordPress — самая популярная CMS в мире (40%+ всех сайтов). Изначально создан для англоязычных блогов, поэтому работа с кириллицей в URL требует дополнительных плагинов. Без плагина «Привет мир» становится "%D0%BF%D1%80..." — нечитаемо и плохо для SEO.
Хороший WordPress slug:
- Латиница (для русскоязычного блога — транслитерация кириллицы)
- Lowercase (все буквы строчные)
- Дефисы между словами (не пробелы и не подчёрки)
- 3-5 ключевых слов
- Без стоп-слов («и», «в», «на», «для»)
- 30-60 символов
Плагины для slug
1. Cyr-To-Lat
Лучший выбор для русского. Бесплатный, простой, делает одну задачу — транслитерирует кириллицу в латиницу. 100k+ установок, поддерживается.
- Установка: WP Admin → Плагины → Добавить новый → найти «Cyr-To-Lat» → установить.
- Активация: один клик. Работает сразу, без настроек.
- Настройки: Settings → Cyr-To-Lat. Можно поменять словарь транслитерации.
- Применяется автоматически при публикации новой статьи.
- Не меняет существующие slug (по умолчанию). Есть кнопка «Convert existing» для миграции старых.
2. Yoast SEO
Комплексный SEO-плагин. Включает транслитерацию + множество других SEO-функций.
- Анализ контента (ключевые слова, читабельность)
- Meta tags (title, description, OG)
- Sitemap.xml автоматический
- Schema.org markup
- Удаление стоп-слов из slug (опция в настройках)
- Robots.txt
Платная версия добавляет: redirects manager, multiple keyphrases, internal linking suggestions. Бесплатной обычно хватает.
3. Rank Math
Современная альтернатива Yoast, более полная в бесплатной версии:
- 404 monitor
- Redirections manager (без премиум подписки)
- Schema templates
- Google Search Console интеграция
- Анализ контента
Растёт быстрее Yoast, но Yoast пока лидер по установкам (5M+ vs 1.5M+).
4. WP Permalinks Customizer
Для кастомных структур URL. Например, вы хотите /post/category/slug — этот плагин позволяет.
Permalinks are the permanent URLs to your individual weblog posts. A permalink is what another weblogger will use to link to your article. The URL to each post should be permanent, and never change.— WordPress Codex — Permalink Settings
Оптимизация slug
Шаг 1 — настройте permalink structure
Settings → Permalinks → выберите Custom Structure: /%postname%/. Это самый чистый вариант — URL содержит только slug.
Шаг 2 — установите Cyr-To-Lat (для русского)
# Через WP Admin: Plugins → Add New → найти "Cyr-To-Lat" → Install → Activate # Через WP-CLI: wp plugin install cyr2lat --activate
Шаг 3 — установите Yoast SEO для общей оптимизации
# Включить удаление стоп-слов: Yoast SEO → Settings → Advanced → Remove stop words from slug → Enabled
Шаг 4 — публикация статьи
- Заголовок: «10 способов экономии на ипотеке в 2024»
- Cyr-To-Lat сгенерирует:
10-sposobov-ekonomii-na-ipoteke-v-2024-godu - Yoast уберёт стоп-слова:
10-sposobov-ekonomii-ipoteke-2024-godu - Вручную в редакторе сократите:
10-sposobov-ekonomii-ipoteke - Этот short slug — оптимальный.
Миграция существующих slug
Если у вас уже есть статьи с кириллическими URL — нужна осторожная миграция:
- Установите Cyr-To-Lat.
- В настройках Cyr-To-Lat найдите «Convert existing slugs». НЕ запускайте сразу!
- Установите плагин Redirection. Он будет автоматически создавать 301-редиректы при изменении slug.
- Запустите конвертацию в Cyr-To-Lat — все кириллические slug превратятся в латинские.
- Проверьте Redirection — должны появиться 301-правила со старых URL на новые.
- Проверьте 5-10 случайных URL — открываются ли по старым адресам через редирект.
- Запросите переиндексацию в Yandex Webmaster.
- Подождите 1-3 месяца. Поисковики обновят индекс, новые URL начнут ранжироваться вместо старых.
Продвинутая настройка
Кастомизация транслитерации
Cyr-To-Lat имеет встроенный словарь, но вы можете изменить. Settings → Cyr-To-Lat → Iso 9 / Custom. Например, по умолчанию щ → shch, но для SEO лучше щ → sch (короче).
WP-CLI для массовых операций
# Список всех slug wp post list --field=post_name --post_type=post # Изменить slug для конкретного поста wp post update 42 --post_name="new-slug-name" # Bulk изменение через скрипт for post_id in $(wp post list --field=ID --post_type=post); do wp post update $post_id --post_name="$(generate_slug $post_id)" done
Code-only решение (без плагинов)
// functions.php — простой Cyr-To-Lat без плагина
function custom_translit_slug($title) {
$cyr = ['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'];
$lat = ['a','b','v','g','d','e','e','zh','z','i','y','k','l','m','n','o','p','r','s','t','u','f','h','c','ch','sh','sch','','y','','e','yu','ya'];
$title = mb_strtolower($title);
return str_replace($cyr, $lat, $title);
}
add_filter('sanitize_title', 'custom_translit_slug', 1);- WordPress Codex — Permalinks. WordPress. wordpress.org/documentation/article/customize-permalinks. 2024.
- Cyr-To-Lat Plugin. Sergey Biryukov. wordpress.org/plugins/cyr2lat. 2024.
- Yoast SEO — Slug optimization. Yoast. yoast.com/slug. 2024.
