Часто в проектах на WordPress возникает задача изменить URL адреса постов — убрать дату, категорию или изменить структуру ссылок. Однако неправильные действия могут привести к потере позиций в поисковых системах и ухудшению индексации. В этой статье мы подробно разберем, как правильно удалить или изменить URL постов в WordPress, сохранив SEO и удобство для пользователей.
Почему изменение URL в WordPress может негативно повлиять на SEO
Изменение постоянных ссылок (Permalinks) в WordPress — это фундаментальный момент. Если вы меняете структуру URL без настройки правильных редиректов, поисковые системы увидят эти страницы как новые, а старые URL перестанут работать (404 ошибка). В результате вы потеряете накопленный трафик, позиции и доверие поисковиков.
Кроме того, многие сайты используют внешние ссылки, на которые ссылаются другие ресурсы, и если они перестанут работать — это ухудшит поведенческие факторы.
Поэтому задача — не просто изменить URL, а сделать это с минимальным ущербом для SEO.
Как изменить структуру постоянных ссылок в WordPress
Стандартный способ — перейти в админке WordPress в меню Настройки > Постоянные ссылки и выбрать нужный формат URL. Например, чтобы убрать дату из адреса, переключитесь с формата /2024/06/12/post-name/ на /post-name/.
Однако после этого старые URL перестанут работать, если не настроить перенаправления.
Правильные редиректы для сохранения SEO
Чтобы настроить перенаправления с устаревших URL на новые, можно использовать несколько способов:
- Редиректы через .htaccess (для Apache серверов)
- Плагины для редиректов, например, Clearfy Pro или WPRemark
- Использование функций WordPress и хука
template_redirectдля программных редиректов
Рассмотрим самый универсальный вариант — программный редирект в functions.php темы или в отдельном плагине.
Пример кода для редиректа старых URL с датой на новые без даты
Если вы меняете структуру с /year/month/day/post-name/ на /post-name/, этот код поможет сделать 301 редирект:
function wpvip_redirect_old_urls() {
if (is_singular('post')) {
$current_url = \'https://\' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$pattern = '/\/(\d{4})\/(\d{2})\/(\d{2})\/(.+)\/$/';
if (preg_match($pattern, $_SERVER['REQUEST_URI'], $matches)) {
$new_url = home_url('/' . $matches[4] . '/');
if ($new_url !== $current_url) {
wp_redirect($new_url, 301);
exit;
}
}
}
}
add_action('template_redirect', 'wpvip_redirect_old_urls');Этот код проверяет URL, и если в нем есть дата, делает редирект на адрес без даты. 301 редирект сообщает поисковым системам, что страница перемещена навсегда, что сохраняет SEO вес.
Плагины для управления URL и редиректами
Clearfy Pro
Clearfy Pro — универсальный инструмент для оптимизации WordPress. В нем есть удобный модуль для массового управления редиректами и чистки URL, что позволяет легко настроить перенаправления при изменении структуры ссылок.
Redirection
Плагин Redirection — одно из самых популярных решений для управления 301 редиректами. Он хранит логи 404 ошибок и позволяет создавать правила перенаправления без правки кода.
Как безопасно удалить часть URL — пример удаления категории из адреса
В WordPress по умолчанию URL записей могут содержать категорию, например: /category/post-name/. Иногда нужно убрать категорию из URL, чтобы сделать адрес короче и чище.
Это можно сделать, изменив структуру постоянных ссылок на /post-name/, но необходимо настроить редиректы с старых адресов.
Пример кода для удаления категории из URL с редиректом
function wpvip_remove_category_from_permalink($post_link, $post) {
if ('post' === $post->post_type) {
$post_link = str_replace('/' . get_the_category($post->ID)[0]->slug . '/', '/', $post_link);
}
return $post_link;
}
add_filter('post_link', 'wpvip_remove_category_from_permalink', 10, 2);
function wpvip_redirect_old_category_urls() {
if (is_singular('post')) {
$request_uri = $_SERVER['REQUEST_URI'];
if (preg_match('/\/category\/([^\/]+)\/(.+)/', $request_uri, $matches)) {
$new_url = home_url('/' . $matches[2]);
wp_redirect($new_url, 301);
exit;
}
}
}
add_action('template_redirect', 'wpvip_redirect_old_category_urls');Этот код убирает категорию из URL при выводе и делает редирект со старого адреса с категорией на новый без нее.
Проверка корректности и мониторинг после изменения URL
После внесения изменений обязательно:
- Проверьте все редиректы — они должны работать с кодом 301.
- Используйте Google Search Console и Яндекс.Вебмастер для отслеживания ошибок 404 и индексации.
- Обновите внутренние ссылки на сайте, чтобы избежать лишних редиректов.
- Проверьте карты сайта (sitemap.xml), чтобы они содержали новые URL.
Если вы используете плагин WPRemark, он также поможет управлять ссылками и отзывами, учитывая новую структуру URL.
Выводы и рекомендации
Изменение URL в WordPress — задача, требующая аккуратности и внимания к SEO. Используйте встроенные механизмы, дополняйте их грамотными редиректами и проверяйте работу сайта после изменений.
Для удобства и безопасности рекомендую применять плагины, такие как Clearfy Pro или WPRemark, которые существенно упрощают управление редиректами и оптимизацию ссылок.