Нерабочие ссылки (битые ссылки) на сайте 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. Используйте готовые решения и дополняйте их собственными скриптами для максимального эффекта.