Как исправить ссылку в верхнем регистре (WordPress): плагин или код
Проблема ссылок в верхнем регистре (КАПС-URL) часто появляется у начинающих: заголовки пишутся капслоком, копируются с других сайтов или так “выделяют” материал. WordPress переносит этот регистр в URL (если не установлены специальные плагины), а при SEO-оптимизации это приводит к дублям страниц и потере позиций.
В статье я покажу безопасные способы “опустить” адреса в нижний регистр: через плагины или минимальный код в functions.php
, а также дам правила проверки.
Почему появляются URL в верхнем регистре
- Заголовки капслоком → автоматически в “чистой” ссылке сохраняется регистр.
- Импорт контента из других CMS/таблиц → поля сохраняют CAPS в слагах.
- Отсутствие нормализации URL на уровне темы/плагинов.
Чем это вредно для SEO
- Дубли страниц:
/Blog/Post
и/blog/post
для сервера – разные пути. - Потеря веса ссылок: поисковик делит “силу” между дублями.
- Ошибки 404: внешние ссылки могут вести на неправильный регистр.
Решение: плагины
Самый простой способ – использовать готовые инструменты:
- WP Force Lowercase URLs – автоматически переводит все запросы в нижний регистр с редиректом 301.
- Ash-Seo – мой плагин, который кроме редиректов контролирует ещё и дублирование мета-тегов и другие SEO-проблемы.
Решение: собственный код
Для тех, кто не хочет ставить дополнительные плагины – решение в functions.php
темы:
add_action(‘init’, function () {
$uri = $_SERVER[‘REQUEST_URI’];
$lowercase_uri = strtolower($uri);
if ($uri !== $lowercase_uri && !is_admin()) {
wp_redirect(site_url($lowercase_uri), 301);
exit;
}
});
Этот код проверяет текущий адрес и, если в нём есть заглавные буквы, выполняет редирект 301 на тот же адрес, но в нижнем регистре.
Решение через .htaccess (осторожно)
Внимание: этот вариант работает на уровне сервера Apache, но может конфликтовать с SEO-плагинами (Yoast, Rank Math). Используйте его только если уверены в настройках.
RewriteEngine On
# Редирект всех URL с заглавными буквами в нижний регистр
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^(.*)$ ${lc:$1} [R=301,L]
Альтернативы: .htaccess (упрощённый вариант) и Nginx
Если нужен более базовый вариант:
.htaccess
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]
Nginx
if ($request_uri ~ [A-Z]) {
return 301 $scheme://$host$lowercase_uri;
}
Как проверить, что всё работает
- Открыть страницу с URL в CAPS (например:
/Blog/Test
). - Убедиться, что браузер перенаправляет на
/blog/test
. - В Google Search Console проверить, исчезли ли дубли.
Вывод: исправление ссылок в верхнем регистре – важный этап SEO-оптимизации WordPress. Вы можете использовать плагин, мой Ash-Seo, несколько строк кода или серверные правила. Главное – сделать это до индексации сайта поисковиками.
Подписывайтесь на наш Telegram-канал, чтобы получать больше практических SEO-советов.
FAQ | Ответ |
---|---|
Можно ли вручную менять URL в редакторе? | Да, но для старых ссылок лучше ставить редирект 301. |
Вредит ли SEO наличие ссылок с заглавными буквами? | Да, так как появляются дубли и теряется вес страниц. |
Что безопаснее: плагин или код? | Для новичков – плагин, для разработчиков – код в functions.php или серверные правила. |
Можно ли делать редирект через .htaccess? | Да, но осторожно: возможны конфликты с SEO-плагинами (Yoast, Rank Math). |
Поки що нема коментарів.