robots.txt ไม่ถูกต้อง

ไฟล์ robots.txt จะบอกเครื่องมือค้นหาว่าสามารถรวบรวมข้อมูลหน้าใดของเว็บไซต์ได้ การกำหนดค่า robots.txt ที่ไม่ถูกต้องอาจทำให้เกิดปัญหา 2 ประเภทดังนี้

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

วิธีที่การตรวจสอบ Lighthouse robots.txt ล้มเหลว

การรายงานปัญหา Lighthouse ไม่ถูกต้อง robots.txt ไฟล์:

การตรวจสอบ Lighthouse แสดง robots.txt ที่ไม่ถูกต้อง

ขยายการตรวจสอบrobots.txtไม่ถูกต้องในรายงานเพื่อดูปัญหาที่เกิดขึ้นกับ robots.txt

ข้อผิดพลาดที่พบบ่อยมีดังนี้

  • No user-agent specified
  • Pattern should either be empty, start with "/" or "*"
  • Unknown directive
  • Invalid sitemap URL
  • $ should only be used at the end of the pattern

Lighthouse ไม่ได้ตรวจสอบว่าไฟล์ robots.txt อยู่ในตำแหน่งที่ถูกต้อง ไฟล์จะต้องอยู่ในรากของโดเมนหรือโดเมนย่อยเพื่อให้ทำงานได้อย่างถูกต้อง

วิธีแก้ปัญหาเกี่ยวกับ robots.txt

ตรวจสอบว่า robots.txt ไม่แสดงผลรหัสสถานะ HTTP 5XX

หากเซิร์ฟเวอร์แสดงข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ (รหัสสถานะ HTTP ในหมวด 500) สำหรับ robots.txt เครื่องมือค้นหาจะไม่ทราบว่าควรรวบรวมข้อมูลหน้าใด เว็บไซต์ดังกล่าวอาจหยุดรวบรวมข้อมูลทั้งเว็บไซต์ ซึ่งจะทําให้จัดทําดัชนีเนื้อหาใหม่ไม่ได้

หากต้องการตรวจสอบรหัสสถานะ HTTP ให้เปิด robots.txt ใน Chrome และตรวจสอบคำขอในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome

ให้ robots.txt เล็กกว่า 500 KiB

เครื่องมือค้นหาอาจหยุดประมวลผล robots.txt กลางคันหากไฟล์มีขนาดใหญ่กว่า 500 KiB เพราะอาจทำให้เครื่องมือค้นหาสับสนและนำไปสู่การรวบรวมข้อมูลเว็บไซต์ที่ไม่ถูกต้อง

หากต้องการให้ robots.txt มีขนาดเล็ก ให้เน้นไปที่หน้าที่ยกเว้นทีละรายการน้อยลง และให้ความสำคัญกับรูปแบบที่กว้างขึ้น เช่น หากคุณจำเป็นต้องบล็อกการรวบรวมข้อมูลไฟล์ PDF อย่าไม่อนุญาตแต่ละไฟล์ แต่ให้ไม่อนุญาต URL ทั้งหมดที่มี .pdf โดยใช้ disallow: /*.pdf แทน

แก้ไขข้อผิดพลาดเกี่ยวกับรูปแบบ

  • อนุญาตเฉพาะบรรทัด ความคิดเห็น และคำสั่งที่ว่างเปล่าที่ตรงกับรูปแบบ "name: value" ใน robots.txt
  • ตรวจสอบว่าค่า allow และ disallow ว่างเปล่าหรือเริ่มต้นด้วย / หรือ *
  • อย่าใช้ $ อยู่ตรงกลาง (เช่น allow: /file$html)

ตรวจสอบว่ามีค่าสำหรับ user-agent

ชื่อ User Agent เพื่อบอกโปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหาว่าต้องทำตามคำสั่งใด คุณต้องระบุค่าสำหรับ user-agent แต่ละอินสแตนซ์ เพื่อให้เครื่องมือค้นหาทราบว่าจะปฏิบัติตามชุดคำสั่งที่เกี่ยวข้องหรือไม่

หากต้องการระบุโปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหาโดยเฉพาะ ให้ใช้ชื่อ User Agent จากรายการที่เผยแพร่ของเครื่องมือค้นหาดังกล่าว (ตัวอย่างเช่น รายชื่อ User Agent ของ Google ที่ใช้สำหรับการรวบรวมข้อมูล)

ใช้ * เพื่อจับคู่โปรแกรมรวบรวมข้อมูลที่ไม่ตรงกันทั้งหมด

ไม่ควรทำ
user-agent:
disallow: /downloads/

ไม่มีการกำหนด User Agent

ควรทำ
user-agent: *
disallow: /downloads/

user-agent: magicsearchbot
disallow: /uploads/

มีการกำหนด User Agent ทั่วไปและ User Agent ของ magicsearchbot

ตรวจสอบว่าไม่มีคำสั่ง allow หรือ disallow ก่อนวันที่ user-agent

ชื่อ User-agent กำหนดส่วนต่างๆ ของไฟล์ robots.txt โปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหาจะใช้ส่วนเหล่านั้นเพื่อกำหนดว่าควรทำตามคำสั่งใด การวางคำสั่งก่อนชื่อ User-agent แรกหมายความว่าจะไม่มีโปรแกรมรวบรวมข้อมูลใดติดตามคำนั้น

ไม่ควรทำ
# start of file
disallow: /downloads/

user-agent: magicsearchbot
allow: /

โปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหาจะอ่านคำสั่ง disallow: /downloads ไม่ได้

ควรทำ
# start of file
user-agent: *
disallow: /downloads/

ไม่อนุญาตให้เครื่องมือค้นหาทั้งหมดทำการ Crawl โฟลเดอร์ /downloads

โปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหาจะทำตามคำสั่งในส่วนที่มีชื่อ User-agent เจาะจงที่สุดเท่านั้น เช่น หากคุณมีคำสั่งสำหรับ user-agent: * และ user-agent: Googlebot-Image Googlebot รูปภาพจะทำตามคำสั่งในส่วน user-agent: Googlebot-Image เท่านั้น

ระบุ URL ที่สมบูรณ์สำหรับ sitemap

ไฟล์ Sitemap เป็นวิธีที่ดีในการแจ้งให้เครื่องมือค้นหาทราบเกี่ยวกับหน้าต่างๆ ในเว็บไซต์ของคุณ โดยทั่วไปแล้ว ไฟล์ Sitemap จะมีรายการ URL ในเว็บไซต์ของคุณและข้อมูลเกี่ยวกับเวลาที่มีการเปลี่ยนแปลงครั้งล่าสุด

หากเลือกส่งไฟล์ Sitemap ใน robots.txt โปรดตรวจสอบว่าคุณใช้ URL ที่สมบูรณ์

ไม่ควรทำ
sitemap: /sitemap-file.xml
ควรทำ
sitemap: https://example.com/sitemap-file.xml

แหล่งข้อมูล