Иногда в WordPress возникает задача убрать или изменить параметры в URL, например, параметры запроса, чтобы сделать адреса чище, удобнее для пользователей и поисковых систем, но при этом не создавать редиректы, которые могут негативно влиять на скорость и SEO. В этой статье мы подробно рассмотрим несколько способов решения этой задачи, включая работу с фильтрами, перезаписью URL и использование популярных плагинов.
Почему важно управлять параметрами URL в WordPress
Параметры URL — это часть адреса после знака вопроса (?), например, ?utm_source=google или ?ref=123. Они часто используются для аналитики, сортировки, фильтрации и других целей. Однако избыточные или ненужные параметры могут усложнять адреса, создавать дублированный контент и мешать SEO.
Удаление или изменение параметров без редиректа помогает:
- Избавиться от длинных и нечитабельных URL;
- Снизить количество дублирующегося контента;
- Упростить анализ логов и статистики;
- Сделать ссылки удобнее для пользователей.
Но сделать это без создания 301 редиректа — задача нетривиальная, так как WordPress по умолчанию не меняет URL, а просто обрабатывает параметры.
Удаление параметров URL с помощью фильтра request в WordPress
Один из простых способов — перехватить запросы и удалить нежелательные параметры до загрузки контента. Для этого используем фильтр request, который получает массив параметров запроса.
Пример функции, удаляющей параметр ref из любого URL:
function wpkpi_remove_ref_param($query_vars) {
if (isset($query_vars['ref'])) {
unset($query_vars['ref']);
}
return $query_vars;
}
add_filter('request', 'wpkpi_remove_ref_param');Такая функция удалит параметр ref из массива параметров и WordPress не будет учитывать его при формировании страницы. Однако сам параметр останется в адресной строке браузера до перезагрузки или перехода.
Как убрать параметр из адресной строки браузера без редиректа
Чтобы удалить параметр из URL в браузере без перезагрузки и редиректа, можно использовать JavaScript. Например:
function wpkpi_removeParamFromUrl(param) {
var url = new URL(window.location.href);
url.searchParams.delete(param);
window.history.replaceState({}, document.title, url.toString());
}
// Удаляем параметр ref
wpkpi_removeParamFromUrl('ref');Этот код можно добавить в файл темы или подключить через плагин, чтобы при загрузке страницы параметр исчезал из адресной строки, но страница не перезагружалась.
Изменение параметров URL с помощью rewrite_rules и add_rewrite_tag
Если нужно поменять параметр на более удобный или просто убрать его из видимого URL, можно использовать возможности WordPress по добавлению пользовательских правил перезаписи URL.
Например, допустим, у вас есть параметр myparam и вы хотите, чтобы он выглядел в URL как часть пути, например, /myparam/value/.
Для этого добавляем правило:
function wpkpi_add_rewrite_rules() {
add_rewrite_tag('%myparam%', '([^&]+)');
add_rewrite_rule('^myparam/([^/]*)/?', 'index.php?myparam=$matches[1]', 'top');
}
add_action('init', 'wpkpi_add_rewrite_rules');После этого WordPress будет распознавать параметр из адреса и можно использовать его в шаблонах как get_query_var('myparam').
Чтобы убрать параметр из обычного запроса, можно создать функцию, которая будет перенаправлять на «чистый» URL с этим правилом, но если важно избежать редиректа, просто используйте это для приема параметров в удобном формате.
Использование плагинов для управления параметрами URL
Если не хочется писать код, можно использовать плагины, которые позволяют управлять параметрами в URL:
- Clearfy Pro — обеспечивает оптимизацию URL, удаление лишних параметров, упрощение структуры. Позволяет отключать параметры, которые добавляют плагины или темы.
- WPGPT — с помощью автоматизации можно фильтровать и изменять параметры URL для улучшения SEO и удобства пользователей.
Для настройки Clearfy Pro нужно в панели плагина перейти в раздел оптимизации и включить опции по удалению UTM параметров и других лишних элементов из URL. Это поможет уменьшить количество дублирующегося контента и повысить качество ссылок без использования редиректов.
Практические советы и рекомендации
Проверяйте, какие параметры действительно нужны
Перед удалением параметров проанализируйте, какие из них важны для работы сайта, аналитики или рекламных кампаний. Бездумное удаление может нарушить функционал.
Кэширование и параметры URL
Если сайт использует кэширование, изменение параметров URL без редиректа может вызвать проблемы с отображением актуального контента. Настройте кэш так, чтобы игнорировать или учитывать параметры корректно.
Тестируйте изменения на тестовом сервере
Любые изменения в работе с URL стоит проверять на тестовой среде, чтобы не нарушить работу сайта и избежать потери трафика.
Пример комплексного решения для удаления параметра ref из URL
Объединим все вышеописанное в одном решении:
add_filter('request', function($query_vars) {
if (isset($query_vars['ref'])) {
unset($query_vars['ref']);
}
return $query_vars;
});
// Подключаем JS для удаления параметра из адресной строки без перезагрузки
function wpkpi_enqueue_remove_param_script() {
if (is_singular()) {
wp_add_inline_script('jquery-core', "
(function() {
var url = new URL(window.location.href);
if(url.searchParams.has('ref')) {
url.searchParams.delete('ref');
window.history.replaceState({}, document.title, url.toString());
}
})();
");
}
}
add_action('wp_enqueue_scripts', 'wpkpi_enqueue_remove_param_script');Это решение гарантирует, что параметр ref не будет влиять на работу WordPress и одновременно будет убран из адресной строки браузера без редиректа.
Используйте описанные методы и плагины, чтобы оптимизировать структуру URL вашего сайта на WordPress, улучшить SEO и сделать адреса более чистыми и дружелюбными для пользователей.
Для расширенных возможностей по оптимизации и управлению URL рекомендую ознакомиться с плагином Clearfy Pro и WPGPT.