คู่มือ robots.txt ฉบับสมบูรณ์สำหรับเว็บไซต์ทุกประเภท

ไฟล์เล็กๆ ไฟล์เดียวที่ควบคุมว่า Google เข้าถึงหน้าไหนในเว็บไซต์ได้บ้าง

คู่มือ robots.txt ฉบับสมบูรณ์สำหรับเว็บไซต์ทุกประเภท SEO

robots.txt คืออะไร?

robots.txt เป็นไฟล์ข้อความที่เก็บในโฟลเดอร์หลัก (Root) ของเว็บไซต์ สำหรับบอกให้ Search Engine Bot เช่น Google Bot, Bing Bot และ Bot ตัวอื่น ๆ ว่า "หน้าไหนที่คุณสามารถเข้าถึงได้ และหน้าไหนที่คุณห้ามเข้า" ตัวอย่างเช่น คุณอาจต้องการ:

ทำไม robots.txt จึงสำคัญสำหรับ SEO?

หากไม่มี robots.txt Search Engine Bot จะพยายาม Crawl ทุกหน้าของเว็บไซต์ ปัญหาที่เกิดได้มีดังนี้:

ที่ตั้งของไฟล์ robots.txt

robots.txt ต้องอยู่ในโฟลเดอร์ Root ของเว็บไซต์ตัวอย่างเช่น:

หลังจากสร้างไฟล์ robots.txt แล้ว ให้อัพโหลดไปยัง public_html ของ Hosting ของคุณ

วิธีเขียน robots.txt ที่ถูกต้อง

robots.txt ใช้รูปแบบที่ง่ายมาก บรรทัดละ Directive (คำสั่ง) เขียนแบบ Key: Value ตัวอย่าง:

User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /public/
Sitemap: https://yourdomain.com/sitemap.xml

ความหมายของ Directive ต่าง ๆ

ตัวอย่างการใช้งาน robots.txt

ตัวอย่างที่ 1: ปิดกั้นโฟลเดอร์ Admin และ Private

User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /wp-admin/
Sitemap: https://yourdomain.com/sitemap.xml

ความหมาย: ปิดกั้นทุก Bot ให้เข้า /admin/, /private/, และ /wp-admin/ (สำหรับ WordPress) แต่อนุญาตให้เข้าหน้าอื่น ๆ ได้

ตัวอย่างที่ 2: ปิดกั้นทั้งหมด ยกเว้นหน้าที่ต้องการ

User-agent: *
Disallow: /
Allow: /public/
Allow: /blog/
Sitemap: https://yourdomain.com/sitemap.xml

ความหมาย: ปิดกั้นทั้งหมด (Disallow: /) แต่อนุญาตให้เข้า /public/ และ /blog/ เท่านั้น (ใช้สำหรับเว็บที่ส่วนใหญ่เป็น Private)

ตัวอย่างที่ 3: ตั้งค่าต่างกันสำหรับ Bot ต่างชนิด

User-agent: Googlebot
Disallow: /staging/

User-agent: Bingbot
Disallow: /temp/

User-agent: *
Disallow: /admin/
Sitemap: https://yourdomain.com/sitemap.xml

ความหมาย: Google Bot ห้ามเข้า /staging/, Bing Bot ห้ามเข้า /temp/, Bot อื่น ๆ ทั้งหมด ห้ามเข้า /admin/

ตัวอย่างที่ 4: ตั้ง Crawl Delay (บอกให้ Bot ช้า)

User-agent: *
Crawl-delay: 1
Request-rate: 1/10

Disallow: /admin/
Sitemap: https://yourdomain.com/sitemap.xml

ความหมาย: บอกให้ Bot รอ 1 วินาที ระหว่าง Request แต่ละครั้ง (Crawl-delay: 1) และ Request rate เป็น 1 Request ต่อ 10 วินาที (เพื่อไม่ให้ใช้ Server Resource มากเกินไป)

Tip: ใช้ Crawl-delay เฉพาะเมื่อเว็บไซต์ของคุณช้ามากหรือ Server อ่อนแอ โดยปกติ Search Engine Bot ก็ช้าพอแล้ว

ตรวจสอบว่า robots.txt ทำงานถูกต้อง

หลังจากสร้างและอัพโหลด robots.txt แล้ว ให้ตรวจสอบด้วยวิธีต่อไปนี้:

# 1. เปิดเบราว์เซอร์และเข้าไป robots.txt
https://yourdomain.com/robots.txt

# 2. ตรวจสอบว่าไฟล์มีอยู่และแสดงข้อมูลถูกต้อง

# 3. ใช้ Google Search Console ตรวจสอบ
# เข้าไป Google Search Console → Settings → Crawl Stats
# Google จะแสดง Crawl Activity ที่เป็นไปตามตัวเลขใน robots.txt

# 4. ใช้ Google robots.txt Tester
# https://www.google.com/webmasters/tools/robots-testing-tool
# ใช้เครื่องมือนี้ทดสอบ URL ของคุณดูว่าเข้าถึงได้หรือไม่ตาม robots.txt

# 5. ตรวจสอบ Syntax ความถูกต้อง
# https://www.seobyweb.com/robots.txt-checker
# หรือเครื่องมือออนไลน์เช่นนี้ ช่วยตรวจสอบว่า Syntax ถูกต้องหรือไม่
Tip: ผ่านไปหลายวันหลัง Update robots.txt Google ค่อย Crawl ตามการตั้งค่าใหม่ ดังนั้นรอไประยะหนึ่ง (สัปดาห์ 1-2 สัปดาห์) ก่อนที่จะเห็นผลในการ Crawl Stat

แก้ปัญหาที่พบบ่อย

Error: "404 Not Found" เมื่อเข้า robots.txt

แสดงว่าไฟล์ robots.txt ยังไม่ได้สร้างหรือไม่ได้อัพโหลดไป public_html

Error: "Google ยังคง Crawl หน้าที่ฉันห้ามใน robots.txt"

ถึงแม้ว่า robots.txt บอก Disallow แต่ Google ก็อาจ Crawl หน้านั้นอยู่ ความเป็นไปได้:

Error: "หน้าที่ควรขึ้น Google หาย" หรือหน้า Public หายจาก Index

อาจเป็นเพราะการตั้งค่า robots.txt ผิดและบล็อกหน้าสำคัญ

Error: "Parameter หรือ Query String ไม่ได้บล็อก"

robots.txt ไม่สามารถบล็อก URL ด้วย Query String ได้ เช่น `https://yourdomain.com/page?id=123` ถ้าต้องการบล็อก URL แบบนี้ต้องใช้วิธีอื่น

วิธีแก้: ใช้ Google Search Console Parameters Setting หรือใช้ Meta Robots tag เพิ่มเติม ใน HTML header

Error: "หลายโดเมน (Domain) ใช้ robots.txt เดียว" ส่งผลการค้นหาสับสน

ถ้าคุณจัดการหลายโดเมน แต่ละโดเมนต้องมี robots.txt ของตัวเอง

วิธีแก้: สร้าง robots.txt ต่างกันสำหรับแต่ละโดเมน โดยแต่ละไฟล์ Sitemap ต้องชี้ไปยัง Sitemap ของโดเมนนั้น


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

Q: ถ้าเว็บไซต์ไม่มี robots.txt จะเกิดอะไรขึ้น?

A: ถ้าไม่มี robots.txt Search Engine Bot ก็ยังคง Crawl เว็บไซต์ได้ตามปกติ แต่ Bot จะ Crawl ทั้งหน้าที่สำคัญและไม่สำคัญ ซึ่งอาจทำให้เสียเวลา Crawl Budget และปล่อยให้หน้า Private ปรากฏใน Search ดังนั้น แนะนำให้สร้าง robots.txt แม้แต่ไฟล์ขั้นต่ำเพื่อควบคุม Bot

Q: robots.txt แบบขั้นต่ำที่ดีที่สุดคืออะไร?

A: สำหรับเว็บไซต์ส่วนใหญ่ robots.txt ที่ดีคือ:

User-agent: *
Disallow: /admin/
Disallow: /wp-admin/
Disallow: /private/
Sitemap: https://yourdomain.com/sitemap.xml
บรรทัดนี้บล็อก Admin Pages และเบิก Google รู้ว่า Sitemap อยู่ที่ไหน

Q: robots.txt ป้องกัน Hacker ได้หรือไม่?

A: ไม่ robots.txt มีไว้สำหรับ Bot และ Crawler ที่เคารพ robots.txt เท่านั้น Hacker ไม่มีหน้าที่ต้องเคารพ robots.txt เพราะฉะนั้น robots.txt ไม่สามารถป้องกัน Hack ได้ เพื่อความปลอดภัยจริง ต้องใช้ Password, Authentication, firewall และมาตรการ Security อื่น ๆ แทน