Lỗi 404 là gì? 404 và 403 Forbidden khác nhau, cách khắc phục

Lỗi 404, hay 404 Not Found, là mã trạng thái HTTP mà máy chủ web trả về khi không có gì để hiển thị tại URL được yêu cầu. Theo tiêu chuẩn HTTP RFC 9110 (tạm dịch), máy chủ "không tìm thấy biểu diễn hiện hành nào của tài nguyên đích" hoặc không muốn tiết lộ rằng tài nguyên đó tồn tại. Mã này không cho biết trang đã mất vĩnh viễn hay chưa.

Dùng thử miễn phí: Mã trạng thái HTTP Miễn phí, không cần tài khoản.

Người họ hàng gần của nó là 403 Forbidden (bị cấm) thì khác: trang có thể vẫn tồn tại, nhưng máy chủ đã hiểu yêu cầu và từ chối thực hiện. Bài hướng dẫn này giải thích lỗi 404 là gì, lỗi 403 Forbidden nghĩa là gì, hai lỗi này khác 401 và 410 ra sao, cũng như cách tìm và khắc phục chúng mà không ảnh hưởng đến SEO. Để tra cứu bất kỳ mã nào khác, hãy tìm trong danh sách Mã trạng thái HTTP miễn phí.

Lỗi 404 là gì? Ý nghĩa chính thức

Ý nghĩa của lỗi 404 bắt nguồn từ RFC 9110, mục 15.5.5, bản đặc tả HTTP hiện hành. Trên thực tế, có ba chi tiết quan trọng:

Mỗi website diễn đạt thông báo theo cách riêng ("404 Not Found", "Page not found", "HTTP Error 404"), nhưng mã trạng thái bên dưới vẫn là một.

403 Forbidden nghĩa là gì?

RFC 9110 định nghĩa 403 Forbidden như sau (tạm dịch): máy chủ "đã hiểu yêu cầu nhưng từ chối thực hiện". Nếu yêu cầu có kèm thông tin xác thực, máy chủ coi chúng là không đủ, và gửi lại đúng yêu cầu đó cũng không giúp được gì. Trang vẫn ở đó; chỉ là bạn không được phép xem.

Lỗi 403 Forbidden thường bị nhầm với 401:

Trình duyệt thường hiển thị "403 Forbidden", "Access denied" hoặc "HTTP Error 403", và lời từ chối có thể đến từ tường lửa hoặc CDN đứng trước website chứ không phải từ chính website.

So sánh nhanh 404, 410, 403 và 401

Tên Ý nghĩa đối với máy khách Nguyên nhân thường gặp Cách khắc phục
404 Not Found Không có gì tại URL này, có thể chỉ là tạm thời Trang đã bị xóa hoặc di chuyển, liên kết hỏng, lỗi đánh máy Sửa liên kết, khôi phục trang hoặc thêm chuyển hướng 301
410 Gone Tài nguyên đã bị cố ý gỡ bỏ và sẽ không quay lại Chương trình khuyến mãi đã hết hạn, nội dung đã bị xóa Không cần làm gì; gỡ các liên kết vẫn trỏ đến nó
403 Forbidden Máy chủ đã hiểu yêu cầu và từ chối nó Phân quyền, quy tắc chặn, tường lửa, chặn theo IP hoặc quốc gia Cần quyền khác, hoặc thay đổi trên máy chủ
401 Unauthorized Thiếu thông tin xác thực hợp lệ Chưa đăng nhập, token hết hạn, sai mật khẩu Đăng nhập hoặc gửi thông tin xác thực hợp lệ

Các tên gọi này khớp với bảng tra cứu Mã trạng thái HTTP, nơi cũng có các mã chuyển hướng 3xx.

Cần làm gì khi gặp lỗi 404 hoặc 403

Nếu bạn là khách truy cập, hãy thử lần lượt các bước sau:

  1. Kiểm tra URL xem có lỗi đánh máy hoặc phần cuối của một liên kết dài bị cắt mất không. Đường dẫn có thể phân biệt chữ hoa chữ thường: /Contact//contact/ có thể là hai trang khác nhau.
  2. Tải lại trang. Một trang đang được đăng lại có thể trả về lỗi trong chốc lát.
  3. Tìm kiếm trên website. Xóa phần cuối của đường dẫn hoặc dùng ô tìm kiếm của website để tìm nơi nội dung đã được chuyển đến.
  4. Với lỗi 403, hãy xóa cookie và bộ nhớ đệm của website. Cookie phiên đã hết hạn có thể khiến máy chủ từ chối yêu cầu; đăng xuất rồi đăng nhập lại cũng có tác dụng vì cùng lý do đó.
  5. Tắt VPN hoặc proxy. Một số website và tường lửa chặn các dải địa chỉ VPN hoặc cả một quốc gia bằng lỗi 403.
  6. Báo cho chủ website nếu liên kết hỏng nằm ngay trên website đó.

Vì sao website trả về 404 Not Found

Với chủ website, phần lớn lỗi 404 xuất phát từ một trong các nguyên nhân sau:

Nguyên nhân gây lỗi 403 Forbidden trên website của bạn

Trên website của chính bạn, lỗi 403 Forbidden thường đến từ:

Cách khắc phục lỗi 404

Cách xử lý đúng tùy thuộc vào điều đã xảy ra với trang:

Trên Apache, cả ba đều có thể đặt trong .htaccess:

Redirect 301 /old-guide/ /new-guide/
Redirect gone /spring-sale-2025/
ErrorDocument 404 /404.html

Cấu hình tương đương cho Nginx là:

location = /old-guide/ { return 301 /new-guide/; }
location = /spring-sale-2025/ { return 410; }
error_page 404 /404.html;

Trang 404 tùy chỉnh nên cho biết trang không được tìm thấy, giữ nguyên thanh điều hướng của website và gợi ý ô tìm kiếm hoặc các liên kết phổ biến, đồng thời vẫn phải gửi mã trạng thái 404. Trên Apache, hãy trỏ ErrorDocument tới một đường dẫn cục bộ như /404.html: nếu dùng URL đầy đủ bắt đầu bằng https://, Apache sẽ chuyển hướng khách truy cập và trạng thái 404 ban đầu bị mất.

Tránh soft 404 (404 mềm): những trang báo "không tìm thấy" nhưng lại trả về 200 OK. Các ứng dụng trang đơn trả lời mọi route bằng 200 là nguồn gây lỗi phổ biến. Ngoài ra, đừng chuyển hướng mọi URL bị thiếu về trang chủ. Hướng dẫn chuyển website của Google cảnh báo rằng việc đưa nhiều URL cũ về một đích không liên quan, chẳng hạn trang chủ, có thể gây nhầm lẫn cho người dùng và có thể bị coi là soft 404.

Lỗi 404 có ảnh hưởng đến SEO không?

Bản thân chúng thì không. Google Search Central từng cho biết việc một website có một số URL 404 tự nó không gây hại và không bị tính là điểm trừ trong kết quả tìm kiếm. Trang trợ giúp của Search Console bổ sung rằng lỗi 404 không nhất thiết là vấn đề khi một trang bị gỡ mà không có trang thay thế, và khuyên bạn sửa những lỗi 404 mà chính bạn liên kết tới hoặc liệt kê trong sitemap.

Có hai trường hợp thực sự gây thiệt hại. Một trang từng có thứ hạng mà nay trả về 404 sẽ rơi khỏi chỉ mục cùng với lưu lượng truy cập của nó, vì vậy hãy chuyển hướng nếu có trang thay thế phù hợp. Còn soft 404 thì che giấu trạng thái thật, nên hướng dẫn về lỗi soft 404 của Google khuyên dùng 404 hoặc 410 thật cho trang đã bị gỡ và 301 cho trang đã chuyển đi.

Về 404 và 410: tài liệu của Google cho biết họ xử lý mọi mã 4xx, trừ 429, theo cùng một cách và xóa URL đã được lập chỉ mục trước đó khỏi chỉ mục. Hãy dùng 410 vì nó thể hiện rõ ý định của bạn, chứ không phải để thay đổi thứ hạng. Lỗi 403 hoặc 401 trên một trang bạn muốn được lập chỉ mục còn tệ hơn: Googlebot không đăng nhập, nên Search Console báo lý do "Bị chặn do quyền truy cập bị cấm (403)" hoặc "Bị chặn do yêu cầu trái phép (401)" và trang không được lập chỉ mục. Nếu tường lửa chặn Googlebot, hãy sửa quy tắc đó.

Cách tìm liên kết hỏng và lỗi 404

awk '$9 == 404 {print $7}' access.log | sort | uniq -c | sort -rn | head

Trên một log mẫu gồm bảy yêu cầu, lệnh này in ra 3 /old-guide/1 /Contact/: một trang đã chuyển đi cần chuyển hướng và một liên kết viết hoa sai chữ cái.

Tra cứu mọi mã trạng thái

Bảng tra cứu Mã trạng thái HTTP miễn phí liệt kê 63 mã chuẩn, từ 100 Continue đến 511 Network Authentication Required, chia thành năm nhóm. Gõ một con số như 404 hoặc một từ như forbidden để xem mã tương ứng, tên của nó và mô tả ngắn bằng ngôn ngữ của trang. Đây là công cụ tra cứu, không phải công cụ kiểm tra URL: nó không truy cập các trang của bạn, và các mã không chính thức như 499 của Nginx không có trong danh sách.

Câu hỏi thường gặp

Lỗi 404 có phải do tôi không?

Thường là không. Có thể bạn đã gõ sai URL, nhưng phần lớn lỗi 404 đến từ những trang đã bị chuyển đi hoặc bị xóa và những liên kết chưa từng được cập nhật.

Nên dùng 404 hay 410 cho trang đã xóa?

Nếu trang bị gỡ có chủ đích và sẽ không quay lại, 410 Gone là câu trả lời chính xác nhất; nếu không chắc chắn, dùng 404 cũng được. Nếu nội dung đã được chuyển đi, hãy dùng chuyển hướng 301.

Xóa cookie có khắc phục được lỗi 403 Forbidden không?

Đôi khi có. Nếu nguyên nhân là cookie phiên đã hết hạn hoặc bị hỏng, việc xóa cookie của website rồi đăng nhập lại sẽ khắc phục được lỗi. Cách này không có tác dụng khi lệnh chặn đến từ phân quyền trên máy chủ, quy tắc theo IP hoặc quốc gia, hoặc việc chặn VPN.

Soft 404 là gì?

Đó là trang thông báo cho khách truy cập rằng nội dung không tồn tại nhưng lại trả về 200 OK thay vì 404. Google loại những trang như vậy khỏi kết quả tìm kiếm và đánh dấu chúng trong Search Console. Hãy trả về 404 hoặc 410 thật, hoặc 301 nếu nội dung đã được chuyển đi.

Lỗi 404 là lỗi phía máy khách hay lỗi máy chủ?

Nó thuộc nhóm lỗi phía máy khách 4xx, vì URL được yêu cầu không có gì để phục vụ. Sự cố máy chủ sẽ hiển thị dưới dạng mã 5xx, chẳng hạn 500 Internal Server Error.

Dùng thử miễn phí: Mã trạng thái HTTP Miễn phí, không cần tài khoản.