robots.txt คือไฟล์ที่บอกบอทของเสิร์ชเอนจินว่าเข้าไปคลาน URL ไหนได้บ้าง ส่วน sitemap.xml คือไฟล์รวมรายชื่อหน้าสำคัญที่อยากให้เสิร์ชเอนจินไปเจอ ตัวหนึ่งเป็นยาม อีกตัวเป็นแผนที่ ใช้แทนกันไม่ได้ และไม่มีไฟล์ไหนสั่งให้หน้าติดอันดับ
จุดที่คนพลาดมากที่สุดคือคิดว่า robots.txt ใช้ซ่อนหน้าไม่ให้ขึ้น Google ได้ ซึ่งไม่จริง Google เขียนตรงๆ ว่ามันไม่ใช่กลไกกันหน้าเว็บออกจากผลค้นหา ถ้าอยากให้หน้าหลุดต้องใช้ noindex และต้องปล่อยให้บอทอ่านหน้านั้นได้ด้วย
sitemap กับ robots.txt คืออะไร ต่างกันยังไง
ต่างกันที่หน้าที่ robots.txt บอกบอทว่าเข้าตรงไหนได้ ตรงไหนไม่ได้ ส่วน sitemap.xml บอกว่าหน้าสำคัญอยู่ที่ไหน ตัวแรกคุมการคลาน (crawling) ตัวหลังช่วยการค้นพบ (discovery) ไม่มีตัวไหนสั่งอันดับโดยตรง
robots.txt ต้องอยู่ที่ราก (root) ของโฮสต์เท่านั้น ส่วน sitemap วางที่ไหนก็ได้ แต่นิยมวางที่ /sitemap.xml
| หัวข้อเทียบ | robots.txt | sitemap.xml |
|---|---|---|
| หน้าที่หลัก | บอกว่าบอทเข้าได้หรือไม่ได้ตรงไหน | บอกว่าหน้าสำคัญอยู่ที่ไหนบ้าง |
| ควบคุมอะไร | การคลาน (Crawling) | การค้นพบ (Discovery) |
| ชนิดไฟล์ | ข้อความธรรมดา .txt (UTF-8) | XML หรือ RSS/Atom/Text |
| ตำแหน่ง | ต้องอยู่ root ของโฮสต์เท่านั้น | ที่ไหนก็ได้ นิยม /sitemap.xml |
| จำเป็นไหม | ไม่บังคับ ไม่มีก็เท่ากับอนุญาตทุกหน้า | ไม่บังคับ จำเป็นเมื่อเว็บใหญ่หรือใหม่ |
| ผลต่ออันดับ | ทางอ้อม ผ่านการคุมงบการคลาน | ทางอ้อม ช่วยให้เจอหน้าเร็วขึ้น |
| ขนาดจำกัด | 500 KiB ส่วนที่เกินถูกตัดทิ้ง | 50,000 URL หรือ 50MB ต่อไฟล์ |
| ทำให้หน้าหลุดจาก Google ได้ไหม | ไม่ได้ ต้องใช้ noindex | ไม่ได้ |
จุดที่คนเข้าใจผิดบ่อยที่สุด
คนจำนวนมากคิดว่าใส่ Disallow แล้วหน้านั้นจะหายจาก Google ความจริงคือ robots.txt คุมแค่การเข้าไปอ่าน ไม่ได้คุมการจัดทำดัชนี หน้าที่ถูก disallow ยังถูก index ได้ถ้ามีเว็บอื่นลิงก์มาหา แต่จะขึ้นแบบไม่มีคำอธิบาย ส่วน sitemap ก็เป็นแค่คำใบ้ ไม่ใช่คำสั่ง
robots.txt ทำงานยังไง มีคำสั่งอะไรบ้าง
robots.txt เป็นไฟล์ข้อความที่บอทอ่านก่อนเริ่มคลานเว็บ จุดประสงค์หลักตามที่ Google เขียนไว้คือกันเว็บถูกถล่มด้วย request จำนวนมาก ไม่ใช่เครื่องมือความปลอดภัย
ฟิลด์ที่ Google รองรับมีแค่ user-agent, allow, disallow และ sitemap นอกนั้นถูกข้ามทิ้ง แปลว่า crawl-delay, noindex ในไฟล์นี้ และ host ไม่มีผลกับ Google เลย อีกกฎที่พลาดกันเยอะคือ path เป็น case-sensitive และเมื่อกฎชนกัน กฎที่ยาวกว่าจะชนะ
- ขอบเขตผูกกับ host + protocol + port: www กับ non-www คนละไฟล์ subdomain ต้องมีไฟล์เอง (พลาดบ่อยตอน ย้ายโดเมน)
- ไฟล์จำกัด 500 KiB ส่วนเกินถูกมองข้าม และ Google แคชราว 24 ชั่วโมง แก้แล้วไม่เห็นผลทันที
- ไฟล์คืน 4xx เท่ากับไม่มี robots.txt คือคลานได้ทุกหน้า แต่ถ้าคืน 5xx Google จะหยุดคลานราว 12 ชั่วโมงและใช้แคชเดิมได้ถึง 30 วัน
ตัวอย่าง robots.txt ที่ใช้ได้จริง
เว็บบริษัททั่วไปใช้แค่สามบรรทัด: User-agent: * / Disallow: (เว้นว่างคืออนุญาตทั้งหมด) / Sitemap: https://example.com/sitemap.xml ฝั่ง WordPress มักบล็อก /wp-admin/ แล้วเปิด admin-ajax.php ไว้ ส่วนอีคอมเมิร์ซบล็อกหน้าตะกร้าและ URL พารามิเตอร์กรองสินค้า ซึ่งคนละเรื่องกับการแก้ duplicate content ด้วย canonical
เว็บแบบไหนจำเป็นต้องมี sitemap และแบบไหนไม่จำเป็น
sitemap คือไฟล์ที่ list URL ที่อยากให้เสิร์ชเอนจินเจอ มันช่วยการค้นพบหน้า ไม่ใช่การจัดอันดับ และ Google บอกเองว่าเว็บเล็กที่ลิงก์ภายในดีอยู่แล้วอาจไม่ต้องมีก็ได้
เกณฑ์จากเอกสาร Google คือเว็บที่มี 500 หน้าหรือน้อยกว่า และลิงก์ถึงกันครบ มักถูกค้นพบได้เอง ส่วนเว็บที่ควรมีคือเว็บใหญ่มาก เว็บใหม่ที่ยังไม่มีใครลิงก์มา และเว็บที่หน้าเชื่อมกันไม่ดี ถ้าอยู่กลุ่มหลัง การแก้ โครงสร้างเว็บไซต์และลิงก์ภายใน มักได้ผลกว่า
ในไฟล์ควรใส่เฉพาะ URL ที่เป็น canonical ไม่ควรมี URL ที่ redirect, 404 หรือ noindex ปน เพราะเป็นสัญญาณขัดกันเอง ส่วนการยิง ping endpoint เลิกใช้ตั้งแต่ปี 2023
lastmod สำคัญกว่า priority และ changefreq
เว็บไทยจำนวนมากยังใส่ priority 1.0 ให้ทุกหน้า ทั้งที่ Google ระบุว่าไม่ใช้ค่า priority และ changefreq แล้ว ตัวที่ยังมีความหมายคือ lastmod แต่ต้องตรงกับการแก้เนื้อหาหลักของหน้านั้นจริง ระบบที่ปั๊ม lastmod ให้ทุกหน้าทุกวันเสี่ยงที่ Google จะเลิกเชื่อทั้งไฟล์
ถ้า Disallow ใน robots.txt แล้ว หน้านั้นจะหลุดจาก Google ไหม
ไม่หลุด เพราะ robots.txt คุมการคลาน ไม่ได้คุมการจัดทำดัชนี ถ้ามีเว็บอื่นลิงก์มาหา Google ยังนำ URL ไป index ได้โดยไม่ต้องอ่านเนื้อหา ผลคือหน้าโผล่แบบลิงก์เปล่าไม่มีคำอธิบาย
กับดักคลาสสิกคือใส่ meta noindex แล้ว Disallow หน้านั้นด้วยเพราะอยากให้หายเร็วๆ ผลคือบอทอ่านไม่ได้ จึงไม่มีวันเห็นคำสั่ง noindex วิธีที่ถูกคือปล่อยให้คลานได้ก่อน แล้วใส่ noindex ผ่าน meta tag หรือ X-Robots-Tag ส่วนสถานะ Indexed, though blocked by robots.txt คือหน้าที่บอทเข้าไม่ได้แต่ URL ถูก index แล้ว แก้ด้วยการปลดบล็อกก่อนเสมอ
| สิ่งที่อยากทำ | เครื่องมือที่ถูกต้อง | ห้ามใช้ |
|---|---|---|
| ไม่ให้บอทเข้าไปอ่านหน้า | Disallow ใน robots.txt | - |
| ไม่ให้หน้าขึ้นผลค้นหา | meta noindex โดยต้องปล่อยให้คลานได้ | robots.txt |
| ซ่อนข้อมูลลับ | ตั้งรหัสผ่าน หรือลบไฟล์ทิ้ง | robots.txt |
| ลดภาระเซิร์ฟเวอร์จากบอท | Disallow หน้าซ้ำหรือหน้าฟิลเตอร์ | crawl-delay (Google ไม่อ่าน) |
| บอกว่าหน้าไหนคือตัวจริงเมื่อเนื้อหาซ้ำ | canonical | robots.txt |
ตั้งค่า sitemap กับ robots.txt ยังไงให้ถูก และเช็คยังไงว่าใช้ได้จริง
สามขั้นตอนคือ สร้าง sitemap ให้อัปเดตอัตโนมัติ ประกาศบรรทัด Sitemap ใน robots.txt แล้วส่งและตรวจผลใน Search Console
บรรทัดประกาศต้องเป็น URL แบบเต็ม เช่น Sitemap: https://example.com/sitemap.xml ใส่ได้หลายบรรทัดและไม่ผูกกับ user-agent ใด แล้วตรวจของจริง เปิด /robots.txt ในหน้าต่างส่วนตัว ดู robots.txt report ว่า Google อ่านไฟล์ล่าสุดเมื่อไหร่ ใช้ URL Inspection เช็ค Crawl allowed กับ Indexing allowed และดู Sitemaps report ว่าขึ้น Success (คู่มือ Search Console)
- Disallow: / ที่ค้างจากตอนทำเว็บบน staging เป็นสาเหตุที่เจอบ่อยที่สุดข้อหนึ่งที่เว็บใหม่ไม่ติด index เว็บเพิ่งเปิดแล้วไม่ขึ้นเลย ให้เช็คบรรทัดนี้ก่อน
- WordPress มีสวิตช์ Settings > Reading > Search engine visibility ที่ห้ามคลานทั้งเว็บ เผลอติ๊กแล้วลืมกันบ่อย
- บล็อกโฟลเดอร์ CSS/JS จน Google เรนเดอร์หน้าไม่ออก
- sitemap มี URL ที่ 404, redirect, noindex หรือ URL ที่ตัวเอง Disallow ไว้ปนอยู่
ตั้งค่ายังไงในแต่ละแพลตฟอร์ม
WordPress ตั้งแต่ 5.5 มี sitemap ในตัวที่ /wp-sitemap.xml ถ้าติดปลั๊กอินอย่าง Yoast หรือ Rank Math ปลั๊กอินมักเสิร์ฟไฟล์ของตัวเองแทน พร้อมเขียนบรรทัด Sitemap ลง robots.txt ให้ กรณีนี้ robots.txt เป็นไฟล์เสมือนที่ต้องแก้ในหน้าตั้งค่าปลั๊กอิน ส่วน Next.js ใช้ app/robots.ts กับ app/sitemap.ts
ยุค AI Search ยังต้องใช้ robots.txt กับ sitemap อยู่ไหม
ยังต้องใช้ และ robots.txt มีบทบาทมากกว่าเดิม เพราะบอทของผู้ให้บริการ AI ก็อ่านไฟล์นี้ มันจึงเป็นสวิตช์ว่าจะให้เนื้อหาเราถูกดึงไปใช้ตอบและอ้างอิงในเครื่องมือ AI หรือไม่
บอทแต่ละตัวทำงานคนละอย่าง บางตัวเก็บข้อมูลไปเทรนโมเดล บางตัวเป็นเสิร์ชเอนจินที่ดึงเนื้อหามาอ้างอิงพร้อมลิงก์กลับ การบล็อกยกแผงทุกบอท AI เพราะกลัวโดนขโมยเนื้อหา จึงมักทำให้เว็บหลุดจากการถูกอ้างอิงใน AI Search ไปด้วย ทางที่ดีกว่าคือเลือกทีละตัว
ส่วน llms.txt เป็นไฟล์ที่คัดเนื้อหาสำคัญไว้ให้โมเดลอ่านง่าย ตอนนี้ยังเป็นเพียงข้อเสนอ ยังไม่มีเสิร์ชเอนจินใหญ่ประกาศรองรับ ต้นทุนต่ำจะทำก็ได้ แต่อย่าคาดหวังว่าเป็นตัวชี้ขาด ถ้าอยากรู้ว่าเว็บตัวเองตั้งค่าถูกหรือยัง เริ่มจาก ตรวจสุขภาพเว็บ
| User-agent | ของใคร | ใช้ทำอะไร | บล็อกแล้วกระทบอะไร |
|---|---|---|---|
| GPTBot | OpenAI | เก็บข้อมูลไปเทรนโมเดล | ไม่ถูกใช้เทรน แต่ไม่กระทบการค้นหาโดยตรง |
| OAI-SearchBot | OpenAI | เก็บข้อมูลสำหรับฟีเจอร์ค้นหา | เสี่ยงไม่ถูกอ้างอิงในผลค้นหาของ ChatGPT |
| ClaudeBot | Anthropic | เก็บข้อมูลไปเทรนโมเดล | ไม่ถูกใช้เทรน |
| Google-Extended | คุมการใช้เนื้อหากับผลิตภัณฑ์ AI ของ Google | ไม่กระทบอันดับใน Google Search ปกติ | |
| PerplexityBot | Perplexity | เก็บข้อมูลสำหรับตอบพร้อมอ้างอิง | เสี่ยงหายจากผลลัพธ์ของ Perplexity |
| Googlebot | คลานเว็บสำหรับ Google Search | บล็อกแล้วเว็บหลุดจากผลค้นหาปกติ ห้ามทำ |
คำถามที่พบบ่อย
01เว็บไซต์ต้องมีทั้ง sitemap และ robots.txt เลยไหม+
ไม่บังคับทั้งคู่ แต่แนะนำให้มีทั้งสองไฟล์ เว็บเล็กไม่เกินราว 500 หน้าที่ลิงก์ภายในดีอยู่แล้วอาจไม่ต้องมี sitemap ตามเกณฑ์ของ Google ส่วนเว็บที่ไม่มี robots.txt ถือว่าอนุญาตให้คลานทุกหน้า
02อยากบล็อกหน้าไม่ให้ขึ้น Google ต้องใช้ robots.txt หรือ noindex+
ต้องใช้ noindex ผ่าน meta tag หรือ HTTP header X-Robots-Tag และต้องไม่ Disallow หน้านั้นด้วย เพราะถ้าบอทอ่านหน้าไม่ได้ ก็จะไม่มีวันเห็นคำสั่ง noindex และหน้าอาจยังโผล่ในผลค้นหาต่อไป
03ส่ง sitemap แล้วทำไม Google ยังไม่ index หน้าของเรา+
เพราะ sitemap เป็นการแนะนำ ไม่ใช่คำสั่ง Google ระบุเองว่าไม่รับประกันว่าทุก URL จะถูกคลานและจัดทำดัชนี ปกติใช้เวลาไม่กี่วันถึงหลายสัปดาห์ ถ้านานผิดปกติให้ดูคุณภาพเนื้อหาและลิงก์ภายในที่ชี้ไปหน้านั้น
04แก้ robots.txt แล้วมีผลทันทีเลยไหม+
ไม่ทันที Google แคชไฟล์นี้ราว 24 ชั่วโมงและอาจนานกว่านั้น ถ้าเป็นเรื่องด่วนเช่นเผลอปล่อย Disallow ทั้งเว็บค้างไว้ ให้แก้ไฟล์แล้วขอ recrawl ผ่าน robots.txt report ใน Search Console

