IndexNow to darmowy i otwarty protokół na licencji Attribution-ShareAlike Creative Commons, który umożliwia powiadamianie wyszukiwarek o tym, że właśnie opublikowałeś coś nowego, że fragment treści został zmodyfikowany i zaktualizowany lub że adres URL został usunięty, wysyłając ping do wyszukiwarek, aby przyspieszyć indeksowanie i ewentualny proces indeksowania, który w przeciwnym razie mógłby zająć godziny, dni lub tygodnie.
Nie oznacza to, że gwarantuje to natychmiastowe indeksowanie lub lepszą pozycję, ale po prostu skraca czas potrzebny każdej wyszukiwarce na przejrzenie Twojej strony i zaindeksowanie nowych, zaktualizowanych lub usuniętych informacji, ponieważ będziesz je im przekazywać w tym czasie. Na dzień dzisiejszy wyszukiwarkami, które akceptują pingi Index Now są: Microsoft Bing, Naver, Seznam.cz, Yandex i Yep.
Jak utworzyć klucz API Index Now
Do korzystania z IndexNow potrzebny jest klucz API. Klucz ten weryfikuje, czy jesteś właścicielem witryny i musi zawierać co najmniej 8 i maksymalnie 128 znaków szesnastkowych. Klucz może zawierać tylko małe litery (a-z), wielkie litery (A-Z), cyfry (0-9) i myślniki (-). Rozumiem więc, że tak długo, jak jest zgodny ze strukturą, nie ma znaczenia, skąd go wygenerujesz.
Aby jednak być bezpiecznym, wystarczy odwiedzić tę stronę Bing i wygenerować go, a następnie pobrać za pomocą strzałki po prawej stronie.

Pobrany plik .txt należy umieścić w katalogu głównym strony. Teraz możesz rozpocząć przesyłanie stron.
Jak przesyłać adresy URL za pomocą Index Now
Można to zrobić na różne sposoby. Wiele wtyczek SEO już integruje Index Now jako funkcję, ale jeśli nie używasz żadnej z tych wtyczek, istnieje jedna stworzona przez Bing dedykowana właśnie temu zadaniu.
WtyczkaIndexNow
Jest to najszybszy i najłatwiejszy sposób na zrobienie tego i oszczędza ci konieczności generowania i hostowania klucza na swojej stronie, ponieważ wtyczka wygeneruje klucz API podczas aktywacji (wygeneruje nowy za każdym razem, gdy dezaktywujesz i ponownie aktywujesz wtyczkę).
Klucz ten można zmieniać od czasu do czasu, ale ponieważ jest to unikalny klucz dla witryny, Index Now zaleca, aby nie zmieniać go zbyt często.
Wtyczka umożliwia automatyczne przesyłanie adresów URL za każdym razem, gdy publikujesz coś nowego, ręczne przesyłanie, przeglądanie statystyk przesłanych adresów URL, przeglądanie ostatnio przesłanych adresów URL i ich ponowne przesyłanie.
Ręczne wysyłanie z przeglądarki
Aby wysłać adres URL(można również wysyłać je w grupach) ręcznie z przeglądarki jako żądanie HTTP, po umieszczeniu pliku .txt z kluczem API w katalogu głównym, można to zrobić na dwa sposoby (gdzie https://tu-url-com, będzie adresem URL strony, którą chcesz wysłać, a API_KEY będzie kluczem 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
Aby sprawdzić, czy został on wysłany poprawnie, możesz przejść do strony Bing Webmaster Tools (musisz mieć konto powiązane ze swoją domeną), gdzie znajdziesz historię wysyłania.

Funkcja dodawania linku "Wyślij do IndexNow" na liście wpisów
Proponowaną przeze mnie opcją pośrednią między wtyczką a ręcznym przesyłaniem jest funkcja, która dodaje niestandardową kolumnę z linkiem do przesłania do Index Now na liście wpisów, która będzie wyglądać następująco:

W ten sposób możesz wysłać każdy adres URL, kiedy tylko chcesz, za pomocą jednego kliknięcia. Musisz wziąć pod uwagę, że chociaż możesz wysyłać do 10 000 adresów URL dziennie, istnieje odstęp czasu między każdym przesłaniem, który wynosi około 5 minut, więc nie ma sensu dokonywać masowych zgłoszeń bez zwracania uwagi na ten odstęp. Odpowiedzi na inne powiązane pytania można znaleźć w sekcji IndexNow FAQ.
*Pamiętaj, aby zastąpić YOUR_API_KEY_DE_INDEX_NOW swoim kluczem API w // ustawieniach Index Now w kodzie.
// 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');