วิธีที่ Google ตีความข้อกําหนดของ robots.txt

โปรแกรมรวบรวมข้อมูลอัตโนมัติของ Google รองรับโปรโตคอลการยกเว้นสำหรับโรบ็อต (Robots Exclusion Protocol หรือ REP) ซึ่งหมายความว่าก่อนที่จะรวบรวมข้อมูลเว็บไซต์ใด โปรแกรมรวบรวมข้อมูลของ Google จะดาวน์โหลดและแยกวิเคราะห์ไฟล์ robots.txt ของเว็บไซต์ดังกล่าว เพื่อดึงข้อมูลว่าส่วนใดของเว็บไซต์ที่อาจรวบรวมข้อมูลได้ REP ใช้ไม่ได้กับโปรแกรมรวบรวมข้อมูลของ Google ที่ผู้ใช้ควบคุม (เช่น การสมัครใช้บริการฟีด) หรือโปรแกรมรวบรวมข้อมูลที่ใช้เพื่อเพิ่มความปลอดภัยของผู้ใช้ (เช่น การวิเคราะห์มัลแวร์)

หน้านี้อธิบายการตีความ REP ของ Google สำหรับร่างมาตรฐานต้นฉบับ โปรดดู RFC 9309

ไฟล์ robots.txt คืออะไร

หากไม่ต้องการให้โปรแกรมรวบรวมข้อมูลเข้าถึงส่วนต่างๆ ของเว็บไซต์ คุณสร้างไฟล์ robots.txt ที่มีกฎที่เหมาะสมได้ ไฟล์ robots.txt เป็นไฟล์ข้อความอย่างง่ายที่มีกฎซึ่งระบุว่าส่วนใดของเว็บไซต์ที่โปรแกรมรวบรวมข้อมูลสามารถเข้าถึงได้ เช่น ไฟล์ robots.txt สําหรับ example.com อาจมีลักษณะดังนี้

# This robots.txt file controls crawling of URLs under https://example.com.
# All crawlers are disallowed to crawl files in the "includes" directory, such
# as .css, .js, but Google needs them for rendering, so Googlebot is allowed
# to crawl them.
User-agent: *
Disallow: /includes/

User-agent: Googlebot
Allow: /includes/

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

หากคุณเพิ่งใช้ robots.txt ให้เริ่มต้นด้วยการอ่านข้อมูลเบื้องต้นเกี่ยวกับ robots.txt ดูเคล็ดลับในการสร้างไฟล์ robots.txt และรายการคําถามที่พบบ่อยและคําตอบที่ครอบคลุมในหัวข้อต่างๆ

ตำแหน่งไฟล์และช่วงความถูกต้อง

คุณต้องวางไฟล์ robots.txt ในไดเรกทอรีระดับบนสุดของเว็บไซต์ โดยใช้โปรโตคอลที่รองรับ URL ของไฟล์ robots.txt คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (เช่นเดียวกับ URL อื่นๆ) ในกรณีที่ใช้ Google Search โปรโตคอลที่รองรับ ได้แก่ HTTP, HTTPS และ FTP ใน HTTP และ HTTPS โปรแกรมรวบรวมข้อมูลจะดึงไฟล์ robots.txt ที่มีคำขอ GET แบบไม่มีเงื่อนไขของ HTTP และใน FTP โปรแกรมรวบรวมข้อมูลจะใช้คำสั่ง RETR (RETRIEVE) มาตรฐาน โดยใช้การเข้าสู่ระบบแบบไม่ระบุชื่อ

กฎที่ระบุไว้ในไฟล์ robots.txt จะใช้เฉพาะกับโฮสต์ โปรโตคอล และหมายเลขพอร์ตที่โฮสต์ไฟล์ robots.txt เท่านั้น

ตัวอย่าง URL ที่ถูกต้องของ robots.txt

ตารางต่อไปนี้แสดงตัวอย่าง URL ของ robots.txt และเส้นทาง URL ที่ถูกต้อง คอลัมน์ที่ 1 มี URL ของไฟล์ robots.txt และคอลัมน์ที่ 2 มีโดเมนที่ไฟล์ robots.txt จะมีผลและจะไม่มีผล

ตัวอย่าง URL ของ robots.txt
https://example.com/robots.txt

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

ใช้ได้กับ
  • https://example.com/
  • https://example.com/folder/file
ใช้ไม่ได้กับ
  • https://other.example.com/
  • http://example.com/
  • https://example.com:8181/
https://www.example.com/robots.txt

robots.txt ในโดเมนย่อยใช้ได้เฉพาะกับโดเมนย่อยนั้นๆ

ใช้ได้กับ https://www.example.com/

ใช้ไม่ได้กับ

  • https://example.com/
  • https://shop.www.example.com/
  • https://www.shop.example.com/
https://example.com/folder/robots.txt ไม่ใช่ไฟล์ robots.txt ที่ถูกต้อง โปรแกรมรวบรวมข้อมูลไม่ตรวจหาไฟล์ robots.txt ในไดเรกทอรีย่อย
https://www.exämple.com/robots.txt

IDN เทียบเท่ากับเวอร์ชัน Punycode ดู RFC 3492 เพิ่มเติม

ใช้ได้กับ
  • https://www.exämple.com/
  • https://xn--exmple-cua.com/

ใช้ไม่ได้กับ https://www.example.com/

ftp://example.com/robots.txt

ใช้ได้กับ ftp://example.com/

ใช้ไม่ได้กับ https://example.com/

https://212.96.82.21/robots.txt

robots.txt ซึ่งมีที่อยู่ IP เป็นชื่อโฮสต์ใช้ได้เฉพาะสำหรับการรวบรวมข้อมูลที่มีที่อยู่ IP นั้นเป็นชื่อโฮสต์ robots.txt ใช้กับทุกเว็บไซต์ที่โฮสต์ในที่อยู่ IP นั้นโดยอัตโนมัติไม่ได้ (แม้ว่าอาจมีการใช้ไฟล์นั้นร่วมกันก็ตาม ซึ่งในกรณีนี้ไฟล์จะใช้ได้ภายใต้ชื่อโฮสต์ที่ใช้ร่วมกันด้วย)

ใช้ได้กับ https://212.96.82.21/

ใช้ไม่ได้กับ https://example.com/ (แม้ว่าจะโฮสต์ใน 212.96.82.21)

https://example.com:443/robots.txt

หมายเลขพอร์ตมาตรฐาน (80 สำหรับ HTTP, 443 สำหรับ HTTPS, 21 สำหรับ FTP) จะเทียบเท่ากับชื่อโฮสต์เริ่มต้น

ใช้ได้กับ

  • https://example.com:443/
  • https://example.com/

ใช้ไม่ได้กับ https://example.com:444/

https://example.com:8181/robots.txt

ไฟล์ robots.txt ในหมายเลขพอร์ตที่ไม่ใช่มาตรฐานจะใช้ได้เฉพาะสำหรับเนื้อหาที่มีให้ผ่านหมายเลขพอร์ตนั้น

ใช้ได้กับ https://example.com:8181/

ใช้ไม่ได้กับ https://example.com/

การจัดการข้อผิดพลาดและรหัสสถานะ HTTP

เมื่อส่งคําขอไฟล์ robots.txt รหัสสถานะ HTTP ของการตอบสนองของเซิร์ฟเวอร์จะมีผลต่อวิธีที่โปรแกรมรวบรวมข้อมูลของ Google ใช้ไฟล์ robots.txt ตารางต่อไปนี้สรุปวิธีที่ Googlebot พิจารณาไฟล์ robots.txt สําหรับรหัสสถานะ HTTP ต่างๆ

การจัดการข้อผิดพลาดและรหัสสถานะ HTTP
2xx (success) รหัสสถานะ HTTP ที่ส่งสัญญาณแจ้งว่าสำเร็จจะทำให้โปรแกรมรวบรวมข้อมูลของ Google ประมวลผลไฟล์ robots.txt ตามที่เซิร์ฟเวอร์ให้ไว้
3xx (redirection)

Google ติดตามการเปลี่ยนเส้นทางอย่างน้อย 5 ครั้งตามที่ RFC 1945 กำหนด จากนั้นจึงหยุดและถือว่าเป็น 404 สำหรับ robots.txt ซึ่งรวมถึง URL ใดๆ ที่ไม่อนุญาตในเชนการเปลี่ยนเส้นทางด้วย เพราะโปรแกรมรวบรวมข้อมูลดึงข้อมูลกฎไม่ได้เนื่องจากการเปลี่ยนเส้นทาง

Google จะไม่ติดตามการเปลี่ยนเส้นทางเชิงตรรกะในไฟล์ robots.txt (เฟรม, JavaScript หรือการเปลี่ยนเส้นทางแบบ Meta Refresh)

4xx (client errors)

โปรแกรมรวบรวมข้อมูลของ Google จะจัดการกับข้อผิดพลาด 4xx ทั้งหมดยกเว้น 429 เสมือนว่าไม่มีไฟล์ robots.txt ที่ถูกต้องอยู่ ซึ่งหมายความว่า Google จะถือว่าไม่มีข้อจำกัดในการรวบรวมข้อมูล

5xx (server errors)

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

หากคุณจําเป็นต้องระงับการรวบรวมข้อมูลชั่วคราว เราขอแนะนําให้แสดงรหัสสถานะ HTTP 503 กับทุก URL ในเว็บไซต์

หากเราระบุได้ว่ามีการกำหนดค่าเว็บไซต์อย่างไม่ถูกต้องให้แสดงรหัสสถานะ 5xx แทนที่จะเป็น 404 สําหรับหน้าเว็บที่หายไป เราจะถือว่าข้อผิดพลาด 5xx จากเว็บไซต์นั้นเป็น 404 ตัวอย่างเช่น หากข้อความแสดงข้อผิดพลาดในหน้าเว็บที่แสดงรหัสสถานะ 5xx คือ "ไม่พบหน้าเว็บ" เราจะตีความรหัสสถานะเป็น 404 (not found)

ข้อผิดพลาดอื่นๆ ไฟล์ robots.txt ที่ระบบดึงข้อมูลไม่ได้เพราะมีปัญหาเกี่ยวกับ DNS หรือเครือข่าย เช่น หมดเวลา การตอบสนองที่ไม่ถูกต้อง การเชื่อมต่อที่รีเซ็ต/ขัดข้อง ข้อผิดพลาดจากการแบ่งข้อมูลเป็นส่วนย่อยๆ ของ HTTP ถือว่าเป็นข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์

การแคช

โดยทั่วไประบบจะแคชเนื้อหาของ robots.txt ไว้ไม่เกิน 24 ชั่วโมง แต่อาจแคชนานขึ้นในกรณีที่รีเฟรชเวอร์ชันที่แคชไม่ได้ (เช่น เพราะหมดเวลาหรือมีข้อผิดพลาด 5xx) โปรแกรมรวบรวมข้อมูลต่างๆ อาจใช้การตอบสนองที่แคชไว้ร่วมกัน Google อาจเพิ่มหรือลดระยะเวลาในการแคชตามส่วนหัว HTTP การควบคุมแคชตามระยะเวลาสูงสุด

รูปแบบไฟล์

ไฟล์ robots.txt ต้องเป็นไฟล์ข้อความธรรมดาที่เข้ารหัส UTF-8 และต้องแยกบรรทัดด้วย CR, CR/LF หรือ LF

Google จะข้ามบรรทัดที่ไม่ถูกต้องในไฟล์ robots.txt รวมถึง Unicode Byte Order Mark (BOM) ที่ตอนต้นของไฟล์ robots.txt และจะใช้เฉพาะบรรทัดที่ถูกต้อง ตัวอย่างเช่น หากเนื้อหาที่ดาวน์โหลดมาเป็น HTML แทนที่จะเป็นกฎของ robots.txt สิ่งที่จะเกิดขึ้นคือ Google จะพยายามแยกวิเคราะห์เนื้อหาและเรียกดูกฎ และจะข้ามเนื้อหาอื่น

ในทํานองเดียวกัน หากไฟล์ robots.txt ไม่ได้เข้ารหัสอักขระแบบ UTF-8 ไว้ Google อาจข้ามอักขระที่ไม่ได้อยู่ในช่วง UTF-8 ซึ่งอาจทำให้การถอดความหมายกฎของ robots.txt ไม่ถูกต้อง

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

ไวยากรณ์

บรรทัดที่ใช้ได้ของ robots.txt ประกอบด้วยเขตข้อมูล เครื่องหมายโคลอน และค่า ไม่บังคับว่าต้องมีการเว้นวรรค แต่แนะนำให้มีเพื่อให้อ่านง่ายขึ้น ระบบจะข้ามการเว้นวรรคที่ส่วนต้นและส่วนท้ายของบรรทัด หากต้องการใส่คำอธิบาย ให้ใส่อักขระ # ไว้ข้างหน้า โปรดทราบว่าระบบจะข้ามทุกอย่างที่อยู่หลังอักขระ # รูปแบบทั่วไปคือ <field>:<value><#optional-comment>

Google รองรับเขตข้อมูลต่อไปนี้

  • user-agent: ระบุว่ากฎใช้กับโปรแกรมรวบรวมข้อมูลใด
  • allow: เส้นทาง URL ที่อาจมีการรวบรวมข้อมูลได้
  • disallow: เส้นทาง URL ที่ต้องไม่มีการรวบรวมข้อมูล
  • sitemap: URL แบบเต็มของแผนผังเว็บไซต์

ช่อง allow และ disallow เรียกอีกอย่างว่ากฎ (หรือที่เรียกว่าคำสั่ง) กฎเหล่านี้จะระบุในรูปแบบ rule: [path] ซึ่งจะมี [path] หรือไม่มีก็ได้ โดยค่าเริ่มต้น Crawler ที่กำหนดไม่มีข้อจำกัดในการ Crawl Crawler จะไม่สนใจกฎที่ไม่มี [path]

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

user-agent

บรรทัด user-agent ระบุว่ากฎใช้กับโปรแกรมรวบรวมข้อมูลใด โปรดดูรายการสตริง user-agent ทั้งหมดที่ใช้ได้ในไฟล์ robots.txt จากโปรแกรมรวบรวมข้อมูลและสตริง user-agent ของ Google

ค่าของบรรทัด user-agent ไม่คํานึงถึงตัวพิมพ์เล็กหรือใหญ่

disallow

กฎ disallow ระบุเส้นทางที่ไม่อนุญาตการเข้าถึงสําหรับ Crawler ที่กําหนดโดยบรรทัด user-agent ซึ่งจัดกลุ่มไว้กับกฎ disallow Crawler จะข้ามกฎที่ไม่มีเส้นทาง

Google ไม่สามารถจัดทําดัชนีเนื้อหาของหน้าเว็บที่ไม่ได้รับอนุญาตให้ทำการ Crawl แต่อาจยังจัดทําดัชนี URL และแสดง URL ในผลการค้นหาโดยไม่มีตัวอย่างข้อมูล ดูวิธีบล็อกการจัดทำดัชนี

ค่าของกฎ disallow จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

การใช้งาน

disallow: [path]

allow

กฎ allow ระบุเส้นทางที่ Crawler ที่กำหนดจะเข้าถึงได้ ระบบจะข้ามกฎเมื่อไม่มีการระบุเส้นทาง

ค่าของเขตข้อมูล allow จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

การใช้งาน

allow: [path]

sitemap

Google, Bing และเครื่องมือค้นหาหลักอื่นๆ รองรับเขตข้อมูล sitemap ใน robots.txt ตามที่จำกัดความโดย sitemaps.org

ค่าของเขตข้อมูล sitemap จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

การใช้งาน

sitemap: [absoluteURL]

บรรทัด [absoluteURL] จะชี้ไปยังตำแหน่งของแผนผังเว็บไซต์หรือไฟล์ดัชนีแผนผังเว็บไซต์ ต้องเป็น URL ที่สมบูรณ์ในตัวเอง โดยมีโปรโตคอลกับโฮสต์ และไม่จำเป็นต้องมีการเข้ารหัส URL URL ไม่จำเป็นต้องอยู่ในโฮสต์เดียวกันกับไฟล์ robots.txt คุณสามารถระบุเขตข้อมูล sitemap ได้หลายครั้ง เขตข้อมูลแผนผังเว็บไซต์ไม่ได้ผูกกับ User Agent ที่เจาะจง และโปรแกรมรวบรวมข้อมูลทั้งหมดอาจติดตามได้หากไม่มีการห้ามไม่ให้รวบรวมข้อมูล

เช่น

user-agent: otherbot
disallow: /kale

sitemap: https://example.com/sitemap.xml
sitemap: https://cdn.example.org/other-sitemap.xml
sitemap: https://ja.example.org/テスト-サイトマップ.xml

การจัดกลุ่มบรรทัดและกฎ

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

เช่น

user-agent: a
disallow: /c

user-agent: b
disallow: /d

user-agent: e
user-agent: f
disallow: /g

user-agent: h

ในตัวอย่างนี้มีกลุ่มกฎที่แตกต่างกัน 4 กลุ่ม ดังนี้

  • กลุ่มสําหรับ User Agent "a"
  • กลุ่มสำหรับ User Agent "b"
  • กลุ่มสําหรับทั้ง User Agent "e" และ "f"
  • กลุ่มสําหรับ User Agent "h"

สำหรับคำอธิบายทางเทคนิคของกลุ่ม โปรดดูส่วน 2.1 ของ REP

ลำดับความสำคัญของ User Agent

มีเพียงกลุ่มเดียวเท่านั้นที่ใช้ได้กับโปรแกรมรวบรวมข้อมูลหนึ่งๆ โปรแกรมรวบรวมข้อมูลของ Google จะระบุกลุ่มกฎที่ถูกต้องโดยค้นหากลุ่มในไฟล์ robots.txt ที่มี User Agent เจาะจงที่สุดซึ่งตรงกับ User Agent ของโปรแกรมรวบรวมข้อมูล ระบบจะข้ามกลุ่มอื่นๆ และจะข้ามข้อความทั้งหมดที่ไม่ตรงกัน (เช่น ทั้ง googlebot/1.2 และ googlebot* ต่างก็เทียบเท่ากับ googlebot) ลำดับของกลุ่มภายในไฟล์ robots.txt นั้นไม่เกี่ยวข้อง

หากมีการประกาศมากกว่า 1 กลุ่มสําหรับ User Agent ที่เจาะจง ระบบจะรวมกฎทั้งหมดจากกลุ่มที่เกี่ยวข้องกับ User Agent ที่เจาะจงไว้เป็นกลุ่มเดียวแบบภายใน ระบบจะไม่รวมกลุ่มที่เจาะจงของ User Agent และกลุ่มส่วนกลาง (*)

ตัวอย่าง

การจับคู่เขตข้อมูล user-agent

user-agent: googlebot-news
(group 1)

user-agent: *
(group 2)

user-agent: googlebot
(group 3)

ต่อไปนี้คือวิธีที่โปรแกรมรวบรวมข้อมูลจะเลือกกลุ่มที่เกี่ยวข้อง

กลุ่มที่โปรแกรมรวบรวมข้อมูลแต่ละโปรแกรมติดตาม
Googlebot News googlebot-news ติดตามกลุ่ม 1 เพราะกลุ่ม 1 เป็นกลุ่มที่เจาะจงที่สุด
Googlebot (เว็บ) googlebot ติดตามกลุ่ม 3
Googlebot Storebot Storebot-Google ติดตามกลุ่ม 2 เพราะไม่มีกลุ่ม Storebot-Google ที่เจาะจง
Googlebot News (เมื่อรวบรวมข้อมูลรูปภาพ) เมื่อรวบรวมข้อมูลรูปภาพ googlebot-news จะติดตามกลุ่ม 1 googlebot-news ไม่รวบรวมข้อมูลรูปภาพสำหรับ Google รูปภาพ ดังนั้นจึงติดตามเฉพาะกลุ่ม 1
Otherbot (เว็บ) โปรแกรมรวบรวมข้อมูลอื่นๆ ของ Google จะติดตามกลุ่ม 2
Otherbot (ข่าว) โปรแกรมรวบรวมข้อมูลอื่นๆ ของ Google ที่รวบรวมเนื้อหาข่าว แต่ไม่ระบุว่าเป็น googlebot-news จะติดตามกลุ่ม 2 แม้ว่าจะมีรายการสำหรับโปรแกรมรวบรวมข้อมูลที่เกี่ยวข้อง แต่รายการนั้นจะใช้ได้ก็ต่อเมื่อจับคู่ตรงกันเท่านั้น

การจัดกลุ่มกฎ

หากในไฟล์ robots.txt มีหลายกลุ่มที่มีความเกี่ยวข้องกับ User Agent ที่เจาะจง โปรแกรมรวบรวมข้อมูลของ Google จะรวมกลุ่มแบบภายใน เช่น

user-agent: googlebot-news
disallow: /fish

user-agent: *
disallow: /carrots

user-agent: googlebot-news
disallow: /shrimp

โปรแกรมรวบรวมข้อมูลจะจัดกลุ่มกฎตาม User Agent แบบภายใน เช่น

user-agent: googlebot-news
disallow: /fish
disallow: /shrimp

user-agent: *
disallow: /carrots

โปรแกรมแยกวิเคราะห์ robots.txt จะไม่สนใจกฎอื่นใดที่ไม่ใช่ allow, disallow และ user-agent ซึ่งหมายความว่า ระบบจะถือว่าตัวอย่างข้อมูล robots.txt ต่อไปนี้เป็น 1 กลุ่ม และด้วยเหตุนี้ทั้ง user-agent a และ b จะได้รับผลกระทบจากกฎ disallow: / ดังนี้

user-agent: a
sitemap: https://example.com/sitemap.xml

user-agent: b
disallow: /

เมื่อโปรแกรมรวบรวมข้อมูลประมวลผลกฎของ robots.txt ก็จะไม่สนใจบรรทัด sitemap ตัวอย่างเช่น โปรแกรมรวบรวมข้อมูลจะเข้าใจตัวอย่างข้อมูล robots.txt ก่อนหน้าดังนี้

user-agent: a
user-agent: b
disallow: /

การจับคู่ URL ตามค่าเส้นทาง

Google ใช้ค่าเส้นทางในกฎ allow และ disallow เป็นพื้นฐานในการพิจารณาว่ากฎมีผลกับ URL หนึ่งๆ ในเว็บไซต์หรือไม่ ซึ่งทํางานโดยเปรียบเทียบกฎกับคอมโพเนนต์เส้นทางของ URL ที่ Crawler กําลังพยายามดึงข้อมูล อาจมีการรวมอักขระ ASCII ที่ไม่ใช่แบบ 7 บิตในเส้นทางเป็นอักขระ UTF-8 หรืออักขระที่เข้ารหัส UTF-8 แบบกำหนดสัญลักษณ์เปอร์เซ็นต์เป็นอักขระหลีกตามที่ระบุใน RFC 3986

Google, Bing และเครื่องมือค้นหาหลักอื่นๆ รองรับไวลด์การ์ดเพียงบางรูปแบบสําหรับค่าเส้นทาง อักขระไวลด์การ์ด ได้แก่

  • * กำหนดอินสแตนซ์ของอักขระที่ถูกต้องตั้งแต่ 0 รายการขึ้นไป
  • $ กำหนดส่วนท้ายของ URL

ตารางต่อไปนี้แสดงให้เห็นว่าอักขระไวลด์การ์ดที่แตกต่างกันมีผลต่อการแยกวิเคราะห์อย่างไร

ตัวอย่างเส้นทางที่จับคู่กัน
/ จับคู่รากและ URL ระดับล่าง
/* เทียบเท่ากับ / ระบบละเว้นไวลด์การ์ดปิดท้าย
/$ จับคู่เฉพาะราก อนุญาตให้มีการรวบรวมข้อมูล URL ระดับล่างได้
/fish

จับคู่เส้นทางใดก็ตามที่ขึ้นต้นด้วย /fish โปรดทราบว่าการจับคู่จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

จับคู่กับ

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

ไม่จับคู่กับ

  • /Fish.asp
  • /catfish
  • /?id=fish
  • /desert/fish
/fish*

เทียบเท่ากับ /fish ระบบละเว้นไวลด์การ์ดปิดท้าย

จับคู่กับ

  • /fish
  • /fish.html
  • /fish/salmon.html
  • /fishheads
  • /fishheads/yummy.html
  • /fish.php?id=anything

ไม่จับคู่กับ

  • /Fish.asp
  • /catfish
  • /?id=fish
  • /desert/fish
/fish/

จับคู่กับอะไรก็ได้ในโฟลเดอร์ /fish/

จับคู่กับ

  • /fish/
  • /fish/?id=anything
  • /fish/salmon.htm

ไม่จับคู่กับ

  • /fish
  • /fish.html
  • /animals/fish/
  • /Fish/Salmon.asp
/*.php

จับคู่เส้นทางใดก็ตามที่มี .php

จับคู่กับ

  • /index.php
  • /filename.php
  • /folder/filename.php
  • /folder/filename.php?parameters
  • /folder/any.php.file.html
  • /filename.php/

ไม่จับคู่กับ

  • / (แม้ว่าจะจับคู่กับ /index.php)
  • /windows.PHP
/*.php$

จับคู่เส้นทางซึ่งลงท้ายด้วย .php

จับคู่กับ

  • /filename.php
  • /folder/filename.php

ไม่จับคู่กับ

  • /filename.php?parameters
  • /filename.php/
  • /filename.php5
  • /windows.PHP
/fish*.php

จับคู่เส้นทางใดก็ตามที่มี /fish และ .php ตามลำดับ

จับคู่กับ

  • /fish.php
  • /fishheads/catfish.php?parameters

ไม่จับคู่กับ /Fish.PHP

ลำดับความสำคัญของกฎ

เมื่อจับคู่กฎ robots.txt กับ URL โปรแกรมรวบรวมข้อมูลจะใช้กฎที่เจาะจงที่สุดตามความยาวของเส้นทางกฎ ในกรณีที่กฎขัดแย้งกัน ซึ่งรวมถึงกฎที่มีไวลด์การ์ด Google จะใช้กฎที่เข้มงวดน้อยที่สุด

ตัวอย่างต่อไปนี้จะแสดงให้เห็นว่ากฎใดที่โปรแกรมรวบรวมข้อมูลของ Google จะนําไปใช้กับ URL หนึ่งๆ

กรณีตัวอย่าง
https://example.com/page

allow: /p
disallow: /

กฎที่มีผล: allow: /p เพราะมีความเจาะจงมากกว่า

https://example.com/folder/page

allow: /folder
disallow: /folder

กฎที่มีผล: allow: /folder เพราะในกรณีที่กฎขัดแย้งกัน Google จะใช้กฎที่เข้มงวดน้อยที่สุด

https://example.com/page.htm

allow: /page
disallow: /*.htm

กฎที่เกี่ยวข้อง: disallow: /*.htm เพราะเส้นทางกฎยาวกว่าและตรงกับอักขระใน URL มากกว่า จึงมีความเจาะจงมากกว่า

https://example.com/page.php5

allow: /page
disallow: /*.ph

กฎที่มีผล: allow: /page เพราะในกรณีที่กฎขัดแย้งกัน Google จะใช้กฎที่เข้มงวดน้อยที่สุด

https://example.com/

allow: /$
disallow: /

กฎที่มีผล: allow: /$ เพราะมีความเจาะจงมากกว่า

https://example.com/page.htm

allow: /$
disallow: /

กฎที่มีผล: disallow: / เพราะกฎ allow จะมีผลเฉพาะกับ URL ระดับรากเท่านั้น