วันอังคารที่ 31 มีนาคม 2026
หากคุณได้ฟังพอดแคสต์ Search Off the Record ตอนที่ 105 คุณอาจจะได้ยินเราพูดเจาะลึกในหัวข้อที่เป็นเรื่องใกล้ตัว (รวมถึงเซิร์ฟเวอร์ของเรา) นั่นก็คือกลไกการทำงานภายในของ Googlebot
เป็นเวลานานแล้วที่ชื่อ "Googlebot" มักทำให้เรานึกภาพหุ่นยนต์ตัวเดียวที่ทำงานอย่างไม่รู้จักเหน็ดเหนื่อยคอยอ่านข้อมูลบนอินเทอร์เน็ตอย่างเป็นระบบ แต่ในความเป็นจริงแล้ว เรื่องนี้ซับซ้อนกว่านั้นเล็กน้อยและก็น่าสนใจกว่ามากด้วย วันนี้เราจะมาเจาะลึกเบื้องหลังโครงสร้างพื้นฐานการ Crawl ของเรา โดยจะเน้นในสิ่งที่เราเองก็ยังมึนงง นั่นก็คือขีดจำกัดของขนาดไบต์
ประการแรก Googlebot ไม่ได้เป็นเพียงโปรแกรมเดียว
มาไขข้อข้องใจเกี่ยวกับชื่อเรียกที่คลาดเคลื่อนมานานกันก่อน ในช่วงต้นทศวรรษ 2000 Google มีผลิตภัณฑ์เพียงอย่างเดียว เราจึงมี Crawler เดียว ชื่อ "Googlebot" เลยติดปากกันมา แต่ในปัจจุบัน Googlebot เป็นเพียงผู้ใช้ระบบที่มีลักษณะคล้ายกับแพลตฟอร์มการ Crawl แบบรวมศูนย์
เมื่อคุณเห็น Googlebot ในบันทึกของเซิร์ฟเวอร์ นั่นหมายความว่าคุณกำลังเห็นเฉพาะแค่ Google Search เท่านั้น ยังมีไคลเอ็นต์อื่นๆ อีกหลายสิบราย เช่น Google Shopping, AdSense และอื่นๆ ที่ส่งคำขอการ Crawl ผ่านโครงสร้างพื้นฐานเดียวกันนี้โดยใช้ชื่อ Crawler ที่แตกต่างกันไป และตัวที่สำคัญกว่าจะถูกบันทึกไว้ที่เว็บไซต์โครงสร้างพื้นฐานของ Crawler ของ Google
ขีดจำกัด 2 MB: จะเกิดอะไรขึ้นกับไบต์ของคุณ
นี่คือจุดที่อาจทำให้เกิดความสับสนเล็กน้อย ไคลเอ็นต์ทุกรายที่ใช้งานโครงสร้างพื้นฐานของ Crawler จำเป็นต้องกำหนดค่าบางอย่างสำหรับการดึงข้อมูลของตน การตั้งค่าเหล่านี้รวมถึงสตริง User Agent, โทเค็น User Agent ที่จะใช้ตรวจสอบในไฟล์ robots.txt และจำนวนไบต์ที่จะดึงข้อมูลจากแต่ละ URL
ปัจจุบัน Googlebot จะดึงข้อมูลจากแต่ละ URL ได้สูงสุดไม่เกิน 2 MB (ยกเว้นไฟล์ PDF) ซึ่งหมายความว่าระบบจะทำการ Crawl เฉพาะข้อมูล 2 MB แรกของทรัพยากรนั้น โดยรวมส่วนหัวของ HTTP เข้าไปด้วย สำหรับไฟล์ PDF จะมีขีดจำกัดอยู่ที่ 64 MB
ในส่วน Crawler ของรูปภาพและวิดีโอมักมีช่วงค่าเกณฑ์ที่หลากหลาย และโดยส่วนใหญ่จะขึ้นอยู่กับผลิตภัณฑ์ที่ดึงข้อมูลไปใช้งาน ตัวอย่างเช่น การดึงข้อมูลไอคอน Fav อาจมีขีดจำกัดที่ต่ำมาก ซึ่งต่างจากการค้นหารูปภาพ
สำหรับ Crawler อื่นๆ ที่ไม่ได้ระบุขีดจำกัดไว้ ค่าเริ่มต้นจะอยู่ที่ 15 MB โดยไม่ขึ้นอยู่กับประเภทของเนื้อหา
แล้วสิ่งนี้มีผลอย่างไรต่อไบต์ที่เซิร์ฟเวอร์ของคุณส่งผ่านเครือข่าย
- การดึงข้อมูลบางส่วน: หากไฟล์ HTML มีขนาดใหญ่กว่า 2 MB Googlebot จะไม่ปฏิเสธหน้าเว็บนั้น แต่จะหยุดการดึงข้อมูลทันทีเมื่อถึงขีดจำกัด 2 MB โปรดทราบว่าขีดจำกัดนี้นับรวมถึงส่วนหัวของคำขอ HTTP ด้วย
- การประมวลผลข้อมูลเมื่อถึงขีดจำกัด: ส่วนที่ดาวน์โหลดมา (ไบต์ 2 MB แรก) จะถูกส่งต่อไปยังระบบจัดทำดัชนีและ Web Rendering Service (WRS) เสมือนว่าเป็นไฟล์ที่สมบูรณ์
- ไบต์ที่มองไม่เห็น: ไบต์ใดๆ ที่เกินจากเกณฑ์ 2 MB นั้นจะไม่ถูกนำไปใช้ ระบบจะไม่ดึงข้อมูล ไม่แสดงผล และไม่จัดทำดัชนี
- การดึงทรัพยากร: ทรัพยากรทุกอย่างที่มีการอ้างอิงถึงใน HTML (ยกเว้นสื่อ แบบอักษร และไฟล์พิเศษบางประเภท) จะถูกดึงข้อมูลโดย WRS ร่วมกับ Googlebot เช่นเดียวกับไฟล์ HTML หลัก ทรัพยากรเหล่านี้มีตัวนับจำนวนไบต์แยกสำหรับแต่ละ URL และจะไม่นับรวมกับขนาดของหน้าเว็บหลัก
สำหรับเว็บส่วนใหญ่ เพย์โหลด HTML ขนาด 2 MB ถือว่าใหญ่มาก และคุณอาจจะไม่มีทางไปถึงขีดจำกัดนั้นเลย อย่างไรก็ตาม หากหน้าเว็บของคุณมีรูปภาพแบบ base64 ที่กินพื้นที่มาก มีบล็อก CSS/JavaScript ขนาดใหญ่อยู่ในหน้าเว็บ หรือเริ่มต้นด้วยเมนูที่มีขนาดหลายเมกะไบต์ คุณอาจทำให้เนื้อหาข้อความจริงหรือ Structured Data ที่สำคัญถูกดันเกินขีดจำกัด 2 MB ไปโดยไม่ได้ตั้งใจ หากไบต์ส่วนที่สำคัญเหล่านั้นไม่ถูกดึงมา สำหรับ Googlebot แล้ว ข้อมูลเหล่านั้นก็ไม่มีอยู่จริง
การแสดงผลไบต์
เมื่อ Crawler ดึงไบต์มาได้สำเร็จ (ภายในขีดจำกัด) ก็จะส่งต่อให้กับ WRS โดย WRS จะประมวลผล JavaScript และเรียกใช้โค้ดฝั่งไคลเอ็นต์ในลักษณะเดียวกับเบราว์เซอร์ที่ทันสมัยเพื่อทำความเข้าใจสถานะสุดท้ายของหน้าเว็บทั้งในส่วนของภาพและข้อความ การแสดงผลจะดึงและเรียกใช้ไฟล์ JavaScript และ CSS รวมถึงประมวลผลคำขอ XHR เพื่อให้เข้าใจเนื้อหาข้อความและโครงสร้างของหน้าเว็บได้ดียิ่งขึ้น (โดยจะไม่มีการขอข้อมูลรูปภาพหรือวิดีโอ) สำหรับทรัพยากรแต่ละรายการที่ขอ ขีดจำกัด 2 MB ก็มีผลเช่นกัน
อย่างไรก็ตาม โปรดทราบว่า WRS จะเรียกใช้ได้เฉพาะโค้ดที่ Crawler ดึงมาได้จริงเท่านั้น นอกจากนี้ WRS ทำงานแบบไม่เก็บสถานะ ซึ่งจะล้างข้อมูลในพื้นที่เก็บข้อมูลในเครื่องและข้อมูลเซสชันระหว่างคำขอแต่ละครั้ง สิ่งนี้อาจส่งผลกระทบโดยเฉพาะต่อวิธีที่ระบบของเราตีความองค์ประกอบแบบไดนามิกหรือต้องพึ่งพา JavaScript
แนวทางปฏิบัติแนะนำสำหรับไบต์ของคุณ
โปรดคำนึงถึงแนวทางปฏิบัติแนะนำสำหรับระดับไบต์ต่อไปนี้เพื่อให้มั่นใจว่า Googlebot จะสามารถดึงข้อมูลและทำความเข้าใจเนื้อหาของคุณได้อย่างมีประสิทธิภาพ
- ทำให้ HTML มีขนาดกะทัดรัด: ย้าย CSS และ JavaScript ที่มีขนาดใหญ่ไปไว้ในไฟล์ภายนอก แม้ว่าเอกสาร HTML เริ่มต้นจะมีขีดจำกัดที่ 2 MB แต่ระบบจะดึงข้อมูลสคริปต์และสไตล์ชีตภายนอกแยกต่างหาก (ขึ้นอยู่กับขีดจำกัดเฉพาะ)
-
ลำดับมีความสำคัญ: จัดวางองค์ประกอบที่สำคัญที่สุด
เช่น เมตาแท็ก, องค์ประกอบ
<title>, องค์ประกอบ<link>, Canonical และ Structured Data ที่จำเป็นไว้ที่ส่วนบนของเอกสาร HTML สิ่งนี้จะทำให้มั่นใจว่าองค์ประกอบเหล่านี้จะไม่หลุดไปอยู่ต่ำกว่าขีดจำกัดที่กำหนดไว้ - ตรวจสอบบันทึกของเซิร์ฟเวอร์: คอยติดตามเวลาในการตอบสนองของเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ทำงานหนักจนส่งไบต์ไม่ทัน Crawler จะลดระดับการทำงานลงโดยอัตโนมัติเพื่อไม่ให้โครงสร้างพื้นฐานทำงานหนักเกินไป ซึ่งจะทำให้ความถี่ในการ Crawl ลดลง
โปรดทราบว่าขีดจำกัดนี้ไม่ได้กำหนดไว้อย่างตายตัวและอาจเปลี่ยนแปลงได้เมื่อเวลาผ่านไปตามการพัฒนาของเว็บและขนาดของหน้า HTML ที่เพิ่มขึ้น (หรืออาจจะลดลง หวังว่าจะลดลงนะ)
การ Crawl ไม่ใช่เรื่องมหัศจรรย์ แต่เป็นการแลกเปลี่ยนไบต์ขนาดใหญ่ที่มีการจัดการอย่างเป็นระบบ การทำความเข้าใจว่าโครงสร้างพื้นฐานการดึงข้อมูลส่วนกลางทำงานและจำกัดปริมาณไบต์อย่างไรจะช่วยให้คุณมั่นใจได้ว่าเนื้อหาที่สำคัญที่สุดของเว็บไซต์จะไม่หลุดจากเกณฑ์ที่กำหนด
ขอให้สนุกกับการเพิ่มประสิทธิภาพของเว็บไซต์นะ!
หากต้องการทราบรายละเอียดเบื้องหลังเพิ่มเติม ไปฟัง พอสแคสต์ Search Off the Record ตอนที่ 105 บน YouTube หรือแพลตฟอร์มพอดแคสต์ที่คุณรับฟังเป็นประจำได้เลย!