Hướng dẫn
Quảng cáo

Hướng Dẫn Tạo Script IndexNow Bằng PHP

Tìm hiểu cách tạo script PHP để sử dụng giao thức IndexNow, giúp thông báo các thay đổi URL trên website của bạn tới công cụ tìm kiếm Bing

Hướng Dẫn Tạo Script IndexNow Bằng PHP

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng giao thức IndexNow để thông báo cho các công cụ tìm kiếm về những thay đổi trên website của bạn thông qua script PHP.

Bước 1: Tạo và Xác Minh Khóa IndexNow

Trước khi có thể gửi URL thông qua IndexNow, bạn cần tạo một khóa và xác minh nó bằng cách đặt một tệp tin trên máy chủ của mình.

  1. Tạo Khóa: Bạn có thể tạo khóa thủ công hoặc sử dụng công cụ trên trang web IndexNow.
  2. Xác Minh Khóa: Đặt một tệp tin tên là {key}.txt trong thư mục gốc của website với nội dung là chính khóa đó.

Ví dụ, nếu khóa của bạn là example1234abcd, bạn cần đặt một tệp tin tên là example1234abcd.txt trong thư mục gốc với nội dung là example1234abcd.

Hướng Dẫn Tạo Script IndexNow Bằng PHP

Bước 2: Tạo Script PHP

Dưới đây là mã PHP để gửi URL đến IndexNow sử dụng khóa đã tạo.

Ví dụ

<?php
function submitUrlsToIndexNow($key, $urls) {
    // Địa chỉ API của IndexNow
    $endpoint = 'https://api.indexnow.org/indexnow';
    
    // Chuẩn bị payload
    $payload = json_encode([
        'host' => $_SERVER['SERVER_NAME'], // Tên miền của website
        'key' => $key, // Khóa đã tạo
        'keyLocation' => 'https://' . $_SERVER['SERVER_NAME'] . '/' . $key . '.txt', // Địa chỉ URL của tệp tin khóa
        'urlList' => $urls // Danh sách các URL cần được index
    ]);

    // Khởi tạo cURL
    $ch = curl_init($endpoint);

    // Thiết lập các tùy chọn cURL
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Content-Length: ' . strlen($payload)
    ]);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

    // Thực hiện yêu cầu cURL
    $response = curl_exec($ch);

    // Kiểm tra lỗi cURL
    if (curl_errno($ch)) {
        $error_msg = curl_error($ch);
        curl_close($ch);
        return ['success' => false, 'message' => $error_msg];
    }

    // Lấy mã trạng thái HTTP
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    // Đóng cURL
    curl_close($ch);

    // Giải mã phản hồi
    $response_data = json_decode($response, true);

    // Trả về dữ liệu phản hồi với mã trạng thái HTTP để debug
    return [
        'success' => $http_status === 200,
        'http_status' => $http_status,
        'response' => $response_data
    ];
}

// Ví dụ sử dụng
$key = 'your_generated_key'; // Thay bằng khóa của bạn
$urls = [
    'https://example.com/page1',
    'https://example.com/page2',
    'https://example.com/page3'
]; // Thay bằng danh sách URL của bạn

$response = submitUrlsToIndexNow($key, $urls);

if ($response['success']) {
    echo "Các URL đã được gửi thành công!";
} else {
    echo "Gửi URL thất bại. Mã trạng thái HTTP: " . $response['http_status'] . ". Phản hồi: " . json_encode($response['response']);
}
?>

Giải Thích và Debug

1. Chuẩn Bị Payload: Đảm bảo rằng payload JSON được định dạng chính xác.

2. Thiết Lập cURL: Kiểm tra nếu các tùy chọn cURL được thiết lập chính xác.

3. Xử Lý Phản Hồi: Giải mã phản hồi JSON và bao gồm mã trạng thái HTTP để debug dễ dàng hơn.

Các Vấn Đề Thường Gặp

1. Xác Minh Khóa: Đảm bảo rằng tệp tin khóa ({key}.txt) được đặt đúng chỗ và có thể truy cập tại https://yourdomain.com/{key}.txt.

2. Địa Chỉ API Chính Xác: Đảm bảo rằng địa chỉ endpoint API là chính xác.

3. Vấn Đề Mạng: Kiểm tra nếu máy chủ của bạn có thể thực hiện các yêu cầu HTTP bên ngoài.

Kiểm Tra và Debug

1. Kiểm Tra Tệp Tin Khóa: Truy cập https://yourdomain.com/{key}.txt trong trình duyệt để đảm bảo nó trả về khóa chính xác.

2. Kiểm Tra Nhật Ký Máy Chủ: Tìm các thông báo lỗi liên quan trong nhật ký máy chủ của bạn.

3. Output Chi Tiết: Bạn có thể thêm tùy chọn cURL để có output chi tiết hơn:

Ví dụ

curl_setopt($ch, CURLOPT_VERBOSE, true);

Debug Output Ví Dụ

Để debug thêm, bạn có thể in thêm thông tin:

Ví dụ

$response = submitUrlsToIndexNow($key, $urls);
echo "<pre>";
print_r($response);
echo "</pre>";

Hy vọng bài viết này sẽ giúp bạn thiết lập giao thức IndexNow một cách hiệu quả trên website của mình!

Bài viết này đã giúp ích cho bạn?

Bài viết mới

Advertisements