IndexNowは、Attribution-ShareAlikeクリエイティブ・コモンズ・ライセンスに基づくフリーでオープンソースのプロトコルであり、検索エンジンにPingを送信することで、新しいコンテンツを公開したこと、コンテンツの一部が修正・更新されたこと、またはURLが削除されたことを通知し、通常であれば数時間、数日、または数週間かかる可能性のあるクロールやインデックスのプロセスをスピードアップすることができます。
これは、すぐにインデックスされることや、より良い順位が保証されることを意味するものではなく、各検索エンジンがあなたのページに目を通し、新しいもの、更新されたもの、削除されたものをクロールする時間を短縮するだけです。現在のところ、Index Now Pingを受け付ける検索エンジンは以下の通りです:Microsoft Bing、Naver、Seznam.cz、Yandex、Yep。
Index Now API キーの作成方法
IndexNowを使用するにはAPIキーが必要です。このキーは、あなたがウェブサイトの所有者であることを確認するもので、最低8文字、最高128文字の16進数で構成されていなければなりません。キーには小文字(a-z)、大文字(A-Z)、数字(0-9)、ハイフン(-)のみを含めることができます。つまり、この構造に従っている限り、どこから生成しても構わないということですね。
しかし、念のため、このBingのページにアクセスして生成し、右の矢印をクリックしてダウンロードしてください。

ダウンロードした.txtファイルは、ページのルートに配置してください。 これでページの投稿を開始する準備ができました。
Index NowでURLを送信する方法
これにはさまざまな方法がある。多くのSEOプラグインは、すでにIndex Nowを機能として統合しているが、それらのプラグインを使用していない場合は、Bingが作成したこのタスク専用のプラグインがある。
IndexNow プラグイン
プラグインが有効化時にAPIキーを生成するので(プラグインを無効化し、再度有効化するたびに新しいキーを生成します)、サイト上でキーを生成してホストする手間が省けます。
このキーは時々変更することができますが、ウェブサイトに固有のキーであるため、インデックス・ナウではあまり頻繁に変更しないようアドバイスしています。
このプラグインを使用すると、新しいものを投稿するたびに自動的にURLを送信したり、手動で送信したり、送信されたURLの統計を表示したり、最近送信されたURLを表示したり、再送信したりすることができます。
ブラウザからの手動送信
ブラウザからHTTPリクエストとしてURL(グループで送信することもできます)を手動で送信するには、APIキーを含む.txtをルートにホストした後、2つの方法があります(https://tu-url-com、送信したいページのURL、API_KEYはIndex NowのAPIキーになります)。
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ウェブマスターツールのページ(ドメインに関連付けられたアカウントが必要です)にアクセスし、送信履歴を確認することができます。

エントリーリストに「Send to IndexNow」リンクを追加する機能
プラグインと手動投稿の中間的なオプションとして私が提案するのは、Index Nowに投稿するためのリンクを持つカスタムカラムをエントリーリストに追加する機能です:

こうすれば、いつでも好きなときにワンクリックで各URLを送信できる。1日に最大10,000件のURLを送信することができますが、各送信の間には約5分の時間間隔があるため、この間隔に注意を払わずに大量の送信を行うことは意味がないことを考慮する必要があります。その他の関連する質問については、IndexNow FAQに回答があります。
*コードの// Index Now 設定で、YOUR_API_KEY_DE_INDEX_NOWをあなたの API キーに置き換えることを忘れないでください。
// 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');