Chuyển host, đổi máy chủ WordPress: vì sao trang chủ chạy chưa chứng minh được gì
Từ hai sự cố thật của Halo, tìm hiểu cách quét trang con và kiểm tra bằng trình duyệt để phát hiện lỗi đường dẫn, ảnh, shortcode, biểu mẫu sau chuyển host.
Mở trang chủ thấy giao diện hiện ra, đội triển khai rất dễ nghĩ việc chuyển host đã xong. Halo từng trả giá vì cách kiểm này: một website khách có trang chủ trả mã 200 nhưng mọi trang con đều lỗi 404. Trong một lần khác, trang vẫn trả 200 dù biểu mẫu đã biến thành chữ thô. Hai sự cố dẫn tới cùng một quy tắc: phải quét đường dẫn và mở trình duyệt thật trước khi báo hoàn tất.
Tóm tắt nhanh
- Trang chủ trả 200 chỉ cho biết kết quả của lần gọi trang đó, chưa chứng minh các trang con hoạt động.
- Quét URL từ sitemap và lấy mẫu rải đều để kiểm tra nhiều nhóm nội dung sau chuyển host.
- Mở trình duyệt thật để tìm ảnh vỡ, shortcode hiện chữ thô, địa chỉ .local, tài nguyên http:// và lỗi biểu mẫu.
- Sửa lỗi xong phải kiểm lại. Kết quả quét đường dẫn và kiểm giao diện cần cùng đạt trước khi bàn giao.
Bài học từ một trang chủ chạy bình thường
Ngày 30/09/2026, sau khi chuyển một website khách lên máy chủ mới, trang chủ trả mã HTTP 200. HTTP là cơ chế trao đổi giữa trình duyệt và máy chủ; mã 200 cho biết yêu cầu đã được xử lý thành công ở mức phản hồi. Nhưng các trang bên trong đều trả 404, tức không tìm thấy trang theo đường dẫn được gọi.
Nguyên nhân trong ca này là thiếu tệp .htaccess. Đây là tệp cấu hình liên quan đến cách máy chủ xử lý yêu cầu, trong đó có đường dẫn của website. Trang chủ vẫn mở được nên lỗi ở các trang bên trong bị bỏ qua. Người phát hiện lại là khách hàng, sau khi đội triển khai đã kiểm tra chưa đủ.
Bài học không phải cứ gặp 404 là thêm một tệp theo mẫu. Điều cần thay đổi trước hết là tiêu chí xác nhận: không dùng một trang đang chạy để đại diện cho toàn bộ website. Sau chuyển host, đổi DNS hoặc sửa cấu hình máy chủ, phải đo lại đường dẫn thực tế của các trang con.
Mã 200 cũng chưa chứng minh nội dung hiển thị đúng
Một sự cố khác cho thấy ngay cả khi các trang đều trả 200, website vẫn có thể mất chức năng. Một website khách bị thiếu plugin Contact Form 7 sau khi dựng lại bản sạch. Plugin là thành phần bổ sung chức năng cho WordPress. Khi thành phần tạo biểu mẫu không còn, trang in nguyên shortcode thay vì hiển thị các ô nhập liệu.
Shortcode là mã ngắn để WordPress gọi một khối nội dung hoặc chức năng. Nếu chỉ đọc mã phản hồi HTTP, người kiểm tra vẫn thấy 200. Nhưng khi mở trang bằng trình duyệt, người dùng nhìn thấy chữ thô tại vị trí lẽ ra phải là biểu mẫu. Trang tải được và chức năng dùng được là hai điều cần kiểm riêng.
Từ đó, quy trình Halo yêu cầu hai phép kiểm: quét trang con để phát hiện lỗi phản hồi và mở trình duyệt thật để kiểm nội dung đã hiển thị. Không phép nào thay thế được phép còn lại. Một bảng toàn mã 200 vẫn chưa trả lời được câu hỏi biểu mẫu có xuất hiện đầy đủ hay không.
Quét trang con từ sitemap, lấy mẫu rải đều
Sitemap là danh sách đường dẫn mà website cung cấp để mô tả các trang của mình. Công cụ quét của Halo đọc sitemap, lấy các URL rồi kiểm mã phản hồi. Với sitemap chia thành nhiều tệp con, danh sách cần được lấy từ các nhóm đó trước khi chọn mẫu.
Cách chọn mẫu cũng quan trọng. Nếu chỉ kiểm những URL đầu tiên, lượt quét có thể tập trung vào một nhóm bài viết và bỏ qua trang hoặc danh mục ở phần khác. Script của Halo lấy mẫu rải đều trong danh sách để tránh chỉ nhìn vào đầu sitemap. Khi đọc kết quả, cần biết tổng số URL và số URL thực sự đã kiểm.
Quy ước triển khai hiện tại của Halo giới hạn lượt quét được gọi ở mức không quá 60 URL. Đây là kiểm tra theo mẫu, vì vậy báo cáo phải nói rõ phạm vi. Không nên biến câu “các URL đã quét đều đạt” thành khẳng định rằng mọi đường dẫn trên website đều đã được mở.
Phải gọi đúng bản trên máy chủ mới
DNS là hệ thống phân giải tên miền về địa chỉ máy chủ. Khi DNS chưa trỏ sang nơi mới, gọi tên miền theo cách thông thường có thể vẫn kiểm bản cũ. Phần chú thích của script cho phép chỉ định IP máy chủ mới để gọi đúng bản cần nghiệm thu. Nếu đo nhầm nơi, kết quả đẹp vẫn không có giá trị cho lần chuyển host.
Script phân biệt ba tình huống: lượt quét đạt, có URL không trả 200, hoặc không đọc được sitemap. Không đọc được danh sách để kiểm không đồng nghĩa với không có lỗi. Trường hợp đó cần xử lý việc lấy danh sách trước, thay vì ghi nhận như một lượt nghiệm thu thành công.
Mở trình duyệt thật và xem hết trang
Hướng dẫn nghiệm thu của Halo yêu cầu mở trang chủ, trang Liên hệ, một bài viết và một trang dịch vụ. Cửa sổ trình duyệt phải hiển thị để có thể quan sát. Đợi nội dung tải, cuộn hết trang rồi kiểm giúp tránh chỉ nhìn phần đầu và bỏ sót khu vực bên dưới.
Ảnh vỡ và chữ thô
Với ảnh, tiêu chí là không còn ảnh vỡ trong các trang được kiểm. Cần ghi lại ảnh nào không tải được để sửa đúng vị trí, thay vì chỉ nhận xét giao diện “có vẻ ổn”. Phần hình ảnh đã hiện ở đầu trang không đại diện cho toàn bộ ảnh bên dưới.
Với chữ thô, cần tìm các shortcode của biểu mẫu, khối bố cục, thư viện ảnh hoặc nội dung bán hàng đang hiện trực tiếp ra trang. Nếu thiếu plugin gây lỗi, hướng xử lý trong tài liệu là cài lại bản chính thức, kích hoạt và đối chiếu tệp plugin với nguồn phát hành. Sau đó mở lại trang để xác nhận khối nội dung đã được dựng đúng.
Địa chỉ .local và tài nguyên http://
Hướng dẫn còn yêu cầu tìm dấu vết tên miền .local trong nội dung trang. Đây là dấu vết địa chỉ môi trường local cần được xử lý khi đưa bản web lên nơi chạy thật. Chỉ nhìn menu chưa đủ; phép kiểm cần rà nội dung trang đã tải để phát hiện những địa chỉ còn sót.
Với http://, trọng tâm là các tài nguyên đang được trang gọi, như ảnh hoặc tệp giao diện. Tiêu chí trong quy trình là danh sách tài nguyên HTTP hỗn hợp phải rỗng. Kết quả cần ghi rõ đường dẫn còn lỗi để đội kỹ thuật sửa và đo lại trên chính trang đó.
Biểu mẫu phải có đủ ô và nút gửi
Trang có biểu mẫu phải hiển thị biểu mẫu thật, đủ ô nhập và nút gửi. Với Contact Form 7, hướng dẫn có phép đếm phần tử biểu mẫu để xác nhận plugin đã tạo nội dung. Việc shortcode biến mất là cần thiết, nhưng vẫn phải nhìn xem phần nhập thông tin có hiện đầy đủ hay không.
Phần gửi thư được kiểm riêng. SMTP là kết nối máy chủ dùng để gửi email. Tài liệu cho phép kiểm kết nối và đăng nhập SMTP mà không gửi thư. Kết nối thành công chỉ xác nhận bước kết nối đó; không nên ghi thành kết quả đã gửi thư tới người nhận. Halo không gửi thư thử cho khách khi chưa được người phụ trách đồng ý.
Danh sách kiểm sau mỗi lần chuyển host
- Xác định nơi đang kiểm: bảo đảm yêu cầu đi vào máy chủ mới, kể cả khi DNS chưa chuyển.
- Đọc sitemap: xác nhận lấy được danh sách trang, ghi tổng số URL và phạm vi lấy mẫu.
- Quét rải đều: kiểm các URL được chọn, xử lý mọi lỗi 404 hoặc phản hồi khác 200 trong lượt quét.
- Mở các loại trang: xem trang chủ, Liên hệ, một bài viết và một trang dịch vụ bằng trình duyệt thật.
- Đợi và cuộn hết trang: kiểm ảnh vỡ, shortcode hiện chữ thô, dấu vết .local và tài nguyên http://.
- Kiểm biểu mẫu: xác nhận đủ ô, nút gửi và kiểm kết nối SMTP theo phạm vi được phép.
- Đo lại sau sửa: chạy lại phép kiểm liên quan, chỉ báo hoàn tất khi cả đường dẫn lẫn hiển thị đều đạt.
Danh sách này cũng áp dụng sau triển khai website, đổi DNS và đổi cấu hình máy chủ. Khi ghi kết quả, hãy giữ rõ hai phần: các URL đã quét và các trang đã mở bằng trình duyệt. Đó là bằng chứng cụ thể để doanh nghiệp biết đội triển khai đã kiểm những gì, thay vì chỉ nhận một câu “trang chủ đã lên”.
Nguồn
- CLAUDE.md, mục Triển khai web / chuyển host, quy ước nội bộ Halo Media; sự cố ghi ngày 30/09/2026.
- quet-trang-con.sh, phần chú thích và cơ chế lấy mẫu của script nội bộ Halo Media; tệp không ghi ngày ban hành.
- nghiem-thu-trinh-duyet-that.md, hướng dẫn nội bộ Halo Media, ngày 30/09/2026, bổ sung ngày 04/10/2026.