Skip to content
ค้นหา

Robots.txt SEO: ควบคุมการ crawling อย่างมีประสิทธิภาพ

เรียนรู้วิธีใช้ robots.txt ในเชิงกลยุทธ์: ไวยากรณ์หลัก การตรวจสอบด้วย curl/DevTools ข้อผิดพลาดทั่วไป และตัวอย่างไฟล์ที่ใช้งานได้จริง

Robots.txt SEO: ควบคุมการ Crawling อย่างมีประสิทธิภาพ

robots.txt คืออะไร?

ไฟล์ robots.txt เป็นไฟล์ข้อความธรรมดาที่วางไว้ที่ root ของโดเมน (เช่น https://example.com/robots.txt) เพื่อให้คำแนะนำแก่ web crawlers ที่ปฏิบัติตามมาตรฐานเกี่ยวกับเส้นทางที่อนุญาตหรือไม่อนุญาตให้รวบรวมข้อมูล การใช้งานในเชิง SEO คือการชี้นำพฤติกรรมการรวบรวมข้อมูลเพื่อเพิ่มประสิทธิภาพการรวบรวม (crawl efficiency) ปกป้องพื้นที่ที่มีมูลค่าต่ำ และลดความเสี่ยงที่ crawler จะเสียเวลาในส่วนที่ไม่ต้องการ

คำสั่งพื้นฐานและไวยากรณ์

ไฟล์ robots.txt ประกอบด้วยบรรทัดคำสั่งเรียบง่ายที่ crawler ส่วนใหญ่เข้าใจ ไวยากรณ์หลักที่ควรรู้มีดังนี้

User-agent

ระบุ crawler เป้าหมาย เช่น "User-agent: *" สำหรับทุก crawler หรือ "User-agent: Googlebot" สำหรับ Googlebot

Disallow และ Allow

บรรทัดตัวอย่างเช่น User-agent: * / Disallow: /private/ / Allow: /public/special-page.html

หมายเหตุ: กฎที่ละเอียดกว่า (เช่น Allow) สามารถอนุญาตเส้นทางย่อยภายใต้ Disallow ได้ แต่พฤติกรรมอาจแตกต่างกันระหว่าง crawler ต่างค่าย

Sitemap และคำสั่งเสริม

คุณสามารถประกาศตำแหน่งไฟล์ sitemap ใน robots.txt ด้วยบรรทัดแบบนี้: Sitemap: https://example.com/sitemap.xml ส่วนคำสั่งอื่นๆ เช่น Crawl-delay และ Host มีการสนับสนุนไม่สอดคล้องกันระหว่าง crawler และ Google มักไม่สนับสนุน Crawl-delay ดังนั้นอย่าใช้เป็นวิธีหลักในการควบคุมความถี่การรวบรวมข้อมูลของ Google

robots.txt ทำงานที่ไหนในกระบวนการ crawling → indexing → ranking

จำแนกสามขั้นตอนเพื่อความชัดเจน:

• Crawling — robots.txt ช่วยควบคุมการค้นพบและการดึงข้อมูล: crawler จะอ่านไฟล์นี้ก่อนตัดสินใจว่าจะขอหน้าใดจากเซิร์ฟเวอร์

• Indexing — การบล็อกด้วย robots.txt ป้องกันการดึงตัวเนื้อหา ทำให้ search engine อาจไม่เห็นเมตาแท็กบนหน้านั้นและในบางกรณีอาจยังมีการจัดทำดัชนี URL โดยไม่มีเนื้อหา (indexing บนพื้นฐานของการอ้างอิงจากที่อื่น) ดังนั้น robots.txt จึงไม่เหมือนกับการใช้ meta robots noindex ซึ่งต้องให้ crawler เข้าถึงหน้านั้นได้

• Ranking — robots.txt เองไม่ได้เป็นสัญญาณการจัดอันดับโดยตรง แต่ผลที่ตามมาจากการไม่สามารถเข้าถึงเนื้อหาอาจทำให้หน้าไม่มีข้อมูลที่ใช้ในการจัดอันดับได้

แนวปฏิบัติที่ดีที่สุด (เชิงปฏิบัติ)

ใช้ robots.txt เพื่อปรับประสิทธิภาพการรวบรวมข้อมูล ไม่ใช่เป็นวิธีป้องกันการจัดทำดัชนีหรือเป็นการจัดการสิทธิ์การเข้าถึงจริง ปฏิบัติตามแนวทางต่อไปนี้:

  • วางไฟล์ที่ root ของโดเมน (ตัวอย่าง: https://example.com/robots.txt) — crawler จะค้นหาตำแหน่งนี้เป็นจุดเริ่มต้น
  • อย่าใช้ robots.txt เพื่อแทนที่การควบคุมการเข้าถึง — หากต้องการป้องกันการเข้าถึงจริง ให้ใช้การยืนยันตัวตนหรือ HTTP auth
  • อย่าบล็อกหน้าเป้าหมายของการค้นพบ เช่น หน้า pillar ที่ต้องการให้ Google อ่านและจัดทำดัชนี
  • ประกาศ sitemap ใน robots.txt เพื่อช่วย crawler ค้นพบโครงสร้างเว็บไซต์ได้เร็วขึ้น
  • ทดสอบทุกการเปลี่ยนแปลงใน staging ก่อนเผยแพร่; commit การเปลี่ยนแปลงที่ผิดพลาดหนึ่งบรรทัดอาจบล็อกทั้งไซต์ได้

การตรวจสอบและการแก้ไขปัญหา (verification)

เมื่อตรวจสอบ robots.txt ให้ใช้เครื่องมือที่มองเห็นได้จากภายนอก เพราะคุณมักจะไม่มีสิทธิ์เข้าถึง Search Console ของโดเมนอื่น รายการตรวจสอบที่ควรทำ:

  1. ยืนยันการมีไฟล์และสถานะ HTTP ด้วย curl: ใช้ curl -I https://example.com/robots.txt เพื่อตรวจเฉพาะ headers และ curl https://example.com/robots.txt เพื่อตรวจเนื้อหาไฟล์จริง
  2. ตรวจว่า Googlebot สามารถเข้าถึงหน้าจริงได้: หากคุณต้องการจำลองการร้องขอของ Googlebot ให้ใช้ curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/somepage เพื่อดูว่าเซิร์ฟเวอร์ตอบอย่างไรสำหรับ user-agent นั้น แต่จำไว้ว่า user-agent เพียงอย่างเดียวไม่ยืนยันว่าเป็น Googlebot จริง — การตรวจสอบ reverse DNS เป็นขั้นตอนเสริมเมื่อจำเป็น
  3. ใช้ DevTools เพื่อตรวจ DOM ที่เรนเดอร์: หากเนื้อหาถูกโหลดด้วย JavaScript ให้เปิด Chrome DevTools → Network/Elements เพื่อตรวจว่าหน้าจริงที่ผู้ใช้เห็นต่างจาก HTML ที่ crawler ดึงมาหรือไม่
  4. เช็กรายการสาธารณะของการจัดทำดัชนีด้วย site: operator เป็นสัญญาณเบื้องต้น เท่านี้ก็ช่วยบอกได้ว่า Google เคยแสดงหน้าเหล่านั้นหรือไม่ แต่ไม่ใช่ตรวจสอบเด็ดขาด — สำหรับหน้าในความดูแลของคุณ ให้ใช้ Google Search Console URL Inspection เป็นข้อเท็จจริง

ข้อผิดพลาดที่พบบ่อย

หลากหลายความผิดพลาดจากการตั้งค่า robots.txt สามารถส่งผลกระทบต่อการมองเห็นได้ ตัวอย่างที่ควรรู้:

  • บล็อกทั้งไซต์ (เช่น "Disallow: /") ในขั้นตอนการ deploy จนเว็บหลักถูกบล็อกจากการรวบรวมข้อมูล
  • เชื่อว่าการบล็อกผ่าน robots.txt จะทำให้หน้าถูกลบจาก index — จริง ๆ แล้ว Google อาจยังจัดทำดัชนี URL ที่อ้างอิงจากที่อื่นแม้จะไม่สามารถเข้าถึงเนื้อหาได้
  • ใช้ robots.txt เพื่อปิดกั้นหน้าแทนที่จะใช้ meta robots noindex เมื่อเป้าหมายคือการเอาออกจาก index — meta noindex ต้องให้ crawler เข้ามาอ่านหน้าได้
  • มีการกำหนดกฎที่ขัดแย้งกันหลายบรรทัดและไม่ทดสอบก่อนเผยแพร่ ทำให้ crawler ทำตามกฎที่ไม่คาดคิด

ตัวอย่างไฟล์ robots.txt

ตัวอย่างสำหรับเว็บไซต์ที่ต้องการให้ Google รวบรวมหน้าเนื้อหาหลักแต่ปิดส่วน admin และ staging:

User-agent: *

Disallow: /wp-admin/

Disallow: /staging/

Allow: /wp-admin/admin-ajax.php

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

เมื่อใดควรใช้ robots.txt และเมื่อใดไม่ควร

ใช้เมื่อคุณต้องการลดภาระ crawler บนส่วนที่ไม่มีมูลค่า เช่น หน้า internal search results, session ID paths, หรือพื้นที่ทดสอบ ใช้การป้องกันระดับเซิร์ฟเวอร์หรือ meta robots สำหรับเนื้อหาที่ต้องการความเป็นส่วนตัวหรือการเอาออกจาก index เช่น หน้า login หรือข้อมูลส่วนบุคคล

ข้อสำคัญเพิ่มเติม: Google ใช้ mobile-first indexing และตั้งค่า Googlebot Smartphone เป็นค่าเริ่มต้นสำหรับการรวบรวมข้อมูลใน Search แล้ว ดังนั้นให้แน่ใจว่าเวอร์ชันสำหรับอุปกรณ์เคลื่อนที่ของไซต์มีความครบถ้วนและไม่ได้ถูกบล็อกโดย robots.txt

แหล่งตรวจสอบและเครื่องมือที่แนะนำ

เครื่องมือที่ควรใช้ร่วมกันเพื่อยืนยันพฤติกรรมของ robots.txt และผลกระทบต่อการรวบรวมข้อมูล:

  • curl และการตอบ HTTP — ตรวจ header และเนื้อหา
  • Chrome DevTools — ตรวจ DOM ที่เรนเดอร์และ network requests
  • Bing Webmaster Tools Site Explorer — ตรวจพฤติกรรมของ Bing
  • Google Search Console URL Inspection สำหรับหน้าในความดูแลของคุณ — เครื่องมือนี้ให้ข้อมูลการดึงข้อมูล สถานะการจัดทำดัชนี และสาเหตุหาก Google ไม่สามารถเข้าถึง

หากต้องการอ่านภาพรวมหัวข้อ technical SEO เพิ่มเติม ให้คลิก อ่านคู่มือ Technical SEO เพื่อกลับไปยังหน้าหลักของคู่มือ

สรุปสั้น ๆ

robots.txt เป็นเครื่องมือเรียบง่ายแต่ทรงพลังสำหรับชี้นำการรวบรวมข้อมูล ใช้เพื่อเพิ่ม crawl efficiency ปกป้องพื้นที่ที่ไม่ต้องการ และประกาศ sitemap แต่หลีกเลี่ยงการใช้มันเป็นวิธีหลักในการจัดการการจัดทำดัชนีหรือการป้องกันความเป็นส่วนตัว ทดสอบทุกการเปลี่ยนแปลงด้วย curl/DevTools และสำหรับหน้าในความดูแลของคุณ ให้ใช้ Google Search Console URL Inspection เพื่อตรวจสถานะอย่างเป็นทางการ

คำถามที่พบบ่อย

robots.txt จะหยุดการจัดทำดัชนีได้หรือไม่?

ไม่เสมอไป — robots.txt ป้องกันการรวบรวมข้อมูล (fetching) แต่ถ้ามีลิงก์ไปยัง URL ที่ถูกบล็อกจากหน้าอื่น Search engine อาจจัดทำดัชนี URL นั้นโดยไม่มีเนื้อหาได้ หากเป้าหมายคือเอาออกจากดัชนี ให้อนุญาตการเข้าถึงหน้าแล้วใช้ meta robots noindex หรือใช้เครื่องมือเอาออกใน Google Search Console สำหรับหน้าที่คุณเป็นเจ้าของ

ถ้า robots.txt ผิดพลาดจนบล็อก Google จะเห็นเป็น manual action หรือไม่?

การบล็อกโดย robots.txt ไม่ใช่ manual action ของ Google แต่จะส่งผลต่อการรวบรวมและการมองเห็น หากมีการเปลี่ยนแปลงที่ไม่ตั้งใจ ตรวจสอบด้วย curl และ Google Search Console URL Inspection (สำหรับหน้าในความดูแล) และแก้ไขทันที

ควรประกาศ sitemap ใน robots.txt หรือใช้ไฟล์แยก?

การประกาศ sitemap ใน robots.txt เป็นแนวปฏิบัติที่ดี — crawler หลายค่ายอ่านบรรทัด Sitemap: และใช้เป็นจุดเริ่มต้นในการค้นพบ URL แต่ควรยังส่ง sitemap ในเครื่องมือสำหรับผู้ดูแลเว็บไซต์ เช่น Google Search Console และ Bing Webmaster Tools เพื่อการตรวจสอบเพิ่มเติม

Googlebot จะปฏิบัติตาม robots.txt เสมอหรือไม่?

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

บทความที่เกี่ยวข้อง