Изменение URL страниц в WordPress — частая задача, которая возникает при редизайне сайта или оптимизации структуры ссылок. В большинстве случаев смена URL сопровождается созданием 301 редиректа для сохранения SEO-позиций и корректной работы пользователей. Однако бывают ситуации, когда нужно изменить отображаемый URL страницы без использования перенаправлений. В этой статье подробно разберем, как это сделать с помощью плагинов и кастомного кода.
Почему может понадобиться изменить URL без редиректа
Обычно при смене URL старая ссылка становится недоступной, и для пользователей и поисковых систем нужна корректная переадресация. Но бывают случаи:
- Необходимо временно изменить URL для тестирования или маркетинговых целей.
- Хотим, чтобы URL отображался иначе, но контент оставался доступен по старому адресу.
- Желание скрыть реальный URL страницы по соображениям безопасности или удобства.
В таких ситуациях правильная настройка без редиректа поможет избежать проблем с SEO и юзабилити.
Как WordPress формирует URL страниц
WordPress использует структуру постоянных ссылок (Permalinks), которую можно настроить в админ-панели. URL страниц соответствует слагу записи или страницы. При изменении слага меняется и URL, но старая ссылка становится неактивной.
Для обхода этого механизма можно:
- Использовать фильтры WordPress, которые позволяют изменить запрос и отображаемый URL в рантайме.
- Применить плагины, которые управляют URL с помощью пользовательских правил маршрутизации.
Изменение URL на лету с помощью фильтра request
Фильтр request позволяет изменить параметры запроса до того, как WordPress выполнит выборку контента из базы данных. Это дает возможность изменить URL без фактической смены слага или создания редиректа.
Пример функции, меняющей URL /staryj-url/ на /novyj-url/ без редиректа:
function wpstock_change_url_request($query_vars) {
if (isset($query_vars['pagename']) && $query_vars['pagename'] === 'novyj-url') {
// Подменяем slug страницы, подгружаем контент 'staryj-url'
$query_vars['pagename'] = 'staryj-url';
}
return $query_vars;
}
add_filter('request', 'wpstock_change_url_request');В этом коде при заходе на /novyj-url/ загрузится контент страницы со слагом staryj-url. Пользователь увидит новый URL без редиректа.
Ограничения метода
Этот способ работает для страниц и постов, но не меняет фактический адрес в базе данных. При прямом обращении к старому URL контент будет доступен и там, что не всегда желательно.
Использование плагина Custom Permalinks
Плагин Custom Permalinks позволяет задавать индивидуальные постоянные ссылки для записей, страниц, категорий и таксономий без изменения структуры сайта и автоматического создания редиректов.
Преимущества плагина:
- Гибкая настройка URL для каждой записи.
- Отсутствие необходимости писать код.
- Поддержка всех типов таксономий.
Пример использования:
- Установите и активируйте плагин через магазин WpShop или репозиторий WordPress.
- Перейдите в редактор нужной страницы или записи.
- В блоке настроек найдите поле «Custom Permalink» и задайте новый URL.
- Сохраните изменения.
Теперь страница будет доступна по новому адресу без создания редиректа со старого.
Советы по работе с Custom Permalinks
При использовании плагина важно избегать конфликтов URL — новые ссылки не должны совпадать с уже существующими страницами или записями. Также проверьте настройки ЧПУ в WordPress, чтобы избежать ошибок 404.
Пример комплексного решения: смена URL и скрытие старого адреса
Если нужно не только показать контент по новому URL, но и полностью исключить старый адрес из индексации, можно совместить фильтр request с добавлением заголовка noindex для старой страницы.
function wpstock_disable_old_url() {
if (is_page('staryj-url')) {
// Добавляем noindex для старого URL
echo '<meta name="robots" content="noindex, nofollow">';
}
}
add_action('wp_head', 'wpstock_disable_old_url');А чтобы полностью запретить работу старого URL, можно добавить условие в template_redirect:
function wpstock_redirect_old_url_to_404() {
if (is_page('staryj-url')) {
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include(get_query_template('404'));
exit;
}
}
add_action('template_redirect', 'wpstock_redirect_old_url_to_404');Таким образом, старый URL перестанет быть доступным, а новый — будет показывать контент без редиректа.
Другие полезные плагины для работы с URL в WordPress
Кроме Custom Permalinks, рассмотрите:
- Permalink Manager Lite — расширенный контроль над постоянными ссылками с возможностью массового редактирования.
- Redirection — полезен для настройки и контроля редиректов, если в будущем решите их использовать.
- Clearfy Pro — улучшает производительность и безопасность, включая опции оптимизации URL.
Все эти плагины доступны с подробными инструкциями и совместимы с большинством тем и плагинов.
Резюме и рекомендации
Изменение URL страницы без перенаправления — задача, требующая аккуратного подхода. Если вы хотите временно показать другой URL, используйте фильтр request. Для постоянных изменений лучше применить плагин Custom Permalinks.
Обязательно тестируйте работу сайта после изменения URL, проверяйте доступность страниц и корректное поведение навигации. Если хотите сохранить SEO-позиции, рекомендуем все же использовать 301 редиректы.
Для удобства установки и настройки рекомендуем скачивать плагины с надежных источников, например, из магазина WpShop с поддержкой и обновлениями.