항목 목록에 IndexNow 링크를 추가하는 함수

Seleccionar idioma

IndexNow는 저작자표시-동일조건변경허락 크리에이티브 커먼즈 라이선스에 따른 무료 오픈 소스 프로토콜로, 검색 엔진에 핑을 보내 새로운 콘텐츠를 게시했거나 콘텐츠가 수정 및 업데이트되었거나 URL이 제거되었음을 알려 크롤링 및 색인 프로세스의 속도를 높여 몇 시간, 며칠 또는 몇 주가 걸릴 수 있는 색인화 작업을 빠르게 진행할 수 있도록 해줍니다.

이는 즉각적인 색인 생성이나 더 나은 순위를 보장하는 것이 아니라 각 검색 엔진이 귀하의 페이지를 살펴보고 새 항목, 업데이트 또는 삭제된 항목을 크롤링하는 데 걸리는 시간을 줄여줄 뿐입니다(현재 전달할 내용을 검색 엔진에 전달할 때). 현재 인덱스 나우 핑을 허용하는 검색 엔진은 다음과 같습니다: Microsoft Bing, Naver, Seznam.cz, YandexYep.

인덱스 나우 API 키를 만드는 방법

IndexNow를 사용하려면 API 키가 필요합니다. 이 키는 웹사이트의 소유자임을 확인하며 최소 8자에서 최대 128자의 16진수를 포함해야 합니다. 키에는 소문자(a-z), 대문자(A-Z), 숫자(0-9) 및 하이픈(-)만 포함할 수 있습니다. 따라서 구조를 준수하는 한 어디서 생성하는지는 중요하지 않다는 것을 이해합니다.

하지만 안전을 위해 Bing 페이지를 방문하여 생성한 다음 오른쪽 화살표를 사용하여 다운로드하세요.

항목 목록에 IndexNow 링크를 추가하는 함수 0

다운로드한 .txt 파일은 페이지의 루트에 배치해야 합니다. 이제 페이지 제출을 시작할 준비가 되었습니다.

지금 인덱스로 URL을 제출하는 방법

이 작업을 수행하는 방법에는 여러 가지가 있습니다. 많은 SEO 플러그인이 이미 인덱스 나우를 기능으로 통합하고 있지만, 이러한 플러그인을 사용하지 않는 경우 이 작업 전용으로 Bing에서 만든 플러그인이 있습니다.

IndexNow 플러그인

이 방법은 가장 빠르고 쉬운 방법이며 플러그인이 활성화 시 API 키를 생성하므로 사이트에서 키를 생성하고 호스팅할 필요가 없습니다(플러그인을 비활성화했다가 다시 활성화할 때마다 새 키를 생성합니다).

이 키는 수시로 변경할 수 있지만 웹사이트의 고유 키이므로 Index Now에서는 너무 자주 변경하지 말 것을 권장합니다.

플러그인을 사용하면 새 글을 게시할 때마다 URL을 자동으로 제출하고, 수동으로 제출하고, 제출된 URL의 통계를 보고, 최근에 제출된 URL을 확인하고, 다시 제출할 수 있습니다.

브라우저에서 수동 전송

브라우저에서 수동으로 URL(그룹으로 보낼 수도 있음)을 HTTP 요청으로 보내려면 루트에 API 키가 포함된 .txt를 호스팅한 후 두 가지 방법으로 보낼 수 있습니다(여기서 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 웹마스터 도구 페이지(도메인과 연결된 계정이 있어야 함)로 이동하면 전송 내역을 확인할 수 있습니다.

항목 목록에 IndexNow 링크를 추가하는 함수 1

항목 목록에 'IndexNow로 보내기' 링크를 추가하는 기능

플러그인과 수동 제출 사이에 제가 제안하는 중간 옵션은 항목 목록에 지금 색인에 제출할 링크가 있는 사용자 지정 열을 추가하는 기능으로, 다음과 같이 표시됩니다:

항목 목록에 IndexNow 링크를 추가하는 함수 2

이렇게 하면 클릭 한 번으로 원할 때마다 각 URL을 전송할 수 있습니다. 하루에 최대 10,000개의 URL을 보낼 수 있지만 각 제출 사이에는 약 5분의 시간 간격이 있으므로 이 간격을 고려하지 않고 대량 제출하는 것은 의미가 없다는 점을 고려해야 합니다. 기타 관련 질문은 IndexNow FAQ에 답변되어 있습니다.

*코드의 // 인덱스 지금 설정에서 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');

관련 문서

Este blog se aloja en LucusHost

LucusHost, el mejor hosting