← Tất cả bài viết

Chuyển WordPress sang Astro bằng AI agent: mình giao việc cho Claude Code như thế nào

Mình vừa chuyển pvhien.com từ WordPress sang Astro. Cái hay để học lỏm ở đây không phải bản thân Astro, mà là cách giao việc dựng web cho một AI agent mà vẫn không sợ sập site: giao quyền, để nó dựng lại, duyệt trên máy mình, rồi mới đẩy lên.

Bài này mình kể gọn cách làm và cho xem ảnh trước/sau. Ai muốn đọc bản đầy đủ (export dữ liệu, giữ URL, redirect, số liệu tốc độ) thì xem bài chi tiết trên pvhien.com.

So sánh trang chủ pvhien.com bản WordPress cũ và bản Astro mới, cùng khung hình

Key Takeaways

  • Cách làm xoay quanh một vòng an toàn: giao SSH, để agent dựng lại web, build và duyệt trên localhost, OK thì mới đẩy lên.
  • Phần code mình giao cho AI agent (Claude Code / Codex). Mình không phải dev, nhưng mỗi quyết định vẫn do mình chọn.
  • Không đổi hosting, không đổi DNS, giữ nguyên URL cũ. Đổi càng ít thứ thì càng ít rủi ro.
  • Luôn giữ đường lui: bản WordPress cũ không xoá, lỡ có chuyện thì vài phút là quay lại được.
  • Đang có business chạy trên WordPress thì đừng làm theo. Phần cuối bài nói rõ vì sao.

Cách mình làm: một vòng an toàn với AI agent

Điểm cốt lõi để không sợ là không cho agent đụng thẳng vào site đang chạy. Mọi thứ diễn ra trên máy mình trước, duyệt xong mới đẩy lên. Vòng đó gồm 5 bước:

  1. Có SSH vào hosting/VPS. Đây là chìa khoá để kéo nội dung cũ về và sau này đẩy bản mới lên. Lấy từ trang quản lý hosting hoặc nhà cung cấp VPS.
  2. Nối AI agent chạy ngay trên máy. Mình dùng Claude Code; bạn dùng Codex cũng được. Agent đọc được code, chạy được lệnh trong đúng phạm vi mình cho phép. Nếu bạn chưa quen dựng agent local, xem trước hướng dẫn cài OpenClaw trên macOS để hình dung kiểu "agent sống trên máy".
  3. Để agent dựng lại web. Export nội dung WordPress ra, đổi sang định dạng mới, dựng giao diện. Mình ngồi đọc, hỏi lại, bảo nó sửa - chứ không gõ từng dòng.
  4. Build và duyệt trên localhost. Chạy site ngay trên máy, soi từng trang, từng link. Sai thì sửa tại chỗ, chưa ai trên mạng thấy gì cả.
  5. Duyệt OK thì mới đẩy lên. Tốt nhất là đẩy lên một bản staging gắn noindex trước, soi lần nữa, rồi mới cho live. Bản WordPress cũ vẫn để nguyên làm đường lui.

Cái khó không nằm ở việc viết code - agent lo phần đó. Cái khó là những thứ WordPress xưa nay làm giúp mà mình không để ý: sitemap, redirect, canonical, đa ngôn ngữ. Bỏ plugin ra mới thấy phải tự lo hết.

Soạn bài: thay trang admin WordPress bằng CMS chạy lúc dev

Bỏ WordPress thì soạn bài ở đâu? Mình dùng Keystatic - mở ngay trên máy lúc dev, vẫn có ô meta title, meta description, focus keyword quen tay. Khác một điều: bản đẩy lên không có trang admin nào cả, nên cũng không có /wp-admin để bị dò mật khẩu.

Giao diện soạn bài trong Keystatic với các trường tiêu đề, slug, ngày đăng, tóm tắt

Redirect: tự quản thay vì cài plugin

WordPress cần redirect thì cài plugin. Ở bản mới, mình để một danh sách redirect sửa được ngay trong CMS, mỗi lần build thì tự sinh ra file cấu hình cho hosting. Nghe phức tạp nhưng agent dựng cái này trong một buổi.

Danh sách redirect 301 được quản lý ngay trong CMS

Kết quả: trang nhẹ hơn, giao diện gọn hơn

Chuyển nền tảng thì mình làm lại luôn giao diện. Trang bài viết là chỗ đổi rõ nhất: bản cũ có ảnh cover bị làm mờ, lặp lại tiêu đề, kèm dòng "0 comments" cho một blog không ai comment. Bản mới bỏ hết.

So sánh trang bài viết blog trên WordPress cũ và Astro mới

So sánh trang chủ pvhien.com trên mobile trước và sau khi chuyển sang Astro

Về nhẹ: trang chủ từ 155 KB xuống 81 KB, số thẻ <script> từ 16 còn 2, file CSS riêng phải tải từ 8 về 0 (nhúng thẳng vào HTML). Trang bài viết chạy Lighthouse mobile được Performance 100. Con số đầy đủ mình để trong bài trên pvhien.com.

Đang có business thì đừng làm theo

Nói thẳng cho công bằng: mình làm được vì đây là site cá nhân, một mình mình viết, và chấp nhận mất vài ngày để vọc. Nếu website là chỗ ra tiền của bạn thì khác hẳn.

  • Người soạn bài không phải dev. Giao một bạn content viết bài trên WordPress thì 10 phút là xong hướng dẫn. Kiểu mới này không dễ vậy.
  • Phải tự làm lại mọi thứ plugin đang làm: form, SEO meta, sitemap, redirect, đa ngôn ngữ.
  • Rủi ro SEO là có thật. Lệch một dấu /, sai một canonical, quên một redirect là có thể rớt traffic.
  • Lợi không tương xứng. WordPress chậm thì cache tốt hơn, đổi hosting, bớt plugin thường đã giải quyết phần lớn, rẻ hơn nhiều so với viết lại cả site.

Vậy "học lỏm" được gì từ bài này? Không phải để đi chuyển site của mình, mà là cách giao một việc lớn cho AI agent mà vẫn kiểm soát: làm trên máy trước, duyệt kỹ, giữ đường lui, rồi mới đẩy lên. Cũng là cách mình dùng Codex + Figma nhân bản landing page hay dựng mấy thứ khác.

Muốn xem từng bước kỹ thuật thì đọc bản chi tiết trên pvhien.com.