คู่มือ robots.txt ฉบับสมบูรณ์ 2026 – ควบคุมการค้นหา SEO อย่างถูกต้อง
The robots.txt file is a simple text file placed in your website's root directory that controls how search engine crawlers interact with your content. When configured correctly, it optimizes crawl efficiency, preserves bandwidth, and ensures sensitive areas remain hidden from indexing. However, a single misconfiguration can accidentally block your entire site from search results, making it critical to understand both the syntax and the most common pitfalls.
ไฟล์ robots.txt เป็นเอกสารข้อความเล็กน้อยที่วางไว้ในรูท (root) ของเว็บไซต์ แต่มีอิทธิพลอย่างลึกต่อวิธีการทำงานของ Google และเครื่องมือค้นหาอื่นๆ บนไซต์ของคุณ การตั้งค่าอย่างถูกต้องจะช่วยประหยัดแบนด์วิดท์ จัดลำดับความสำคัญของการค้นหา และป้องกันข้อมูลที่ไม่จำเป็นจากการจัดทำดัชนี แต่หากไม่ระวัง ความผิดพลาดเพียงแค่บรรทัดเดียวอาจปิดกั้นข้อมูลสำคัญจากผลการค้นหาทั้งหมด
สารบัญ
- robots.txt คืออะไร และทำไมจึงมีความสำคัญ
- ไวยากรณ์พื้นฐานและโครงสร้างของ robots.txt
- User-Agent และ Disallow – หัวใจของการควบคุม
- Allow และ Sitemap – การปรับปรุงและการแนะนำ
- ความผิดพลาดทั่วไปที่เสี่ยงต่อความหายนะ
- ทดสอบ robots.txt ใน Google Search Console
- robots.txt สำหรับไซต์ WordPress
- robots.txt กับ noindex Meta Tag – ความแตกต่างสำคัญ
- FAQ
robots.txt คืออะไร และทำไมจึงมีความสำคัญ
robots.txt เป็นไฟล์ข้อความที่บอกให้หุ่นยนต์ค้นหา (crawler) ของเครื่องมือค้นหาต่างๆ ทราบว่าเนื้อหาไหนบนไซต์ของคุณสามารถเข้าถึงได้และเนื้อหาไหนที่ควรข้ามไป ไฟล์นี้ต้องตั้งอยู่ในรูท เช่น example.com/robots.txt ทุกโดเมนและโปรโตคอล (HTTP/HTTPS) จำเป็นต้องมีไฟล์นี้เป็นของตัวเอง robots.txt ไม่มีอำนาจบังคับใช้แต่อย่างใด มีเพียงคำแนะนำเท่านั้น เครื่องมือค้นหาที่เป็นมิตรจะปฏิบัติตามกฎเหล่านี้ แต่บอท spam มักจะข้ามไปแล้วเยี่ยมชมหน้าที่ห้าม
- ควบคุมการค้นหาและจัดทำดัชนีของหุ่นยนต์
- หลีกเลี่ยงการสูญเสียแบนด์วิดท์จากการเยี่ยมชมที่ไม่จำเป็น
- แจ้งเครื่องมือค้นหาเกี่ยวกับตำแหน่งของ sitemap
- ไม่ใช่วิธีการปกปิดข้อมูลที่ละเอียดอ่อนจากผู้ใช้ทั่วไป
- ไฟล์นี้สามารถอ่านได้แบบสาธารณะ
ไวยากรณ์พื้นฐานและโครงสร้างของ robots.txt
ไฟล์ robots.txt ใช้ชุดคำสั่งง่าย ๆ ที่เรียกว่า "directives" เขียนในรูปแบบ key-value อย่างสำเร็จ แต่ละไฟล์อาจมีหลายบล็อก (block) ที่แยกออกจากกัน บล็อคแต่ละอันจะเริ่มด้วย User-agent ตามด้วย Disallow หรือ Allow directives ไม่มี XML headers หรือรูปแบบเพิ่มเติม เพียงแค่ข้อความธรรมชาติอ่านได้ง่าย บรรทัดความเห็น (comment) เริ่มด้วย # และจะถูกหุ่นยนต์ข้าม ลำดับของบรรทัดมีความสำคัญเมื่อมี Allow และ Disallow อยู่ร่วมกัน
- User-agent ระบุว่าคำสั่งนี้ใช้กับหุ่นยนต์ใด
- Disallow บอกหุ่นยนต์ไม่ควรเข้าถึงเส้นทาง
- Allow ยกเลิก Disallow (ใช้เมื่อมีข้อยกเว้น)
- Sitemap ชี้ไปยังตำแหน่งของไฟล์ sitemap
- บรรทัดความเห็นขึ้นต้นด้วย # และจะถูกข้าม
User-Agent และ Disallow – หัวใจของการควบคุม
ทุกคำสั่ง Disallow ต้องมี User-agent นำหน้าไว้ก่อน เมื่อคุณเขียน User-agent: Googlebot คำสั่ง Disallow ที่ตามมาจะนำไปใช้เฉพาะกับ Googlebot เท่านั้น หากต้องการกฎเดียวกันสำหรับหุ่นยนต์ทั้งหมด ใช้ User-agent: * (ดอกจัน) เส้นทางใน Disallow ขึ้นต้นด้วยเครื่องหมายทับ (/) และเป็นการแยกแยะตัวพิมพ์โต ตัวอย่าง Disallow: /admin/ บล็อค /admin/ และทุกไฟล์ภายใน ส่วน Disallow: /admin.php บล็อคเฉพาะไฟล์นั้น Disallow: ว่าง (ไม่มีเส้นทาง) หมายความว่าอนุญาตให้เข้าถึงทั้งหมด
- User-agent: * ใช้เพื่อกำหนดกฎสำหรับหุ่นยนต์ทั้งหมด
- Disallow: / บล็อคไซต์ทั้งหมด (ใช้เฉพาะเมื่อจำเป็นจริงๆ)
- Disallow: /private/ บล็อคโฟลเดอร์และเนื้อหาทั้งหมดภายใน
- Disallow: /*.pdf$ บล็อคไฟล์ PDF ทั้งหมด
- User-agent: Baiduspider เล็งหรือ Baidu crawler เท่านั้น
Allow และ Sitemap – การปรับปรุงและการแนะนำ
Disallow บล็อคเส้นทาง แต่บางครั้งคุณต้องการสร้างข้อยกเว้นภายในบริเวณที่ห้าม ตัวอย่างเช่น หากบล็อค /uploads/ ทั้งหมด แต่ต้องการให้หุ่นยนต์อ่าน /uploads/public/ ให้ใช้ Allow: /uploads/public/ ลำดับมีความสำคัญเมื่อมีกฎซ้อนกัน บรรทัด Allow ต้องมาก่อนบรรทัด Disallow ที่กว้างขึ้น Sitemap directive ไม่ใช่คำสั่งบล็อค แต่เป็นการแนะนำให้หุ่นยนต์อ่านไฟล์ sitemap ของคุณ ช่วยให้เครื่องมือค้นหาค้นพบหน้าใหม่ได้เร็วขึ้น สามารถมี Sitemap entries หลายรายการในไฟล์เดียว
- Allow: /path/ ยกเลิก Disallow ที่กว้างขึ้น
- ลำดับของกฎ Allow และ Disallow สำคัญ
- Sitemap: https://example.com/sitemap.xml ชี้ไปยังแผนที่ไซต์
- สามารถมี Sitemap entries หลายรายการได้
- ใช้ URL ฉบับเต็มสำหรับ Sitemap ไม่ใช่เส้นทางสัมพัทธ์
ความผิดพลาดทั่วไปที่เสี่ยงต่อความหายนะ
ความผิดพลาดที่พบบ่อยที่สุดคือใช้ Disallow: / ซึ่งบล็อคไซต์ทั้งหมดจากการค้นหา มักเกิดขึ้นจากการทำให้สลับสน หรือเมื่อทดสอบและลืมลบออก ปัญหาอื่นคือการจัดการเครื่องหมายทับ (slash) ไม่ถูกต้อง เช่น Disallow: /admin (ไม่มี slash) อาจไม่บล็อค /admin/ เนื่องจากการจับคู่นั้นแน่นอน ข้อผิดพลาดอีกประการหนึ่งคือการตั้งค่า robots.txt บนโฮสต์ย่อยเดียวเท่านั้น (เช่น test.example.com) และลืมว่า www.example.com ต้องการไฟล์แยกต่างหาก นอกจากนี้ การเข้ารหัสไฟล์อย่าง BOM (Byte Order Mark) หรือ non-UTF-8 จะทำให้หุ่นยนต์ข้ามไฟล์โดยเงียบ
- Disallow: / บล็อคไซต์ทั้งหมด ใช้เฉพาะเมื่อจำเป็นจริงๆ
- การจัดการเครื่องหมาย "/" อาจทำให้กฎไม่ตรงตามที่คาด
- BOM หรือการเข้ารหัสไม่ถูกต้องทำให้หุ่นยนต์ข้ามไฟล์
- ตั้งค่า robots.txt บนโฮสต์ย่อยเดียวอาจลืมช่องอื่น
- ไฟล์เก่าที่ใช้ทดสอบยังคงอยู่หลังจากลืมลบ
ทดสอบ robots.txt ใน Google Search Console
Google Search Console มีเครื่องมือทดสอบ robots.txt ในส่วน "Crawl" ที่ให้คุณตรวจสอบว่า Google อ่านไฟล์อย่างถูกต้อง ไปที่ "Crawl" > "robots.txt Tester" ใน GSC แล้วคัดลอกเส้นทาง URL ลงในช่อง "Test URL" จากนั้นกด "Test" เครื่องมือจะแสดงผลลัพธ์ทันที สีเขียว (อนุญาต) หรือสีแดง (บล็อค) นอกจากนี้ยังสามารถดูไฟล์ robots.txt เวอร์ชันที่ Google เห็น ที่ส่วน "View fetched robots.txt" เพื่อตรวจสอบว่าเซิร์ฟเวอร์ส่งข้อมูลถูกต้องหรือไม่ การทดสอบนี้ใช้เฉพาะกับ Googlebot ไม่ใช่ crawler อื่น
- เปิด Google Search Console และเข้าไปที่เมนู "Crawl"
- เลือก "robots.txt Tester"
- วาง URL เต็มหรือเส้นทางที่ต้องการทดสอบ
- ตรวจสอบผลลัพธ์ (สีเขียว = อนุญาต, สีแดง = บล็อค)
- ดูไฟล์ที่ Google เฟตช์เพื่อตรวจหาข้อผิดพลาดในการเข้ารหัส
robots.txt สำหรับไซต์ WordPress
WordPress สร้าง robots.txt ได้โดยอัตโนมัติหากไม่มีไฟล์นี้อยู่ ซึ่งมักจะบล็อค /wp-admin/ และ /wp-includes/ ตามค่าเริ่มต้น การตั้งค่าในแผงควบคุมภายใต้ Settings > Reading มีตัวเลือก "Discourage search engines from indexing this site" ซึ่งเพิ่ม noindex meta tag แต่จะไม่เปลี่ยน robots.txt ถ้าต้องการควบคุมอย่างละเอียด ให้สร้างไฟล์ robots.txt ด้วยตนเองที่รูท WordPress แล้ว WordPress จะให้ความสำคัญกับไฟล์นั้นแทนที่สร้างอัตโนมัติ ตรวจสอบว่าควรบล็อค /wp-content/uploads/ เพื่อประหยัดแบนด์วิดท์ในการค้นหาสื่อที่ไม่จำเป็น
- WordPress สร้าง robots.txt อัตโนมัติหากไม่มีไฟล์
- "Discourage search engines" เติม noindex แต่ไม่เปลี่ยน robots.txt
- สร้างไฟล์ robots.txt ด้วยตนเองหากต้องการควบคุมเต็มที่
- บล็อค /wp-admin/ และ /wp-includes/ ที่ไม่ต้องการจัดทำดัชนี
- Plugin SEO เช่น Yoast ช่วยจัดการ robots.txt ผ่าน GUI
robots.txt กับ noindex Meta Tag – ความแตกต่างสำคัญ
ทั้ง robots.txt และ noindex meta tag เกี่ยวข้องกับการจัดทำดัชนี แต่ทำงานต่างกัน robots.txt บอกให้หุ่นยนต์ไม่เข้าถึงหน้า ส่วน noindex คือบอกให้หุ่นยนต์ "อ่านหน้าแต่อย่าจัดทำดัชนี" หากบล็อคหน้าด้วย robots.txt หุ่นยนต์จะไม่เห็น noindex meta tag เลยเพราะมันไม่ได้เข้าถึงหน้า ในทางตรงกันข้าม หากใช้ noindex เพียงอย่างเดียว หุ่นยนต์ยังดาวน์โหลดหน้าและบริโภค crawl budget แต่จะไม่จัดทำดัชนี ใช้ robots.txt เพื่อประหยัด crawl budget เมื่อไม่ต้องการหุ่นยนต์เข้าถึงเลย และใช้ noindex เมื่อต้องการให้หุ่นยนต์อ่านลิงก์ (เพื่อ PageRank) แต่ไม่แสดงในผลการค้นหา
- robots.txt ป้องกันการเข้าถึงหน้าทั้งหมด
- noindex ยอมให้เข้าถึงแต่ห้ามจัดทำดัชนี
- หากบล็อคด้วย robots.txt หุ่นยนต์จะไม่เห็น noindex
- noindex ยังคงบริโภค crawl budget
- ใช้ robots.txt เพื่อประหยัด crawl budget และแบนด์วิดท์
- ห้ามใช้ทั้งสองบนหน้าเดียวกัน
คำถามที่พบบ่อย (FAQ)
หากฉันไม่มีไฟล์ robots.txt จะเกิดอะไรขึ้น
หากไม่มี robots.txt เครื่องมือค้นหาจะถือว่าสามารถเข้าถึงไซต์ทั้งหมดได้ (ยกเว้นบริเวณที่มี noindex หรือมีการรับรองความถูกต้อง) นี่ไม่ใช่ปัญหาใหญ่สำหรับไซต์ส่วนใหญ่ แต่หากมีเนื้อหาขนาดใหญ่ หรือสิ่งอำนวยความสะดวกที่ใช้แบนด์วิดท์มาก การมี robots.txt ที่เหมาะสมจะช่วยให้หุ่นยนต์ค้นหาจัดลำดับความสำคัญหน้าสำคัญ
ฉันจำเป็นต้องสร้าง robots.txt แยกสำหรับ www.example.com และ example.com หรือ
ใช่ สำคัญมาก หากถือว่าเป็นโดเมนแยกกัน แต่ละโดเมนต้องมี robots.txt ของตัวเอง ส่วนใหญ่เว็บไซต์ใช้ canonical redirect หรือ HSTS เพื่อรวมเวอร์ชันเหล่านี้เข้าด้วยกัน ทำให้ robots.txt เดียวก็พอ กำหนดเวอร์ชันที่ต้องการในGoogle Search Console เพื่อหลีกเลี่ยงความสับสน
สามารถกำหนด Disallow ที่ต่างกันสำหรับหุ่นยนต์ที่ต่างกัน เช่น Googlebot กับ Bingbot ได้หรือ
ได้ แน่นอน ในไฟล์เดียว คุณสามารถมี User-agent: Googlebot ตามด้วยชุด Disallow rules หนึ่ง และ User-agent: Bingbot ตามด้วยชุด Disallow rules ที่ต่างกัน แต่ละครั้งที่มี User-agent ใหม่ หุ่นยนต์จะอ่านเฉพาะกฎของตัวเอง ให้ความยืดหยุ่นในการปรับให้เข้ากันได้กับความต้องการของแต่ละเครื่องมือค้นหา
ถ้าใช้ noindex บนหน้า แล้วบล็อคด้วย robots.txt ทั้งสองจะทำงานหรือ
ไม่จำเป็น การรวมทั้งสองเป็นการใช้เกินพอดี หากบล็อคด้วย robots.txt แล้ว หุ่นยนต์จะไม่เข้าถึงหน้า จึงไม่เห็น noindex meta tag เลย ใช้ robots.txt เมื่อต้องการป้องกันการเข้าถึงทั้งหมด และใช้ noindex เมื่อต้องการให้หุ่นยนต์อ่านแต่ไม่จัดทำดัชนี ห้ามใช้ทั้งสองบนหน้าเดียวกัน