วิธีเขียนและส่งไฟล์ 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
-
User Agent ชื่อ Googlebot ไม่ได้รับอนุญาตให้ทำการ Crawl URL ใดๆ ที่ขึ้นต้นด้วย
https://example.com/nogooglebot/
- ส่วน User Agent อื่นๆ ทั้งหมดได้รับอนุญาตให้รวบรวมข้อมูลทั้งเว็บไซต์ คุณไม่ต้องระบุการอนุญาตนี้ก็ได้เพราะผลลัพธ์ที่ได้จะเหมือนกัน เนื่องจากลักษณะการทำงานเริ่มต้นคือ User Agent ได้รับอนุญาตให้ทำการ Crawl ทั้งเว็บไซต์
-
ไฟล์ Sitemap ของเว็บไซต์นี้อยู่ที่
https://www.example.com/sitemap.xml
ดูตัวอย่างเพิ่มเติมในส่วนไวยากรณ์
หลักเกณฑ์พื้นฐานสำหรับการสร้างไฟล์ robots.txt
ในการสร้างไฟล์ robots.txt และทำให้ไฟล์เข้าถึงได้แบบสาธารณะและมีประโยชน์นั้นมี 4 ขั้นตอนดังนี้
- สร้างไฟล์ชื่อ robots.txt
- เพิ่มกฎลงในไฟล์ robots.txt
- อัปโหลดไฟล์ robots.txt ไปยังรากของเว็บไซต์
- ทดสอบไฟล์ 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 ตัวเลือก ดังนี้
- รายงาน robots.txt ใน Search Console คุณจะใช้รายงานนี้ได้ต่อเมื่อไฟล์ robots.txt สามารถเข้าถึงได้แล้วในเว็บไซต์
- หากคุณเป็นนักพัฒนาซอฟต์แวร์ ให้ดูและสร้างไลบรารี 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/ |
อนุญาตการเข้าถึงให้แก่โปรแกรมรวบรวมข้อมูลเพียงโปรแกรมเดียว |
มีแค่ User-agent: Googlebot-news Allow: / User-agent: * Disallow: / |
อนุญาตการเข้าถึงให้แก่โปรแกรมรวบรวมข้อมูลทั้งหมดยกเว้นโปรแกรมเดียว |
User-agent: Unnecessarybot Disallow: / User-agent: * Allow: / |
ไม่อนุญาตให้รวบรวมข้อมูลหน้าเว็บเดียว |
ตัวอย่างเช่น ไม่อนุญาตหน้า User-agent: * Disallow: /useless_file.html Disallow: /junk/other_useless_file.html |
ไม่อนุญาตให้ทำการ Crawl ทั้งเว็บไซต์ ยกเว้นไดเรกทอรีย่อย |
Crawler จะเข้าถึงไดเรกทอรีย่อย User-agent: * Disallow: / Allow: /public/ |
บล็อกรูปภาพบางภาพไม่ให้แสดงใน Google รูปภาพ |
เช่น ไม่อนุญาตให้รวบรวมข้อมูลรูปภาพ User-agent: Googlebot-Image Disallow: /images/dogs.jpg |
บล็อกรูปภาพทั้งหมดในเว็บไซต์ของคุณไม่ให้แสดงใน Google รูปภาพ |
Google ไม่สามารถจัดทําดัชนีรูปภาพและวิดีโอได้หากไม่ได้รวบรวมข้อมูล User-agent: Googlebot-Image Disallow: / |
ไม่อนุญาตให้รวบรวมข้อมูลไฟล์บางประเภท |
เช่น ไม่อนุญาตให้รวบรวมข้อมูลไฟล์ User-agent: Googlebot Disallow: /*.gif$ |
ไม่อนุญาตให้รวบรวมข้อมูลทั้งเว็บไซต์ แต่อนุญาต |
การใช้กฎนี้จะซ่อนหน้าเว็บของคุณจากผลการค้นหา แต่ Web Crawler User-agent: * Disallow: / User-agent: Mediapartners-Google Allow: / |
ใช้ไวลด์การ์ด * และ $ เพื่อจับคู่ URL ที่ลงท้ายด้วยสตริงที่เจาะจง
|
เช่น ไม่อนุญาตให้รวบรวมข้อมูลไฟล์ User-agent: Googlebot Disallow: /*.xls$ |