Función para añadir un enlace de IndexNow en tu lista de entradas

Sin comentarios

Visitas: 25
 

IndexNow es un protocolo gratuito y de código abierto con licencia Attribution-ShareAlike Creative Commons que permite avisar a los motores de búsqueda que acabas de publicar algo nuevo, que un contenido se ha modificado y se ha actualizado o que se ha eliminado una URL enviando un ping a los motores de búsqueda para agilizar el proceso de rastreo y posible indexación que de otra forma podría tardar horas, días o semanas.

Esto no quiere decir que te garantice su indexación inmediata o una mejor posición, sólo reduce el tiempo que necesita cada buscador en pasar por tu página y rastrear lo que hay nuevo, actualizado o se ha borrado ya que tú se lo estarás comunicando en el momento. A día de hoy, los buscadores que aceptan pings de Index Now son: Microsoft Bing, Naver, Seznam.cz, Yandex y Yep.

Cómo crear clave API de Index Now

Para usar IndexNow se necesita una clave API. Esta clave será la encargada de verificar que eres el propietario de la web y debe contener un mínimo de 8 y un máximo de 128 caracteres hexadecimales. La clave solo puede contener minúsculas (a-z), mayúsculas (A-Z), números (0-9) y guiones (-). Así que entiendo que mientras cumpla con la estructura no importa desde dónde la generes.

Pero para ir sobre seguro basta visitar visitar esta página de Bing y generarla para después descargarla con esa flecha que aparecerá a la derecha.

Función para añadir un enlace de IndexNow en tu lista de entradas 0

El archivo .txt descargado debe alojarse en la raíz de la página. Con esto ya estarás listo para empezar a enviar páginas.

Cómo enviar URLs con Index Now

Hay distintas formas de hacerlo. Muchos plugins de SEO ya integran Index Now como una función más, pero si no usas ninguno de esos plugins existe uno creado por Bing dedicado solo a esta tarea.

IndexNow Plugin

Es la forma más rápida y fácil de hacerlo y te ahorras tener que generar y alojar la clave en tu página ya que el plugin generará la clave API al activarlo (generará una nueva cada vez que desactives y vuelvas a activar el plugin).

Puedes cambiar esta clave cada cierto tiempo, pero al tratarse de una clave única para un sitio web, Index Now aconseja no cambiarla con demasiada frecuencia.

El plugin te permite el envío automático de URLs cada vez que que publicas algo nuevo, hacer envíos manuales, ver estadísticas de las direcciones enviadas, ver las direcciones recientes enviadas y reenviarlas.

Envío manual desde un navegador

Para enviar una URL (también puedes enviarlas por grupos) de forma manual desde un navegador como una solicitud HTTP, después de haber alojado el .txt con la clave API en tu raíz, puedes hacerlo de dos formas (donde https://tu-url-com, será la URL de tu página que quieres enviar y CLAVE_API será la clave API de 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

Para verificar que se ha enviado correctamente, puedes dirigirte a la página de Bing Webmaster Tools (debes tener una cuenta asociada a tu dominio) y encontrarás el historial de envíos.

Función para añadir un enlace de IndexNow en tu lista de entradas 1

Función para añadir un enlace de "Enviar a IndexNow" en tu lista de entradas

La opción intermedia que te propongo entre el plugin y el envío manual es una función que añade una columna personalizada con un enlace para enviar a Index Now en tu lista de entradas y que se verá así:

Función para añadir un enlace de IndexNow en tu lista de entradas 2

De esta forma puedes enviar cada URL cuando quieras con un solo clic. Debes tener en cuenta que, aunque puedes enviar hasta 10.000 URLs por día, existe un intervalo de tiempo entre cada envío que es de unos 5 minutos, por lo que no tiene sentido hacer envíos masivos sin atender a ese intervalo. Otras cuestiones relacionadas están resueltas en las FAQ de IndexNow.

*Recuerda sustituir TU_API_KEY_DE_INDEX_NOW por tu clave API en // Configuración de Index Now en el código

// 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');

Suscríbete para recibir los post en tu email sin publicidad

Artículos relacionados



Repositorio de documentales sobre dibujantes de cómic y humor gráfico.

Tontolares. Los titulares más gilipollas de la prensa. Envía los tuyos

Deja un comentario

Este blog se aloja en LucusHost

LucusHost, el mejor hosting