404 Error Handling
Xử lý trang lỗi 404 bằng trang tùy chỉnh và gợi ý nội dung liên quan để giữ người dùng và giảm bounce rate.
404 Error Handling là gì?
404 Error Handling (xử lý lỗi 404) là quy trình thiết lập và tối ưu trang hiển thị khi người dùng hoặc công cụ tìm kiếm truy cập vào một URL không tồn tại trên website. Thay vì để hệ thống trả về trang lỗi mặc định — thường chỉ có dòng chữ "Not Found" và mã trạng thái HTTP 404 — bạn tạo một trang 404 tùy chỉnh, thân thiện với người dùng và hỗ trợ SEO.
Trong WordPress, điều này bao gồm việc thiết kế giao diện trang 404.php trong theme, tích hợp gợi ý nội dung liên quan, thanh tìm kiếm, điều hướng nhanh đến trang chủ hoặc danh mục phổ biến — nhằm giữ chân người dùng và giảm khả năng họ rời khỏi site ngay lập tức.
Tại sao quan trọng trong SEO?
Lỗi 404 bản thân không làm hại thứ hạng trực tiếp, nhưng cách bạn xử lý nó ảnh hưởng lớn đến trải nghiệm người dùng và hiệu quả thu thập dữ liệu của Googlebot:
- Giảm bounce rate: Người dùng thấy trang 404 hữu ích sẽ tiếp tục khám phá site thay vì thoát ngay → tín hiệu hành vi tích cực với Google.
- Giữ thời gian ở lại (dwell time): Gợi ý bài viết liên quan giúp kéo dài phiên tương tác — yếu tố gián tiếp hỗ trợ xếp hạng.
- Tránh lãng phí crawl budget: Nếu hàng loạt URL 404 xuất hiện do liên kết hỏng hoặc chuyển đổi cấu trúc, Googlebot vẫn tiêu tốn tài nguyên để kiểm tra chúng. Xử lý tốt giúp tập trung bot vào các trang có giá trị.
- Ngăn chặn chuỗi lỗi lan rộng: Trang 404 không được thiết kế đúng (ví dụ: trả mã 200 thay vì 404) khiến Google hiểu nhầm rằng đó là trang hợp lệ → gây nhiễu lập chỉ mục.
Cách hoạt động
Khi người dùng hoặc bot yêu cầu một URL không tồn tại, máy chủ web (Apache/Nginx) trả về mã trạng thái HTTP 404 Not Found. WordPress nhận tín hiệu này và tự động tải file 404.php từ thư mục theme hiện hành (nếu có). Nếu không tìm thấy, nó sẽ dùng file mặc định từ theme cha hoặc core.
Điều kiện bắt buộc để xử lý đúng:
- File
404.phpphải tồn tại trong thư mục theme (hoặc child theme). - Server phải trả đúng mã trạng thái 404 — không được sửa thành 200 hay 301 bằng .htaccess hoặc plugin sai cách.
- Không có redirect vòng lặp (ví dụ: 404 → 301 → 404).
Hướng dẫn thực hiện
- Tạo file 404.php: Vào thư mục theme (ví dụ:
/wp-content/themes/twentytwentyfour/), sao chép fileindex.php, đổi tên thành404.php. - Chỉnh sửa nội dung: Mở file vừa tạo, xóa toàn bộ phần loop (các hàm
have_posts(),the_post()…), thay bằng đoạn HTML tùy chỉnh. Ví dụ:<h2>Rất tiếc, trang bạn tìm không tồn tại</h2> <p>Hãy thử tìm nội dung khác hoặc quay lại <a href="<?php echo esc_url( home_url() ); ?>">trang chủ</a>.</p> <?php get_search_form(); ?>
- Thêm gợi ý nội dung liên quan: Dùng plugin như 404page hoặc code thủ công với WP_Query để lấy bài viết mới nhất, bài viết cùng danh mục hoặc bài viết có từ khóa gần giống URL bị lỗi (tùy trường hợp — cần xử lý cẩn thận để tránh trùng lặp).
- Kiểm tra mã trạng thái: Dùng công cụ như httpstatus.io hoặc trình duyệt (F12 → Network → reload trang lỗi) để xác nhận server trả đúng HTTP/1.1 404 Not Found.
- Thử nghiệm URL giả: Truy cập
https://domain.com/bai-viet-khong-ton-taiđể kiểm tra giao diện và chức năng.
Lỗi thường gặp
| Lỗi | Nguồn gốc | Cách khắc phục |
|---|---|---|
| Trang 404 trả mã 200 | Plugin hoặc code chủ đề ghi đè header HTTP | Dùng status_header(404) hoặc wp_die() đúng cách; kiểm tra lại file 404.php không có header('HTTP/1.1 200 OK') |
| Hiển thị nội dung trống hoặc lỗi PHP | File 404.php thiếu cấu trúc theme hoặc gọi hàm không tồn tại | Sao chép lại header.php và footer.php cơ bản; tránh dùng hàm chỉ hoạt động trong loop |
| Gợi ý bài viết không liên quan | Query WP_Query không lọc theo từ khóa hoặc danh mục | Dùng get_query_var('error') hoặc phân tích $_SERVER['REQUEST_URI'] để suy luận chủ đề (tùy trường hợp) |
Ví dụ thực tế
Một blog du lịch tên DiChuyenViet đổi cấu trúc URL từ /blog/ten-bai sang /dia-diem/ten-bai. Sau 3 tháng, Google Search Console báo hơn 1.200 URL cũ trả 404. Họ triển khai:
- Trang 404 tùy chỉnh với tiêu đề "Bạn đang tìm thông tin về địa điểm nào?"
- Thanh tìm kiếm nổi bật + 6 bài viết mới nhất về các tỉnh miền Tây
- Liên kết nhanh đến 3 danh mục chính: Đà Nẵng, Phú Quốc, Hà Giang
- Redirect 301 cho các URL cũ đã biết (qua plugin Redirection)
Kết quả sau 6 tuần: bounce rate trên trang 404 giảm từ 92% xuống còn 58%, 23% người dùng click vào gợi ý bài viết, và số lượt truy cập từ Google vào các bài gợi ý tăng 17%.
Câu hỏi thường gặp
Có nên redirect tất cả 404 về trang chủ?
Không. Redirect 301 từ mọi URL 404 về trang chủ (ví dụ: /abc → /) gây nhiễu tín hiệu liên kết và làm giảm độ tin cậy của trang chủ trong mắt Google. Chỉ redirect khi có nội dung thay thế rõ ràng và tương đương — ví dụ: bài viết cũ được gộp vào bài tổng hợp mới.
Plugin nào hỗ trợ 404 tốt nhất cho WordPress?
Các plugin phổ biến và đáng tin cậy gồm: Redirection (quản lý redirect + log 404), 404page (tùy chỉnh giao diện + gợi ý nội dung), và Broken Link Checker (phát hiện liên kết hỏng trước khi người dùng gặp lỗi). Không nên dùng plugin kết hợp quá nhiều tính năng nếu không cần thiết — có thể ảnh hưởng hiệu năng.
Google có lập chỉ mục trang 404 không?
Google không lập chỉ mục trang trả đúng mã 404 — miễn là không có thẻ <meta name='robots' content='index,follow'> và không bị redirect về trang khác. Tuy nhiên, nếu trang 404 vô tình trả mã 200 hoặc có nội dung trùng lặp, Google có thể lưu trữ và hiển thị trong kết quả tìm kiếm — điều này cần kiểm tra định kỳ qua Google Search Console.