ข้อกำหนดของ robots.txt

บทคัดย่อ

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

ภาษาของข้อกำหนด

คำสำคัญในเอกสารนี้ ซึ่งได้แก่ "ต้อง" "ต้องไม่" "จำเป็น" "จะ" "จะไม่" "ควร" "ไม่ควร" "แนะนำ" "อาจ" และ "ไม่บังคับ" มีความหมายตามที่อธิบายไว้ใน RFC 2119

คำจำกัดความพื้นฐาน

คำจำกัดความ
โปรแกรมรวบรวมข้อมูล โปรแกรมรวบรวมข้อมูลคือบริการหรือ Agent ที่รวบรวมข้อมูลเว็บไซต์ โดยทั่วไปแล้ว โปรแกรมรวบรวมข้อมูลจะเข้าถึง URL ที่รู้จักของโฮสต์ที่แสดงเนื้อหาที่เข้าถึงได้ด้วยเว็บเบราว์เซอร์มาตรฐานซ้ำโดยอัตโนมัติ เมื่อพบ URL ใหม่ (ผ่านวิธีการต่างๆ เช่น จากลิงก์ในหน้าเว็บที่มีอยู่ หรือที่ได้รับการรวบรวมข้อมูลแล้ว หรือจากไฟล์แผนผังไซต์) โปรแกรมก็จะรวบรวมข้อมูล URL เหล่านี้ในลักษณะเดียวกัน
User-agent วิธีการระบุโปรแกรมรวบรวมข้อมูลหนึ่งๆ หรือชุดโปรแกรมรวบรวมข้อมูล
คำสั่ง รายการหลักเกณฑ์ที่ใช้กับโปรแกรมรวบรวมข้อมูลหรือกลุ่มโปรแกรมรวบรวมข้อมูลซึ่งกำหนดไว้ในไฟล์ robots.txt
URL ย่อมาจาก Uniform Resource Locator หรือโปรแกรมชี้แหล่งทรัพยากรในอินเทอร์เน็ตตามที่ให้คำจำกัดความไว้ใน RFC 1738
เฉพาะสำหรับ Google เอลิเมนต์เหล่านี้มีไว้สำหรับการใช้งาน robots.txt ของ Google โดยเฉพาะและอาจไม่เกี่ยวข้องกับบุคคลอื่น

ประโยชน์ต่อการให้บริการ

โปรแกรมรวบรวมข้อมูลอัตโนมัติทั้งหมดของ Google ทำงานตามหลักเกณฑ์ที่กำหนดไว้ในเอกสารนี้ เมื่อ Agent เข้าถึง URL ในนามของผู้ใช้ (เช่น สำหรับการแปล ฟีดที่สมัครรับด้วยตนเอง การวิเคราะห์มัลแวร์ ฯลฯ) ก็ไม่จำเป็นต้องใช้หลักเกณฑ์เหล่านี้

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

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

เฉพาะสำหรับ Google: Google ยอมรับและทำตามไฟล์ robots.txt ของเว็บไซต์ FTP ด้วย ไฟล์ robots.txt ที่ใช้ FTP จะเข้าถึงได้ผ่านโปรโตคอล FTP ด้วยการเข้าสู่ระบบแบบไม่ระบุตัวตน

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

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

ตัวอย่าง URL ของ robots.txt
http://example.com/robots.txt ใช้ได้กับ
  • http://example.com/
  • http://example.com/folder/file
ใช้ไม่ได้กับ
  • http://other.example.com/
  • https://example.com/
  • http://example.com:8181/
http://www.example.com/robots.txt

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

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

  • http://example.com/
  • http://shop.www.example.com/
  • http://www.shop.example.com/
http://example.com/folder/robots.txt ไม่ใช่ไฟล์ robots.txt ที่ถูกต้อง โปรแกรมรวบรวมข้อมูลจะไม่ตรวจหาไฟล์ robots.txt ในไดเรกทอรีย่อย
http://www.müller.eu/robots.txt ใช้ได้กับ
  • http://www.müller.eu/
  • http://www.xn--mller-kva.eu/

ใช้ไม่ได้กับ http://www.muller.eu/

ftp://example.com/robots.txt

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

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

เฉพาะสำหรับ Google: เราใช้ robots.txt สำหรับทรัพยากร FTP

http://212.96.82.21/robots.txt

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

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

http://example.com:80/robots.txt

ใช้ได้กับ

  • http://example.com:80/
  • http://example.com/

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

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

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

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

ทำความเข้าใจรหัสผลลัพธ์ HTTP

โดยทั่วไปจะมีผลลัพธ์ที่แตกต่างกัน 3 แบบเมื่อดึงไฟล์ robots.txt ดังนี้

  • อนุญาตทั้งหมด: เนื้อหาทั้งหมดอาจได้รับการรวบรวมข้อมูล
  • ไม่อนุญาตทั้งหมด: ไม่มีการรวบรวมข้อมูลเนื้อหาใดๆ
  • อนุญาตตามเงื่อนไข: คำสั่งใน robots.txt เป็นตัวกำหนดความสามารถในการรวบรวมข้อมูลเนื้อหาบางอย่าง
ทำความเข้าใจรหัสผลลัพธ์ HTTP
2xx (สำเร็จ) รหัสผลลัพธ์ HTTP ที่แสดงสัญญาณว่าการรวบรวมข้อมูลแบบ "อนุญาตตามเงื่อนไข" สำเร็จ
3xx (เปลี่ยนเส้นทาง) โดยทั่วไประบบจะตามการเปลี่ยนเส้นทางไปจนกว่าจะพบผลลัพธ์ที่ถูกต้อง (หรือพบการวนซ้ำ) เราจะตามการเปลี่ยนเส้นทางจนถึงจำนวนครั้งที่กำหนด (RFC 1945 อนุญาตสูงสุด 5 ครั้งสำหรับ HTTP/1.0) จากนั้นจะหยุดและถือว่าเป็นข้อผิดพลาด 404 ไม่มีการกำหนดหรือแนะนำให้จัดการการเปลี่ยนเส้นทางของ robots.txt ไปยัง URL ที่ไม่อนุญาต รวมถึงจัดการการเปลี่ยนเส้นทางที่สมเหตุสมผลสำหรับไฟล์ robots.txt ซึ่งอิงตามเนื้อหา HTML ที่แสดงรหัส 2xx (การเปลี่ยนเส้นทางเฟรม, JavaScript หรือแบบ Meta-refresh)
4xx (ข้อผิดพลาดของไคลเอ็นต์) Google ดำเนินการกับข้อผิดพลาด 4xx ทั้งหมดในลักษณะเดียวกันและถือว่าไม่มีไฟล์ robots.txt ที่ถูกต้อง ระบบสันนิษฐานว่าไม่มีข้อจำกัด รหัสประเภทนี้หมายความว่ารวบรวมข้อมูลได้แบบ "อนุญาตทั้งหมด"
5xx (ข้อผิดพลาดของเซิร์ฟเวอร์)

ระบบมองว่าข้อผิดพลาดของเซิร์ฟเวอร์เป็นข้อผิดพลาดชั่วคราวที่ส่งผลให้การรวบรวมข้อมูลเป็นแบบ "ไม่อนุญาตทั้งหมด" และจะลองส่งคำขอจนกว่าจะได้รับรหัสผลลัพธ์ HTTP ที่ไม่ใช่ข้อผิดพลาดของเซิร์ฟเวอร์ ข้อผิดพลาด 503 (บริการไม่พร้อมใช้งาน) จะส่งผลให้มีการลองใหม่ค่อนข้างบ่อย หากต้องการระงับการรวบรวมข้อมูลชั่วคราว ขอแนะนำให้แสดงรหัสผลลัพธ์ HTTP 503 ไม่มีการกำหนดวิธีจัดการข้อผิดพลาดถาวรของเซิร์ฟเวอร์ไว้

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

คำขอไม่สำเร็จหรือข้อมูลไม่สมบูรณ์ ไม่มีการกำหนดวิธีจัดการไฟล์ robots.txt ที่ระบบดึงข้อมูลไม่ได้เพราะมีปัญหาเกี่ยวกับ DNS หรือเครือข่าย เช่น หมดเวลา ตอบสนองไม่ถูกต้อง การเชื่อมต่อที่รีเซ็ต/มีปัญหา ข้อผิดพลาดจากแบ่งข้อมูลเป็นส่วนย่อยๆ ของ HTTP ฯลฯ
การแคช โดยทั่วไประบบจะแคชคำขอของ robots.txt ไว้นานสูงสุด 1 วัน แต่อาจแคชนานขึ้นในกรณีที่รีเฟรชเวอร์ชันที่แคชไม่ได้ (เช่น เพราะหมดเวลาหรือมีข้อผิดพลาด 5xx) โปรแกรมรวบรวมข้อมูลต่างๆ อาจใช้การตอบสนองที่แคชร่วมกัน Google อาจเพิ่มหรือลดระยะเวลาในการแคชตามส่วนหัว HTTP Cache-Control ตามระยะเวลาสูงสุด

รูปแบบไฟล์

รูปแบบไฟล์ที่ควรใช้คือข้อความธรรมดา (Plain text) ที่เข้ารหัสในรูปแบบ UTF-8 ไฟล์ประกอบด้วยระเบียน (บรรทัด) ที่คั่นด้วย CR, CR/LF หรือ LF

ระบบจะพิจารณาเฉพาะระเบียนที่ถูกต้องและจะละเว้นเนื้อหาอื่นทั้งหมด เช่น หากเอกสารผลลัพธ์คือหน้า HTML ระบบจะพิจารณาเฉพาะบรรทัดข้อความที่ถูกต้อง และละเว้นส่วนที่เหลือโดยไม่แสดงคำเตือนหรือข้อผิดพลาด

หากมีการใช้การเข้ารหัสอักขระซึ่งส่งผลให้มีการใช้อักขระที่ไม่ใช่ชุดย่อยของ UTF-8 อาจทำให้ระบบแยกวิเคราะห์เนื้อหาของไฟล์ไม่ถูกต้อง

ระบบจะละเว้น BOM (Byte Order Mark) ใน Unicode ที่ไม่บังคับและอยู่ที่ตอนต้นของไฟล์ robots.txt

ระเบียนแต่ละรายการประกอบด้วยช่องข้อมูล เครื่องหมายทวิภาค และค่า ไม่บังคับว่าต้องมีการเว้นวรรค (แต่แนะนำให้มีเพื่อให้อ่านง่ายขึ้น) คุณใส่ความคิดเห็นไว้ที่ตำแหน่งใดก็ได้ในไฟล์โดยใช้อักขระ "#" ระบบจะถือว่าเนื้อหาทั้งหมดที่อยู่หลังส่วนต้นของความคิดเห็นไปจนถึงส่วนท้ายของระเบียนเป็นความคิดเห็นและจะละเว้นไว้ รูปแบบทั่วไปคือ <field>:<value><#optional-comment> ระบบละเว้นช่องว่างที่ส่วนต้นและส่วนท้ายของระเบียน

เอลิเมนต์ <field> ไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ แต่เอลิเมนต์ <value> อาจคำนึงถึงตัวพิมพ์เล็กและใหญ่โดยขึ้นอยู่กับเอลิเมนต์ <field>

ไม่มีการกำหนดวิธีจัดการเอลิเมนต์ <field> ที่มีข้อผิดพลาด/การพิมพ์ผิดเล็กๆ น้อยๆ (เช่น ใช้ "useragent" แทน "user-agent") และ User-agent บางตัวอาจเข้าใจว่าข้อผิดพลาดเหล่านี้เป็นคำสั่งที่ถูกต้อง

อาจมีการจำกัดขนาดไฟล์สูงสุดต่อ 1 โปรแกรมรวบรวมข้อมูล ระบบจะละเว้นเนื้อหาที่เกินขนาดไฟล์สูงสุด ขนาดสูงสุดที่ Google กำหนดไว้ปัจจุบันคือ 500 กิโลไบต์ (KB)

ไวยากรณ์/คำจำกัดความอย่างเป็นทางการ

คำอธิบายนี้คล้ายกับ Backus-Naur Form (BNF) ที่ใช้รูปแบบ RFC 822 ยกเว้นตรงที่ "|" ใช้ในการกำหนดทางเลือก ลิเทอรัลจะอยู่ใน "" และวงเล็บ "(" และ ")" ใช้ในการจัดกลุ่มเอลิเมนต์ เอลิเมนต์ที่ไม่บังคับจะอยู่ใน [วงเล็บเหลี่ยม] และ <n>* อาจอยู่หน้าเอลิเมนต์เพื่อกำหนดการใช้เอลิเมนต์ที่ตามมาซ้ำ n ครั้งหรือมากกว่า โดยที่ n มีค่าเริ่มต้นเป็น 0

robotstxt = *entries
entries = *( ( <1>*startgroupline
  *(groupmemberline | nongroupline | comment)
  | nongroupline
  | comment) )
startgroupline = [LWS] "user-agent" [LWS] ":" [LWS] agentvalue [comment] EOL
groupmemberline = [LWS] (
  pathmemberfield [LWS] ":" [LWS] pathvalue
  | othermemberfield [LWS] ":" [LWS] textvalue) [comment] EOL
nongroupline = [LWS] (
  urlnongroupfield [LWS] ":" [LWS] urlvalue
  | othernongroupfield [LWS] ":" [LWS] textvalue) [comment] EOL
comment = [LWS] "#" *anychar
agentvalue = textvalue

pathmemberfield = "disallow" | "allow"
othermemberfield = ()
urlnongroupfield = "sitemap"
othernongroupfield = ()

pathvalue = "/" path
urlvalue = absoluteURI
textvalue = *(valuechar | SP)
valuechar = <any UTF-8 character except ("#" CTL)>
anychar = <any UTF-8 character except CTL>
EOL = CR | LF | (CR LF)

มีการกำหนดไวยากรณ์ของ "absoluteURI", "CTL", "CR", "LF", "LWS" ไว้ใน RFC 1945 และของ "path" ใน RFC 1808

การจัดกลุ่มระเบียน

ระเบียนแบ่งออกเป็นประเภทต่างๆ ตามประเภทของเอลิเมนต์ <field> ดังนี้

  • เริ่มต้นของกลุ่ม
  • สมาชิกกลุ่ม
  • ไม่ใช่กลุ่ม

ระเบียนสมาชิกกลุ่มทั้งหมดที่อยู่หลังระเบียนเริ่มต้นของกลุ่มไปจนถึงระเบียนเริ่มต้นของกลุ่มจะถือว่าเป็นกลุ่มระเบียน เอลิเมนต์ช่องเริ่มต้นของกลุ่มมีอยู่รายการเดียวนั่นคือ user-agent บรรทัดเริ่มต้นของกลุ่มหลายรายการที่ตามหลังกันทันทีจะอยู่หลังระเบียนสมาชิกกลุ่มที่อยู่ต่อจากบรรทัดเริ่มต้นของกลุ่มบรรทัดสุดท้าย ระบบจะละเว้นระเบียนสมาชิกกลุ่มที่ไม่มีระเบียนเริ่มต้นของกลุ่มอยู่ก่อนหน้า ระเบียนที่ไม่ใช่กลุ่มทั้งหมดใช้ได้โดยไม่ขึ้นกับกลุ่มใดๆ

เอลิเมนต์ <field> ที่ถูกต้องซึ่งเราจะให้รายละเอียดเพิ่มเติมในเอกสารนี้ ได้แก่

  • user-agent (เริ่มต้นของกลุ่ม)
  • disallow (ใช้เป็นระเบียนสมาชิกกลุ่มได้เท่านั้น)
  • allow (ใช้เป็นระเบียนสมาชิกกลุ่มได้เท่านั้น)
  • sitemap (ระเบียนที่ไม่ใช่กลุ่ม)

ระบบอาจละเว้นเอลิเมนต์ <field> อื่นๆ ทั้งหมด

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

กลุ่มตัวอย่าง

user-agent: a
disallow: /c

user-agent: b
disallow: /d

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

มีการระบุกลุ่มที่แตกต่างกัน 3 กลุ่ม นั่นคือ กลุ่มสำหรับ "a", กลุ่มสำหรับ "b" รวมถึงอีกกลุ่มสำหรับทั้ง "e" และ "f" แต่ละกลุ่มมีระเบียนสมาชิกกลุ่มของตัวเอง โปรดสังเกตการใช้พื้นที่ว่าง (การเว้นบรรทัด) ที่ไม่บังคับเพื่อให้อ่านได้ง่ายขึ้น

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

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

ตัวอย่าง

ใช้ไฟล์ robots.txt ต่อไปนี้เป็นตัวอย่างสมมติ

user-agent: googlebot-news
(group 1)

user-agent: *
(group 2)

user-agent: googlebot
(group 3)

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

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

ดูโปรแกรมรวบรวมข้อมูลและสตริง User-agent ของ Google เพิ่มเติม

ระเบียนสมาชิกกลุ่ม

ส่วนนี้กล่าวถึงประเภทระเบียนสมาชิกกลุ่มเฉพาะสำหรับ Google เท่านั้น ประเภทระเบียนเหล่านี้เรียกอีกอย่างว่า "คำสั่ง" สำหรับโปรแกรมรวบรวมข้อมูล คำสั่งเหล่านี้จะระบุในรูปแบบ directive: [path] ซึ่งจะมี [path] หรือไม่มีก็ได้ ตามค่าเริ่มต้น โปรแกรมรวบรวมข้อมูลที่กำหนดไม่มีข้อจำกัดในการรวบรวมข้อมูล ระบบจะละเว้นคำสั่งที่ไม่มี [path]

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

ไม่อนุญาต

คำสั่ง disallow ระบุเส้นทางที่โปรแกรมรวบรวมข้อมูลที่กำหนดต้องไม่เข้าถึง ระบบจะละเว้นคำสั่งเมื่อไม่มีการระบุเส้นทาง

การใช้งาน

disallow: [path]

อนุญาต

คำสั่ง allow ระบุเส้นทางที่โปรแกรมรวบรวมข้อมูลที่กำหนดอาจเข้าถึง ระบบจะละเว้นคำสั่งเมื่อไม่มีการระบุเส้นทาง

การใช้งาน

allow: [path]

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

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

Google, Bing, Yahoo และ Ask รองรับ "ไวลด์การ์ด" เพียงบางรูปแบบในค่าเส้นทาง ได้แก่

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

เส้นทางที่ตรงกัน

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

เส้นทางที่ไม่ตรงกัน

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

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

เส้นทางที่ตรงกัน

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

เส้นทางที่ไม่ตรงกัน

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

เครื่องหมายทับปิดท้ายหมายความว่าเส้นทางนี้จับคู่กับอะไรก็ได้ในโฟลเดอร์นี้

เส้นทางที่ตรงกัน

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

เส้นทางที่ไม่ตรงกัน

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

เส้นทางที่ตรงกัน

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

เส้นทางที่ไม่ตรงกัน

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

เส้นทางที่ตรงกัน

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

เส้นทางที่ไม่ตรงกัน

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

เส้นทางที่ตรงกัน

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

เส้นทางที่ไม่ตรงกันคือ /Fish.PHP

ระเบียนที่ไม่ใช่สมาชิกกลุ่มที่ Google รองรับ

แผนผังไซต์

Google, Ask, Bing และ Yahoo รองรับ ดูคำจำกัดความได้ที่ sitemaps.org

การใช้งาน

sitemap: [absoluteURL]

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

ลำดับความสำคัญของระเบียนสมาชิกกลุ่ม

ในระดับสมาชิกกลุ่มโดยเฉพาะสำหรับคำสั่ง allow และ disallow กฎที่เจาะจงมากที่สุดโดยอิงจากความยาวของรายการ [path] จะมีผลเหนือกฎที่เจาะจงน้อยกว่า (สั้นกว่า) ไม่มีการกำหนดลำดับความสำคัญของกฎที่มีไวลด์การ์ด

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

allow /p

disallow /

การตัดสิน: allow

http://example.com/folder/page

allow /folder

disallow /folder

การตัดสิน: allow

http://example.com/page.htm

allow /page

disallow /*.htm

การตัดสิน: undefined

http://example.com/

allow /$

disallow /

การตัดสิน: allow

http://example.com/page.htm

allow /$

disallow /

การตัดสิน: disallow