Функция для добавления ссылки IndexNow в список записей

 

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, сгенерируйте ее и загрузите с помощью стрелки справа.

Функция для добавления ссылки IndexNow в список записей 0

Загруженный файл .txt должен быть помещен в корень страницы. Теперь вы готовы начать отправку страниц.

Как отправлять URL-адреса с помощью Index Now

Существует несколько способов сделать это. Многие SEO-плагины уже интегрируют функцию Index Now, но если вы не используете ни один из этих плагинов, есть один, созданный компанией Bing и предназначенный именно для этой задачи.

PluginIndexNow

Это самый быстрый и простой способ сделать это и избавить вас от необходимости генерировать и размещать ключ на вашем сайте, так как плагин сгенерирует 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 Webmaster Tools (у вас должна быть учетная запись, связанная с вашим доменом) и найти историю отправки.

Функция для добавления ссылки IndexNow в список записей 1

Функция для добавления ссылки "Отправить в IndexNow" в список записей

Промежуточный вариант, который я предлагаю между плагином и ручной отправкой, - это функция, добавляющая в список записей пользовательскую колонку со ссылкой на отправку в Index Now, которая будет выглядеть следующим образом:

Функция для добавления ссылки IndexNow в список записей 2

Таким образом, вы сможете отправлять каждый URL, когда захотите, одним щелчком мыши. Следует помнить, что хотя вы можете отправлять до 10 000 URL в день, между каждой отправкой существует временной интервал, который составляет около 5 минут, поэтому не имеет смысла делать массовые отправки, не обращая внимания на этот интервал. Ответы на другие вопросы вы найдете в FAQ по 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');

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

Похожие статьи

Este blog se aloja en LucusHost

LucusHost, el mejor hosting