Kết luận cho chủ doanh nghiệp
- 1
Trang headless có thể cập nhật theo thời gian hoặc theo sự kiện. Theo sự kiện đòi WordPress báo bài đổi, còn theo thời gian thì khách có thể nhận bản cũ một lần trước khi bản mới có mặt.
- 2
Draft Mode cho biên tập viên xem đúng bản sẽ đăng trước khi bấm xuất bản. Cần kiểm secret và slug để không mở chuyển hướng lạ.
- 3
Tài liệu không đưa con số thời gian chờ chung. Trước khi hứa với khách, nên đo sau khi triển khai và ghi lại kết quả.
Điểm chính: Tài liệu Next.js có hai cách cập nhật trang và không đưa mốc thời gian chung cho một thay đổi hiện ra.
1Hai cách làm mới trang sau khi sửa bài
Có hai cách để trang đã dựng sẵn đổi sau khi biên tập viên sửa bài. Cách thứ nhất là cập nhật theo thời gian, cách thứ hai là cập nhật theo sự kiện khi WordPress báo bài vừa đổi.
Hai cách có thể dùng cùng nhau. Tài liệu Next.js mô tả cả hai trong nhóm ISR, tức tái dựng trang tĩnh mà không cần dựng lại toàn bộ website.
| Cách | Khi nào trang đổi | Điều cần biết |
|---|---|---|
| Theo thời gian (revalidate) | Sau khoảng thời gian đã đặt, một lượt truy cập sau đó vẫn có thể nhận bản cũ | Bản mới được dựng nền để lượt kế tiếp nhận |
| Theo sự kiện (revalidatePath, revalidateTag) | Ngay khi WordPress gọi lệnh làm mới trang hoặc nhóm trang | Cần WordPress gửi tín hiệu, thường qua một route riêng |
2Trạng thái cache và ý nghĩa của từng giá trị
Tài liệu ghi rõ một trạng thái bản cũ: trang STALE là trang cũ đã hết hạn nhưng vẫn được phục vụ trong lúc bản mới được dựng. Header x-nextjs-cache trả về HIT, STALE, MISS hoặc REVALIDATED để kiểm tra trang đang ở trạng thái nào.
Tài liệu cũng nói khi làm mới bằng sự kiện gặp lỗi, dữ liệu được dựng thành công gần nhất vẫn được phục vụ từ cache, và lần yêu cầu sau sẽ thử làm mới lại. Điều này giúp khách không gặp trang trống, nhưng cũng có nghĩa là một lỗi có thể để lại bản cũ lâu hơn người biên tập mong đợi.
| Giá trị x-nextjs-cache | Ý nghĩa theo tài liệu |
|---|---|
| HIT | Trang lấy từ cache còn hiệu lực |
| STALE | Phục vụ từ cache trong lúc làm mới ở nền |
| MISS | Không có trang trong cache, phải dựng mới |
| REVALIDATED | Trang vừa được làm mới theo lệnh revalidate |
3Xem bản nháp trước khi xuất bản
Trước khi biên tập viên bấm xuất bản, họ cần xem trang đúng như sau khi đăng. Draft Mode của Next.js cho phép xem bản nháp mà không chờ làm mới cache: khi bật, request đó bỏ qua cache, còn khách khác vẫn thấy bản đã cache.
Tài liệu cho biết cách bật: CMS mở một đường dẫn có secret và slug, Route Handler kiểm tra secret và slug có thật rồi bật cookie __prerender_bypass. Slug nên lấy từ CMS để tránh chuyển hướng sang địa chỉ lạ.
| Việc | Cần có | Ghi chú theo tài liệu |
|---|---|---|
| Mở bản nháp | Secret và slug kiểm được ở server | Tài liệu dùng cookie __prerender_bypass để đánh dấu request |
| Tránh chuyển hướng mở | Slug lấy từ CMS, không lấy từ tham số tuỳ ý | Tài liệu nêu rõ điều này |
| Thoát chế độ xem | Một nút thoát, nên dùng POST | Tài liệu khuyến nghị POST |
4Giới hạn khi chạy static export hoặc nhiều bản
Có hai giới hạn cần biết trước khi chọn cách làm. Thứ nhất, ISR không chạy với static export. Thứ hai, khi có nhiều bản sao ứng dụng chạy song song, cache mặc định nằm trên từng bản, nên lệnh làm mới chỉ có tác dụng trên bản nhận lệnh.
Tài liệu khuyến nghị dùng một cache handler chung, ví dụ Redis, khi chạy nhiều bản. Nếu website chỉ chạy một bản, giới hạn này chưa áp dụng.
| Tình huống | Hệ quả theo tài liệu | Việc cần làm |
|---|---|---|
| Chạy static export | ISR không được hỗ trợ | Chọn cách khác hoặc chạy Node.js |
| Nhiều bản Next.js song song | Làm mới trên một bản không tự làm mới bản còn lại | Dùng cache handler chung |
| Một bản duy nhất | Giới hạn này chưa áp dụng | Vẫn cần đặt thời gian revalidate hợp lý |
5Năm câu hỏi nên hỏi trước khi chọn cách cập nhật
Tài liệu không đưa con số thời gian chờ để một thay đổi hiện ra trên mọi trang. Vì vậy bài không hứa độ trễ cụ thể. Điều nên làm là đo sau khi triển khai, rồi ghi lại kết quả.
Bảng dưới là các việc MONA suy ra từ tài liệu, để người làm website hỏi bên làm trước khi ký hợp đồng.
| Câu hỏi | Vì sao | Căn cứ |
|---|---|---|
| Sửa bài thì trang đổi sau bao lâu, đo ở đâu? | Không có con số chung | Tài liệu không đưa mốc thời gian |
| WordPress có báo bài đổi không? | Có thì dùng cập nhật theo sự kiện | Revalidate theo sự kiện trong tài liệu |
| Có chạy nhiều bản song song không? | Quyết định có cần cache chung | Tài liệu về nhiều instance |
| Có xem trước bản nháp không? | Biên tập viên cần thấy đúng bản sẽ đăng | Tài liệu Draft Mode |
| Ai sửa lỗi khi lần dựng lại thất bại? | Trang cũ có thể còn lâu | Tài liệu nêu hành vi phục vụ bản cuối thành công |
6Giới hạn của bài tổng hợp này
- Tài liệu Next.js đọc ngày 09/10/2026, phiên bản 16.4.0. Các phiên bản khác chưa kiểm, và các mục chỉ đọc trang App Router chứ chưa kiểm Pages Router.
- Chưa rõ cách so sánh secret của Draft Mode và giá trị revalidate tối thiểu, vì tài liệu không nêu. Bài không đoán các chi tiết này.
- Bài không có số đo độ trễ nào, cả của MONA lẫn bên thứ ba. Không có ngày khách nhận bản mới.
- Các bảng «nên hỏi» là cách đọc của một công ty làm phần mềm, chưa thử trên dự án thật.
7Nguồn và trích dẫn
- Next.js: Incremental Static Regeneration · revalidate và làm mới theo sự kiện
- Next.js: Draft Mode · xem bản nháp và cookie
- Next.js: Self-hosting · nhiều instance và cache chung
Trích dẫn bài này
Nhóm kỹ thuật MONA Software (2026). Sửa bài trên WordPress thì bao lâu trang trên website đổi. NC-28, bản 1.0. Công ty TNHH Phần mềm MONA. https://mona.software/nghien-cuu/sua-bai-tren-wordpress-bao-lau-trang-moi-doi-isr-draft-mode/. Tra văn bản 09/10/2026, cập nhật 09/10/2026.
@techreport{mona_nc28_2026,
author = {{Nhóm kỹ thuật MONA Software}},
title = {Sửa bài trên WordPress thì bao lâu trang trên website đổi},
institution = {Công ty TNHH Phần mềm MONA},
number = {NC-28, bản 1.0},
year = {2026},
month = oct,
url = {https://mona.software/nghien-cuu/sua-bai-tren-wordpress-bao-lau-trang-moi-doi-isr-draft-mode/},
note = {Bài tổng hợp, tra văn bản 09/10/2026}
}














































