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

Диагностика проблемы: почему появляются нерабочие ссылки в WooCommerce

Нерабочие ссылки (битые ссылки) в WooCommerce — частая проблема, возникающая по нескольким причинам:

  • Удаление или смена URL продуктов без перенаправлений;
  • Ошибки при миграции сайта или обновлении структуры постоянных ссылок;
  • Ссылки на внешние ресурсы, которые перестали существовать;
  • Ошибки в настройках плагинов SEO или кэширования.

Если на вашем сайте появляются 404 ошибки при переходе по ссылкам на продукты или категории, это ухудшает UX и SEO.

Как проверить наличие битых ссылок в WooCommerce

  • Используйте плагины, например, Broken Link Checker — он сканирует весь сайт и выводит список неработающих URL.
  • Проверьте логи сервера (обычно error_log) на предмет частых 404 ошибок.
  • Google Search Console — раздел «Покрытие» и «Ошибки сканирования» покажет ссылки, которые Google не может найти.

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

Шаг 1. Выгрузка списка битых ссылок

Для автоматизации рекомендуем использовать плагин Broken Link Checker. После установки и активации:

  1. Перейдите в Инструменты > Проверка ссылок и запустите сканирование.
  2. Экспортируйте список неработающих ссылок в CSV (если плагин не поддерживает экспорт, можно скопировать вручную).

Шаг 2. Поиск ссылок в базе WooCommerce

Часто битые ссылки встречаются в описаниях продуктов, категориях, мета-полях или виджетах. Для поиска используйте SQL-запрос в phpMyAdmin или другой SQL-консоли:

SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE meta_value LIKE '%example-broken-url%';

Замените example-broken-url на часть нерабочей ссылки. Это поможет локализовать, где именно хранится битая ссылка.

Шаг 3. Автоматический поиск и замена по базе

Вместо ручного редактирования можно использовать WP-CLI или плагин Better Search Replace. Например, для замены нерабочей ссылки на актуальную командой WP-CLI:

wp search-replace 'http://old-url.com/broken-product' 'https://yourdomain.ru/new-product-url' --skip-columns=guid

Шаг 4. Удаление или замена ссылок в контенте

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

add_action('init', function() {
    if (!is_admin()) return;
    global $wpdb;
    $products = $wpdb->get_results("SELECT ID, post_content FROM {$wpdb->posts} WHERE post_type = 'product'");
    foreach ($products as $product) {
        $cleaned = preg_replace('#<a[^>]*>(.*?)</a>#is', '$1', $product->post_content);
        if ($cleaned !== $product->post_content) {
            $wpdb->update($wpdb->posts, ['post_content' => $cleaned], ['ID' => $product->ID]);
        }
    }
});

После запуска скрипта удалите этот код из functions.php, чтобы избежать повторного выполнения.

Проверка результата после внедрения

  • Запустите повторную проверку плагином Broken Link Checker — количество битых ссылок должно уменьшиться или уйти в ноль.
  • Проверьте логи сервера на отсутствие новых 404 ошибок по продуктам.
  • В Google Search Console обновите отчет «Ошибки сканирования» и проверьте, что новых проблем нет.

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

  • Ошибка: После замены ссылок появляются ошибки 404.
    Причина: Не обновлены постоянные ссылки WordPress (permalinks).
    Решение: Перейдите в Настройки > Постоянные ссылки и нажмите «Сохранить» без изменений — это сбросит правила .htaccess.
  • Ошибка: Плагин Broken Link Checker не видит все битые ссылки.
    Причина: Плагин ограничен по времени работы, или часть ссылок хранится в нестандартных мета-полях.
    Решение: Используйте SQL-запросы и WP-CLI для поиска и замены.
  • Ошибка: После массовой замены слетает форматирование контента.
    Причина: Некорректный регулярный выражение или замена в HTML.
    Решение: Делайте бэкап перед заменой и тестируйте на копии сайта.

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

  • Не оставляйте плагины для проверки ссылок активными постоянно — они сильно нагружают сервер.
  • Перед массовой заменой сделайте бэкап базы данных.
  • Для больших сайтов используйте WP-CLI — это быстрее и безопаснее, чем плагины.
  • Настройте 301 редиректы для устаревших URL с помощью .htaccess или плагинов, чтобы сохранить SEO.

Сравнение методов удаления битых ссылок в WooCommerce

МетодПлюсыМинусыКомпромисс
Плагин Broken Link CheckerПростота, визуальный интерфейс, автоматический поискНагрузка на сервер, не всегда полный охватИспользовать для быстрого аудита и небольших сайтов
SQL-запросы и WP-CLIГибкость, скорость, полный контрольТребует навыков, риск ошибок без бэкапаЛучше для опытных разработчиков и больших сайтов
Ручное редактированиеТочный контроль и минимальные рискиДолгий процесс, не подходит для большого объемаИспользовать для единичных случаев и важных страниц
Как автоматически удалять неактивные вариации товаров в WooCommerce с помощью кода
07.05.2026
Создание и настройка пользовательских ролей и прав в WordPress: практическое руководство
21.01.2026
Как автоматически создавать контент на основе GPT в WordPress
07.01.2026
Как автоматически добавить телефон в фирменный подвал WordPress
17.03.2026
Как добавить автоматическое сохранение черновиков в WordPress
30.12.2025