Slug — это часть URL, которая отвечает за уникальный идентификатор записи на вашем сайте WordPress. Часто возникает необходимость изменить slug уже опубликованных постов для улучшения SEO, удобства пользователя или под новую структуру сайта. В этой статье подробно разберём, как корректно изменить slug постов в WordPress, не потеряв трафик и не вызвав ошибок.
Что такое slug и зачем его менять
Slug — это текстовая часть URL после домена, которая идентифицирует страницу. Например, в адресе https://example.com/kak-izmenit-slug-postov слово kak-izmenit-slug-postov является slug.
Изменение slug может понадобиться, если:
- Вы хотите улучшить SEO, сделав URL более понятным и релевантным.
- Изменились заголовки или тематика статьи.
- Требуется унификация URL в рамках новой структуры сайта.
Однако изменение slug без правильной настройки может привести к ошибкам 404, потере позиций в поисковых системах и снижению трафика.
Как изменить slug через админку WordPress
Самый простой способ изменить slug — через редактор записи:
- Откройте запись для редактирования в админке.
- Под заголовком найдите поле «Постоянная ссылка» (Permalink).
- Нажмите кнопку редактирования и измените slug.
- Сохраните изменения.
Этот способ удобен для единичных изменений, но при массовом редактировании или необходимости автоматизации лучше использовать программные методы.
Автоматическое изменение slug через код: пример функции
Для массового изменения slug можно написать функцию, которая изменит их по определённому правилу. Ниже пример функции wp_lessons_change_post_slug, которая заменяет пробелы на дефисы и переводит slug в нижний регистр:
function wp_lessons_change_post_slug( $post_id ) {
// Получаем объект записи
$post = get_post( $post_id );
if ( ! $post || $post->post_type !== 'post' ) {
return;
}
// Формируем новый slug: например, на основе заголовка
$new_slug = sanitize_title( $post->post_title );
// Обновляем поле post_name
wp_update_post( [
'ID' => $post_id,
'post_name' => $new_slug
] );
}
// Пример вызова для поста с ID 123
// wp_lessons_change_post_slug(123);Эту функцию можно вызвать для каждого поста программно, например, через WP-CLI или циклом из другого скрипта.
Массовое обновление всех постов
Для массового изменения slug всех постов можно использовать следующий код, который пройдётся по всем записям и обновит slug:
function wp_lessons_mass_update_slugs() {
$args = [
'post_type' => 'post',
'posts_per_page' => -1,
'post_status' => 'publish',
'fields' => 'ids'
];
$posts = get_posts( $args );
foreach ( $posts as $post_id ) {
$post = get_post( $post_id );
$new_slug = sanitize_title( $post->post_title );
if ( $post->post_name !== $new_slug ) {
wp_update_post( [
'ID' => $post_id,
'post_name' => $new_slug
] );
}
}
}
// Вызов функции
// wp_lessons_mass_update_slugs();Внимание! Перед массовым обновлением обязательно сделайте резервную копию базы данных.
Как правильно настроить редиректы после изменения slug
Изменение slug меняет URL записи. Чтобы не потерять посетителей и SEO-позиции, нужно настроить 301 редиректы со старых URL на новые.
Рекомендуется использовать плагин Redirection или аналогичные. Пример настройки редиректа вручную в .htaccess:
Redirect 301 /starij-slug /novyj-slugЕсли редиректов много, проще использовать плагин с возможностью импорта из CSV или автоматическое формирование редиректов на основе изменений slug.
Плагин Redirection и его преимущества
Redirection — бесплатный и популярный плагин, который позволяет:
- Управлять 301 редиректами через удобный интерфейс.
- Отслеживать 404 ошибки и автоматически создавать редиректы.
- Использовать регулярные выражения для гибкой настройки.
Установка плагина с сайта WPSHOP.ru позволит быстро настроить необходимые редиректы и избежать потерь трафика.
Практические рекомендации и советы
При изменении slug помните:
- Изменяйте slug только если это действительно необходимо.
- Перед изменениями сделайте бэкап базы данных.
- Обязательно настройте 301 редиректы для всех изменённых URL.
- Проверяйте наличие ссылок на старые URL внутри сайта и в контенте.
- Используйте понятные и короткие slug, состоящие из латинских букв, цифр и дефисов.
Если вы используете тему от WPSHOP, например Reboot, убедитесь, что структура URL в настройках темы не конфликтует с вашими новыми slug.
Заключение
Изменение slug постов в WordPress — задача, требующая точности и внимания к деталям. Используйте встроенный редактор для единичных изменений, программные решения для массовых правок и обязательно настраивайте редиректы, чтобы сохранить SEO и удобство пользователей. Следуя рекомендациям из статьи, вы сможете легко управлять URL вашего сайта и поддерживать его актуальность.