หากคุณกำลังอ่านบทความนี้ ผมมั่นใจว่าคุณกำลังมีปัญหาเนื่องจากเข้าหน้าเว็บไซต์แล้วพบเข้ากับคำว่า 404 Not Found หรือ Error 404 ซึ่งไม่ต้องตกใจไปครับ นี่เป็นอีกหนึ่งในสิ่งที่เกิดขึ้นบ่อยครั้งเมื่อคลิกลิงก์หรือเปิดเข้าหน้าที่มีข้อผิดพลาดกับระบบขึ้น นั่นทำให้ในวันนี้ Sixtygram Agency จะชวนคุณไปทำความเข้าใจกับ 404 Not Found ว่ามันคืออะไร? เกิดขึ้นได้อย่างไร? ทำไมต้อง 404? และสำหรับผู้ดูแลเว็บไซต์เราจะจัดการปัญหานี้ได้อย่างไรกัน
404 Not Found คืออะไร
404 Not Found คือรหัสสถานะ (Status Code) ที่บ่งบอกว่า หน้าเว็บไซต์หรือทรัพยากรที่ร้องขอไม่พบบนเซิร์ฟเวอร์ แม้ว่าเซิร์ฟเวอร์จะยังสามารถตอบสนองคำร้องขออื่น ๆ ได้ตามปกติ
พูดง่าย ๆ คือ เมื่อผู้ใช้งานคลิกลิงก์หรือพิมพ์ URL เข้าไป แต่หน้าเว็บนั้น ไม่มีอยู่จริงแล้วหรือถูกลบ/ย้ายไป โดยไม่มีการเปลี่ยนเส้นทาง (Redirect) ระบบจึงแสดงข้อความ 404 เพื่อแจ้งว่าหาเนื้อหานั้นไม่เจอในขณะนี้ ซึ่งถึงแม้ข้อผิดพลาดนี้จะไม่ได้ส่งผลต่อการทำงานของเว็บไซต์ทั้งหมด แต่หากปล่อยไว้จำนวนมาก อาจกระทบต่อ SEO และประสบการณ์ของผู้ใช้งานในระยะยาวได้
ผลกระทบของ 404 Not Found
ในด้านการใช้งานเว็บไซต์ และในทาง SEO เจ้าตัว 404 Not Found คือรหัสข้อผิดพลาดฝั่งผู้ใช้งาน (Client Error) ที่บ่งบอกว่า เซิร์ฟเวอร์ไม่สามารถหาทรัพยากร (เช่นหน้าเว็บหรือไฟล์) ตามที่ร้องขอได้นั่นทำให้ลิงก์ที่นำไปสู่หน้าดังกล่าวมักถูกมองว่า ลิงก์เสีย (Broken Link) หรือ ลิงก์ตาย (Dead Link) และอาจเกิดภาวะที่เรียกว่า link rot ซึ่งหมายถึงการที่เนื้อหาหรือหน้าเว็บที่เคยมีอยู่ได้หายไปจากระบบในระยะยาว
แม้ว่ารหัส 404 จะบ่งชี้ว่าไม่พบหน้าเว็บ แต่ไม่ได้ให้ข้อมูลว่าเนื้อหานั้นหายไปชั่วคราวหรือถาวร หากเป็นการลบถาวรโดยตั้งใจ ควรเปลี่ยนให้เซิร์ฟเวอร์แสดงรหัสสถานะ 410 Gone แทน เพื่อระบุชัดเจนว่าทรัพยากรถูกลบออกจากระบบโดยถาวร และไม่มีแผนนำกลับมาอีก
สาเหตุที่ทำให้เกิดหน้า 404 Not Found
สำหรับสาเหตุ เจ้า 404 Not Found เป็นข้อผิดพลาดที่พบได้บ่อยในเว็บไซต์ทุกประเภท โดยเฉพาะในเว็บไซต์ที่มีการอัปเดตหรือปรับเปลี่ยนเนื้อหาอยู่เสมอ โดยสาเหตุหลักที่ทำให้เกิดหน้านี้สามารถแบ่งออกได้เป็น 2 กลุ่มสาเหตุใหญ่ ได้แก่ 1.ปัญหาจาก URL และ 2.ปัญหาจากการลบหรือเปลี่ยนแปลงหน้าเว็บไซต์โดยไม่ได้ตั้งค่าการเปลี่ยนเส้นทาง (Redirect)
1. ปัญหาจาก URL
- การ ตั้งชื่อ URL หรือ Slug ผิด แล้วเผลอกดเผยแพร่ไป เมื่อแก้ไขใหม่ในภายหลัง จะทำให้ลิงก์เดิมไม่สามารถใช้งานได้ และแสดงหน้า 404
- เปลี่ยน URL จากภาษาไทยเป็นภาษาอังกฤษ (หรือในทางกลับกัน) โดยไม่ตั้งค่า Redirect ส่งผลให้ผู้ใช้งานที่เข้าลิงก์เดิมเจอกับหน้าที่ไม่พบเนื้อหา
- เปลี่ยนชื่อโดเมนเว็บไซต์ใหม่ โดยไม่ได้วางระบบ Redirect สำหรับลิงก์เก่าที่เคยถูกจัดอันดับในผลการค้นหา ส่งผลให้ผู้ใช้งานจาก Google หรือแหล่งอ้างอิงภายนอกเจอลิงก์เสีย
- ใช้งานระบบทดลอง (Demo) หรือเทมเพลตสำเร็จรูปใน WordPress แล้วลืมปรับค่า Permalink ให้เหมาะสม ทำให้ลิงก์ของเพจไม่สามารถเข้าถึงได้
2. การลบหรือย้ายหน้าเว็บไซต์
- ลบบทความหรือหน้าเพจที่เคยถูกเผยแพร่ไปแล้ว โดยเฉพาะในเว็บไซต์ที่มีการหมุนเวียนสินค้าหรือเนื้อหาบ่อย เช่น E-Commerce เมื่อสินค้าบางรายการหมดหรือเลิกจำหน่าย อาจมีการลบหน้าสินค้านั้นออกไป ทำให้เกิดลิงก์เสีย
- ย้ายหน้าหรือโครงสร้าง URL ใหม่โดยไม่ได้ตั้งค่า Redirect ส่งผลให้ผู้ใช้งานที่เข้าจากลิงก์เก่าเจอกับหน้า 404
นอกจากสองสาเหตุหลักข้างต้น ยังมีปัจจัยทางเทคนิคอื่นๆ ที่สามารถทำให้เกิดหน้า 404 ได้เช่นกัน เช่น การพิมพ์ URL ผิด, การตั้งค่าบนเซิร์ฟเวอร์ผิดพลาด เช่น การตั้งค่าไฟล์ .htaccess ไม่ถูกต้อง หรือเซิร์ฟเวอร์มีปัญหาเรื่องสิทธิ์การเข้าถึงไฟล์ (File Permission), ลิงก์ภายในหรือภายนอกเสียจากการเชื่อมโยงกับหน้าอื่น ๆที่ไม่ได้อัพเดท, ปัญหาการแคช (Cache) ไปจนถึง จากภาวะโอเวอร์โหลดของเซิร์ฟเวอร์ชั่วคราว(ปัญหาเรื่องทรัพยากร)
วิธีแก้ไขปัญหา 404 Not Found (สำหรับผู้ใช้)
เมื่อหน้า 404 ปรากฏขึ้น หลายคนอาจเข้าใจว่าเป็นปัญหาที่เกิดจากฝั่งเว็บไซต์เท่านั้น แต่ในความเป็นจริง ผู้ใช้งานทั่วไปก็สามารถตรวจสอบและแก้ไขเบื้องต้นได้เช่นกัน เพียงทำตาม 5 ขั้นตอนเบื้องต้นดังนี้
1. รีเฟรชหน้าเว็บก่อนเป็นอันดับแรก
ปัญหาบางอย่างอาจเกิดจากการโหลดข้อมูลผิดพลาดชั่วคราว การกดรีเฟรช (หรือกด F5 บนคีย์บอร์ด) อาจช่วยให้หน้าเว็บกลับมาทำงานได้เหมือนเดิมแบบไม่ต้องทำอะไรเพิ่มเติมเลย
2. ตรวจสอบ URL ที่คุณพิมพ์ให้ดีอีกครั้ง
บางทีแค่พิมพ์ผิดไปตัวเดียว เช่น ลืมใส่ตัว s หรือใช้ขีดผิดแบบ ก็ทำให้เว็บหาไม่เจอแล้ว ลองสังเกตดูดี ๆ ว่าลิงก์นั้นถูกต้องครบถ้วนหรือยัง
3. ลองเปิดในเบราว์เซอร์หรืออุปกรณ์อื่น
หากคุณลองรีเฟรชแล้วไม่ได้ผล บางครั้งอาจเป็นที่เบราว์เซอร์เดิมที่คุณใช้ ลองสลับไปใช้อุปกรณ์อื่น หรือเปิดในเบราว์เซอร์คนละตัว เช่น จาก Chrome ไปเป็น Safari ก็เป็นอีกทางที่ช่วยได้เหมือนกัน
4. ล้าง Cache และ Cookie ของเบราว์เซอร์
เบราว์เซอร์มักจะเก็บข้อมูลหน้าเว็บไว้ล่วงหน้าเพื่อโหลดเร็วขึ้น แต่ถ้าข้อมูลเก่านั้นล้าสมัย มันก็อาจพาคุณไปยังหน้าที่ไม่มีอยู่แล้ว การล้าง cache และ cookie ช่วยให้เว็บโหลดข้อมูลใหม่ตรงจากเซิร์ฟเวอร์
5. ค้นหาผ่าน Google หากจำชื่อบทความหรือหัวข้อได้
ถ้าคุณมั่นใจว่าเคยเห็นหน้านั้นมาก่อน ลองใช้ Google ค้นหาชื่อบทความหรือคำสำคัญดู เพราะบางทีหน้าเว็บอาจถูกย้ายตำแหน่งไปแล้วโดยไม่มีการตั้ง redirect ซึ่งการค้นหาใหม่อาจพาไปยัง URL ปัจจุบันได้ง่ายกว่า
วิธีแก้ไขปัญหา 404 Not Found (สำหรับฝั่งเว็บไซต์)
ในขณะที่ฝั่งเจ้าของเว็บไซต์ หากปล่อยให้เกิดหน้า 404 บ่อยครั้งโดยไม่ดูแล อาจส่งผลต่อความน่าเชื่อถือของเว็บไซต์และอันดับ SEO ได้โดยตรง การเปลี่ยน URL หรือการลบหน้าเว็บโดยไม่ตั้งค่าการเปลี่ยนเส้นทางจะทำให้ผู้ใช้งานหลุดจากหน้าที่ต้องการทันที ด้วยวิธี 5 แก้ ได้แก่
1. ตั้งค่า 301 Redirect ให้ URL ที่เปลี่ยนแปลง
หากคุณเปลี่ยน URL ของหน้าเว็บแล้วไม่ตั้ง redirect ผู้ใช้งานที่เข้าลิงก์เก่าจะไปเจอหน้า 404 ทันที ทางออกคือการตั้ง 301 Redirect เพื่อเปลี่ยนเส้นทางจาก URL เก่าไปยังหน้าที่ใช้งานได้ในปัจจุบัน ซึ่งยังช่วยรักษา SEO ไว้ได้ด้วย
2. สร้างหน้า 404 แบบกำหนดเองที่มีประโยชน์
แทนที่จะให้ผู้ใช้งานเจอกับหน้า Error เปล่า ๆ ควรออกแบบหน้า 404 ที่สื่อสารอย่างเข้าใจ เช่น “ขออภัย หน้านี้ไม่มีอยู่แล้ว” พร้อมปุ่มกลับหน้าแรกหรือช่องค้นหา ช่วยให้ผู้ใช้งานไม่รู้สึกว่าตัวเองมาผิดที่ผิดทาง
3. หมั่นตรวจสอบลิงก์เสียอยู่เสมอ
เว็บไซต์ที่มีบทความจำนวนมาก หรือลิงก์ภายในหลายจุด ควรตรวจสอบเป็นระยะว่าแต่ละลิงก์ยังใช้งานได้หรือไม่ เพราะลิงก์เสียไม่ได้แค่ทำให้ผู้ใช้งานหลุด แต่ยังทำให้ Google ลดคะแนนคุณภาพเว็บไซต์ได้เช่นกัน
4. กู้คืนหน้าเดิมถ้ามันยังสำคัญ
บางครั้งเราอาจเผลอลบหน้าเว็บที่เคยมีผู้เข้าชมจำนวนมาก ถ้าข้อมูลยังมีในระบบหรือ backup อยู่ ควรกู้คืนกลับมาทันที หรืออย่างน้อยควรสร้างหน้าใหม่ทดแทน เพื่อรักษาทราฟฟิกที่อาจไหลเข้ามาจากภายนอก
5. ตรวจสอบระบบ CMS และไฟล์ .htaccess
หากคุณใช้ WordPress หรือ CMS อื่น ๆ บางครั้งปลั๊กอิน หรือธีมที่ติดตั้งอาจส่งผลต่อระบบเส้นทาง URL ได้โดยไม่รู้ตัว รวมถึงไฟล์ .htaccess ซึ่งควบคุมการทำงานของ URL บนเซิร์ฟเวอร์ ก็อาจมีคำสั่งบางอย่างที่ทำให้หน้าเพจบางส่วนไม่แสดงผลได้เช่นกัน
แล้วทำไมต้องเลข 404?
ผมเป็นคนนึงที่เคยสงสัยว่าแล้วทำไมเจ้า 404 Not Found ต้องเป็นเลข 404? ไม่ใช่เลขอื่น?
จริง ๆ แล้วมันไม่ได้มีความหมายลึกซึ้งอะไรเลยครับ เพราะเจ้า 404 เป็นเพียงหนึ่งในรหัสสถานะของระบบ HTTP ที่ใช้ตั้งแต่ยุคแรกของเว็บ โดยแบ่งเป็นหมวดหมู่ได้แบบนี้
- 2xx = สำเร็จ เช่น 200 OK
- 3xx = เปลี่ยนเส้นทาง เช่น 301 Redirect
- 4xx = ความผิดพลาดจากฝั่งผู้ใช้ เช่น
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found (หาไม่เจอ)
สรุปคือ 404 ถูกกำหนดไว้ตั้งแต่แรกให้แทนว่า “ไม่พบทรัพยากร” มันไม่มีอะไรซับซ้อน เป็นแค่ภาษาที่เซิร์ฟเวอร์กับเบราว์เซอร์ใช้คุยกันให้เข้าใจตรงกันว่า “หน้านี้ไม่มีอยู่ในระบบ” ถ้าอยากรู้ว่ารหัสอื่น ๆ อย่าง 403, 410 หรือ 418 แปลว่าอะไร ดูได้ที่ ตารางรหัส HTTP 4xx ด้านล่างเลยครับ
ตารางรหัสสถานะ HTTP 4xx (Client Error Responses)
รหัส 19861_84687c-cb> |
คำอธิบาย (อังกฤษ) 19861_15bfcb-fe> |
ความหมายโดยย่อ 19861_9505d5-0e> |
---|---|---|
400 19861_52b4d1-20> |
Bad Request 19861_70ddc9-c6> |
คำร้องขอไม่ถูกต้อง หรือมีไวยากรณ์ผิดพลาด 19861_457dee-79> |
401 19861_67da51-23> |
Unauthorized 19861_e4708a-db> |
ต้องพิสูจน์ตัวตนก่อนถึงจะเข้าถึงได้ 19861_c5f95a-1e> |
402 19861_421747-5e> |
Payment Required 19861_4bf0d5-a7> |
ต้องชำระเงินก่อน (ยังไม่ถูกใช้งานจริง) 19861_6bbc85-59> |
403 19861_2349fa-ce> |
Forbidden 19861_1e5918-58> |
เซิร์ฟเวอร์ปฏิเสธการให้บริการ แม้คำร้องจะถูกต้อง 19861_615c40-88> |
404 19861_c3d6af-9f> |
Not Found 19861_5a71df-c4> |
ไม่พบทรัพยากรตามที่ร้องขอ 19861_813191-0d> |
405 19861_236087-7a> |
Method Not Allowed 19861_dcddd9-f9> |
ใช้วิธีร้องขอที่ไม่รองรับ เช่น POST แทน GET 19861_3fdf6f-63> |
406 19861_a2b7b3-88> |
Not Acceptable 19861_5307bc-4b> |
เนื้อหาไม่ตรงตามที่ผู้ใช้ร้องขอไว้ในหัว Accept 19861_698906-30> |
407 19861_97aa8f-14> |
Proxy Authentication Required 19861_110805-54> |
ต้องยืนยันตัวตนกับพร็อกซีก่อน 19861_e00eb3-69> |
408 19861_a17ef5-94> |
Request Timeout 19861_41bdce-59> |
เซิร์ฟเวอร์รอคำร้องขอนานเกินไปจนหมดเวลา 19861_801572-31> |
409 19861_f3d18d-76> |
Conflict 19861_d73ae3-51> |
มีความขัดแย้งในคำร้อง เช่น การแก้ไขชนกัน 19861_8d724d-39> |
410 19861_bcf7d0-ce> |
Gone 19861_71794a-bb> |
ทรัพยากรถูกลบถาวร และจะไม่กลับมาอีก 19861_5ae366-06> |
411 19861_6b489b-e1> |
Length Required 19861_7adb55-9c> |
ไม่ได้ระบุความยาวเนื้อหาในคำร้อง ซึ่งจำเป็นต้องมี 19861_fa14f1-7c> |
412 19861_6b303a-a0> |
Precondition Failed 19861_337ebf-aa> |
เงื่อนไขที่ระบุไว้ไม่เป็นจริง จึงไม่สามารถดำเนินการได้ 19861_fe0f28-d9> |
413 19861_d9211a-4b> |
Request Entity Too Large 19861_f190a2-f4> |
ขนาดเนื้อหาใหญ่เกินกว่าที่เซิร์ฟเวอร์จะรับได้ 19861_c3d0d8-b4> |
414 19861_545ec9-95> |
Request-URI Too Long 19861_f8519e-66> |
URL ยาวเกินไปจนไม่สามารถประมวลผลได้ 19861_6f9f9a-10> |
415 19861_080a58-8e> |
Unsupported Media Type 19861_1ba287-d9> |
ประเภทไฟล์หรือข้อมูลไม่รองรับโดยเซิร์ฟเวอร์ 19861_d17150-24> |
416 19861_a9a544-da> |
Requested Range Not Satisfiable 19861_8bace3-db> |
ขอช่วงข้อมูลที่ไม่มีอยู่จริงในไฟล์ 19861_fa86b3-f9> |
417 19861_ec7fa0-c2> |
Expectation Failed 19861_3704e7-31> |
เซิร์ฟเวอร์ไม่สามารถตอบสนอง Expect header ได้ 19861_048f46-ef> |
418 19861_217441-e7> |
I’m a teapot 19861_c26f6a-03> |
รหัสล้อเลียนจาก April Fool’s: เซิร์ฟเวอร์เป็นกาน้ำชา(ฮาไหม) 19861_ddfea0-b0> |
422 19861_f1f2f8-e6> |
Unprocessable Entity 19861_884bb1-ec> |
คำร้องถูกจัดรูปแบบถูกต้อง แต่ไม่สามารถประมวลผลได้ (WebDAV) 19861_558ef6-11> |
423 19861_858e0d-3b> |
Locked 19861_0bf243-a0> |
ทรัพยากรถูกล็อก ไม่สามารถเข้าถึงได้ (WebDAV) 19861_504cf3-f6> |
424 19861_878f05-a8> |
Failed Dependency 19861_da4a2d-2f> |
คำร้องล้มเหลวเพราะพึ่งพาคำร้องก่อนหน้าที่ล้มเหลว 19861_ad8c38-ab> |
425 19861_d10cfc-f9> |
Unordered Collection 19861_75f8e1-d4> |
นิยามไว้ใน WebDAV แต่ไม่ได้ใช้งานจริง 19861_d9c5ab-9e> |
426 19861_ef579b-31> |
Upgrade Required 19861_504869-b9> |
ต้องเปลี่ยนไปใช้โปรโตคอลใหม่ เช่น TLS 19861_efd922-68> |
449 19861_c3ee2b-61> |
Retry With 19861_3d8cef-ea> |
ให้ลองส่งคำร้องใหม่อีกครั้ง (ใช้โดย Microsoft เท่านั้น) 19861_1b7ee7-7b> |
สุดท้าย การดูแลเว็บไซต์ให้ปลอดจากลิงก์เสีย ไม่ใช่แค่เรื่องเทคนิค แต่คือการใส่ใจผู้ใช้งานและคุณภาพแบรนด์โดยรวม หากคุณไม่แน่ใจว่าจะเริ่มแก้จากตรงไหน การมีทีมผู้เชี่ยวชาญเข้ามาช่วยดูแลจะช่วยให้เว็บไซต์ของคุณทำงานได้อย่างราบรื่นในระยะยาว