สรุปสั้น ๆ (TL;DR)
- 301 บอกเบราว์เซอร์และ Google ว่า URL ย้ายถาวร Google ถือว่า 301 และ 308 เป็นสัญญาณ canonical ที่แรง ส่วน 302, 303 และ 307 เป็นสัญญาณอ่อน
- Google บอกตั้งแต่ปี 2559 ว่า redirect กลุ่ม 30x ไม่ทำให้ PageRank ลดลง แต่การ redirect ไปหน้าที่ไม่เกี่ยวข้องอย่างหน้าแรกอาจถูกมองเป็น soft 404
- Googlebot ตาม redirect ได้สูงสุด 10 ทอด จึงควรยุบ chain ให้เหลือทอดเดียวและแก้ลิงก์ภายในให้ชี้ไป URL สุดท้าย
- แนวทางการย้ายเว็บไซต์ของ Google แนะนำให้เก็บ redirect ไว้นานที่สุด โดยทั่วไปอย่างน้อยหนึ่งปี
301 redirect คือการตอบกลับจากเซิร์ฟเวอร์ที่บอกเบราว์เซอร์และเสิร์ชเอนจินว่าหน้าเว็บย้ายไปอยู่ URL ใหม่อย่างถาวร และพาผู้เข้าชมไปที่นั่นโดยอัตโนมัติ ควรใช้ 301 ทุกครั้งที่ URL เปลี่ยนแบบถาวร เช่น เปลี่ยน slug รวมหน้า เปลี่ยนเป็น HTTPS หรือย้ายโดเมน เพื่อให้ผู้ใช้ไปถึงหน้าที่ถูกต้อง และ Google โอนการทำดัชนีกับสัญญาณการจัดอันดับไปยังที่อยู่ใหม่
301 redirect ทำงานอย่างไร
เมื่อเบราว์เซอร์หรือ crawler เรียก URL เซิร์ฟเวอร์จะตอบด้วยรหัสสถานะ HTTP รหัส 200 แปลว่า "นี่คือหน้าเว็บ" ส่วน 301 แปลว่า "Moved Permanently" (ย้ายถาวร) และในการตอบกลับจะมี Location header ที่ระบุ URL ใหม่ เบราว์เซอร์จะเรียก URL นั้นแทน โดยผู้เข้าชมมักไม่รู้ตัว Googlebot ก็ทำแบบเดียวกัน และถือว่า redirect แบบถาวรเป็นสัญญาณแรงว่า URL ใหม่ควรเป็น URL หลัก (canonical) ที่แสดงในผลการค้นหา
เหตุผลที่พบบ่อยในการใช้ 301:
- เปลี่ยน URL หรือ slug ของหน้า
- รวมหน้าที่เนื้อหาบางสองหน้าเป็นหน้าเดียวที่แข็งแรงกว่า
- ลบหน้าที่มีหน้าทดแทนใกล้เคียง
- ย้ายจาก HTTP เป็น HTTPS หรือระหว่าง www กับไม่มี www
- ย้ายเว็บไซต์ไปโดเมนใหม่
- รวม URL แคมเปญเก่าหรือพาธที่ซ้ำกัน
301 กับ 302, 307 และ 308 ต่างกันอย่างไร
รหัส redirect แบ่งเป็นสองกลุ่ม redirect แบบถาวรบอกว่า URL เก่าจบแล้ว ส่วนแบบชั่วคราวบอกว่า URL เก่าจะกลับมา เอกสารของ Google ถือว่า 301 และ 308 เป็นสัญญาณแรงว่าปลายทางควรเป็น canonical ส่วน 302, 303 และ 307 เป็นสัญญาณอ่อน
| รหัส | ความหมาย | ใช้เมื่อไร |
|---|---|---|
| 301 Moved Permanently | ย้ายถาวร | เปลี่ยน URL รวมหน้า ย้ายเป็น HTTPS และย้ายโดเมน |
| 308 Permanent Redirect | ย้ายถาวรโดยคงวิธีการร้องขอเดิม | เหมือน 301 ในกรณีที่ฟอร์มแบบ POST ต้องยังเป็น POST |
| 302 Found | ย้ายชั่วคราว | หน้าปิดปรับปรุงช่วงสั้น สลับสินค้าที่หมดสต็อก การทดสอบ A/B |
| 307 Temporary Redirect | ย้ายชั่วคราวโดยคงวิธีการร้องขอเดิม | ย้ายชั่วคราวสำหรับการส่งฟอร์ม และเบราว์เซอร์ใช้ภายในสำหรับ HSTS ด้วย |
กฎในทางปฏิบัติง่ายมาก ถ้าคาดว่า URL เก่าจะกลับมา ใช้ 302 หรือ 307 ถ้าไม่ ใช้ 301 หรือ 308 การปล่อย 302 ไว้หลายเดือนสำหรับการเปลี่ยนแปลงถาวรเป็นการส่งสัญญาณที่ขัดกัน และ Google อาจถือว่าเป็นแบบถาวรในที่สุด แต่คุณจะควบคุมไม่ได้ว่าเมื่อไร
ปี 2569 แล้ว 301 ยังส่ง link equity ได้ครบหรือไม่
Google บอกว่า redirect กลุ่ม 30x ไม่ทำให้ PageRank ลดลง Gary Illyes จาก Google พูดเรื่องนี้ต่อสาธารณะในปี 2559 และเป็นจุดยืนของ Google มาตั้งแต่นั้น ในทางปฏิบัติ 301 ไปยังหน้าที่ตรงกันจะโอนสัญญาณของ URL เก่าไปยัง URL ใหม่
สิ่งที่ทำให้เสียคุณค่าคือการ redirect ไปหน้าที่ไม่ใช่ตัวทดแทนจริง การ redirect หน้าสินค้าที่ลบแล้วไปหน้าแรก หรือส่งหลายหน้าที่ไม่เกี่ยวกันไปหมวดเดียว อาจถูกมองเป็น soft 404 ซึ่งหมายความว่าสัญญาณเดิมจะไม่ถูกส่งต่อ ปลายทางของ redirect ควรตอบความต้องการเดียวกับหน้าที่มันแทนที่
ตั้งค่า 301 redirect อย่างไร
Apache และ .htaccess
บนเซิร์ฟเวอร์ Apache สามารถเพิ่มกฎในไฟล์ .htaccess ที่ root ของเว็บไซต์ การ redirect หน้าเดียวใช้รูปแบบของ mod_alias คือ Redirect 301 /old-page/ https://www.example.com/new-page/ ส่วน redirect ตามรูปแบบ เช่น ส่งทุก URL จากโฟลเดอร์เก่าไปโฟลเดอร์ใหม่ ใช้ mod_rewrite กับ RewriteRule และ flag R=301 ควรทดสอบบนสำเนา staging ก่อน เพราะไวยากรณ์ผิดใน .htaccess ทำให้ทั้งเว็บล่มได้
Nginx
บน Nginx การ redirect อยู่ในไฟล์ตั้งค่าเซิร์ฟเวอร์ เช่น location block ที่มี return 301 https://www.example.com/new-page/; และต้อง reload Nginx ให้การตั้งค่ามีผล
WordPress
เมื่อเปลี่ยน slug ของโพสต์ที่เผยแพร่แล้ว WordPress จะจำ slug เก่าและ redirect ให้อัตโนมัติ สำหรับเพจ custom post type หมวดหมู่ และการเปลี่ยนจำนวนมาก ให้ใช้ปลั๊กอิน redirect เช่น Redirection หรือตัวจัดการ redirect ใน Rank Math และ Yoast SEO Premium ปลั๊กอินยังบันทึก error 404 ซึ่งช่วยหา URL ที่ยังต้อง redirect บนโฮสต์แบบ managed การตั้ง redirect ระดับเซิร์ฟเวอร์ผ่านแดชบอร์ดของโฮสต์ทำงานเร็วกว่าปลั๊กอิน เพราะทำงานก่อน WordPress โหลด
Shopify
เมื่อแก้ URL handle ของสินค้า คอลเลกชัน เพจ หรือบทความ Shopify จะแสดงตัวเลือก "Create a URL redirect" ซึ่งควรเปิดไว้ นอกจากนี้ยังเพิ่ม นำเข้าด้วย CSV และส่งออก redirect ได้ในส่วน URL redirects ของหลังบ้าน Shopify ทั้งนี้ Shopify จะ redirect เฉพาะ URL ที่ตอบ 404 เท่านั้น ดังนั้น redirect จะไม่ทำงานถ้า URL เก่ายังมีอยู่
Redirect chain และ loop คืออะไร และหาได้อย่างไร
Redirect chain คือ redirect ต่อกันเป็นทอด ๆ หน้า A ไป B แล้ว B ไป C มักสะสมมาจากการรีดีไซน์หลายรอบ เอกสารการ crawl ของ Google ระบุว่า Googlebot ตาม redirect ได้สูงสุด 10 ทอด หลังจากนั้นจะหยุดและรายงาน redirect error แต่ทุกทอดเพิ่มเวลาโหลดให้ผู้ใช้และสิ้นเปลืองการ crawl ตั้งแต่ก่อนถึงขีดจำกัดนั้นมาก ส่วน redirect loop คือ A ส่งไป B แล้ว B ส่งกลับมา A หน้าจึงไม่มีวันโหลดขึ้น
วิธีหา:
- Crawl เว็บไซต์ด้วย SEO crawler แล้ว export รายงาน redirect chains
- ดูรายงาน Page indexing ใน Search Console ในรายการ "Redirect error" และ "Page with redirect"
- ทดสอบ URL ทีละตัวด้วยเครื่องมือตรวจ header หรือ URL Inspection tool
- แก้แต่ละ chain ให้ URL แรกชี้ตรงไปยังปลายทางสุดท้าย และแก้ลิงก์ภายในให้ชี้ไป URL สุดท้าย เพื่อไม่ต้องผ่าน redirect เลย
ทำ redirect map สำหรับการย้ายเว็บไซต์
การรีดีไซน์ เปลี่ยนแพลตฟอร์ม หรือย้ายโดเมน คือจุดที่ redirect ตัดสินว่าทราฟฟิกจะรอดหรือไม่ redirect map คือสเปรดชีตที่ระบุ URL เก่าทุกตัวและ URL ใหม่ที่มันควรไป
- รวบรวม URL เก่าจากการ crawl, XML sitemap, ข้อมูลประสิทธิภาพใน Search Console และหน้า landing ในระบบวิเคราะห์ เพื่อไม่ให้หลุดหน้าที่มีทราฟฟิกหรือแบ็คลิงก์
- จับคู่ URL เก่าแต่ละตัวกับ URL ใหม่ที่ใกล้เคียงที่สุด แบบหนึ่งต่อหนึ่งเท่าที่ทำได้
- หน้าที่ไม่มีหน้าเทียบเท่า ให้ตัดสินใจอย่างตั้งใจระหว่าง redirect ไปหน้าที่เกี่ยวข้องที่สุด กับการตอบ 404 หรือ 410
- ทดสอบ map บน staging ก่อนเปิดตัว แล้ว crawl รายการ URL เก่าอีกครั้งหลังเปิดตัว เพื่อยืนยันว่าแต่ละตัวตอบ 301 ครั้งเดียวไปยังหน้า 200
- สำหรับการย้ายโดเมน ใช้เครื่องมือ Change of Address ใน Search Console หลังจาก redirect ใช้งานได้แล้ว
- เก็บ redirect ไว้นานที่สุดเท่าที่ทำได้ แนวทางการย้ายเว็บไซต์ของ Google บอกว่าโดยทั่วไปอย่างน้อยหนึ่งปี
ข้อผิดพลาดเรื่อง 301 ที่ทำให้ทราฟฟิกหายในข้ามคืน
- Redirect URL เก่าทั้งหมดไปหน้าแรก แทนการจับคู่กับหน้าที่เทียบเท่า
- ใช้ 302 สำหรับการย้ายถาวร เพราะค่าเริ่มต้นของแพลตฟอร์มเป็นแบบชั่วคราว
- ลบ redirect ไม่กี่เดือนหลังย้ายเว็บ เพื่อ "ทำความสะอาด" เซิร์ฟเวอร์
- ลืม URL รูปแบบอื่น ทั้ง HTTP กับ HTTPS มีและไม่มี slash ท้าย ตัวพิมพ์ใหญ่กับเล็ก และ URL เก่าที่มี query string
- ปล่อยให้ลิงก์ภายใน canonical tag และ XML sitemap ยังชี้ไป URL เก่า ทำให้เว็บส่ง crawler ผ่าน redirect อยู่ตลอด
- ทดสอบ redirect ในเบราว์เซอร์ปกติ เบราว์เซอร์ cache 301 ไว้นานมาก กฎที่แก้แล้วอาจยังดูเหมือนเสียจนกว่าจะล้าง cache
ความหมายสำหรับเว็บไซต์ไทย
เว็บไซต์ไทยจำนวนมากมี slug เป็นอักษรไทย เบราว์เซอร์แสดงเป็นภาษาไทย แต่เซิร์ฟเวอร์และ crawler เห็นเป็นสตริงที่เข้ารหัสแบบ percent-encoding และ slug เดียวกันอาจปรากฏในรูปแบบการเข้ารหัสหรือตัวพิมพ์ต่างกันในลิงก์เก่า เวลาทำ redirect map ให้ export URL ในรูปแบบที่เข้ารหัส และทดสอบทั้งเวอร์ชันภาษาไทยและเวอร์ชันเข้ารหัส เว็บไซต์สองภาษาต้องมี redirect map สำหรับทั้งสองภาษา และต้องให้ hreflang ชี้ไป URL ใหม่ ไม่ใช่ URL ที่ถูก redirect การตรวจ SEO เชิงเทคนิค จะเจอ chain, loop และ redirect error บริการดูแลเว็บไซต์ ช่วยจัดการกฎระดับเซิร์ฟเวอร์ได้อย่างปลอดภัย และการทำเว็บใหม่ผ่าน บริการออกแบบเว็บไซต์ หรือ การปรับแต่ง WordPress ควรมี redirect map ตั้งแต่การประชุมวางแผนครั้งแรก ไม่ใช่สัปดาห์ที่จะเปิดตัว
คำถามที่พบบ่อยเกี่ยวกับ 301 redirect
301 redirect ใช้ทำอะไร
301 redirect ใช้ส่งผู้ใช้และเสิร์ชเอนจินจาก URL เก่าไป URL ใหม่อย่างถาวร ใช้เมื่อเปลี่ยน URL รวมหน้า เปลี่ยนเป็น HTTPS และย้ายโดเมน เพื่อให้ทราฟฟิกและสัญญาณการค้นหาย้ายไปยังหน้าใหม่
301 หรือ 302 ดีกว่าสำหรับ SEO
ไม่มีแบบไหนดีกว่าโดยทั่วไป เพราะความหมายต่างกัน ใช้ 301 กับการเปลี่ยนแปลงถาวร และ 302 กับการเปลี่ยนแปลงชั่วคราว เพราะ Google ถือว่า 301 เป็นสัญญาณ canonical ที่แรง และ 302 เป็นสัญญาณอ่อน
ควรเก็บ 301 redirect ไว้นานแค่ไหน
นานที่สุดเท่าที่ทำได้ และอย่างน้อยหนึ่งปี แนวทางการย้ายเว็บไซต์ของ Google แนะนำขั้นต่ำนี้ และการเก็บไว้นานกว่านั้นช่วยปกป้องแบ็คลิงก์และบุ๊กมาร์กเก่า
redirect เยอะเกินไปทำให้เว็บเสียหายไหม
redirect เดี่ยว ๆ จำนวนมากไม่ใช่ปัญหาในตัวเอง ปัญหาคือ chain และ loop เพราะทำให้หน้าช้าและเปลืองการ crawl และ Googlebot จะหยุดตามหลัง 10 ทอด
redirect หน้าที่ลบแล้วไปหน้าแรกได้ไหม
ทำได้ แต่ Google อาจมองเป็น soft 404 และไม่นำสัญญาณของหน้าเก่ามาใช้ ควร redirect ไปหน้าที่ทดแทนหน้าที่ลบได้จริง หรือตอบ 404 หรือ 410 ถ้าไม่มีหน้าไหนทดแทนได้
กำลังวางแผนรีดีไซน์ เปลี่ยนแพลตฟอร์ม หรือย้ายโดเมนอยู่ใช่ไหม Relevant Audience ช่วยสร้างและทดสอบ redirect map แล้วตรวจหลังเปิดตัวว่า URL เก่าทุกตัวไปถึงปลายทางที่ถูกต้อง







