SEO Tools

Robots.txt File Generator — คืออะไร และสร้างอย่างไร

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

8 นาทีในการอ่าน

Robots.txt file generator — web crawlers and SEO

ทุกเว็บไซต์บนอินเทอร์เน็ตล้วนถูกเยี่ยมชมโดยบอต — 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 ประกอบด้วย:

  1. บรรทัด User-agent — ระบุว่ากฎนี้ใช้กับบอตตัวไหน
  2. บรรทัด Disallow หรือ Allow หนึ่งบรรทัดขึ้นไป — กฎการ crawl
  3. คำสั่ง Crawl-delay (ไม่บังคับ)
  4. คำสั่ง 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 ของเราช่วยให้คุณ:

  1. เลือกบอตที่ต้องการกำหนดเป้าหมาย
  2. เพิ่มกฎ allow และ disallow ผ่านฟอร์มที่ใช้งานง่าย
  3. ตั้งค่า crawl delay หากจำเป็น
  4. เพิ่ม sitemap URL ของคุณ
  5. คัดลอกหรือดาวน์โหลดไฟล์ที่เสร็จสมบูรณ์ได้ทันที

หลังจากสร้างแล้ว ใช้ 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:

  1. Robots.txt Tester — วางไฟล์และทดสอบ URL เฉพาะเพื่อยืนยันพฤติกรรม allow/disallow
  2. Google Search Console — รายงาน Crawl Stats แสดงวิธีที่ Google กำลัง crawl ไซต์คุณ เครื่องมือ URL Inspection แสดงว่าหน้าเฉพาะถูกบล็อกหรือไม่
  3. ตรวจสอบด้วยตนเอง — เข้า 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 สำหรับหน้าเว็บของคุณ