Categories Hosting Theme

Cách tạo trang staging site để tiến hành test plugin, chỉnh sửa giao diện thoải mái: không lo website WordPress bị lỗi

Với cách này bạn cũng không còn lo vấn đề bảo mật trên trang WordPress khi giao quyền admin cho bên thứ ba.

Lưu ý quan trọng: trước khi can thiệp sâu bất cứ điều gì trên website, bạn phải có các bản backup dự phòng (lưu cả trên mây/cloud lẫn máy tính cá nhân của bạn).


Hôm nọ khi tôi thực hiện tối ưu hóa tốc độ website cho khách hàng, có người thì cung cấp tài khoản admin cấp cao nhất để tiến hành chỉnh sửa trang WordPress. Có người cẩn thận hơn yêu cầu chỉ được tối ưu hóa trực tiếp qua teamview (ví dụ bằng TeamViewer).

Rất dễ hiểu chuyện yêu cầu qua teamview là do sợ cung cấp tài khoản admin có thể bị rủi ro nào đấy, lo lắng đấy không sai, nhưng chỉnh sửa qua teamview rất mất thời gian và kém hiệu quả.

Tại sao?

Vì tối ưu qua teamview nghĩa là hai máy đồng thời phải online, và người tối ưu không thuận tiện lắm để đi khắp các ngóc ngách của trang.

Có cách nào khác để thỏa mãn cả hai không? chủ website thì an tâm, còn người tối ưu cũng thoải mái.

Yep, hãy sử dụng staging site. Nôm na thì staging site là trang sao chép tất cả nội dung trên trang web gốc của bạn. Nó đem lại nhiều lợi ích khác chứ không chỉ riêng vụ bảo mật, điển hình là bạn có môi trường thử nghiệm thoải mái vọc vạch mà không lo ảnh hưởng đến trang web chính (dù là do tự bạn làm hay giao cho người khác).

PS: sống thử không phải môi trường staging chuẩn anh chị em nhé, vẫn dính bầu hoặc/và để lại hệ quả như thường!


Một số control panel có chức năng staging site (ví dụ cPanel, GridPane, Closte, vân vân), nếu có bạn dùng luôn của họ cho tiện, còn không bạn có thể tự triển khai như hướng dẫn dưới đây.

Cách tạo staging site:

  • Tạo staging site thông qua subdomain của bạn. Ví dụ tên miền của bạn là “tên-miền-của-bạn.com” thì trang staging site nên là staging.tên-miền-của-bạn.com. Điều này có hai lợi ích cơ bản: (1) bạn không phải mua tên miền mới cho trang staging, (2) nhiều theme và plugin bản quyền sẽ bỏ qua giới hạn, cản trở nếu bạn đang trên môi trường staging.
  • Tránh trùng lặp nội dung và ngăn bọ tìm kiếm truy cập website của bạn bằng cách sử dụng thẻ meta noindex hoặc/và robots.txt.
  • Cẩn thận hơn nữa thì chặn truy cập công khai trang staging bằng HTTP auth với mật khẩu bảo vệ. Cái này tôi sẽ trình bày chi tiết sau trong bài viết này.

Một số câu hỏi

Sao chép toàn bộ website sang môi trường staging như thế nào?

Về cơ bản việc này giống với chuyển host.

Bạn có thể sử dụng các plugin như All-in-one WP migration (giới hạn 512 MB dữ liệu, thậm chí chỉ có 2 hoặc 8MB, muốn hơn phải dùng gói trả phí), Migrate Guru (không giới hạn- cái này tôi khuyên dùng, nhanh mà cũng hiếm khi lỗi), Duplicator (giới hạn 2GB dữ liệu, là lựa chọn thay thế nếu bạn không thích Migrate Guru) để chuyển.

Sau đó thường bạn sẽ phải kiểm tra lại đường dẫn tĩnh (permalink), thiết lập chuyển hướng từ http về https (can thiệp vào .htaccess sẽ tốt hơn sử dụng plugin SSL), và thay thế các đường dẫn CSS, JS hoặc ảnh trong trang đang bị http thay vì https (lỗi này có thể làm bạn mất khóa màu xanh trên trang staging, cách sửa là dùng plugin Better Search Replace để cập nhật cơ sở dữ liệu)…Có thể phải làm thêm mấy việc nữa nếu cần, cốt là chúng ta có được website staging giống với website gốc.

Tôi có nên thử nghiệm staging site trên host mới hay vẫn dùng host đang dùng cũng được?

Cái này còn tùy vào mục đích của bạn. Chẳng hạn nếu mục đích chỉ là test giao diện và kiểm tra plugin thì dùng host đang dùng (nếu nó vẫn đủ tài nguyên) là cách đỡ tốn tiền.

Còn nếu mục đích là để xem host mới có nhanh hay không, có tương thích với theme, plugin đang dùng, vân vân thì dĩ nhiên trang staging site nên được test trên host mới cần kiểm tra.

Tên miền phụ phải là staging.tên-miền-của-bạn.com?

Không bắt buộc. Bạn có thể đặt tên miền phụ khác như demo.tên-miền-của-bạn.com, tuy nhiên đặt subdomain là staging có thể giúp nhiều plugin và theme bản quyền bình thường chỉ được phép dùng trên website gốc của bạn (vì bạn chỉ mua gói cho một tên miền), không gặp bất cứ vấn đề gì trên trang staging (ví dụ như cập nhật, chức năng).

Cách hay nhất để chống trùng lặp nội dung?

Staging site sao chép toàn bộ nội dung từ website gốc nên nếu cứ để nó như trang gốc và bọ tìm kiếm dò ra được sẽ gây vấn đề trùng lặp (duplicate content). Vấn đề này bạn có thể xử lý được dễ dàng bằng cách dưới đây:

Khuyến cáo từ Google là sử dụng thẻ meta noindex, mẫu của nó như sau:

<meta name="robots" content="noindex">

PS: bạn có thể dùng plugin Insert Headers and Footers (free & rất nhẹ) để làm điều này, bạn đưa nó vào trong phần header.

Cách thứ hai là block web crawler (chặn bọ tìm kiếm) bằng robots.txt. Mẫu chặn như sau:

User-agent: *
Disallow: /

Cách thứ ba là dùng HTTP auth, với hai phương pháp trên thì trang web vẫn truy cập được công khai, khi dùng HTTP auth website buộc yêu cầu đăng nhập khi truy cập- ngay cả khi không vào phần quản trị. Và bọ tìm kiếm lúc này chắc chắn sẽ không thể quét và lập chỉ mục nội dung trang staging site được. Bạn có thể sử dụng plugin HTTP Auth để làm điều này.

dùng HTTP Auth
Với tùy chọn như trên toàn bộ truy cập vào trang staging site sẽ yêu cầu mật khẩu

Bạn không cần lo lắng quá về chuyện trùng lặp nội dung đâu, vì thông thường các trang staging site không có liên kết nào trỏ đến cả (backlink), và nó cũng thường được xóa sau vài ngày thử nghiệm. Áp dụng một trong các cách trên hoặc kết hợp tùy nhu cầu thực tế là đủ an toàn rồi.

PS: Cá nhân tôi thích cách dùng meta noindex hoặc/và kết hợp với HTTP Auth hơn.

Thế còn vụ bảo mật? cung cấp tài khoản admin cho bên thứ ba như thế nào để an toàn đây?

Nếu cung cấp tài khoản quản trị cao nhất cho người khác thì bạn mới phải quan tâm đến vấn đề này. Còn trường hợp chính bạn là người tự chỉnh sử, vọc vạch thì không cần quan tâm.


Cách làm như sau:

  • Chuyển website gốc sang môi trường staging.
  • Tạo tài khoản admin mới trên trang staging.
  • Trên trang staging xóa các thông tin mà bạn cho rằng không nên để bên thứ ba biết (ví dụ các tài khoản admin khác, đơn hàng trên Woo).
  • Cung cấp tài khoản admin của trang staging cho bên thứ ba.

Rào giậu cẩn thận vậy là khá ổn rồi, tuy nhiên cái bảo mật nhất vẫn là:

“Chọn mặt gửi vàng”, sử dụng dịch vụ uy tín.

Đẩy trang staging site trở lại trang web gốc như thế nào?

Nếu trang staging chỉnh sửa đơn giản thì bạn có thể sao chép lại trên trang gốc bằng thao tác thủ công (nghĩa là bạn lặp lại các chỉnh sửa, cài cắm theo cách thủ công trên trang gốc).

Nếu phức tạp thì chỉ cần thực hiển chuyển toàn bộ nội dung của trang staging về trang gốc như chuyển host thôi.

Bạn nhớ luôn backup mọi thứ để phòng rủi ro.

Trước (hoặc sau)* khi chuyển trang staging về webstie gốc bạn cần vô hiệu hóa các thứ liên quan đến chống trùng lặp nội dung. Như bỏ thẻ meta noindex đi, để robots.txt ở dạng bình thường, vô hiệu hóa và xóa plugin kiểu như HTTP Auth.

(*): Thực hiện trước tôi nghĩ là hay hơn.

Đây là file robots.txt ở dạng bình thường:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Cuối cùng bạn xóa hẳn trang staging site là xong.

Nghe vẻ phức tạp, có cách nào dễ hơn không?

Tôi nghĩ cách tạo trang staging site ở trên là hay nhất, nhưng nếu bạn cảm thấy phức tạp thì có thể dùng plugin để tạo trang staging.

Plugin mà tôi mới thử và cảm thấy ổn là WP Staging (freemium)- bạn mất chưa tới 10 phút để tạo môi trường staging (trong khi cách mà tôi nói ở trên có thể mất ít nhất 30 phút đến vài tiếng tùy theo dung lượng website).

Tên miền của môi trường staging site cũng giống với tên miền gốc (họ sao chép trang của bạn rồi đưa vào thư mục phụ). Khi vào môi trường staging, thanh admin ngang sẽ chuyển sang màu vàng để bạn dễ nhận biết, họ cũng tạo mật khẩu kiểu HTTP Auth cho trang staging.

thanh admin có màu vàng cam trên môi trường staging site
Để tránh nhầm lẫn, thanh admin có màu vàng cam khi bạn vào môi trường staging site
trang đăng nhập của plugin WP Staging
WP Staging cũng tạo mật khẩu truy cập để tránh trùng lặp nội dung và ngăn người dùng thông thường truy cập vào trang staging

Plugin WP Staging có thể rất hữu ích nếu bạn không có các chỉnh sửa quá lớn trên website. Vì việc xuất lại các chỉnh sửa về trang gốc chỉ tiện lợi nhất khi bạn sử dụng gói pro của họ (giá chát, khởi điểm đã hơn 100$). Ngoài ra gói miễn phí cũng không có tính năng tạo staging trên subdomain.

PS: nếu trang của bạn quá lớn- mất thời gian để tạo staging site hoặc ổ SSD hết không gian trống có thể thử mẹo này để tạo, nó vẫn dùng media cũ (ảnh) nên file staging sẽ nhẹ đi rất nhiều, bạn vẫn có được website không khác gì trang gốc cả.


Anh chị em có kinh nghiệm gì nữa, chia sẻ thêm để mọi người cùng tham khảo nhé.

Back to Top