วิธีเขียนและส่งไฟล์ robots.txt

คุณใช้ไฟล์ robots.txt ควบคุมได้ว่าจะให้ Crawler เข้าถึงไฟล์ใดบ้างในเว็บไซต์ของคุณ

ไฟล์ robots.txt จะอยู่ที่รากของเว็บไซต์ ดังนั้นสำหรับเว็บไซต์ www.example.com ไฟล์ robots.txt จะอยู่ที่ www.example.com/robots.txt ไฟล์ robots.txt เป็นไฟล์ข้อความธรรมดาที่เป็นไปตามมาตรฐานการยกเว้นโรบ็อต และมีกฎอย่างน้อย 1 ข้อ กฎแต่ละข้อจะบล็อกหรืออนุญาต Crawler ทั้งหมดหรือบางตัวในการเข้าถึงเส้นทางของไฟล์ที่ระบุในโดเมนหรือโดเมนย่อยที่โฮสต์ไฟล์ robots.txt นั้น ระบบจะถือว่าไฟล์ทั้งหมดได้รับอนุญาตให้เข้าทำการ Crawl ได้ เว้นแต่คุณจะระบุเป็นอย่างอื่นในไฟล์ robots.txt

ต่อไปนี้เป็นไฟล์ robots.txt ธรรมดาที่มีกฎ 2 ข้อ

User-agent: Googlebot
Disallow: /nogooglebot/

User-agent: *
Allow: /

Sitemap: https://www.example.com/sitemap.xml

ความหมายของไฟล์ robots.txt

  1. User Agent ชื่อ Googlebot ไม่ได้รับอนุญาตให้ทำการ Crawl URL ใดๆ ที่ขึ้นต้นด้วย https://example.com/nogooglebot/
  2. ส่วน User Agent อื่นๆ ทั้งหมดได้รับอนุญาตให้รวบรวมข้อมูลทั้งเว็บไซต์ คุณไม่ต้องระบุการอนุญาตนี้ก็ได้เพราะผลลัพธ์ที่ได้จะเหมือนกัน เนื่องจากลักษณะการทำงานเริ่มต้นคือ User Agent ได้รับอนุญาตให้ทำการ Crawl ทั้งเว็บไซต์
  3. ไฟล์ Sitemap ของเว็บไซต์นี้อยู่ที่ https://www.example.com/sitemap.xml

ดูตัวอย่างเพิ่มเติมในส่วนไวยากรณ์

หลักเกณฑ์พื้นฐานสำหรับการสร้างไฟล์ robots.txt

ในการสร้างไฟล์ robots.txt และทำให้ไฟล์เข้าถึงได้แบบสาธารณะและมีประโยชน์นั้นมี 4 ขั้นตอนดังนี้

  1. สร้างไฟล์ชื่อ robots.txt
  2. เพิ่มกฎลงในไฟล์ robots.txt
  3. อัปโหลดไฟล์ robots.txt ไปยังรากของเว็บไซต์
  4. ทดสอบไฟล์ robots.txt

สร้างไฟล์ robots.txt

คุณใช้เครื่องมือแก้ไขข้อความได้เกือบทุกรายการเพื่อสร้างไฟล์ robots.txt เช่น Notepad, TextEdit, vi และ emacs เครื่องมือเหล่านี้สามารถใช้สร้างไฟล์ robots.txt ได้อย่างถูกต้อง แต่อย่าใช้โปรแกรมประมวลผลคำ เนื่องจากโปรแกรมเช่นนี้มักบันทึกไฟล์ในรูปแบบที่เป็นกรรมสิทธิ์และอาจเพิ่มอักขระที่ไม่คาดคิด เช่น เครื่องหมายคำพูดแบบโค้ง ซึ่งอาจทำให้เกิดปัญหาสำหรับ Crawler อย่าลืมว่าต้องบันทึกไฟล์ด้วยการเข้ารหัส UTF-8 หากมีข้อความแจ้งจากกล่องโต้ตอบขณะบันทึกไฟล์

กฎเกี่ยวกับรูปแบบและตำแหน่ง

  • ไฟล์ต้องมีชื่อว่า robots.txt
  • เว็บไซต์มี robots.txt ได้เพียงไฟล์เดียวเท่านั้น
  • ไฟล์ robots.txt ต้องอยู่ที่รากของโฮสต์ของเว็บไซต์ที่ใช้งานไฟล์นั้น ตัวอย่างเช่น หากต้องการควบคุมการ Crawl ใน URL ทั้งหมดใต้ https://www.example.com/ ไฟล์ robots.txt ต้องอยู่ที่ https://www.example.com/robots.txt ไม่ใช่วางไว้ในไดเรกทอรีย่อย (เช่นที่ https://example.com/pages/robots.txt) หากคุณไม่แน่ใจว่าจะเข้าถึงรากเว็บไซต์ได้อย่างไร หรือต้องการสิทธิ์เพื่อดำเนินการดังกล่าว โปรดติดต่อผู้ให้บริการเว็บโฮสติ้ง หากเข้าถึงรากเว็บไซต์ไม่ได้ ให้บล็อกด้วยวิธีการอื่น เช่น ใช้แท็ก meta
  • คุณจะโพสต์ไฟล์ robots.txt ในโดเมนย่อย (เช่น https://site.example.com/robots.txt) หรือในพอร์ตที่ไม่ใช่แบบมาตรฐาน (เช่น https://example.com:8181/robots.txt) ก็ได้
  • ไฟล์ robots.txt จะใช้กับเส้นทางภายในโปรโตคอล โฮสต์ และพอร์ตที่โพสต์ไฟล์ไว้เท่านั้น กล่าวคือ กฎใน https://example.com/robots.txt จะมีผลกับไฟล์ใน https://example.com/ เท่านั้น จะไม่มีผลกับโดเมนย่อย เช่น https://m.example.com/ หรือโปรโตคอลทางเลือก เช่น http://example.com/
  • ไฟล์ robots.txt ต้องเป็นไฟล์ข้อความที่ได้รับการเข้ารหัส UTF-8 (ซึ่งรวมถึง ASCII) Google อาจข้ามอักขระที่ไม่ได้อยู่ในช่วง UTF-8 ซึ่งอาจทำให้ถอดความหมายกฎของ robots.txt ได้อย่างไม่ถูกต้อง

วิธีเขียนกฎของ robots.txt

กฎใช้เป็นคำสั่งสําหรับโปรแกรมรวบรวมข้อมูลว่าส่วนใดของเว็บไซต์ที่รวบรวมข้อมูลได้ ทำตามหลักเกณฑ์ต่อไปนี้เมื่อเพิ่มกฎลงในไฟล์ robots.txt

  • ไฟล์ robots.txt จะประกอบด้วยกลุ่ม (ชุดของกฎ) 1 กลุ่มขึ้นไป
  • แต่ละกลุ่มประกอบด้วยกฎหลายรายการ (หรือที่เรียกว่าคําสั่ง) โดยมี 1 กฎต่อบรรทัด แต่ละกลุ่มจะเริ่มต้นด้วยบรรทัด User-agent ที่ระบุเป้าหมายของกลุ่ม
  • กลุ่มจะให้ข้อมูลต่อไปนี้
    • กลุ่มนั้นใช้กับใคร (User Agent)
    • ไดเรกทอรีหรือไฟล์ใดที่ Agent เข้าถึงได้
    • ไดเรกทอรีหรือไฟล์ใดที่ Agent เข้าถึงไม่ได้
  • โปรแกรมรวบรวมข้อมูลจะประมวลผลกลุ่มจากบนลงล่าง User Agent สามารถจับคู่ชุดของกฎได้เพียงชุดเดียวเท่านั้น ซึ่งเป็นกลุ่มที่เจาะจงที่สุดกลุ่มแรกที่ตรงกับ User Agent ที่ระบุ หาก User Agent เดียวกันมีหลายกลุ่ม ระบบจะรวมกลุ่มเหล่านั้นไว้ในกลุ่มเดียวก่อนประมวลผล
  • สมมติฐานเริ่มต้นคือ User Agent สามารถทำการ Crawl หน้าเว็บหรือไดเรกทอรีใดก็ตามที่ไม่ได้ถูกกฎ disallow บล็อกไว้
  • กฎจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตัวอย่างเช่น disallow: /file.asp จะมีผลกับ https://www.example.com/file.asp แต่ไม่มีผลกับ https://www.example.com/FILE.asp
  • อักขระ # แสดงถึงจุดเริ่มต้นของความคิดเห็น ระบบจะข้ามส่วนที่เป็นความคิดเห็นในระหว่างการประมวลผล

Crawler ของ Google รองรับกฎต่อไปนี้ในไฟล์ robots.txt

  • user-agent: [ต้องมีอย่างน้อย 1 รายการต่อกลุ่ม] กฎนี้จะระบุชื่อของไคลเอ็นต์อัตโนมัติหรือที่เรียกว่า "Crawler ของเครื่องมือค้นหา" ที่กฎมีผลใช้งาน ซึ่งจะเป็นบรรทัดแรกสำหรับกฎใดๆ ก็ตาม ชื่อ User Agent ของ Google แสดงอยู่ในรายชื่อ User Agent ของ Google การใช้เครื่องหมายดอกจัน (*) จะจับคู่กับ Crawler ทั้งหมดยกเว้น Crawler AdsBot ต่างๆ ซึ่งต้องตั้งชื่อไว้อย่างชัดแจ้ง เช่น
    # Example 1: Block only Googlebot
    User-agent: Googlebot
    Disallow: /
    
    # Example 2: Block Googlebot and Adsbot
    User-agent: Googlebot
    User-agent: AdsBot-Google
    Disallow: /
    
    # Example 3: Block all crawlers except AdsBot (AdsBot crawlers must be named explicitly)
    User-agent: *
    Disallow: /
  • disallow: [รายการ disallow หรือ allow อย่างน้อย 1 รายการต่อกฎ] ไดเรกทอรีหรือหน้าที่สัมพันธ์กับโดเมนราก ซึ่งคุณไม่ต้องการให้ User Agent ทำการ Crawl หากกฎอ้างถึงหน้าเว็บ ต้องเป็นชื่อหน้าแบบเต็มตามที่แสดงในเบราว์เซอร์ โดยต้องขึ้นต้นด้วยอักขระ / และหากอ้างถึงไดเรกทอรี ต้องลงท้ายด้วยเครื่องหมาย /
  • allow: [รายการ disallow หรือ allow อย่างน้อย 1 รายการต่อกฎ] ไดเรกทอรีหรือหน้าที่สัมพันธ์กับโดเมนราก ซึ่ง User Agent ที่เพิ่งกล่าวถึงอาจทำการ Crawl ใช้เพื่อลบล้างกฎ disallow เพื่ออนุญาตการ Crawl ไดเรกทอรีย่อยหรือหน้าในไดเรกทอรีที่ไม่อนุญาต สําหรับหน้าเดี่ยว ให้ระบุชื่อหน้าแบบเต็มตามที่แสดงในเบราว์เซอร์ โดยต้องขึ้นต้นด้วยอักขระ / และหากอ้างถึงไดเรกทอรี ต้องลงท้ายด้วยเครื่องหมาย /
  • sitemap: [ไม่บังคับ จะไม่มีเลยหรือมีกี่รายการต่อไฟล์ก็ได้] ตำแหน่งของ Sitemap ของเว็บไซต์นี้ URL ของ Sitemap ต้องเป็น URL ที่สมบูรณ์ในตัวเองเนื่องจาก Google จะไม่ถือเอาหรือตรวจสอบทางเลือก http/https/www.non-www Sitemap เป็นวิธีที่ดีในการระบุเนื้อหาที่ Google ควรทำการ Crawl ซึ่งตรงข้ามกับเนื้อหาที่สามารถหรือไม่สามารถทำการ Crawl ดูข้อมูลเพิ่มเติมเกี่ยวกับแผนผังเว็บไซต์ เช่น
    Sitemap: https://example.com/sitemap.xml
    Sitemap: https://www.example.com/sitemap.xml

กฎทั้งหมด ยกเว้น sitemap รองรับไวลด์การ์ด * สำหรับคำนำหน้าเส้นทาง คำต่อท้าย หรือทั้งสตริง

ระบบจะละเว้นบรรทัดที่ไม่ตรงกับกฎเหล่านี้

อ่านเกี่ยวกับการตีความข้อกำหนดของ robots.txt ของ Google เพื่อดูคำอธิบายทั้งหมดของแต่ละกฎ

อัปโหลดไฟล์ robots.txt

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

หลังจากที่คุณอัปโหลดไฟล์ robots.txt แล้ว ให้ทดสอบว่าสามารถเข้าถึงได้แบบสาธารณะหรือไม่ และ Google สามารถแยกวิเคราะห์ไฟล์ได้หรือไม่

ทดสอบมาร์กอัป robots.txt

หากต้องการทดสอบว่าไฟล์ robots.txt ที่อัปโหลดใหม่สามารถเข้าถึงได้แบบสาธารณะหรือไม่ ให้เปิดหน้าต่างการเรียกดูแบบส่วนตัว (หรือเทียบเท่า) ในเบราว์เซอร์และไปยังตำแหน่งของไฟล์ robots.txt เช่น https://example.com/robots.txt หากเห็นเนื้อหาของไฟล์ robots.txt คุณก็พร้อมที่จะทดสอบมาร์กอัปแล้ว

การแก้ไขปัญหาเกี่ยวกับมาร์กอัป robots.txt ของ Google มีด้วยกัน 2 ตัวเลือก ดังนี้

  1. รายงาน robots.txt ใน Search Console คุณจะใช้รายงานนี้ได้ต่อเมื่อไฟล์ robots.txt สามารถเข้าถึงได้แล้วในเว็บไซต์
  2. หากคุณเป็นนักพัฒนาซอฟต์แวร์ ให้ดูและสร้างไลบรารี robots.txt แบบโอเพนซอร์สของ Google ซึ่งใช้ใน Google Search เช่นกัน คุณสามารถใช้เครื่องมือนี้เพื่อทดสอบไฟล์ robots.txt ได้ในคอมพิวเตอร์

ส่งไฟล์ robots.txt ไปยัง Google

เมื่อคุณอัปโหลดและทดสอบไฟล์ robots.txt แล้ว Crawler ของ Google จะค้นหาและเริ่มใช้ไฟล์ robots.txt โดยอัตโนมัติ โดยที่คุณไม่ต้องทำอะไรเลย หากคุณอัปเดตไฟล์ robots.txt และต้องการรีเฟรชสำเนาที่แคชไว้ของ Google โดยเร็วที่สุด โปรดดูวิธีส่งไฟล์ robots.txt ที่มีการอัปเดต

กฎที่มีประโยชน์ของ robots.txt

ตัวอย่างกฎที่มีประโยชน์ของ robots.txt ที่ใช้กันทั่วไปมีดังนี้

กฎที่มีประโยชน์
ไม่อนุญาตให้ทำการ Crawl ทั้งเว็บไซต์

โปรดทราบว่าในบางสถานการณ์ URL จากเว็บไซต์อาจยังคงได้รับการจัดทำดัชนีแม้ว่าไม่ได้มีการ Crawl ก็ตาม

User-agent: *
Disallow: /
ไม่อนุญาตให้รวบรวมข้อมูลของไดเรกทอรีและเนื้อหาในไดเรกทอรี

เติมเครื่องหมายทับต่อท้ายชื่อไดเรกทอรีเพื่อไม่อนุญาตให้ทำการ Crawl ทั้งไดเรกทอรี

User-agent: *
Disallow: /calendar/
Disallow: /junk/
Disallow: /books/fiction/contemporary/
อนุญาตการเข้าถึงให้แก่โปรแกรมรวบรวมข้อมูลเพียงโปรแกรมเดียว

มีแค่ googlebot-news เท่านั้นที่จะรวบรวมข้อมูลทั้งเว็บไซต์ได้

User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
อนุญาตการเข้าถึงให้แก่โปรแกรมรวบรวมข้อมูลทั้งหมดยกเว้นโปรแกรมเดียว

Unnecessarybot จะรวบรวมข้อมูลเว็บไซต์ไม่ได้ แต่บ็อตอื่นๆ ทั้งหมดจะรวบรวมได้

User-agent: Unnecessarybot
Disallow: /

User-agent: *
Allow: /

ไม่อนุญาตให้รวบรวมข้อมูลหน้าเว็บเดียว

ตัวอย่างเช่น ไม่อนุญาตหน้า useless_file.html ที่ https://example.com/useless_file.html และ other_useless_file.html ในไดเรกทอรี junk

User-agent: *
Disallow: /useless_file.html
Disallow: /junk/other_useless_file.html

ไม่อนุญาตให้ทำการ Crawl ทั้งเว็บไซต์ ยกเว้นไดเรกทอรีย่อย

Crawler จะเข้าถึงไดเรกทอรีย่อย public ได้เท่านั้น

User-agent: *
Disallow: /
Allow: /public/

บล็อกรูปภาพบางภาพไม่ให้แสดงใน Google รูปภาพ

เช่น ไม่อนุญาตให้รวบรวมข้อมูลรูปภาพ dogs.jpg

User-agent: Googlebot-Image
Disallow: /images/dogs.jpg

บล็อกรูปภาพทั้งหมดในเว็บไซต์ของคุณไม่ให้แสดงใน Google รูปภาพ

Google ไม่สามารถจัดทําดัชนีรูปภาพและวิดีโอได้หากไม่ได้รวบรวมข้อมูล

User-agent: Googlebot-Image
Disallow: /

ไม่อนุญาตให้รวบรวมข้อมูลไฟล์บางประเภท

เช่น ไม่อนุญาตให้รวบรวมข้อมูลไฟล์ .gif ทุกไฟล์

User-agent: Googlebot
Disallow: /*.gif$

ไม่อนุญาตให้รวบรวมข้อมูลทั้งเว็บไซต์ แต่อนุญาต Mediapartners-Google

การใช้กฎนี้จะซ่อนหน้าเว็บของคุณจากผลการค้นหา แต่ Web Crawler Mediapartners-Google ยังสามารถวิเคราะห์หน้าเว็บเพื่อตัดสินใจว่าจะแสดงโฆษณาใดในเว็บไซต์

User-agent: *
Disallow: /

User-agent: Mediapartners-Google
Allow: /
ใช้ไวลด์การ์ด * และ $ เพื่อจับคู่ URL ที่ลงท้ายด้วยสตริงที่เจาะจง

เช่น ไม่อนุญาตให้รวบรวมข้อมูลไฟล์ .xls ทั้งหมด

User-agent: Googlebot
Disallow: /*.xls$