Изображения играют ключевую роль в восприятии сайта и его SEO. Но часто поисковые системы медленно обновляют индексацию медиафайлов, что снижает эффективность продвижения. С внедрением протокола IndexNow появилась возможность ускорить передачу изменений на сайт, включая изображения, напрямую в поисковые системы. В этой статье подробно рассмотрим, как оптимально настроить отправку изображений с WordPress через IndexNow, чтобы улучшить индексацию и избежать ошибок.
Почему важно оптимизировать индексацию изображений через IndexNow
Поисковые системы учитывают изображения при ранжировании — они влияют на скорость загрузки, пользовательский опыт и релевантность контента. Если изображения не индексируются оперативно, это может привести к снижению видимости страницы. Стандартные методы, такие как sitemap с изображениями, работают медленнее и не всегда гарантируют быстрое обновление.
IndexNow позволяет мгновенно уведомлять поисковики о добавлении, обновлении или удалении изображений. Это гарантирует, что новые или изменённые медиафайлы будут проиндексированы быстрее, а устаревшие — удалены из базы поисковика.
Кроме того, правильная интеграция IndexNow снижает нагрузку на сервер и экономит трафик, так как поисковые роботы не тратят ресурсы на повторное сканирование неизменённых страниц.
Основные проблемы при индексации изображений в WordPress
- Отсутствие актуальных sitemap с информацией об изображениях.
- Дублирование URL изображений из-за различных размеров (thumbnail, medium, full).
- Кэширование или CDN, которые задерживают обновления.
- Отсутствие уведомления поисковиков о новых или удалённых изображениях.
Решение всех этих проблем поможет обеспечить правильную работу IndexNow и повысить эффективность индексации.
Как настроить отправку изображений в IndexNow в WordPress
Для интеграции IndexNow с изображениями потребуется:
- Создать список URL для отправки, включающий все версии изображений, которые вы хотите индексировать.
- Обеспечить уникальность и актуальность URL, избегая дублирования.
- Реализовать механизм вызова API IndexNow для отправки изменений.
Формирование списка URL изображений
В WordPress изображения автоматически создаются в нескольких размерах. Например, если у вас есть изображение с оригинальным URL https://example.com/wp-content/uploads/2024/06/photo.jpg, то могут быть версии: thumbnail, medium, large и т.д.
Для отправки в IndexNow важно учитывать, какие из них реально используются на сайте и требуют индексации. Обычно достаточно отправлять URL полноразмерных изображений и тех, что вставлены в контент.
Пример функции, которая собирает URL всех полноразмерных изображений из постов:
function indexnow_su_get_image_urls_from_posts() {
$urls = [];
$args = [
'post_type' => 'post',
'posts_per_page' => -1,
'post_status' => 'publish',
];
$posts = get_posts($args);
foreach ($posts as $post) {
if (preg_match_all('/<img[^>]+src=["\']([^"\']+)["\']/i', $post->post_content, $matches)) {
foreach ($matches[1] as $img_url) {
$urls[] = esc_url_raw($img_url);
}
}
}
return array_unique($urls);
}Отправка URL в IndexNow с учётом изображений
После того как получили список URL, нужно отправить их в IndexNow. Ниже пример функции отправки, которая подходит для любых URL, включая изображения:
function indexnow_su_send_urls_to_indexnow(array $urls) {
$api_key = 'ВАШ_КЛЮЧ_INDEXNOW';
$host = parse_url(home_url(), PHP_URL_HOST);
$endpoint = 'https://api.indexnow.org/indexnow?url=' . urlencode($urls[0]) . '&key=' . $api_key . '&keyLocation=' . urlencode(home_url() . '/indexnow-key.txt');
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code == 200) {
return true;
} else {
return false;
}
}Обратите внимание, что IndexNow API принимает запросы с одним URL за раз, поэтому для нескольких изображений нужно вызывать функцию в цикле или реализовать пакетную отправку с задержками.
Рекомендации по работе с кэшированием и CDN для IndexNow и изображений
Если на вашем сайте используется кэширование или CDN (например, Cloudflare), важно настроить их так, чтобы изменения изображений быстро отражались в конечных URL.
Советы:
- Настройте очистку кэша CDN при обновлении или удалении изображения.
- Используйте заголовки Cache-Control с разумным временем жизни для изображений.
- Если используется плагин кэширования (например, Clearfy Pro), убедитесь, что он не блокирует отправку запросов IndexNow.
Правильное сочетание IndexNow и грамотная настройка кэширования обеспечат максимально быструю индексацию и обновление изображений в поисковых системах.
Дополнительные инструменты и плагины для работы с изображениями и IndexNow
Для облегчения работы можно использовать плагины, которые автоматизируют создание sitemap с изображениями и интеграцию с IndexNow. Например:
- Clearfy Pro — оптимизирует кэширование и SEO-настройки, включая управление sitemap.
- WPRemark — плагин для управления кэшом и очисткой URL при обновлениях.
Используя такие инструменты, можно реализовать комплексное решение по оперативной отправке изменений изображений в IndexNow без глубокого погружения в код.
Пример автоматической отправки новых изображений при загрузке
Добавим хук, который отправляет URL изображения в IndexNow сразу после загрузки медиафайла:
add_action('add_attachment', function($post_ID) {
$url = wp_get_attachment_url($post_ID);
if ($url) {
indexnow_su_send_urls_to_indexnow([$url]);
}
});Этот код поможет сразу информировать поисковые системы о появлении нового изображения, ускоряя его индексацию.