คู่มือ

การส่ง URL รายการเดียว


หากต้องการส่ง URL โดยใช้การร้องขอทาง HTTP (แทนที่ ด้วย URL ที่ได้รับจากโปรแกรมค้นหา) ให้ส่งคำขอไปที่ URL ต่อไปนี้:

                https://<searchengine>/indexnow?url=url-changed&key=your-key
            
  • url-changed เป็น URL ของเว็บไซต์คุณซึ่งได้เพิ่ม อัปเดต หรือลบแล้ว URL ต้องเป็น URL-escaped และมีการเข้ารหัส โปรดตรวจดูให้แน่ใจว่า URL ของคุณสอดคล้องกับมาตรฐาน RFC-3986 สำหรับ URI
  • Your-key ควรมีอักขระที่เป็นเลขฐานสิบหกไม่น้อยกว่า 8 ตัวและไม่เกิน 128 ตัว คีย์จะมีได้เฉพาะอักขระต่อไปนี้: อักษรพิมพ์เล็ก (a-z) อักษรพิมพ์ใหญ่ (A-Z) ตัวเลข (0-9) และเครื่องหมายยัติภังค์ (-)

เช่น หากคุณต้องการแจ้งโปรแกรมค้นหาว่าได้อัปเดต https://www.example.com/product.html แล้ว และคุณต้องการใช้คีย์นี้ URL ของคุณจะเป็นดังนี้:

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

คุณสามารถส่งการร้องขอทาง HTTP ได้โดยใช้เบราว์เซอร์ของคุณ, wget, curl หรือกลไกอื่นใดตามที่คุณเลือก การร้องขอที่ดำเนินการสำเร็จจะส่งรหัสการตอบสนอง HTTP 200 กลับมา หากคุณได้รับการตอบสนองในลักษณะอื่น ให้ตรวจสอบว่าคุณไม่ได้ส่งการร้องขอบ่อยเกินไป คีย์และ URL ถูกต้อง แล้วส่งการร้องขออีกครั้ง รหัสการตอบสนอง HTTP 200 ระบุเพียงว่าโปรแกรมค้นหาได้รับ URL ของคุณแล้วเท่านั้น

การส่งชุด URL


หากต้องการส่งชุด URL โดยใช้การร้องขอทาง HTTP ให้ส่งการร้องขอ POST JSON ไปยัง URL ที่ได้รับจากโปรแกรมค้นหา แทนที่ ด้วยชื่อโฮสต์ของโปรแกรมค้นหา

                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"
                      ]
                }
            

คุณสามารถส่ง URL ได้สูงสุดไม่เกิน 10,000 รายการต่อโพสต์ โดยรวมกันได้ทั้ง URL แบบ http และแบบ https ตามความจำเป็น

คุณสามารถส่งการร้องขอทาง HTTP ได้โดยใช้ wget, curl หรือกลไกอื่นใดตามที่คุณเลือก การร้องขอที่ดำเนินการสำเร็จจะส่งรหัสการตอบสนอง HTTP 200 กลับมา หากคุณได้รับการตอบสนองในลักษณะอื่น คุณควรตรวจสอบการร้องขอของคุณว่าทุกอย่างเรียบร้อยดี แล้วส่งการร้องขออีกครั้ง รหัสการตอบสนอง HTTP 200 ระบุเพียงว่าโปรแกรมค้นหาได้รับชุด URL ของคุณแล้วเท่านั้น

วิธีที่แนะนำคือการปรับให้ส่ง URL โดยอัตโนมัติทันทีที่มีการเพิ่ม อัปเดต หรือลบเนื้อหาให้มากที่สุดเท่าที่พอจะเป็นไปได้ ดูแนวทางปฏิบัติสำหรับเนื้อหาที่ผู้ใช้สร้างในคำถามที่ถามบ่อย

การยืนยันความเป็นเจ้าของผ่านคีย์


ในการส่ง URL คุณต้อง "พิสูจน์" ความเป็นเจ้าของโฮสต์ที่กำลังจะมีการส่ง URL ด้วยการโฮสต์ไฟล์ข้อความภายในโฮสต์อย่างน้อยหนึ่งไฟล์ เมื่อคุณส่ง URL ไปยังโปรแกรมค้นหาแล้ว โปรแกรมค้นหาจะตระเวนคีย์ไฟล์เพื่อยืนยันความเป็นเจ้าของและใช้คีย์ดังกล่าวจนกว่าคุณจะเปลี่ยนแปลงคีย์นั้น มีเพียงคุณและโปรแกรมค้นหาเท่านั้นที่จะทราบคีย์และตำแหน่งที่ตั้งคีย์ไฟล์ของคุณ

เราขอเสนอวิธียืนยันความเป็นเจ้าของในสองรูปแบบ

ทางเลือกที่ 1
การโฮสต์คีย์ไฟล์ข้อความที่ไดเรกทอรีรากของโฮสต์คุณ

คุณต้องโฮสต์คีย์ไฟล์ข้อความ {your-key}.txt ที่เข้ารหัสแบบ UTF-8 ซึ่งแสดงคีย์ในไฟล์ที่ไดเรกทอรีรากของเว็บไซต์คุณ

ตามกรณีในตัวอย่างข้างต้น คุณจะต้องโฮสต์คีย์ไฟล์ UTF-8 ของคุณที่ https://www.example.com/.txt และไฟล์นี้ต้องมีคีย์

ทางเลือกที่ 2
การโฮสต์คีย์ไฟล์ข้อความภายในโฮสต์ของคุณ

คุณยังสามารถโฮสต์คีย์ไฟล์ข้อความที่เข้ารหัสแบบ UTF-8 ได้หนึ่งไฟล์ไปจนถึงหลายไฟล์ในตำแหน่งที่ตั้งอื่นๆ ภายในโฮสต์เดียวกัน และคุณต้องแจ้งให้โปรแกรมค้นหาทราบตำแหน่งที่ตั้งของคีย์ไฟล์ข้อความนี้ในการแจ้งเตือนของ IndexNow แต่ละรายการด้วยการระบุตำแหน่งที่ตั้งโดยใช้ตัวแปร keyLocation

หากคุณส่ง URL ให้ระบุตำแหน่งที่ตั้งคีย์ไฟล์เป็นค่าพารามิเตอร์ keyLocation สำหรับ URL

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

หากคุณส่งชุด URL ให้ระบุตำแหน่งที่ตั้งคีย์ไฟล์เป็นตัวแปร keyLocation ในเนื้อหา 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"
                          ]
                    }
                

ในทางเลือกที่ 2 นี้ ตำแหน่งที่ตั้งคีย์ไฟล์จะเป็นตัวกำหนดชุด URL ที่สามารถรวมอยู่กับคีย์นี้ได้ คีย์ไฟล์ซึ่งอยู่ที่ http://example.com/catalog/key12457EDd.txt สามารถรวม URL ใดก็ได้ที่ขึ้นต้นด้วย http://example.com/catalog/ แต่จะไม่สามารถรวม URL ที่ขึ้นต้นด้วย http://example.com/help/ ได้

URL ที่ไม่ถือว่าถูกต้องใน http://example.com/catalog/sitemap.xml ได้แก่:

URL ที่ไม่ถือว่าถูกต้องในทางเลือกที่ 2 อาจไม่ได้รับการพิจารณาสำหรับการทำดัชนี ขอแนะนำเป็นอย่างยิ่งให้คุณใช้ทางเลือกที่ 1 และวางคีย์ไฟล์ของคุณที่ไดเรกทอรีรากของเว็บเซิร์ฟเวอร์

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