ภาพรวมของ Crawler และตัวดึงข้อมูลของ Google (User Agent)

Google ใช้ Crawler และตัวดึงข้อมูลเพื่อดําเนินการต่างๆ กับผลิตภัณฑ์ ไม่ว่าจะแบบอัตโนมัติหรือที่ทริกเกอร์จากคําขอของผู้ใช้ Crawler (บางครั้งเรียกว่า "โรบ็อต" หรือ "สไปเดอร์") เป็นคำทั่วไปที่ใช้เรียกโปรแกรมสำรวจและสแกนเว็บไซต์โดยอัตโนมัติ ตัวดึงข้อมูลจะทำงานเป็นโปรแกรมอย่างเช่น wget ซึ่งโดยปกติจะส่งคำขอเดียวในนามของผู้ใช้ Crawler ของ Google แบ่งออกเป็น 3 หมวดหมู่ดังนี้

Crawler ทั่วไป Crawler ทั่วไปที่ใช้สำหรับผลิตภัณฑ์ของ Google (เช่น Googlebot) Crawler ประเภทนี้จะทำตามกฎของ robots.txt เสมอสําหรับการ Crawl โดยอัตโนมัติ
Crawler กรณีพิเศษ Crawler กรณีพิเศษจะคล้ายกับ Crawler ทั่วไป แต่จะใช้โดยผลิตภัณฑ์ที่เฉพาะเจาะจง ซึ่งมีข้อตกลงระหว่างเว็บไซต์ที่ได้รับการ Crawl กับผลิตภัณฑ์ของ Google เกี่ยวกับขั้นตอนการ Crawl เช่น AdsBot จะไม่สนใจ User Agent ใน robots.txt ส่วนกลาง (*) เมื่อได้รับอนุญาตจากผู้เผยแพร่โฆษณา
ตัวดึงข้อมูลที่ทริกเกอร์โดยผู้ใช้ ตัวดึงข้อมูลที่ทริกเกอร์โดยผู้ใช้เป็นส่วนหนึ่งของเครื่องมือและฟังก์ชันของผลิตภัณฑ์ที่ผู้ใช้ปลายทางเป็นผู้ทริกเกอร์การดึงข้อมูล เช่น เครื่องมือตรวจสอบเว็บไซต์จาก Google Sites จะทำตามคำขอของผู้ใช้

คุณสมบัติทางเทคนิคของ Crawler และตัวดึงข้อมูลของ Google

Crawler และตัวดึงข้อมูลของ Google ได้รับการออกแบบมาให้รองรับการเรียกใช้งานจากเครื่องหลายพันเครื่องพร้อมกันเพื่อปรับปรุงประสิทธิภาพการทำงานและขนาดในขณะที่เว็บเติบโตขึ้น เรามีไคลเอ็นต์เหล่านี้กระจายอยู่ในศูนย์ข้อมูลหลายแห่งทั่วโลกเพื่อให้อยู่ใกล้กับเว็บไซต์ที่อาจเข้าถึง เพื่อเพิ่มประสิทธิภาพการใช้แบนด์วิดท์ ดังนั้น บันทึกของคุณจึงอาจแสดงการเข้าชมจากที่อยู่ IP หลายรายการ Google ออกข้อมูลจากที่อยู่ IP ในสหรัฐอเมริกาเป็นหลัก ในกรณีที่ Google ตรวจพบว่าเว็บไซต์หนึ่งบล็อกคำขอจากสหรัฐอเมริกา เว็บไซต์อาจพยายามทำการ Crawl จากที่อยู่ IP ในประเทศอื่นๆ

โปรโตคอลการโอนที่รองรับ

Crawler และตัวดึงข้อมูลของ Google รองรับ HTTP/1.1 และ HTTP/2 Crawler จะใช้เวอร์ชันโปรโตคอลที่ให้ประสิทธิภาพการ Crawl ที่ดีที่สุด และอาจสลับโปรโตคอลระหว่างเซสชันการ Crawl ทั้งนี้ขึ้นอยู่กับสถิติการ Crawl ก่อนหน้า เวอร์ชันโปรโตคอลเริ่มต้นที่ Crawler ของ Google ใช้คือ HTTP/1.1 การ Crawl ผ่าน HTTP/2 อาจช่วยประหยัดทรัพยากรการประมวลผล (เช่น CPU, RAM) ของเว็บไซต์และ Googlebot อย่างไรก็ตาม ไม่มีประโยชน์เฉพาะที่เกี่ยวกับผลิตภัณฑ์ของ Google สำหรับเว็บไซต์นี้ (เช่น ไม่มีการช่วยเพิ่มอันดับใน Google Search) หากเลือกที่จะไม่ทำการ Crawl ผ่าน HTTP/2 ให้กำหนดให้เซิร์ฟเวอร์ที่โฮสต์เว็บไซต์ตอบกลับด้วยรหัสสถานะ HTTP 421 เมื่อ Google พยายามทำการ Crawl เว็บไซต์ผ่าน HTTP/2 หากทําไม่ได้ คุณสามารถส่งข้อความถึงทีมการ Crawl (เป็นวิธีแก้ปัญหาชั่วคราวเท่านั้น)

โครงสร้างพื้นฐาน Crawler ของ Google ยังรองรับการ Crawl ผ่าน FTP (ตามที่ระบุไว้ใน RFC959 และการอัปเดต) และ FTPS (ตามที่ระบุไว้ใน RFC4217 และการอัปเดต) ด้วย แต่การ Crawl ผ่านโปรโตคอลเหล่านี้นั้นเกิดขึ้นไม่บ่อยนัก

การเข้ารหัสเนื้อหาที่รองรับ

Crawler และตัวดึงข้อมูลของ Google รองรับการเข้ารหัสเนื้อหา (การบีบอัด) ต่อไปนี้ gzip, deflate และ Brotli (br) การเข้ารหัสเนื้อหาที่ User Agent ของ Google แต่ละรายการรองรับจะแสดงอยู่ในส่วนหัว Accept-Encoding ของคำขอแต่ละรายการ เช่น Accept-Encoding: gzip, deflate, br

อัตราการ Crawl และโหลดของโฮสต์

เป้าหมายของเราคือทำการ Crawl หน้าเว็บในเว็บไซต์ของคุณให้มากที่สุดในการเข้าชมแต่ละครั้ง โดยไม่ทําให้เซิร์ฟเวอร์ของคุณทํางานหนักเกินไป หากเว็บไซต์ของคุณมีปัญหาในการตอบกลับคำขอทำการ Crawl ของ Google ไม่ทัน ให้ลดอัตราการ Crawl โปรดทราบว่าการส่งโค้ดตอบกลับ HTTP ที่ไม่เหมาะสมไปยัง Crawler ของ Google อาจส่งผลต่อลักษณะที่เว็บไซต์ของคุณปรากฏในผลิตภัณฑ์ของ Google

การแคช HTTP

โครงสร้างพื้นฐานการ Crawl ของ Google รองรับการแคช HTTP แบบฮิวริสติกตามที่ระบุไว้ในมาตรฐานการแคช HTTP โดยเฉพาะอย่างยิ่งผ่านส่วนหัวการตอบกลับ ETag และคำขอ If-None-Match รวมถึงส่วนหัวการตอบกลับ Last-Modified และคำขอ If-Modified-Since

หากมีทั้งฟิลด์ส่วนหัวการตอบกลับ ETag และ Last-Modified ในการตอบกลับ HTTP นั้น Crawler ของ Google จะใช้ค่า ETag ตามที่มาตรฐาน HTTP กำหนด สำหรับ Crawler ของ Google โดยเฉพาะ เราขอแนะนำให้ใช้ ETag แทนส่วนหัว Last-Modified เพื่อระบุค่ากำหนดการแคช เนื่องจาก ETag ไม่มีปัญหาการจัดรูปแบบวันที่

ไม่รองรับคำสั่งแคช HTTP อื่นๆ

Crawler และตัวดึงข้อมูลของ Google แต่ละรายการอาจใช้หรือไม่ใช้การแคช ทั้งนี้ขึ้นอยู่กับความต้องการของผลิตภัณฑ์ที่เชื่อมโยงอยู่ เช่น Googlebot รองรับการแคชเมื่อทำการ Crawl URL ของ Google Search อีกครั้ง และ Storebot-Google รองรับการแคชในบางเงื่อนไขเท่านั้น

หากต้องการใช้แคช HTTP สําหรับเว็บไซต์ โปรดติดต่อผู้ให้บริการโฮสติ้งหรือระบบจัดการเนื้อหา

ETag และ If-None-Match

โครงสร้างพื้นฐานการ Crawl ของ Google รองรับ ETag และ If-None-Match ตามที่มาตรฐานการแคช HTTP กำหนด ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัวการตอบกลับ ETag และส่วนหัวคําขอที่ตรงกัน If-None-Match

Last-Modified และ If-Modified-Since

โครงสร้างพื้นฐานการ Crawl ของ Google รองรับ Last-Modified และ If-Modified-Since ตามที่ระบุไว้ในมาตรฐานการแคช HTTP โดยมีข้อควรระวังต่อไปนี้

  • วันที่ในส่วนหัว Last-Modified ต้องอยู่ในรูปแบบตามมาตรฐาน HTTP เราขอแนะนำให้ใช้รูปแบบวันที่ต่อไปนี้เพื่อหลีกเลี่ยงปัญหาการแยกวิเคราะห์ "วันธรรมดา, DD Mon YYYY HH:MM:SS เขตเวลา" เช่น "Fri, 4 Sep 1998 19:15:56 GMT"
  • แม้ว่าจะไม่จําเป็น แต่ให้พิจารณาตั้งค่าฟิลด์ max-age ของCache-Controlส่วนหัวการตอบกลับด้วยเพื่อช่วย Crawler ในการระบุเวลาที่จะทำการ Crawl URL ที่เจาะจงอีกครั้ง ตั้งค่าของฟิลด์ max-age เป็นจำนวนวินาทีที่เนื้อหาจะไม่เปลี่ยนแปลง เช่น Cache-Control: max-age=94043

ดูข้อมูลเพิ่มเติมเกี่ยวกับส่วนหัวการตอบกลับ Last-Modified และส่วนหัวคําขอที่ตรงกัน If-Modified-Since

การยืนยัน Crawler และตัวดึงข้อมูลของ Google

Crawler ของ Google จะระบุตัวตนด้วยวิธีต่อไปนี้

  1. ส่วนหัวคำขอ HTTP user-agent
  2. ที่อยู่ IP ต้นทางของคำขอ
  3. ชื่อโฮสต์ DNS แบบย้อนกลับของ IP ต้นทาง

ดูวิธีใช้รายละเอียดเหล่านี้เพื่อยืนยัน Crawler และตัวดึงข้อมูลของ Google