Phần mềm riêng · 6 phút đọc · 2026-09-17
WordPress hay NextJS: đo trang nặng và cách đăng bài từ hai site thật
Một dự án chạy cả hai: trang NextJS của hstation tải 15 script và 14 tệp font, trang WordPress thử tải 4 script và 1 font. Nhưng khác biệt lớn nhất nằm ở chỗ đăng bài.

WordPress hay NextJS (Next.js)? Mình không trả lời câu này bằng lý thuyết, vì dự án này đang chạy cả hai: hstation.net viết bằng Next.js, còn một site WordPress thử trên máy là nơi mình làm mọi bài hướng dẫn về WordPress. Bài này đặt số đo của hai bên cạnh nhau, kèm cả những chỗ phép so không công bằng.
Hai hệ đang chạy thật
- hstation.net: Next.js 16.3.4, React 19.2.8, đứng sau nginx. Máy chủ trả header
X-Powered-By: Next.js. Trang bài blog được dựng sẵn và làm mới theo chu kỳrevalidate = 3600giây. - Site thử WordPress: WordPress 7.1 tiếng Việt, chạy trên máy (Apache, MySQL 8.4), theme mặc định Twenty Twenty-Five.

WordPress hay NextJS nặng hơn: số đo một trang bài
Mình mở một trang bài của mỗi bên bằng Chrome, tắt cache, đếm request và byte theo loại. Không so thời gian tải, vì một site chạy ngay trên máy còn site kia đi qua internet.
Trang bài trên hstation.net (Next.js):
- Script: 15 request, 192.973 byte.
- Font: 14 request, 179.413 byte.
- Fetch: 20 request, 83.652 byte.
- HTML: 21.408 byte.
- Ảnh: 1 request, 20.051 byte.
- Stylesheet: 1 request, 10.856 byte.
Trang bài trên site thử WordPress:
- Tổng: 9 request, 239.003 byte.
- HTML: 80.170 byte.
- Script: 4 request, 70.110 byte.
- Font: 1 request, 53.913 byte.
- Stylesheet: 1 request, 21.087 byte.
- Ảnh: 1 request, 13.246 byte.

Đọc số cho đúng
- HTML của WordPress nặng hơn: 80 KB so với 21 KB.
- Trang Next.js của mình tải nhiều thứ hơn hẳn: 15 script so với 4, 14 tệp font so với 1.
- 20 yêu cầu Fetch trên trang Next.js là các yêu cầu
?_rsc=mà Next.js tự nạp trước cho những trang được liên kết. Ví dụ trang Thư viện nhạc được nạp trước 25.433 byte dù người đọc chưa bấm vào. - 14 tệp font đến từ cấu hình của chính hstation: hai họ font, một họ có 4 độ đậm và hai bảng chữ (latin, vietnamese). Đây là lựa chọn thiết kế của mình, không phải cái giá bắt buộc của Next.js.
Hai trang khác nhau về thiết kế và nội dung. Nên đây là phép so WordPress vs NextJS trên hai site thật, không phải phép so "framework nào nhẹ hơn", mà là "hai site thật này nặng ở chỗ nào". Mình loại tệp favicon ra khỏi phép so vì nó không liên quan tới framework.
Đăng một bài: khác nhau nhiều nhất ở đây
WordPress:
- Có khu quản trị để viết và bấm đăng.
- Có REST API. Ở bài Đăng bài lên WordPress bằng n8n, n8n gửi bài lên và WordPress trả về mã bài 10.
- Có Thư viện media sẵn để tải ảnh.
hstation (Next.js):
- Không có trình soạn thảo kiểu WordPress. Mình viết bài bằng một dây chuyền riêng, rồi một lệnh ghi bài vào cơ sở dữ liệu.
- Trang bài mới trả 200 ngay sau khi đăng. Nhưng trang danh sách giữ bản cũ tới một tiếng nếu không gọi API làm mới cache; lệnh đăng in đúng câu "Không có nó thì trang giữ bản cũ tới một tiếng."
- Ảnh phải đi qua một kho media tự dựng: nạp bằng
POST /api/quan-tri/media, máy chủ trả 201, tên tệp gắn mã băm nội dung.
NextJS có đăng bài như WordPress không
Nếu chỉ có Next.js thì không. Next.js là framework để dựng trang; nó không kèm khu soạn bài, thư viện ảnh hay phân quyền người viết. Ở hstation, mọi thứ đó là phần mình tự làm, và phần đăng bài ở trên chính là kết quả: một dây chuyền viết bài, một lệnh ghi vào cơ sở dữ liệu, một API nạp ảnh, và một bước làm mới trang.
Nghĩa là khi cân nhắc WordPress và NextJS cho web doanh nghiệp, câu hỏi không chỉ là trang nào nhẹ hơn. Câu hỏi là: ai sẽ đăng bài, bằng công cụ gì, và ai viết công cụ đó nếu nó chưa có.
Những thứ WordPress có sẵn mà mình phải tự viết cho Next.js
- Trình dựng nội dung. WordPress 7.1 có 115 khối trong thư mục
wp-includes/blocks, gồm cả khối bảng (table) và khối mã (code). Trình dựng Markdown mình tự viết cho hstation không nhận bảng và HTML thô. Mình còn phải viết thêm một bộ kiểm chặn bài có bảng trước khi đăng, để bài không vỡ trên trang. - Nút "Sao chép" ở khối mã. Tự viết.
- Kho media. WordPress có Thư viện media; hstation có kho media tự dựng như ở phần đăng bài.
Những thứ WordPress bắt bạn làm
Trên site thử, mình đã đo từng việc, mỗi việc một bài:
- Sao lưu đủ cơ sở dữ liệu lẫn
wp-content: Khôi phục website WordPress. - Kiểm dấu vết xâm nhập, chặn PHP chạy trong
uploads: Website WordPress bị hack. - Bảo trì plugin, theme, cơ sở dữ liệu: Bảo trì website WordPress.
Nói cho công bằng: hstation cũng phải vận hành máy chủ, cơ sở dữ liệu và triển khai. Bài này không có số đo về phần đó, nên mình không so khối lượng vận hành của hai bên.
WordPress hay NextJS nên chọn cái nào
Phần này là cách mình cân nhắc từ những gì đã làm, không phải số đo:
- Chọn WordPress khi người cập nhật nội dung không phải lập trình viên, cần bảng, cần tải ảnh, cần bấm đăng là xong, và có người làm được các việc vận hành ở trên.
- Chọn Next.js khi phần chính của site là tính năng riêng, và đội của bạn chấp nhận tự viết những thứ WordPress có sẵn: trình soạn thảo, kho media, cách làm mới trang sau khi đăng.
Muốn xem thêm số liệu thị phần và các việc vận hành WordPress, đọc bài Có nên dùng WordPress 2026.
Những gì mình chưa kiểm
- Chưa đo Next.js với thiết kế giống hệt site WordPress.
- Chưa đo thời gian dựng và triển khai của hstation.
- Chưa đo WordPress chạy trên máy chủ thật qua internet.
- Chưa thử cách dùng WordPress làm nơi soạn bài và Next.js làm phần hiển thị (thường gọi là headless WordPress).
- Chưa thử chuyển từ WordPress sang NextJS cho một site có sẵn, nên không có số liệu về công sức chuyển.
- Tác giả
- Quản trị viên
- Đăng ngày
- 2026-09-17
- Cập nhật
- 2026-09-17
- Thời gian đọc
- 6 phút đọc
- Tất cả bài viết