WordPress Notes WPDream

Как найти и удалить битые ссылки в WordPress без плагина: диагностика, исправление и проверка

Битые ссылки в WordPress обычно всплывают не сразу: часть ведёт на удалённые записи, часть — на старые адреса после смены структуры, часть — на файлы из темы, которые уже не существуют. Проблема не только в 404 для пользователя. Такие ссылки мешают индексации, портят внутреннюю перелинковку и создают лишний шум в логах.

Ниже — рабочий сценарий без выдуманных инструментов: как быстро найти проблемные URL, где именно их править и как убедиться, что после исправления сайт действительно перестал отдавать 404.

Когда стоит искать битые ссылки вручную

Если сайт небольшой, а SEO-плагин уже показывает единичные ошибки, проще не ставить ещё один сканер, а пройтись по источникам ссылок точечно. Это особенно полезно, когда 404 появляются после:

  • смены структуры постоянных ссылок;
  • удаления записей, страниц или файлов;
  • переноса сайта с другого домена;
  • обновления темы, в которой изменились пути к изображениям, CSS или шаблонам;
  • импорта контента из старого сайта с устаревшими URL.

Диагностика проблемы: где искать источник 404

Сначала важно понять, откуда именно идёт битая ссылка. Один и тот же URL может быть прописан в нескольких местах: в тексте записи, в меню, в виджете, в шаблоне темы или в произвольном поле.

Проверка через отчёты сервера и браузер

Самый надёжный старт — посмотреть, какие адреса реально запрашиваются и дают 404. Если есть доступ к логам веб-сервера, ищите строки с кодом 404. Если логов нет, откройте проблемную страницу в браузере и проверьте ссылки через инструменты разработчика или расширение для просмотра HTTP-статусов.

Для быстрой проверки конкретного URL можно использовать curl:

curl -I https://example.com/staryy-url/

Если в ответе видите HTTP/2 404 или HTTP/1.1 404 Not Found, ссылка действительно битая. Если приходит редирект, сначала проверьте его цепочку: иногда проблема не в 404, а в лишнем переходе через несколько адресов.

Проверка в админке WordPress

Дальше смотрим типовые места:

  • записи и страницы в редакторе Gutenberg;
  • произвольные HTML-блоки;
  • меню в разделе Внешний вид → Меню;
  • виджеты и блоки в сайдбаре или футере;
  • настройки темы, где вручную вставлены ссылки;
  • шаблоны header.php, footer.php, sidebar.php и части шаблонов.

Если ссылка встречается в контенте, её можно заменить прямо в редакторе. Если она зашита в шаблон, править нужно уже код темы или дочерней темы.

Пошаговое решение: как убрать битые ссылки без плагина

Ниже — последовательность, которая не ломает сайт и позволяет контролировать изменения.

Шаг 1. Найдите все вхождения старого URL

Если у вас есть доступ к базе данных, сначала проверьте, где именно хранится старый адрес. Для этого удобно использовать поиск по базе через WP-CLI, если он доступен:

wp search-replace 'https://example.com/staryy-url/' 'https://example.com/novyy-url/' --dry-run

--dry-run покажет, что будет изменено, но ничего не запишет. Это безопасный способ понять масштаб правок. Если WP-CLI нет, ищите вручную через админку и редактор тем.

Шаг 2. Исправьте ссылки в контенте

Если URL находится в записи или странице, замените его на актуальный. Для массовых правок лучше не делать это через визуальный редактор по одной странице, если ссылок много. В этом случае безопаснее использовать поиск и замену на уровне базы, но только после резервной копии.

Пример безопасного поиска и замены в тексте записи через PHP-фильтр — если нужно точечно обработать контент перед выводом:

add_filter('the_content', function ($content) {
    $old = 'https://example.com/staryy-url/';
    $new = 'https://example.com/novyy-url/';

    if (strpos($content, $old) === false) {
        return $content;
    }

    return str_replace($old, $new, $content);
});

Такой подход годится только для временной логики или специфических случаев. Для постоянного решения лучше исправить источник данных, а не подменять контент на лету.

Шаг 3. Обновите меню и шаблоны

Если битая ссылка сидит в меню, меняйте её через интерфейс WordPress. Если она в шаблоне, проверьте, не прописан ли старый путь в PHP-файле темы. Например, ссылка на страницу контактов может быть захардкожена так:

<a href="https://example.com/kontakty/">Контакты</a>

Лучше заменить её на динамический вызов:

<a href="<?php echo esc_url( home_url('/kontakty/') ); ?>">Контакты</a>

Так вы уменьшите риск поломки при смене домена или структуры URL.

Шаг 4. Проверьте медиафайлы и старые вложения

Частая причина 404 — изображения и документы, которые были удалены или перенесены. В тексте это выглядит как обычная ссылка на файл, но при клике пользователь получает ошибку. Откройте запись в редакторе, проверьте все ссылки на PDF, архивы, изображения и замените их на актуальные.

Шаг 5. Настройте редирект только там, где это оправдано

Если страница была удалена окончательно, а на неё есть внешние ссылки или трафик из поиска, лучше не оставлять 404, а сделать 301-редирект на ближайшую релевантную страницу. Но редирект не должен подменять всё подряд на главную — это плохая практика для SEO и для пользователя.

Пример через template_redirect для одного конкретного старого URL:

add_action('template_redirect', function () {
    if (is_admin()) {
        return;
    }

    if (trim($_SERVER['REQUEST_URI'], '/') === 'staryy-url') {
        wp_redirect(home_url('/novyy-url/'), 301);
        exit;
    }
});

Если редиректов много, лучше настроить их на уровне сервера или через проверенный механизм в .htaccess/Nginx-конфиге, а не плодить логику в теме.

Сравнение подходов: что выбрать в реальной задаче

ПодходКогда подходитМинус
Ручная правка в редакторе1–5 ссылок в контентеДолго при большом объёме
Поиск и замена через WP-CLIМассовая замена URL после переездаНужен доступ к консоли и аккуратность
Редирект на сервереСтарый адрес должен сохранять трафикНужно следить за цепочками и конфликтами

Как проверить, что решение сработало

После правок не ограничивайтесь визуальной проверкой страницы. Нужна короткая техническая валидация.

  • Откройте старый URL и убедитесь, что он ведёт на нужную страницу или отдаёт корректный 404, если редирект не нужен.
  • Проверьте HTTP-статус через curl -I или DevTools.
  • Обновите страницу с внутренними ссылками и кликните по ним из разных мест сайта.
  • Проверьте карту сайта, если URL был удалён из индексации.
  • Посмотрите логи 404 через 1–2 дня: новые обращения к старому адресу должны исчезнуть или сократиться.

Если после замены ссылка всё ещё ведёт на старый адрес, проблема обычно в кэше: страницы, объектном кэше, CDN или кэше браузера. Очистите кэш на всех уровнях и проверьте повторно.

Частые ошибки и как их исправить

Редирект на главную вместо релевантной страницы

Это самая частая ошибка. Пользователь ждёт конкретный контент, а попадает на общий экран. Для SEO это тоже слабое решение. Если аналогичной страницы нет, лучше оставить 404 или сделать редирект на ближайшую по смыслу категорию.

Замена URL только в одном месте

Старый адрес может быть в записи, в меню и в шаблоне одновременно. Если исправили только контент, 404 останется в футере или блоке темы. Всегда проверяйте все источники ссылки.

Массовая замена без резервной копии

Это рискованно даже для простой операции. Перед search-replace или правкой базы сделайте бэкап. Если что-то пойдёт не так, откат будет быстрее, чем ручное восстановление десятков записей.

Игнорирование внешних ссылок

Если на старый URL ссылаются другие сайты, простая правка внутри WordPress не решит проблему. В таком случае нужен редирект или, если страница больше не актуальна, понятная замена с сохранением смысла.

Практические советы по безопасности и производительности

Не храните логику редиректов и массовых замен в активной теме, если это долгосрочное правило. Для небольших точечных правок это допустимо, но при смене темы код потеряется. Лучше вынести такие вещи в дочернюю тему или в небольшой mu-plugin.

Если сайт большой, не запускайте тяжёлые поиски по базе на живом трафике в часы пик. Поиск и замена по сериализованным данным, массовые SQL-запросы и пересборка кэша могут временно нагрузить сервер.

Если вам нужно регулярно чистить сайт от дублей, устаревших URL и мусорных настроек, имеет смысл посмотреть в сторону инструментов вроде Clearfy Pro: у него есть набор функций для технической чистки WordPress и контроля дублей. Но даже с плагином базовую диагностику всё равно лучше делать вручную, чтобы понимать, что именно исправляется.

Главная идея простая: сначала находите источник битой ссылки, потом исправляете его там, где он реально хранится, и только после этого добавляете редирект, если он действительно нужен. Такой порядок экономит время и не создаёт новых 404 вместо старых.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее