Error Pages คืออะไร และทำไมต้องตั้งค่าเอง?
เมื่อผู้เยี่ยมชมพิมพ์ URL ผิด หรือเข้าถึงหน้าที่ไม่มีอีกต่อไป เว็บเซิร์ฟเวอร์จะแสดงหน้า "Error" ให้โดยอัตโนมัติ ซึ่งโดยค่าเริ่มต้นมักเป็นหน้าขาวๆ ธรรมดาที่บอกเพียงว่า "Not Found" หรือ "Internal Server Error" โดยไม่มีการนำทางกลับไปที่เว็บไซต์ของคุณ
การตั้งค่า Error Pages เองใน cPanel ช่วยให้คุณ:
- แสดงหน้า 404 ที่มีเมนูและลิงก์กลับไปหน้าแรก ลดอัตราการออกจากเว็บ
- รักษา "แบรนด์" ของเว็บไซต์ ไม่ให้ผู้เยี่ยมชมสับสนว่าเว็บพัง
- แจ้งข้อมูลที่เป็นประโยชน์เมื่อเกิด Error 403 (ไม่มีสิทธิ์เข้าถึง) หรือ 500 (เว็บไซต์มีปัญหา)
- ช่วย SEO ด้วยการไม่ปล่อยให้ผู้เยี่ยมชมหลุดออกจากเว็บโดยไม่มีทางออก
ประเภท Error Codes ที่ควรรู้จัก
ก่อนเข้าสู่ขั้นตอนการตั้งค่า มาทำความรู้จัก HTTP Error Codes ที่พบบ่อยที่สุดในการทำเว็บไซต์:
- 400 Bad Request — เบราว์เซอร์ส่งคำขอที่ไม่ถูกต้องมาให้เซิร์ฟเวอร์
- 401 Unauthorized — ต้องล็อกอินก่อนจึงจะเข้าถึงได้
- 403 Forbidden — ไม่มีสิทธิ์เข้าถึง (แม้จะล็อกอินแล้ว)
- 404 Not Found — ไม่พบหน้าหรือไฟล์ที่ต้องการ (พบบ่อยที่สุด)
- 500 Internal Server Error — มีข้อผิดพลาดในเซิร์ฟเวอร์หรือสคริปต์
- 503 Service Unavailable — เซิร์ฟเวอร์ไม่พร้อมให้บริการชั่วคราว
ในบทความนี้จะเน้นที่ 404, 403 และ 500 ซึ่งเป็น Error ที่พบบ่อยที่สุดและกระทบต่อประสบการณ์ผู้ใช้มากที่สุด
วิธีเปิดใช้ Error Pages ใน cPanel
cPanel มีเครื่องมือ Error Pages ในตัวที่ช่วยให้คุณกำหนดหน้า Error แบบกำหนดเองได้โดยไม่ต้องแก้ไขไฟล์ .htaccess ด้วยตนเอง ทำตามขั้นตอนดังนี้:
- เข้าสู่ระบบ cPanel ของคุณ (โดยทั่วไปคือ
https://yourdomain.com:2083) - เลื่อนลงหาหมวด Advanced หรือค้นหาคำว่า "Error"
- คลิกที่ไอคอน Error Pages
- เลือก โดเมนหรือ subdomain ที่ต้องการตั้งค่าจาก dropdown ด้านบน
- คุณจะเห็นรายการ Error Codes ให้เลือก เช่น 404, 403, 500 เป็นต้น
- คลิกที่ Error Code ที่ต้องการแก้ไข (เช่น 404 (Not Found))
- cPanel จะแสดง Text Editor พร้อม HTML ตัวอย่าง ให้คุณแก้ไขได้ทันที
- เมื่อแก้ไขเสร็จ คลิก Save
public_html/errors/404.shtml หรือในบางกรณีคือ public_html/cperror/ ขึ้นอยู่กับเวอร์ชัน cPanel ของ Hosting ที่คุณใช้ตัวอย่าง HTML สำหรับหน้า 404 แบบมืออาชีพ
หน้า 404 ที่ดีควรมี: ข้อความแจ้งอย่างเป็นมิตร, ลิงก์กลับหน้าแรก, และอาจมีช่องค้นหาเพิ่มเติม นี่คือตัวอย่าง HTML ที่คุณสามารถวางในช่อง Editor ของ cPanel ได้เลย:
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<title>ไม่พบหน้าที่ต้องการ (404) — ชื่อเว็บไซต์</title>
<style>
body { font-family: sans-serif; text-align: center; padding: 60px 20px; background: #f9fafb; color: #374151; }
h1 { font-size: 4rem; color: #15803d; margin: 0; }
h2 { font-size: 1.5rem; margin: .5rem 0 1rem; }
p { color: #6b7280; max-width: 400px; margin: 0 auto 1.5rem; }
a.btn { background: #15803d; color: #fff; padding: .7rem 1.5rem; border-radius: 8px; text-decoration: none; font-weight: 600; }
a.btn:hover { background: #166534; }
</style>
</head>
<body>
<h1>404</h1>
<h2>ไม่พบหน้าที่คุณต้องการ</h2>
<p>อาจเป็นเพราะ URL ผิด หรือหน้านี้ถูกย้ายหรือลบออกไปแล้ว</p>
<a href="/" class="btn">← กลับหน้าแรก</a>
</body>
</html>
ตั้งค่า Error Pages ผ่านไฟล์ .htaccess (วิธีเสริม)
นอกจากใช้ Error Pages ใน cPanel โดยตรง คุณยังสามารถกำหนดไฟล์ Error Page เองได้ผ่าน .htaccess ซึ่งให้ความยืดหยุ่นมากขึ้น เช่น ชี้ไปยังไฟล์ HTML ของคุณเอง:
# ไฟล์ .htaccess ในโฟลเดอร์ public_html
ErrorDocument 404 /errors/not-found.html
ErrorDocument 403 /errors/forbidden.html
ErrorDocument 500 /errors/server-error.html
โดยคุณต้องสร้างโฟลเดอร์ errors/ ใน public_html แล้วสร้างไฟล์ HTML แต่ละไฟล์ตามที่กำหนด จากนั้น cPanel จะอ่านคำสั่งจาก .htaccess โดยอัตโนมัติ
ตั้งค่าหน้า 403 Forbidden และ 500 Server Error
ทำตามขั้นตอนเดียวกับ 404 แต่เลือก Error Code ที่ต้องการ:
หน้า 403 Forbidden
ใช้เมื่อผู้เยี่ยมชมพยายามเข้าถึงโฟลเดอร์หรือไฟล์ที่ไม่ได้รับอนุญาต ควรอธิบายว่าพวกเขาไม่มีสิทธิ์เข้าถึงและแนะนำให้ไปหน้าอื่น:
<h1>403 — ไม่อนุญาตให้เข้าถึง</h1>
<p>คุณไม่มีสิทธิ์เข้าถึงหน้านี้</p>
<a href="/">กลับหน้าแรก</a>
หน้า 500 Internal Server Error
ใช้เมื่อเว็บไซต์มีข้อผิดพลาดในสคริปต์ PHP หรือ .htaccess ควรแจ้งว่ากำลังแก้ไขปัญหาอยู่และให้ผู้ใช้ลองใหม่อีกครั้ง:
<h1>500 — เกิดข้อผิดพลาดในเซิร์ฟเวอร์</h1>
<p>ขออภัย เว็บไซต์มีปัญหาชั่วคราว กรุณาลองใหม่ภายหลัง</p>
<a href="/">กลับหน้าแรก</a>
แนวทางออกแบบ Error Pages ที่ดี
Error Page ที่ดีไม่ได้มีแค่ข้อความ "ไม่พบ" แต่ควรช่วยให้ผู้เยี่ยมชมยังอยู่บนเว็บของคุณต่อไป:
- ใช้ภาษาที่เป็นมิตร — อย่าแสดงเพียง Error Code อย่างเดียว ให้อธิบายว่าเกิดอะไรขึ้น
- มีลิงก์กลับหน้าแรก — ต้องมีปุ่มหรือลิงก์ที่เด่นชัดกลับสู่หน้าแรก
- เพิ่มลิงก์หน้าสำคัญ — เช่น หน้าบทความ, หน้าติดต่อ, หน้า Sitemap
- เพิ่มช่องค้นหา — ถ้าเว็บมีฟีเจอร์ค้นหา ควรเพิ่มในหน้า 404 ด้วย
- ดีไซน์ตรงกับเว็บไซต์ — ใช้สี Font และ Logo เดียวกับเว็บหลัก
- อย่าลืม Meta Tag — ใส่
<title>ที่อธิบายว่าเป็นหน้า Error
ตรวจสอบว่า Error Pages ทำงานถูกต้อง
หลังตั้งค่าเสร็จแล้ว ให้ทดสอบว่าหน้า Error แสดงผลถูกต้องด้วยการพิมพ์ URL ที่ไม่มีอยู่จริง:
# ทดสอบ 404 — พิมพ์ URL ที่ไม่มีอยู่ในเบราว์เซอร์
https://yourdomain.com/this-page-does-not-exist-test123
# ทดสอบ 403 — ลองเข้าโฟลเดอร์ที่ไม่มี index ไฟล์
https://yourdomain.com/cgi-bin/
# ตรวจสอบ HTTP Status Code ด้วย curl (ถ้ามี)
curl -o /dev/null -s -w "%{http_code}" https://yourdomain.com/nonexistent
# ตรวจสอบด้วยเครื่องมือออนไลน์
https://httpstatus.io/
แก้ปัญหาที่พบบ่อย
Error: หน้า Error Page ของฉันไม่แสดงขึ้นมา ยังเห็นหน้าเดิมของ cPanel
ตรวจสอบว่า Browser Cache ไม่ได้แสดงหน้าเก่าอยู่ กด Ctrl+Shift+R (Windows/Linux) หรือ Cmd+Shift+R (Mac) เพื่อ Hard Refresh นอกจากนี้ ให้ตรวจดูว่าคุณบันทึกการตั้งค่าใน cPanel แล้วจริงๆ และเลือก Domain ถูกต้องใน Dropdown
Error: หน้า 404 ที่ตั้งค่าไม่ทำงานบน WordPress
WordPress มีระบบ 404 ของตัวเองผ่านไฟล์ 404.php ในธีม ซึ่งจะ Override การตั้งค่าใน cPanel ไปโดยอัตโนมัติ หากต้องการแก้ไขหน้า 404 สำหรับ WordPress ให้แก้ที่ ธีม > 404.php โดยตรงหรือใช้ Page Builder ของธีม
Error: ไฟล์ .htaccess ไม่ยอมรับคำสั่ง ErrorDocument
ตรวจสอบว่า .htaccess อยู่ในโฟลเดอร์ public_html ถูกต้อง และไม่มีข้อผิดพลาด Syntax อื่นๆ ในไฟล์ที่ทำให้ Apache ปฏิเสธไฟล์ทั้งหมด ลองดู cPanel > Error Logs เพื่อหาสาเหตุ
Error: หน้า Error แสดงแต่ไม่มีสไตล์ (CSS ไม่โหลด)
ปัญหานี้มักเกิดเมื่อใช้ Path แบบ Relative เช่น style.css แทนที่จะเป็น /style.css ให้เปลี่ยนทุก Path ใน HTML ของ Error Page เป็น Absolute Path ที่ขึ้นต้นด้วย / เสมอ
Error: Status Code 200 แทนที่จะเป็น 404
บาง Hosting หรือ WordPress Configuration ส่ง Status 200 ("Soft 404") แม้จะแสดงหน้า 404 ซึ่งกระทบ SEO อย่างมาก ตรวจสอบด้วย Google Search Console ในหมวด Coverage หรือใช้ httpstatus.io เพื่อตรวจสอบ Status Code จริง
คำถามที่พบบ่อย (FAQ)
Q: ควรใช้ไฟล์ .shtml หรือ .html สำหรับ Error Pages?
cPanel มักสร้างไฟล์ .shtml ซึ่งรองรับ Server Side Includes (SSI) ที่ช่วยให้คุณ Include ส่วนหัวและท้ายเว็บได้ แต่ถ้าไม่ได้ใช้ SSI ไฟล์ .html ก็ทำงานได้ปกติ ขึ้นอยู่กับว่า cPanel Hosting ของคุณรองรับอะไร
Q: Error Pages ที่กำหนดเองส่งผลต่อ SEO อย่างไร?
การมีหน้า 404 ที่ถูกต้อง (คืน Status Code 404 จริงๆ) ช่วย Google รู้ว่าหน้านั้นไม่มีอยู่และหยุด Crawl มันได้ Error Page ที่ดีช่วยลด Bounce Rate และทำให้ผู้ใช้อยู่บนเว็บได้นานขึ้น ซึ่งอาจส่งผลดีต่อสัญญาณ SEO ด้วย
Q: ตั้งค่า Error Pages แล้วต้องทำอะไรเพิ่มเติมไหม?
แนะนำให้ตรวจสอบ Google Search Console ทุกเดือนในหมวด Coverage > Not Found (404) เพื่อดูว่ามี URL ใดที่ Google พบว่าเป็น 404 และพิจารณา Redirect URL เก่าไปยังหน้าที่เกี่ยวข้องหรือหน้าแรก แทนการปล่อยให้เป็น 404 ตลอดไป