Как автоматизировать удаление нерабочих ссылок в WordPress

Нерабочие ссылки (битые ссылки) на сайте WordPress не только ухудшают пользовательский опыт, но и негативно влияют на SEO. Ручное удаление таких ссылок занимает много времени, особенно если сайт большой и активно развивается. В этой статье разберём, как автоматизировать процесс поиска и удаления нерабочих ссылок с помощью плагинов и собственного кода.

Почему важно удалять нерабочие ссылки в WordPress

Нерабочие ссылки приводят к ошибкам 404, что раздражает посетителей и снижает доверие к сайту. Поисковые системы тоже учитывают качество ссылок при ранжировании и могут понизить позиции сайта в выдаче. Кроме того, такие ссылки мешают роботам индексировать сайт корректно.

Регулярный аудит ссылок и их автоматическое удаление или исправление позволяют поддерживать сайт в хорошем состоянии с минимальными затратами времени.

Использование плагинов для автоматизации удаления битых ссылок

Существует несколько популярных плагинов, которые помогают найти и обработать нерабочие ссылки:

  • Broken Link Checker — самый известный плагин для поиска битых ссылок. Он сканирует сайт, уведомляет о проблемах и позволяет быстро их исправить или удалить.
  • WP Broken Link Status Checker — удобный инструмент с поддержкой автоматических отчетов и фильтров.
  • Link Checker by WPGPT (если установлен на вашем сайте) — современный плагин с поддержкой AI-анализов и интеграцией с комментариями, позволяет автоматически выявлять и предлагать замену нерабочих ссылок.

Для установки плагина Broken Link Checker достаточно зайти в админку WordPress, выбрать Плагины » Добавить новый, ввести в поиске «Broken Link Checker» и нажать Установить и Активировать.

Настройка Broken Link Checker для автоматического удаления

После установки перейдите в Инструменты » Проверка ссылок. В настройках можно задать:

  • Интервал проверки (например, раз в 24 часа);
  • Действия при обнаружении битых ссылок (отметить как отсутствующие, уведомить администратора, удалить или заменить);
  • Фильтрация по типу ссылок (внутренние, внешние, в комментариях).

Для автоматического удаления битых ссылок, можно использовать следующий хук в functions.php вашей темы или в собственном плагине:

add_action('wpfix_auto_delete_broken_links', 'wpfix_auto_delete_broken_links_function');
function wpfix_auto_delete_broken_links_function() {
    $broken_links = get_option('blc_broken_links'); // пример получения списка битых ссылок
    if (!empty($broken_links)) {
        foreach ($broken_links as $link) {
            // Логика удаления или замены ссылки
            // Например, удаление ссылки из содержимого поста
            $post_id = $link['post_id'];
            $content = get_post_field('post_content', $post_id);
            $updated_content = str_replace($link['url'], '', $content);
            wp_update_post(['ID' => $post_id, 'post_content' => $updated_content]);
        }
    }
}

Этот код можно привязать к WP-Cron для периодического запуска.

Автоматизация удаления битых ссылок через WP-Cron

Чтобы запускать автоматическую проверку и удаление битых ссылок регулярно, создадим задачу с помощью WP-Cron:

add_action('wpfix_cron_hook', 'wpfix_auto_delete_broken_links_function');

function wpfix_activate_cron() {
    if (!wp_next_scheduled('wpfix_cron_hook')) {
        wp_schedule_event(time(), 'daily', 'wpfix_cron_hook');
    }
}

function wpfix_deactivate_cron() {
    $timestamp = wp_next_scheduled('wpfix_cron_hook');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wpfix_cron_hook');
    }
}

register_activation_hook(__FILE__, 'wpfix_activate_cron');
register_deactivation_hook(__FILE__, 'wpfix_deactivate_cron');

Такой подход позволит запускать функцию удаления битых ссылок ежедневно без вашего участия.

Использование WP-CLI для быстрой проверки и удаления битых ссылок

Для разработчиков и администраторов серверов удобен инструмент WP-CLI. С его помощью можно быстро найти и удалить битые ссылки с помощью команд в терминале.

Например, используя плагин Broken Link Checker, можно написать кастомную WP-CLI команду для удаления ссылок:

if (defined('WP_CLI') && WP_CLI) {
    WP_CLI::add_command('wpfix delete-broken-links', function() {
        $broken_links = get_option('blc_broken_links');
        if (empty($broken_links)) {
            WP_CLI::success('Нет битых ссылок для удаления.');
            return;
        }
        foreach ($broken_links as $link) {
            $post_id = $link['post_id'];
            $content = get_post_field('post_content', $post_id);
            $updated_content = str_replace($link['url'], '', $content);
            wp_update_post(['ID' => $post_id, 'post_content' => $updated_content]);
            WP_CLI::log('Удалена ссылка ' . $link['url'] . ' из поста ' . $post_id);
        }
        WP_CLI::success('Все битые ссылки удалены.');
    });
}

Эта команда позволит запускать очистку вручную через терминал, что удобно для администраторов.

Практические советы и рекомендации

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

  • Регулярно запускайте автоматическую проверку через плагин или WP-Cron.
  • Используйте уведомления плагина, чтобы оперативно реагировать на появление новых битых ссылок.
  • Если на сайте много внешних ссылок, рассмотрите возможность использования редиректов вместо удаления.
  • Сохраняйте резервные копии сайта перед массовыми изменениями.
  • Для сайтов с большим количеством ссылок полезно разбивать проверку на части, чтобы не перегружать сервер.

Интеграция с WPShop и дополнительный функционал

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

Также, сочетание с плагином Clearfy Pro позволит улучшить производительность сайта после удаления битых ссылок, оптимизируя базу данных.

Автоматизация удаления битых ссылок — важная часть технического обслуживания сайта, которая помогает поддерживать качественный контент и улучшать показатели SEO. Используйте готовые решения и дополняйте их собственными скриптами для максимального эффекта.

Как избежать проблем с перенаправлениями в WordPress: практические решения
06.01.2026
Автоматическое удаление старых ревизий записей в WordPress через cron
07.12.2025
Решение проблемы размытых изображений в WordPress
12.11.2025
Как использовать хуки WordPress для отложенного выполнения кода
16.01.2026
Как удалить все комментарии в WordPress с помощью кода
18.11.2025