Robots.txt File Generator — คืออะไร และสร้างอย่างไร
เรียนรู้ว่าไฟล์ robots.txt ทำงานอย่างไร กฎการ crawl ทำงานอย่างไร และวิธีสร้าง robots.txt ที่ถูกต้องสำหรับเว็บไซต์ของคุณโดยไม่ต้องเขียนโค้ด
ทุกเว็บไซต์บนอินเทอร์เน็ตล้วนถูกเยี่ยมชมโดยบอต — Googlebot, Bingbot, AI crawlers และอีกนับสิบตัว ไฟล์ robots.txt คือวิธีที่คุณบอกให้บอตเหล่านั้นรู้ว่าหน้าไหนที่อนุญาตหรือไม่อนุญาตให้ index ทำได้ถูกต้องก็ควบคุมสิ่งที่ปรากฏในผลการค้นหาได้ แต่ถ้าทำผิดพลาด คุณอาจบล็อกทั้งไซต์ออกจาก Google โดยไม่ตั้งใจ
robots.txt file คืออะไร?
ไฟล์ robots.txt คือไฟล์ข้อความธรรมดาที่วางไว้ที่ root ของเว็บไซต์ เพื่อบอก web crawlers ว่าหน้าหรือส่วนใดที่ควร crawl และส่วนใดที่ควรข้ามไป โดยใช้มาตรฐาน Robots Exclusion Protocol ซึ่งเป็นมาตรฐานไม่เป็นทางการที่ crawler หลัก ๆ แทบทุกตัวปฏิบัติตาม
เมื่อ Googlebot เข้าเยี่ยมไซต์ของคุณ URL แรกที่มันร้องขอคือ:
https://yourdomain.com/robots.txt
ถ้าไฟล์มีอยู่ บอตจะอ่านกฎและปรับพฤติกรรมการ crawl ตามนั้น ถ้าไม่มีไฟล์ บอตจะถือว่าทุกหน้าเปิดให้ crawl ได้ทั้งหมด
สำคัญ: robots.txt คือคำสั่งแนะนำ ไม่ใช่มาตรการรักษาความปลอดภัย มันบอกบอตที่มีพฤติกรรมดีว่าอย่า crawl อะไร — แต่ไม่ได้ป้องกันการเข้าถึง บอตอันตรายและ scraper อาจเพิกเฉยต่อมันได้เสมอ อย่าพึ่งพา robots.txt เพื่อซ่อนข้อมูลที่มีความอ่อนไหว
โครงสร้างของ robots.txt file
ไฟล์ robots.txt ประกอบด้วย records หนึ่งรายการขึ้นไป แต่ละ record ประกอบด้วย:
- บรรทัด
User-agent— ระบุว่ากฎนี้ใช้กับบอตตัวไหน - บรรทัด
DisallowหรือAllowหนึ่งบรรทัดขึ้นไป — กฎการ crawl - คำสั่ง
Crawl-delay(ไม่บังคับ) - คำสั่ง
Sitemapในระดับไฟล์ (ไม่บังคับ)
User-agent: Googlebot
Disallow: /admin/
Allow: /admin/public/
User-agent: *
Disallow: /private/
Crawl-delay: 10
Sitemap: https://yourdomain.com/sitemap.xml
คำอธิบาย directive สำคัญ
| Directive | ทำหน้าที่อะไร |
|---|---|
User-agent |
ระบุว่ากฎต่อไปนี้ใช้กับ crawler ตัวไหน * หมายถึงบอตทุกตัว |
Disallow |
บล็อก path ที่ระบุไม่ให้ถูก crawl |
Allow |
อนุญาต path อย่างชัดเจน แม้อยู่ใน parent directory ที่ถูก disallow |
Crawl-delay |
ขอให้บอตรอ N วินาทีระหว่างแต่ละ request (Google ไม่รองรับ) |
Sitemap |
ชี้ให้ crawler ไปยัง XML sitemap ของคุณ |
ค่า User-agent — คุณกำลังพูดกับใคร?
แต่ละ crawler มี user-agent string ที่ไม่ซ้ำกัน ที่สำคัญที่สุดคือ:
| User-agent | Crawler | Engine |
|---|---|---|
* |
Crawler ทุกตัว | — |
Googlebot |
Google web crawler | Google Search |
Googlebot-Image |
Google Images crawler | Google Images |
Googlebot-Video |
Google Video crawler | Google Video |
Bingbot |
Microsoft Bing crawler | Bing Search |
Slurp |
Yahoo! crawler | Yahoo Search |
DuckDuckBot |
DuckDuckGo crawler | DuckDuckGo |
Baiduspider |
Baidu crawler | Baidu Search |
YandexBot |
Yandex crawler | Yandex Search |
GPTBot |
OpenAI training crawler | ChatGPT |
ClaudeBot |
Anthropic training crawler | Claude |
CCBot |
Common Crawl bot | Various AI datasets |
กฎจะถูกนำไปใช้ตาม user-agent หากบอตตรงกับ user-agent record ที่ระบุไว้ กฎนั้นก็จะถูกนำไปใช้ หากไม่มี record ที่ระบุไว้ กฎ * (wildcard) จะถูกนำไปใช้แทน
Disallow และ Allow — วิธีการจับคู่ path
Disallow
Disallow: /path/ บล็อก path นั้นและทุกอย่างที่อยู่ภายใต้มัน
Disallow: /admin/ # บล็อก /admin/, /admin/users, /admin/login ฯลฯ
Disallow: /private.html # บล็อกเฉพาะไฟล์นั้น
Disallow: / # บล็อกทั้งไซต์
Disallow: # ค่าว่าง = อนุญาตทุกอย่าง (ไม่มีข้อจำกัด)
Allow
Allow ยกเว้น Disallow สำหรับ path ที่เจาะจงกว่า โดยกฎที่เฉพาะเจาะจงกว่าจะมีผลชนะ
User-agent: Googlebot
Disallow: /products/
Allow: /products/featured/ # Googlebot สามารถ crawl /products/featured/ ได้แม้จะมี Disallow ด้านบน
Wildcards
Crawler ส่วนใหญ่ (รวมถึง Google) รองรับ wildcard character สองตัว:
| Pattern | ความหมาย | ตัวอย่าง |
|---|---|---|
* |
จับคู่กับตัวอักษรใด ๆ ก็ได้ต่อเนื่องกัน | Disallow: /*.pdf$ |
$ |
จับคู่กับท้าย URL | Disallow: /*.pdf$ — บล็อก URL ที่ลงท้ายด้วย .pdf |
Disallow: /*? # บล็อก URL ทั้งหมดที่มี query string
Disallow: /*.pdf$ # บล็อกไฟล์ PDF ทั้งหมด
Disallow: /tag/*/page/ # บล็อกหน้า paginated tag archive
รูปแบบ robots.txt ที่ใช้บ่อย
อนุญาตทุกอย่าง (พฤติกรรมเริ่มต้น)
User-agent: *
Disallow:
Disallow ที่ว่างเปล่าหมายความว่าไม่มีข้อจำกัด ซึ่งเทียบเท่ากับการไม่มีไฟล์ robots.txt เลย — แต่การมีไฟล์ไว้เป็นแนวปฏิบัติที่ดี เผื่อต้องการเพิ่มกฎในภายหลัง
บล็อกทั้งไซต์ (เช่น สภาพแวดล้อม staging)
User-agent: *
Disallow: /
ใช้กับสภาพแวดล้อม development, staging หรือ preview เพื่อป้องกันไม่ให้ถูก index
บล็อก directory เฉพาะ
User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /checkout/
Disallow: /cart/
Disallow: /account/
บล็อก AI training crawlers
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Google-Extended
Disallow: /
ไซต์ e-commerce — บล็อกหน้าที่ไม่ควร index
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /wishlist/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?ref=
Allow: /products/
Allow: /collections/
Sitemap: https://yourdomain.com/sitemap.xml
ไซต์ WordPress
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-login.php
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search/
Disallow: /trackback/
Sitemap: https://yourdomain.com/sitemap.xml
วิธีสร้างไฟล์ robots.txt โดยไม่ต้องเขียนโค้ด
การเขียน robots.txt ด้วยมือมีโอกาสผิดพลาดสูง — พิมพ์ผิดครั้งเดียวก็อาจบล็อกหน้าที่ตั้งใจจะอนุญาต เครื่องมือ Robots.txt Generator ของเราช่วยให้คุณ:
- เลือกบอตที่ต้องการกำหนดเป้าหมาย
- เพิ่มกฎ allow และ disallow ผ่านฟอร์มที่ใช้งานง่าย
- ตั้งค่า crawl delay หากจำเป็น
- เพิ่ม sitemap URL ของคุณ
- คัดลอกหรือดาวน์โหลดไฟล์ที่เสร็จสมบูรณ์ได้ทันที
หลังจากสร้างแล้ว ใช้ Robots.txt Tester เพื่อตรวจสอบว่ากฎทำงานตามที่ต้องการก่อน deploy จริง
วางไฟล์ robots.txt ไว้ที่ไหน
ไฟล์ ต้อง อยู่ที่ root ของ domain คุณ:
https://yourdomain.com/robots.txt ✓ ถูกต้อง
https://yourdomain.com/robots/robots.txt ✗ ผิด
https://subdomain.yourdomain.com/robots.txt ✓ ถูกต้อง (สำหรับ subdomain)
แต่ละ subdomain ต้องมี robots.txt ของตัวเอง ไฟล์ที่ www.yourdomain.com/robots.txt ไม่มีผลกับ blog.yourdomain.com
วิธี deploy robots.txt
Static site (HTML): อัปโหลด robots.txt ไปยัง root ของ public directory บน web server (/public_html/, /dist/, /public/ ฯลฯ)
WordPress: วางไว้ที่ root ของการติดตั้ง WordPress SEO plugin หลายตัว (Yoast, RankMath) จัดการให้อัตโนมัติผ่าน admin panel
Next.js: วาง robots.txt ใน folder /public หรือใช้ไฟล์ robots.js ใน /app เพื่อสร้างแบบ programmatic (Next.js 13+)
Vercel / Netlify: วางใน /public — จะถูก serve จาก root อัตโนมัติเมื่อ deploy
robots.txt กับ SEO — สิ่งที่ต้องทำให้ถูกต้อง
อย่าบล็อก CSS และ JavaScript
แนวปฏิบัติเก่าที่พบบ่อยคือการบล็อก /wp-content/ หรือ /assets/ เพื่อประหยัด crawl budget วิธีนี้ให้ผลตรงข้าม เพราะ Google ต้องการ render หน้าเว็บของคุณเพื่อทำความเข้าใจเนื้อหา และการบล็อก CSS/JS จะขัดขวางสิ่งนั้น บล็อกเฉพาะสิ่งที่คุณไม่ต้องการ index จริง ๆ เท่านั้น
robots.txt ไม่ได้ป้องกันการ index — noindex ต่างหากที่ทำได้
Disallow ป้องกันไม่ให้ Google crawl URL นั้น แต่ไม่ได้ป้องกันไม่ให้ Google index มัน ถ้ามีไซต์อื่นลิงก์มา หากต้องการป้องกันการ index ให้ใช้ meta tag noindex หรือ HTTP header X-Robots-Tag บนหน้านั้นโดยตรง
การระบุ Sitemap
ระบุ sitemap URL ใน robots.txt เสมอ — เป็นวิธีที่น่าเชื่อถือที่สุดในการให้ crawler ค้นพบมัน:
Sitemap: https://yourdomain.com/sitemap.xml
Sitemap: https://yourdomain.com/sitemap-images.xml
คุณสามารถระบุ sitemap ได้หลายรายการ
Crawl budget
ไซต์ขนาดใหญ่ (หลายพันหน้า) ได้ประโยชน์สูงสุดจากการปรับแต่ง robots.txt การบล็อกหน้าที่มีคุณค่าต่ำ (URL ที่มี filter, ผลการค้นหาภายในไซต์, เนื้อหาซ้ำซ้อนที่บางเบา) ช่วยให้ Google ใช้ crawl budget กับหน้าที่สำคัญจริง ๆ
การตรวจสอบไฟล์ robots.txt ของคุณ
หลังจากสร้างไฟล์แล้ว ให้ตรวจสอบก่อน deploy:
- Robots.txt Tester — วางไฟล์และทดสอบ URL เฉพาะเพื่อยืนยันพฤติกรรม allow/disallow
- Google Search Console — รายงาน Crawl Stats แสดงวิธีที่ Google กำลัง crawl ไซต์คุณ เครื่องมือ URL Inspection แสดงว่าหน้าเฉพาะถูกบล็อกหรือไม่
- ตรวจสอบด้วยตนเอง — เข้า
https://yourdomain.com/robots.txtหลัง deploy เพื่อยืนยันว่าไฟล์ใช้งานได้และถูก serve อย่างถูกต้อง
คำถามที่พบบ่อย
Google ปฏิบัติตาม robots.txt เสมอไหม?
Google เคารพคำสั่ง Disallow สำหรับการ crawl อย่างไรก็ตาม Google อาจยัง index URL ที่ถูก disallow ได้ ถ้าพบลิงก์ที่ชี้มาหามัน — Disallow บล็อกการ crawl ไม่ใช่การ index ใช้ noindex บนหน้านั้นโดยตรงเพื่อป้องกันการ index
มี User-agent block หลายอันสำหรับบอตตัวเดียวกันได้ไหม? ไม่ได้ แต่ละ user-agent ควรปรากฏในเพียง block เดียว ถ้ามีกฎที่ขัดแย้งกันสำหรับบอตตัวเดียวในหลาย block พฤติกรรมจะไม่แน่นอน ให้รวมกฎทั้งหมดสำหรับ user-agent ที่กำหนดไว้ใน record เดียว
จะเกิดอะไรขึ้นถ้า robots.txt มี syntax error? Crawler ส่วนใหญ่จะเพิกเฉยต่อกฎที่มีรูปแบบผิด หรือหยุดการ parse ที่จุดที่เกิดข้อผิดพลาด Google มักจะดำเนินการต่อโดยใช้กฎที่ parse ได้สำเร็จก่อนที่จะเกิดข้อผิดพลาด ทดสอบไฟล์ของคุณก่อน deploy เสมอ
ควรบล็อก Googlebot-Image ไหม? ควรก็ต่อเมื่อคุณไม่ต้องการให้รูปภาพปรากฏในผลการค้นหา Google Images โดยเฉพาะ ถ้าคุณขายภาพถ่ายหรือมีไซต์ที่เน้นรูปภาพ การบล็อก Googlebot-Image อาจลด traffic ลงอย่างมีนัยสำคัญ
Crawler อ่าน robots.txt ใหม่บ่อยแค่ไหน? Google มักจะ cache robots.txt ไว้นานถึง 24 ชั่วโมง หลังจากอัปเดตไฟล์แล้ว การเปลี่ยนแปลงอาจใช้เวลาสูงสุดหนึ่งวันกว่าจะสะท้อนในพฤติกรรมการ crawl ของ Google
robots.txt มีผลต่อความเร็วหน้าหรือ Core Web Vitals ไหม? ไม่มี robots.txt ส่งผลต่อพฤติกรรมการ crawl เท่านั้น ไม่มีผลต่อการโหลดหน้าหรือประสิทธิภาพสำหรับผู้ใช้จริง
ขนาดและข้อจำกัดของ robots.txt file
- Google รองรับไฟล์ robots.txt ขนาดสูงสุด 500 KB
- ไฟล์ที่ใหญ่กว่า 500 KB จะถูกตัดทอน — กฎที่เกินขนาดนั้นจะถูกละเว้น
- ไม่มีขีดจำกัดอย่างเป็นทางการสำหรับจำนวนกฎ แต่ควรจัดระเบียบและกระชับ
- แนะนำให้ใช้ encoding แบบ UTF-8 หรือ ASCII ก็ใช้ได้เช่นกัน
เครื่องมือที่เกี่ยวข้อง
- Robots.txt Generator — สร้างไฟล์ robots.txt ผ่าน interface แบบฟอร์ม
- Robots.txt Tester — ตรวจสอบกฎและทดสอบ URL เฉพาะ
- Sitemap Generator — สร้าง XML sitemap ควบคู่กับ robots.txt ของคุณ
- Meta Tag Generator — สร้าง SEO meta tags สำหรับหน้าเว็บของคุณ