IndexNow - це безкоштовний протокол з відкритим вихідним кодом під ліцензією Attribution-ShareAlike Creative Commons, який дозволяє вам повідомляти пошуковим системам про те, що ви щойно опублікували щось нове, що частина контенту була змінена і оновлена або що URL-адреса була видалена, надсилаючи пінг до пошукових систем, щоб прискорити процес сканування і можливої індексації, який інакше міг би зайняти години, дні або тижні.
Це не означає, що це гарантує вам негайну індексацію або кращу позицію, це просто скорочує час, необхідний кожній пошуковій системі, щоб переглянути вашу сторінку і дізнатися, що нового, оновленого або видаленого, оскільки ви будете повідомляти їм про це в даний момент. На сьогоднішній день пошукові системи, які приймають пінги Index Now, це Microsoft Bing, Naver, Seznam.cz, Яндекс та Yep.
Як створити ключ API Index Now
Для використання IndexNow вам потрібен ключ API. Цей ключ буде перевіряти, що ви є власником веб-сайту, і повинен містити мінімум 8 і максимум 128 шістнадцяткових символів. Ключ може містити тільки малі літери (a-z), великі літери (A-Z), цифри (0-9) і дефіс (-). Отже, я розумію, що поки він відповідає структурі, не має значення, звідки ви його згенерували.
Але щоб бути в безпеці, просто відвідайте цю сторінку Bing, згенеруйте його, а потім завантажте за допомогою стрілки праворуч.

Завантажений файл .txt слід розмістити в корені сторінки. Тепер ви готові до відправки сторінок.
Як надсилати URL-адреси за допомогою Index Now
Існують різні способи зробити це. Багато SEO-плагінів вже інтегрують Index Now як функцію, але якщо ви не використовуєте жоден з цих плагінів, є плагін, створений Bing, призначений саме для цього завдання.
ПлагінIndexNow
Це найшвидший і найпростіший спосіб, який позбавляє вас від необхідності генерувати і розміщувати ключ на вашому сайті, оскільки плагін згенерує ключ API при активації (він буде генерувати новий щоразу, коли ви деактивуєте і знову активуєте плагін).
Ви можете змінювати цей ключ час від часу, але оскільки це унікальний ключ для сайту, Index Now радить не змінювати його занадто часто.
Плагін дозволяє автоматично надсилати URL-адреси щоразу, коли ви публікуєте щось нове, робити це вручну, переглядати статистику надісланих URL-адрес, переглядати нещодавно надіслані URL-адреси та повторно надсилати їх.
Ручне надсилання з браузера
Щоб відправити URL-адресу(ви також можете відправити їх групами) вручну з браузера як HTTP-запит, попередньо розмістивши файл .txt з ключем API у своєму корені, ви можете зробити це двома способами (де https://tu-url-com буде URL-адресою вашої сторінки, яку ви хочете відправити, а API_KEY - ключем API Index Now).
https://www.bing.com/indexnow?url=https://tu-url-com/&key=CLAVE_API
https://api.indexnow.org/indexnow?url=https://tu-url-com/&key=CLAVE_API
Щоб перевірити правильність відправлення, ви можете перейти на сторінку Інструментів для веб-майстрів Bing (ви повинні мати обліковий запис, пов'язаний з вашим доменом) і знайти історію відправлень.

Функція для додавання посилання "Відправити до IndexNow" до списку записів
Проміжний варіант, який я пропоную між плагіном і ручним відправленням - це функція, яка додає до вашого списку записів кастомну колонку з посиланням для відправлення в Index Now, яка буде виглядати так:

Таким чином, ви можете надсилати кожну URL-адресу в будь-який час одним клацанням миші. Ви повинні враховувати, що, хоча ви можете надсилати до 10 000 URL-адрес на день, існує часовий інтервал між кожним надсиланням, який становить близько 5 хвилин, тому немає сенсу робити масові надсилання, не звертаючи уваги на цей інтервал. Відповіді на інші пов'язані з цим питання можна знайти в розділі поширених запитань IndexNow.
*Не забудьте замінити YOUR_API_KEY_DE_INDEX_NOW на ваш API-ключ у налаштуваннях // Index Now в коді.
// Añade una columna personalizada para Index Now en la lista de posts
function add_index_now_column($columns) {
$columns['index_now'] = 'Index Now';
return $columns;
}
add_filter('manage_posts_columns', 'add_index_now_column');
// Rellenar la columna personalizada con un enlace
function add_index_now_column_content($column_name, $post_id) {
if ($column_name === 'index_now') {
$post_url = get_permalink($post_id);
if ($post_url) {
echo '<a href="#" class="send-to-index-now" data-post-id="' . esc_attr($post_id) . '">Enviar a Index Now</a>';
} else {
echo 'URL no disponible';
}
}
}
add_action('manage_posts_custom_column', 'add_index_now_column_content', 10, 2);
// Añadir el script para manejar el clic en el enlace
function add_index_now_script() {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('.send-to-index-now').on('click', function(e) {
e.preventDefault();
var post_id = $(this).data('post-id');
$.post(ajaxurl, {
action: 'send_to_index_now',
post_id: post_id
}, function(response) {
if (response.success) {
alert('Enviada a Index Now con éxito');
} else {
alert('Error: ' + response.data);
}
});
});
});
</script>
<?php
}
add_action('admin_footer', 'add_index_now_script');
// Función para enviar la URL a Index Now
function send_to_index_now() {
if (!isset($_POST['post_id'])) {
wp_send_json_error('ID del post no proporcionado');
}
$post_id = intval($_POST['post_id']);
$post_url = get_permalink($post_id);
if (!$post_url) {
wp_send_json_error('No se pudo obtener la URL del post');
}
// Configuración de Index Now
$api_key = 'TU_API_KEY_DE_INDEX_NOW'; // Reemplaza con tu clave API de Index Now
$index_now_url = 'https://api.indexnow.org/indexnow/'; // Endpoint de Index Now
// Datos para enviar a Index Now
$data = [
'host' => parse_url($post_url, PHP_URL_HOST),
'key' => $api_key,
'keyLocation' => 'https://' . parse_url($post_url, PHP_URL_HOST) . '/' . $api_key . '.txt',
'urlList' => [$post_url],
];
// Enviar la solicitud HTTP POST a Index Now
$response = wp_remote_post($index_now_url, [
'headers' => ['Content-Type' => 'application/json; charset=utf-8'],
'body' => json_encode($data),
]);
if (is_wp_error($response)) {
wp_send_json_error('Error al enviar la URL a Index Now: ' . $response->get_error_message());
}
$response_code = wp_remote_retrieve_response_code($response);
if ($response_code === 200) {
wp_send_json_success('Enviada a Index Now con éxito');
} else {
wp_send_json_error('Error al enviar la URL a Index Now. Código de respuesta: ' . $response_code);
}
}
add_action('wp_ajax_send_to_index_now', 'send_to_index_now');