404 Not Found คืออะไร? วิธีแก้ไขเว็บไซต์ Error

หากคุณกำลังอ่านบทความนี้ ผมมั่นใจว่าคุณกำลังมีปัญหาเนื่องจากเข้าหน้าเว็บไซต์แล้วพบเข้ากับคำว่า 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>

สุดท้าย การดูแลเว็บไซต์ให้ปลอดจากลิงก์เสีย ไม่ใช่แค่เรื่องเทคนิค แต่คือการใส่ใจผู้ใช้งานและคุณภาพแบรนด์โดยรวม หากคุณไม่แน่ใจว่าจะเริ่มแก้จากตรงไหน การมีทีมผู้เชี่ยวชาญเข้ามาช่วยดูแลจะช่วยให้เว็บไซต์ของคุณทำงานได้อย่างราบรื่นในระยะยาว

Categories: ทั่วไป
X