Função para adicionar uma ligação IndexNow à sua lista de entradas

No comments

 

O IndexNow é um protocolo gratuito e de código aberto ao abrigo de uma licença Creative Commons Atribuição-CompartilhaIgual que lhe permite notificar os motores de pesquisa de que acabou de publicar algo novo, de que um conteúdo foi modificado e atualizado ou de que um URL foi removido, enviando um ping aos motores de pesquisa para acelerar o processo de rastreio e eventual indexação que, de outra forma, poderia demorar horas, dias ou semanas.

Isto não significa que lhe garanta uma indexação imediata ou uma melhor posição, apenas reduz o tempo que cada motor de busca demora a percorrer a sua página e a rastrear o que é novo, atualizado ou eliminado, uma vez que lhes estará a comunicar isso no momento. Atualmente, os motores de pesquisa que aceitam os pings do Index Now são: Microsoft Bing, Naver, Seznam.cz, Yandex e Yep.

Como criar uma chave da API do Index Now

Para utilizar o IndexNow, é necessária uma chave API. Esta chave verificará se é o proprietário do sítio Web e deve conter um mínimo de 8 e um máximo de 128 caracteres hexadecimais. A chave só pode conter letras minúsculas (a-z), maiúsculas (A-Z), números (0-9) e hífenes (-). Pelo que percebi, desde que esteja em conformidade com a estrutura, não importa de onde é gerada.

Mas, por segurança, basta visitar esta página do Bing e gerá-la e, em seguida, descarregá-la com a seta à direita.

Função para adicionar uma ligação IndexNow à sua lista de entradas 0

O ficheiro .txt descarregado deve ser colocado na raiz da página. Agora está pronto para começar a submeter páginas.

Como enviar URLs com o Index Now

Existem diferentes formas de o fazer. Muitos plug-ins de SEO já integram o Index Now como uma funcionalidade, mas se não utilizar nenhum desses plug-ins, existe um criado pelo Bing dedicado apenas a esta tarefa.

PluginIndexNow

Esta é a forma mais rápida e fácil de o fazer e evita que tenha de gerar e alojar a chave no seu sítio, uma vez que o plugin irá gerar a chave API aquando da ativação (irá gerar uma nova chave sempre que desativar e reativar o plugin).

Pode alterar esta chave de vez em quando, mas como é uma chave única para um site, a Index Now aconselha-o a não a alterar com demasiada frequência.

O plugin permite-lhe submeter automaticamente URLs sempre que publicar algo novo, fazer submissões manuais, ver estatísticas de URLs submetidos, ver URLs submetidos recentemente e voltar a submetê-los.

Envio manual a partir de um browser

Para enviar um URL(também pode enviá-los em grupos) manualmente a partir de um navegador como um pedido HTTP, depois de ter alojado o .txt com a chave da API na sua raiz, pode fazê-lo de duas formas (onde https://tu-url-com, será o URL da sua página que pretende enviar e API_KEY será a chave da API do 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 se foi enviado corretamente, pode ir à página Bing Webmaster Tools (tem de ter uma conta associada ao seu domínio) e encontrará o histórico de envio.

Função para adicionar uma ligação IndexNow à sua lista de entradas 1

Função para adicionar uma ligação "Enviar para o IndexNow" na sua lista de entradas

A opção intermédia que proponho entre o plugin e a submissão manual é uma função que adiciona uma coluna personalizada com uma ligação para submeter ao Index Now na sua lista de entradas, que terá o seguinte aspeto:

Função para adicionar uma ligação IndexNow à sua lista de entradas 2

Desta forma, pode enviar cada URL sempre que quiser com um único clique. Deve ter em conta que, embora possa enviar até 10.000 URLs por dia, existe um intervalo de tempo entre cada envio, que é de cerca de 5 minutos, pelo que não faz sentido efetuar envios em massa sem ter em atenção este intervalo. Outras questões relacionadas são respondidas nas FAQ do IndexNow.

*Não se esqueça de substituir YOUR_API_KEY_DE_INDEX_NOW pela sua chave API nas definições de // Index Now no 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

Artigos relacionados

Deixe um comentário

Este blog se aloja en LucusHost

LucusHost, el mejor hosting