Tài liệu

Gửi một URL


Để gửi URL bằng yêu cầu HTTP (sử dụng URL mà công cụ tìm kiếm cung cấp thay cho ), hãy đưa ra yêu cầu cho URL sau:

                https://<searchengine>/indexnow?url=url-changed&key=your-key
            
  • url-changed là URL trang web đã được thêm, cập nhật hay xóa của bạn. URL phải được thoát và mã hóa URL; vui lòng đảm bảo các URL của bạn tuân thủ chuẩn RFC-3986 cho các URI.
  • Khóa cần có số ký tự thập lục phân tối thiểu và tối đa lần lượt là 8 và 128 ký tự. Khóa chỉ được chứa các ký tự sau: ký tự chữ thường (a-z), ký tự chữ hoa (A-Z), số (0-9) và dấu gạch nối (-).

Ví dụ: nếu muốn thông báo cho công cụ tìm kiếm rằng https://www.example.com/product.html đã được cập nhật và bạn muốn dùng khóa này thì URL của bạn sẽ là:

                https://<searchengine>/indexnow?url=https://www.example.com/product.html&key=
            

Bạn có thể sử dụng trình duyệt, lệnh wget, lệnh curl hay bất cứ cách thức nào khác tùy chọn để đưa ra yêu cầu HTTP. Một yêu cầu thành công sẽ trả về mã phản hồi HTTP 200; nếu nhận được phản hồi khác, hãy đảm bảo rằng bạn không gửi yêu cầu quá thường xuyên và cả khóa và URL đều hợp lệ, sau đó gửi lại yêu cầu. Mã phản hồi HTTP 200 chỉ cho biết rằng công cụ tìm kiếm đã nhận được URL của bạn.

Gửi tập hợp nhiều URL


Để gửi tập hợp nhiều URL bằng yêu cầu HTTP, hãy đưa ra yêu cầu POST JSON cho URL mà Công cụ tìm kiếm cung cấp. Thay bằng tên máy chủ của công cụ tìm kiếm.

                POST /indexnow HTTP/1.1
                Content-Type: application/json; charset=utf-8
                Host: <searchengine>
                {
                  "host": "www.example.com",
                  "key": "",
                  "urlList": [
                      "https://www.example.com/url1",
                      "https://www.example.com/folder/url2",
                      "https://www.example.com/url3"
                      ]
                }
            

Với mỗi lần đăng, bạn có thể gửi tối đa 10.000 URL, kết hợp cả URL http và https nếu cần.

Bạn có thể sử dụng lệnh wget, lệnh curl hay bất cứ cách thức nào khác tùy chọn để đưa ra yêu cầu HTTP. Một yêu cầu thành công sẽ trả về mã phản hồi HTTP 200; nếu nhận được phản hồi khác, bạn nên xác minh lại yêu cầu và đảm bảo mọi thứ chính xác, sau đó gửi lại yêu cầu. Mã phản hồi HTTP 200 chỉ cho biết rằng công cụ tìm kiếm đã nhận được tập hợp các URL của bạn.

Chúng tôi khuyên bạn nên thực hiện việc gửi tự động các URL ngay khi thêm, cập nhật hoặc xóa nội dung trong phạm vi giới hạn nào đó; xem các thực hành tốt nhất cho nội dung do người dùng tạo trong phần Câu hỏi thường gặp.

Xác minh quyền sở hữu bằng cách sử dụng khóa


Để gửi các URL, bạn phải "chứng minh" quyền sở hữu máy chủ mà URL đang được gửi bằng cách lưu trữ ít nhất một tệp văn bản trong máy chủ đó. Sau khi gửi các URL đến công cụ tìm kiếm, công cụ tìm kiếm sẽ cào dữ liệu (crawl) tệp khóa để xác minh quyền sở hữu và sử dụng khóa này cho đến khi bạn thay đổi khóa. Sẽ chỉ có bạn và công cụ tìm kiếm biết khóa này, cũng như vị trí khóa tệp.

Chúng tôi giới thiệu đến bạn hai cách để xác minh quyền sở hữu.

Lựa chọn 1
Lưu trữ tệp khóa văn bản ở thư mục gốc của máy chủ.

Bạn phải lưu trữ tệp khóa văn bản mã hóa UTF-8 {your-key}.txt có liệt kê khóa này trong tệp vào thư mục gốc của trang web.

Ví dụ như trong các trường hợp ở trên, bạn sẽ cần lưu trữ tệp khóa UTF-8 tại https://www.example.com/.txt và tệp này phải chứa khóa đó

Lựa chọn 2
Lưu trữ tệp khóa văn bản trong máy chủ.

Bạn cũng có thể lưu trữ từ một cho đến nhiều tệp khóa văn bản mã hóa UTF-8 trong cùng máy chủ và bạn phải cho công cụ tìm kiếm biết vị trí của tệp khóa văn bản này trong từng thông báo IndexNow bằng cách chỉ định vị trí sử dụng biến keyLocation.

Nếu gửi một URL, hãy chỉ định vị trí tệp khóa làm giá trị tham số URL keyLocation.

                    https://<searchengine>/indexnow?url=http://www.example.com/product.html&key=&keyLocation=http://www.example.com/myIndexNowKey63638.txt
                

Nếu gửi tập hợp nhiều URL, hãy chỉ định vị trí tệp khóa làm biến keyLocation trong nội dung JSON.

                    POST /indexnow HTTP/1.1
                    Content-Type: application/json; charset=utf-8
                    Host: <searchengine>
                    {
                      "host": "www.example.com",
                      "key": "",
                      "keyLocation": "https://www.example.com/myIndexNowKey63638.txt",
                      "urlList": [
                          "https://www.example.com/url1",
                          "https://www.example.com/folder/url2",
                          "https://www.example.com/url3"
                          ]
                    }
                

Ở lựa chọn 2 này, vị trí tệp khóa sẽ quyết định tập hợp các URL có thể được bao gồm với khóa này. Tệp khóa nằm tại http://example.com/catalog/key12457EDd.txt có thể bao gồm bất cứ URL nào bắt đầu bằng http://example.com/catalog/ nhưng không bao gồm các URL bắt đầu bằng http://example.com/help/.

Các URL không được coi là hợp lệ trong http://example.com/catalog/sitemap.xml bao gồm:

Các URL không được coi là hợp lệ trong lựa chọn 2 có thể không được xem xét cho việc lập chỉ mục. Chúng tôi đặc biệt khuyên bạn nên sử dụng Lựa chọn 1 và đặt khóa tệp ở thư mục gốc của máy chủ web.

Response format


HTTP Code
Response
Reasons
200
OK
URL submitted successfully
202
Accepted
URL received. IndexNow key validation pending.
400
Bad request
Invalid format
403
Forbidden
In case of key not valid (e.g. key not found, file found but key not in the file)
422
Unprocessable Entity
In case of URLs which don’t belong to the host or the key is not matching the schema in the protocol
429
Too Many Requests
Too Many Requests (potential Spam)

Requirement for search engines


Search engines adopting the IndexNow protocol agree that submitted URLs will be automatically shared with all other participating search engines. To participate, search engines must have a noticeable presence in at least one market or be closely linked to the search market and make a significant contribution to the number of url submissions. Learn more