Как исправить ссылку в верхнем регистре (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-проблемы.

Скриншот админки плагина Ash-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-советов.

Fedor
Привет! Я — Ашифин Фёдор, full-stack разработчик и автор собственных тем и плагинов.
Разрабатываю сайты без использования конструкторов — только чистый, валидный код. Это обеспечивает высокую скорость загрузки и отличные показатели в Google PageSpeed, а значит — стоимость клика в рекламе в 2–3 раза ниже.
Нужен сайт с нуля, оптимизация существующего проекта или доработка функционала?
📩 Пишите в любой мессенджер — обсудим ваш проект!
FAQ Ответ
Можно ли вручную менять URL в редакторе? Да, но для старых ссылок лучше ставить редирект 301.
Вредит ли SEO наличие ссылок с заглавными буквами? Да, так как появляются дубли и теряется вес страниц.
Что безопаснее: плагин или код? Для новичков – плагин, для разработчиков – код в functions.php или серверные правила.
Можно ли делать редирект через .htaccess? Да, но осторожно: возможны конфликты с SEO-плагинами (Yoast, Rank Math).

Поки що нема коментарів.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *