Trả lời nhanh: khi website lỗi ngay sau cập nhật, hãy dừng thay đổi tiếp, ghi lại phiên bản vừa cập nhật, xác định phạm vi ảnh hưởng, giữ lại thông báo lỗi và nhật ký cần thiết, dùng Recovery Mode hoặc cách quay lại phù hợp, rồi kiểm lại cả giao diện lẫn chức năng kinh doanh. Không nên cập nhật thêm hàng loạt hoặc khôi phục ngẫu nhiên trước khi biết dữ liệu mới nào có thể bị mất.
Bài này dành cho tình huống website WordPress gặp lỗi sau một thay đổi đã biết. Nếu có dấu hiệu nội dung bị hack, chuyển hướng lạ, tài khoản bất thường hoặc malware, cần chuyển sang quy trình xử lý sự cố bảo mật thay vì xem đây chỉ là lỗi cập nhật. Trong vận hành bình thường, quy trình này nối trực tiếp với cập nhật có kiểm soát, sao lưu và khôi phục và quản trị website.
Bước 1: Dừng việc tạo thêm thay đổi
- Không tiếp tục cập nhật plugin/theme khác chỉ để thử.
- Không sửa nhiều file hoặc template cùng lúc.
- Không xóa nhật ký lỗi trước khi lưu bằng chứng cần điều tra.
- Ghi thay đổi gần nhất: thành phần, phiên bản, thời điểm, người thực hiện.
- Ghi website lỗi toàn bộ hay chỉ một chức năng hoặc mẫu giao diện.
Mục tiêu đầu tiên là thu hẹp nguyên nhân. Nếu vừa cập nhật một plugin và lỗi xuất hiện ngay sau đó, đây là tín hiệu mạnh để kiểm plugin đó; nhưng vẫn cần xác minh thay vì kết luận chỉ từ tương quan thời gian.
Bước 2: Xác định loại lỗi và mức ảnh hưởng
| Triệu chứng | Kiểm tra đầu tiên | Mức ưu tiên |
|---|---|---|
| Lỗi nghiêm trọng/màn hình trắng | Recovery Mode, nhật ký lỗi, plugin/theme vừa đổi | Cao |
| Giao diện vỡ CSS/JS | Cache/CDN, phiên bản tài nguyên, theme/plugin | Trung bình–cao |
| Form/checkout lỗi | Plugin chức năng, API, email hoặc thanh toán | Cao nếu ảnh hưởng kinh doanh |
| Chỉ khu vực quản trị lỗi | Quyền truy cập, plugin quản trị, lỗi PHP | Tùy phạm vi |
| Trang cũ vẫn hiện sau cập nhật | Cache trang, CDN, cache trình duyệt | Trung bình |
| 404/chuyển hướng bất thường | Permalink, rewrite, plugin hoặc cấu hình redirect | Trung bình–cao |
Bước 3: Dùng Recovery Mode khi WordPress hỗ trợ
Recovery Mode là tính năng WordPress giúp quản trị viên đăng nhập trong một số trường hợp lỗi nghiêm trọng do plugin, theme hoặc code tùy chỉnh. WordPress có thể gửi email khôi phục tới địa chỉ quản trị; trong phiên Recovery Mode, thành phần gây lỗi có thể được tạm dừng cho người đang xử lý để họ vào Dashboard chẩn đoán.
- Kiểm tra email quản trị có nhận liên kết khôi phục không.
- Đăng nhập qua Recovery Mode nếu có.
- Ghi plugin/theme mà WordPress báo liên quan.
- Không coi việc vào được Dashboard là sự cố đã kết thúc.
- Sau khi sửa phải thoát Recovery Mode và kiểm lại trang công khai.
Nếu Recovery Mode không khả dụng, có thể cần quyền hosting, quản lý file hoặc hỗ trợ từ developer/nhà cung cấp hosting. Tránh sửa trực tiếp website đang hoạt động nếu không có đường quay lại.
Bảng quyết định xử lý khi website hỏng ngay sau cập nhật
Ba tình huống minh họa, không phải nhật ký một sự cố có thật: đừng áp dụng cùng một thao tác rollback cho mọi lỗi. Trước hết xác minh thay đổi gần nhất, dữ liệu mới phát sinh và dấu hiệu an ninh; nếu không có quyền hoặc bằng chứng đầy đủ, cần người có chuyên môn tiếp nhận.
| Dấu hiệu | Ưu tiên điều tra | Tránh làm vội |
|---|---|---|
| Lỗi giao diện hoặc trang trắng, không có dấu hiệu xâm nhập | Đối chiếu phiên bản plugin/theme vừa đổi, log lỗi, Recovery Mode khi khả dụng và khả năng quay mã nguồn có kiểm soát | Khôi phục toàn database dù chỉ một plugin gây lỗi |
| Checkout/form lỗi nhưng có đơn mới sau bản backup | Bảo toàn dữ liệu mới, kiểm log giao dịch và các callback; thử phương án sửa ít mất dữ liệu | Đè bản sao database cũ lên production, làm mất đơn hàng mới |
| Xuất hiện admin lạ, file bất thường hoặc redirect spam | Giữ chứng cứ, hạn chế truy cập nguy hiểm, kiểm log/đối chiếu file và chuyển quy trình incident security | Coi đây chỉ là lỗi tương thích hoặc xóa sạch log trước điều tra |
Recovery Mode giúp vào Dashboard ở một số trường hợp lỗi nghiêm trọng, không chứng minh website đã được khôi phục. Chỉ kết thúc sự cố khi kiểm được trang công khai, tài khoản, form/đơn hàng, dữ liệu và log; ghi lại nguyên nhân và quyết định phòng ngừa.
Bước 4: Chọn cách quay lại ít gây mất dữ liệu nhất
Không phải lỗi nào cũng cần khôi phục toàn bộ website. Nếu chỉ một plugin gây lỗi, quay plugin về phiên bản trước có thể ít ảnh hưởng dữ liệu hơn. Nếu cập nhật có thay đổi cơ sở dữ liệu hoặc nhiều thành phần cùng lúc, bản sao toàn hệ thống có thể cần thiết hơn.
| Phương án | Phù hợp khi | Rủi ro chính |
|---|---|---|
| Tạm dừng thành phần lỗi | Cần đưa site hoạt động lại nhanh và chức năng đó không trọng yếu | Mất chức năng tạm thời |
| Quay plugin/theme về phiên bản trước | Lỗi gắn với một phiên bản mới | Không tương thích với dữ liệu/cấu hình mới |
| Khôi phục bản sao toàn website | Thay đổi lớn hoặc nhiều thành phần sai | Mất dữ liệu phát sinh sau bản sao |
| Sửa lỗi có kiểm soát | Biết rõ lỗi và có người kỹ thuật cùng phương án quay lại | Tạo khác biệt khó quản lý nếu không ghi lại |
Trước khi khôi phục toàn bộ, phải biết từ thời điểm bản sao đến hiện tại có đơn hàng, booking, form lead, người dùng hoặc nội dung mới nào cần bảo toàn.
Bước 5: Làm mới cache đúng lớp
Sau khi quay phiên bản hoặc sửa lỗi, việc còn thấy giao diện cũ không nhất thiết nghĩa là khôi phục thất bại. Website có thể có nhiều lớp cache: plugin, máy chủ, CDN và trình duyệt. Hãy làm mới đúng lớp liên quan rồi kiểm bằng yêu cầu mới; không dùng việc xóa cache để che một lỗi hệ thống chưa được sửa.
Bước 6: Kiểm lại website sau khôi phục
- Trang chủ, dịch vụ/sản phẩm và bài viết mở đúng.
- Menu desktop/mobile hoạt động.
- Form, email, checkout, booking hoặc đăng nhập được kiểm từ đầu đến cuối.
- Không còn lỗi nghiêm trọng liên quan trong nhật ký.
- Trang muốn được index giữ trạng thái, robots, canonical và liên kết nội bộ đúng.
- Cache/CDN phục vụ bản đã khôi phục.
- Editor và quyền người dùng hoạt động.
- Nhật ký ghi nguyên nhân, cách sửa, cách quay lại và kết quả kiểm tra.
HTTP 200 hoặc việc wp-admin mở lại không đủ để xác nhận khôi phục thành công nếu form, checkout hoặc mẫu giao diện vẫn sai.
Khi nào phải chuyển sang xử lý sự cố bảo mật?
- Xuất hiện tài khoản quản trị không rõ nguồn gốc.
- Có chuyển hướng lạ hoặc nội dung spam/hacked.
- File/plugin/theme thay đổi mà không có lịch sử thay đổi phù hợp.
- Thông tin đăng nhập có dấu hiệu bị lộ.
- Website bị chèn code ngoài phạm vi cập nhật đã biết.
- Nhật ký cho thấy truy cập bất thường hoặc thay đổi trái phép.
Trong các trường hợp này, không nên chỉ khôi phục rồi bỏ qua nguyên nhân. WordPress.org cũng khuyến nghị tạo bản sao trước khi làm sạch website bị hack để giữ dữ liệu phục vụ điều tra và tránh lặp lại cùng đường xâm nhập.
Mẫu biên bản sự cố sau cập nhật
| Trường | Nội dung |
|---|---|
| Thời điểm phát hiện | Ngày và giờ |
| Thay đổi gần nhất | Plugin/theme/core và phiên bản |
| Ảnh hưởng | URL, chức năng hoặc nhóm người dùng bị ảnh hưởng |
| Bằng chứng | Thông báo lỗi, nhật ký, ảnh chụp màn hình |
| Cách xử lý | Tạm dừng, quay phiên bản, khôi phục hoặc sửa có kiểm soát |
| Rủi ro dữ liệu | Dữ liệu có thể mất hoặc cần giữ |
| Phần đã kiểm | Trang công khai, chức năng kinh doanh, khu vực quản trị |
| Người phụ trách | Người xác nhận sự cố đã xử lý xong |
Sai lầm thường gặp khi khôi phục
- Khôi phục bản cũ mà không kiểm dữ liệu mới phát sinh.
- Cập nhật thêm nhiều thành phần khi website đang lỗi.
- Xóa nhật ký trước khi lưu bằng chứng.
- Thấy wp-admin vào được rồi kết luận website đã ổn.
- Làm mới cache liên tục thay cho việc tìm lỗi.
- Không ghi phiên bản gây lỗi và phiên bản đã quay lại.
- Không kiểm metadata/canonical sau khi quay lại template cũ.
Kết luận
Khôi phục website sau cập nhật là bài toán giảm số thay đổi và bảo toàn dữ liệu. Dừng thay đổi, ghi phiên bản gần nhất, dùng Recovery Mode hoặc cách quay lại phù hợp, rồi kiểm lại toàn bộ chức năng quan trọng. Sau khi xử lý xong, cập nhật checklist bảo trì WordPress để lỗi tương tự có đường xử lý rõ hơn.
Nguồn chính thức: WordPress Recovery Mode; Updating WordPress; FAQ Troubleshooting; FAQ My site was hacked.