Tới nội dung chính
hstation
Dịch vụDự ánVề tôiBlogThư viện nhạc

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 = 3600 giâ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.
Trang bài blog trên hstation.net: thanh trên có logo hstation và các mục điều hướng như Dịch vụ, Dự án, Blog, Thư viện nhạc; đường dẫn Trang chủ, Blog, Bảo mật và sao lưu; nhãn BẢO MẬT VÀ SAO LƯU, 10 PHÚT ĐỌC, 2026-09-17; tiêu đề lớn Khôi phục website WordPress: sao lưu đủ hai phần và kiểm tra URL thật, đoạn tóm tắt, và ảnh bìa là trang Tất cả tập tin của WordPress.
Trang bài blog trên hstation.net: thanh trên có logo hstation và các mục điều hướng như Dịch vụ, Dự án, Blog, Thư viện nhạc; đường dẫn Trang chủ, Blog, Bảo mật và sao lưu; nhãn BẢO MẬT VÀ SAO LƯU, 10 PHÚT ĐỌC, 2026-09-17; tiêu đề lớn Khôi phục website WordPress: sao lưu đủ hai phần và kiểm tra URL thật, đoạn tóm tắt, và ảnh bìa là trang Tất cả tập tin của WordPress.

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.
Trang bài Bài thử khôi phục số 1 trên site thử WordPress với theme Twenty Twenty-Five: tên site Cửa hàng mẫu, liên kết Sample Page, tiêu đề bài, dòng Nội dung bài thử số 1 và một ảnh nền xanh lá có chữ Cua hang.
Trang bài Bài thử khôi phục số 1 trên site thử WordPress với theme Twenty Twenty-Five: tên site Cửa hàng mẫu, liên kết Sample Page, tiêu đề bài, dòng Nội dung bài thử số 1 và một ảnh nền xanh lá có chữ Cua hang.

Đọ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:

  1. Có khu quản trị để viết và bấm đăng.
  2. 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.
  3. Có Thư viện media sẵn để tải ảnh.

hstation (Next.js):

  1. 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.
  2. 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."
  3. Ả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:

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.