ตั้งค่า robots.txt ใน WordPress ให้ถูกต้อง

สั่ง Search Engine Bot ว่าหน้าไหนควร Crawl ป้องกัน Google Index ไฟล์ที่ไม่ต้องการ

ตั้งค่า robots.txt ใน WordPress ให้ถูกต้อง WordPress

robots.txt คืออะไร และสำคัญแค่ไหนสำหรับ WordPress?

ไฟล์ robots.txt คือไฟล์ข้อความธรรมดาที่วางไว้ที่ root ของเว็บไซต์ ทำหน้าที่แจ้ง Search Engine Bot (หรือ Web Crawler) ว่าหน้าหรือโฟลเดอร์ไหนให้ Crawl ได้ และหน้าไหนห้ามเข้า เปรียบเหมือน "ป้ายบอกทาง" ที่แขวนไว้หน้าเว็บ ก่อนที่ Bot จะเข้ามาสำรวจ

สำหรับ WordPress นั้นมีโฟลเดอร์และไฟล์จำนวนมากที่ไม่ควรถูก Google Index เช่น wp-admin, wp-includes, หรือไฟล์ PHP ต่าง ๆ หากปล่อยให้ Bot เข้าถึงโฟลเดอร์เหล่านี้โดยไม่มีการจัดการ อาจส่งผลให้ Crawl Budget ถูกใช้ไปกับหน้าที่ไม่มีคุณค่า ทำให้หน้าสำคัญถูก Index ช้าลงหรือมีปัญหา SEO ตามมา

WordPress จัดการ robots.txt อย่างไร?

WordPress มีระบบสร้าง robots.txt แบบ "virtual" หมายความว่า WordPress จะสร้างไฟล์นี้แบบ Dynamic ผ่าน PHP โดยไม่มีไฟล์จริงอยู่บน Server เมื่อ Bot เข้ามาขอ /robots.txt WordPress จะส่งเนื้อหาที่สร้างขึ้นมาตอบ

แต่ถ้าคุณสร้างไฟล์ robots.txt จริงขึ้นมาใน root ของเว็บ WordPress จะใช้ไฟล์จริงนั้นแทนทันที นี่คือวิธีที่ได้รับความนิยม เพราะควบคุมเนื้อหาได้สมบูรณ์กว่า

robots.txt เริ่มต้นของ WordPress มีอะไรบ้าง?

WordPress ค่าเริ่มต้นจะสร้าง robots.txt ประมาณนี้ให้อัตโนมัติ:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

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

การตั้งค่านี้บอกให้ Bot ทุกตัวห้ามเข้า /wp-admin/ แต่ยกเว้น admin-ajax.php ที่ใช้สำหรับ AJAX request ในหน้าเว็บ และบอก URL ของ Sitemap ซึ่งช่วยให้ Google รู้ว่า Sitemap อยู่ที่ไหน

วิธีดู robots.txt ปัจจุบันของ WordPress

ก่อนแก้ไข ควรดูว่าตอนนี้ robots.txt ของเว็บเป็นอย่างไรก่อน โดยเปิด Browser แล้วเข้าไปที่:

https://yourdomain.com/robots.txt

หากหน้าจอแสดงข้อความที่มี User-agent และ Disallow แสดงว่า robots.txt ทำงานอยู่ แต่ถ้าเจอ 404 อาจมีปัญหากับ Permalink หรือ .htaccess

วิธีแก้ไข robots.txt ผ่าน WordPress Admin

วิธีที่สะดวกที่สุดสำหรับผู้ใช้ Shared Hosting คือแก้ผ่าน Plugin เช่น Yoast SEO หรือ Rank Math ซึ่งมีหน้าจัดการ robots.txt ในตัว

ใช้ Yoast SEO:

  1. เข้า WordPress Admin → Yoast SEO → Tools
  2. คลิก File Editor
  3. คลิก robots.txt แล้วแก้ไขเนื้อหาได้เลย
  4. คลิก Save changes to robots.txt
หมายเหตุ: Yoast จะสร้างไฟล์ robots.txt จริงบน Server ทันทีที่กด Save ซึ่งจะ Override ไฟล์ Virtual ของ WordPress

วิธีสร้างหรือแก้ไข robots.txt ผ่าน cPanel File Manager

สำหรับผู้ใช้ Shared Hosting ที่ต้องการควบคุมเต็มรูปแบบ สามารถสร้างหรือแก้ไขไฟล์ robots.txt โดยตรงผ่าน cPanel ได้ดังนี้:

  1. Login เข้า cPanel ของ Hosting
  2. เข้าเมนู File Manager
  3. นำทางไปที่โฟลเดอร์ public_html (หรือโฟลเดอร์ root ของ WordPress)
  4. หาไฟล์ robots.txt ถ้ามีอยู่แล้วให้คลิกขวา → Edit, ถ้ายังไม่มีให้คลิก New File แล้วตั้งชื่อ robots.txt
  5. วางเนื้อหาที่ต้องการ แล้วกด Save Changes

ตัวอย่าง robots.txt ที่แนะนำสำหรับ WordPress

ด้านล่างคือตัวอย่าง robots.txt ที่ครอบคลุมและเหมาะสมสำหรับเว็บ WordPress ทั่วไป:

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/cache/
Disallow: /?s=
Disallow: /search/
Disallow: /tag/
Disallow: /author/
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /trackback/
Allow: /wp-admin/admin-ajax.php
Allow: /wp-content/uploads/
Allow: /wp-content/themes/

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

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

คำอธิบายแต่ละบรรทัด:

กฎสำคัญที่ควรรู้เกี่ยวกับ robots.txt


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

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

# 1. ดูเนื้อหา robots.txt ผ่าน Browser โดยตรง
https://yourdomain.com/robots.txt

# 2. ใช้ Google Search Console → Settings → robots.txt tester
# (เข้า Search Console แล้วค้นหา "robots.txt Tester" ใน เมนู Legacy Tools)

# 3. ทดสอบด้วย curl บน Terminal (สำหรับผู้ใช้ Mac/Linux)
curl -I https://yourdomain.com/robots.txt

# 4. ตรวจสอบว่า URL ที่ Disallow จริง ๆ แล้ว Bot เข้าไม่ได้
# ใน Google Search Console → URL Inspection → ใส่ URL ที่ Disallow ไว้
# แล้วดูว่า Googlebot สามารถ Crawl ได้หรือไม่

# 5. ตรวจสอบ Sitemap ว่าถูกต้องและ Google รับรู้
https://yourdomain.com/sitemap.xml
Tip: ใช้เครื่องมือ robots.txt Tester ใน Google Search Console ซึ่งจะแสดงให้เห็นทันทีว่า URL ไหน Block ไว้ และ Googlebot จะมองเห็นไฟล์นั้นอย่างไร เป็นวิธีที่แม่นยำที่สุด

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

Error: "robots.txt มี Disallow: / ซึ่งบล็อกทั้งเว็บ"

ปัญหานี้เกิดขึ้นบ่อยมากเมื่อผู้ใช้ตั้งค่า WordPress ในโหมด Development แล้วลืมเปลี่ยน ให้ตรวจสอบที่ WordPress Admin → Settings → Reading แล้วดูว่ามีการติ๊ก "Discourage search engines from indexing this site" อยู่หรือเปล่า ถ้าติ๊กอยู่ให้เอาออก แล้ว WordPress จะลบบรรทัด Disallow: / ออกเอง

Error: "robots.txt ที่แก้ไขไม่มีผล ยังเห็นข้อความเก่าอยู่"

อาจเกิดจาก Caching ที่ Plugin Cache หรือ CDN ให้ลองล้าง Cache ของ Plugin เช่น WP Super Cache, W3 Total Cache หรือ LiteSpeed Cache แล้วลองดูใหม่ ถ้ายังเหมือนเดิม ให้เข้า cPanel → File Manager ตรวจสอบว่าไฟล์ robots.txt ถูกบันทึกจริงหรือไม่ และดู Timestamp ว่าอัพเดทล่าสุดเมื่อไหร่

Error: "Google บอกว่า Sitemap ใน robots.txt ไม่ถูกต้อง"

ตรวจสอบ URL ของ Sitemap ใน robots.txt ว่าตรงกับ URL จริงหรือไม่ โดยเฉพาะ HTTPS vs HTTP และ www vs non-www Plugin SEO บางตัวอาจสร้าง Sitemap ที่ URL ต่างออกไป เช่น /sitemap_index.xml แทน /sitemap.xml ให้ตรวจสอบ URL จริงก่อนแล้วค่อยแก้

# ตรวจสอบ URL ของ Sitemap จริง ๆ ก่อน
# ใน Yoast SEO: Yoast SEO → General → Features → XML Sitemaps → ดูลิ้งค์
https://yourdomain.com/sitemap.xml
https://yourdomain.com/sitemap_index.xml
https://yourdomain.com/wp-sitemap.xml

Error: "ไฟล์รูปภาพ Upload ไม่ถูก Google Index"

บางครั้งการตั้งค่า Disallow แบบกว้างเกินไปอาจบล็อก /wp-content/uploads/ โดยไม่ตั้งใจ ให้ตรวจสอบว่าใน robots.txt มีบรรทัด Allow: /wp-content/uploads/ อยู่ก่อน Disallow: /wp-content/ เสมอ เพราะ Google จะใช้กฎที่ Specific ที่สุดก่อน

Error: "WordPress สร้าง robots.txt ซ้ำซ้อนกับไฟล์จริงที่มีอยู่"

เมื่อมีทั้งไฟล์ robots.txt จริงและ WordPress Virtual robots.txt พร้อมกัน WordPress จะใช้ไฟล์จริงเสมอ ปัญหาจะเกิดก็ต่อเมื่อ Plugin SEO พยายามเขียนทับไฟล์จริงโดยไม่ตั้งใจ วิธีแก้คือเลือกทำแบบใดแบบหนึ่ง ระหว่างใช้ไฟล์จริงผ่าน cPanel หรือใช้ Plugin SEO จัดการอย่างเดียว ไม่ผสมกัน


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

Q: ถ้าไม่มีไฟล์ robots.txt เลย Google จะทำอย่างไร?

A: Google จะถือว่าทั้งเว็บอนุญาตให้ Crawl ได้ทุกหน้า ซึ่งไม่ใช่เรื่องผิด แต่ทำให้ Crawl Budget ถูกใช้ไปกับหน้าที่ไม่มีคุณค่า เช่น หน้า Admin Login หรือ Result ของการค้นหาในเว็บ ควรมี robots.txt แม้จะเป็นแบบพื้นฐานก็ดีกว่าไม่มีเลย

Q: robots.txt ต่างจาก noindex meta tag อย่างไร?

A: robots.txt ป้องกันการ Crawl (Bot จะไม่เข้าไปอ่านหน้านั้นเลย) ส่วน noindex ป้องกันการ Index (Bot เข้าไปอ่านได้แต่จะไม่นำไปใส่ผลการค้นหา) ถ้า Disallow ใน robots.txt หน้าที่มี noindex Google อาจไม่ได้อ่าน noindex จึงยังแสดงในผลการค้นหาอยู่ได้ ดังนั้นอย่า Disallow หน้าที่คุณต้องการซ่อนออกจาก Index ควรใช้ noindex meta tag แทน

Q: ควร Disallow /wp-content/ ทั้งโฟลเดอร์ไหม?

A: ไม่ควร เพราะใน /wp-content/uploads/ มีรูปภาพที่ควรถูก Index โดย Google Images ซึ่งเป็น Traffic ฟรีที่ดี ควร Disallow แค่โฟลเดอร์ย่อยที่ไม่ต้องการ เช่น /wp-content/plugins/ และ /wp-content/cache/ แต่ Allow /wp-content/uploads/ ไว้เสมอ