การจับคู่กลุ่ม User-agent และกลไกการทำงานของ robots.txt
ไฟล์ robots.txt ทำหน้าที่กำหนดสิทธิ์ให้โปรแกรมรวบรวมข้อมูลหรือบอทค้นหา (Crawler) เข้าถึงเนื้อหาในแต่ละส่วนของเว็บไซต์ โครงสร้างของไฟล์จะแบ่งกฎออกเป็นกลุ่มตามคำสั่ง User-agent ซึ่งบอทแต่ละตัวจะมีหลักการเลือกกลุ่มกฎที่ตรงกับตัวเองตามมาตรฐาน RFC 9309
เมื่อบอทเข้ามาอ่านไฟล์ จะเริ่มค้นหากลุ่มที่มีชื่อระบุเจาะจงถึงตัวมันเองก่อนเป็นอันดับแรก หากไม่มีชื่อเฉพาะ ระบบจะมองหากลุ่มของชื่อหลัก เช่น Googlebot-Image จะมองหากลุ่ม Googlebot-Image ก่อน หากไม่พบจึงจะใช้กฎในกลุ่ม Googlebot และหากไม่พบกลุ่มที่ตรงกันเลย บอทจะนำกฎในกลุ่มสากล User-agent: * มาปรับใช้แทน
จุดสำคัญที่ผู้ดูแลเว็บไซต์มักเข้าใจผิดคือ กฎจากกลุ่มเฉพาะจะไม่นำมารวมกับกลุ่มสากล หากมีการระบุกลุ่มเฉพาะสำหรับบอทตัวใดตัวหนึ่ง บอทตัวนั้นจะอ่านและปฏิบัติตามเฉพาะกฎที่อยู่ในกลุ่มของตัวเองเท่านั้น และจะละเลยคำสั่งทั้งหมดในกลุ่ม * โดยสิ้นเชิง หากในกลุ่มเฉพาะไม่ได้กำหนดคำสั่ง Disallow ไว้ บอทตัวนั้นก็จะมีสิทธิ์เข้าถึงทุกหน้าในเว็บไซต์ได้ทั้งหมด แม้ว่ากลุ่ม * จะมีคำสั่งปิดกั้นไว้ก็ตาม
ในกรณีที่มีการระบุกลุ่ม User-agent เดียวกันแยกไว้หลายจุดในไฟล์เดียวกัน เครื่องมือทดสอบ robots.txt จะทำการรวมกฎของกลุ่มที่ชื่อเหมือนกันเข้าด้วยกันโดยอัตโนมัติตามมาตรฐานกลาง ช่วยให้คุณตรวจสอบได้ว่าบอทแต่ละตัวจะได้รับผลลัพธ์การอนุญาตที่ถูกต้องหรือไม่ก่อนนำไฟล์จริงไปติดตั้งบนเซิร์ฟเวอร์
หลักการ Longest Match และลำดับความสำคัญของกฎ
เมื่อมีหลายกฎในกลุ่มเดียวกันที่ตรงกับ URL เป้าหมาย มาตรฐาน RFC 9309 กำหนดให้ใช้กฎที่มีความยาวของเส้นทางจับคู่มากที่สุด หรือหลักการ Longest Match ความยาวของกฎจะวัดจากจำนวนตัวอักษรของสตริงเส้นทางที่กำหนดไว้ในคำสั่ง Allow หรือ Disallow
| คำสั่งใน robots.txt |
ความยาวของกฎ |
ผลลัพธ์สำหรับ URL: /blog/tech/post-1 |
Disallow: / |
1 ตัวอักษร |
แพ้กฎที่ยาวกว่า |
Disallow: /blog/ |
6 ตัวอักษร |
แพ้กฎที่ยาวกว่า |
Allow: /blog/tech/ |
11 ตัวอักษร |
ชนะ (อนุญาตให้เข้าถึง) |
หากกฎ Allow และ Disallow มีความยาวเท่ากันและตรงกับ URL ทั้งคู่ ระบบจะตัดสินให้ Allow เป็นฝ่ายชนะเสมอ นอกจากนี้ยังมีเงื่อนไขเฉพาะที่ควรรู้ดังนี้
- คำสั่ง
Disallow: ที่ไม่มีการระบุเส้นทางต่อท้าย หมายถึงการอนุญาตให้เข้าถึงได้ทั้งหมด
- หากไม่มีกฎใดตรงกับ URL เป้าหมายเลย ระบบจะอนุญาตให้บอทเข้าถึงได้ตามค่าเริ่มต้น
- เครื่องหมาย
* ใช้แทนข้อความใดๆ ในเส้นทาง เช่น Disallow: /*.pdf จะปิดกั้นไฟล์ PDF ทั้งหมดในเว็บไซต์
- เครื่องหมาย
$ ใช้ระบุจุดสิ้นสุดของเส้นทาง เช่น Disallow: /*.pdf$ จะจับคู่เฉพาะ URL ที่ลงท้ายด้วยนามสกุลไฟล์ PDF เท่านั้น และจะไม่กระทบกับ /document.pdf?version=2
เครื่องมือทดสอบ robots.txt จะประมวลผลกฎทั้งหมดตามลำดับความยาว พร้อมระบุเลขบรรทัดที่เป็นตัวตัดสินชี้ขาด ทำให้คุณทราบได้ทันทีว่าทำไม URL จึงได้รับผลลัพธ์เป็นอนุญาตหรือปิดกั้น
การทดสอบสิทธิ์เข้าถึงของ AI Crawler และ Content-Signal
การเติบโตของโมเดลปัญญาประดิษฐ์ทำให้มีบอทประเภท AI เข้ามารวบรวมข้อมูลเว็บไซต์เพื่อนำไปฝึกฝนและประมวลผลคำตอบ บอทเหล่านี้มีชื่อเรียกเฉพาะ เช่น GPTBot, ClaudeBot, Google-Extended และ PerplexityBot ซึ่งคุณสามารถกำหนดสิทธิ์แยกต่างหากจากบอทของเครื่องมือค้นหาทั่วไปได้
ในการบริหารจัดการเนื้อหาสำหรับ AI คุณสามารถใช้ เครื่องมือสร้าง robots.txt สำหรับ AI เพื่อกำหนดค่าสิทธิ์การเข้าถึงอย่างเป็นระบบ จากนั้นนำข้อความที่ได้มาทดสอบความถูกต้องในเครื่องมือนี้ โดยใส่ชื่อบอท AI และรายชื่อ URL ที่ต้องการทดสอบ เพื่อตรวจสอบว่ากฎที่เขียนไว้สามารถปิดกั้นหรือเปิดทางให้โมเดล AI แต่ละค่ายได้ตรงตามความประสงค์หรือไม่
นอกจากคำสั่งมาตรฐาน ยังมีการใช้คำสั่ง Content-Signal ซึ่งเป็นข้อกำหนดเพื่อระบุเจตนาการนำเนื้อหาไปใช้งาน เช่น search, ai-input หรือ ai-train คำสั่งนี้เป็นเพียงการประกาศนโยบายเชิงสิทธิ์ เครื่องมือทดสอบ robots.txt จะรายงานค่าที่ตรวจพบในแต่ละกลุ่มให้คุณทราบเพื่อความครบถ้วน แต่จะไม่นำมาเป็นเงื่อนไขทางเทคนิคในการสั่งปิดกั้นการเข้าถึงเส้นทาง
สำหรับการจัดเตรียมโครงสร้างเอกสารเพื่อรองรับการใช้งานร่วมกับระบบปัญญาประดิษฐ์ คุณสามารถใช้งานร่วมกับ เครื่องมือสร้าง llms.txt เพื่อสร้างไฟล์สรุปข้อมูลเว็บไซต์สำหรับ LLM ควบคู่ไปกับการควบคุมสิทธิ์การเก็บข้อมูลผ่าน robots.txt