Trong quá trình quản lý hoạt động của một website, bạn khó tránh khỏi tình huống phải chuyển sang host khác. Có nhiều lý do để bạn thực hiện việc đó.
Bên cạnh đó, nhiều công ty host thường khuyến mại dịch vụ chuyển host khi bạn đăng ý host mới. Thực tế, việc chuyển host cũng không quá phức tạp.
Do vậy tốt nhất bạn nên tự làm. Trong bài viết này mình sẽ hướng dẫn bạn từng bước cách chuyển website WordPress sang host khác sử dụng cPanel.

Các bước chuẩn bị trước chuyển wesbite
Thêm tên miền vào host mới
Việc thêm tên miền mới về hosting có thể xảy ra ở hai hình thức. Thứ nhất bạn thêm tên mới vào host như là tên miền chính (primary domain). Tình huống này xảy ra khi bạn đăng ký mua host mới.
Hình thức thứ hai là thêm tên miền vào host mới dưới hình thức add-on domain. Cách làm cụ thể mình đã đề cập trong bài viết hướng dẫn sử dụng cPanel cho người mới. Nếu bạn chưa biết có thể đọc lại.
Tắt các plugin cache và bảo mật nếu có:
Để đảm bảo quá trình chuyển website sang host mới diễn ra suôn sẻ, bạn nên tắt các plugin cache chẳng hạn như W3 Total Cache, Super Cache hay LiteSpeed Cache. Bạn cũng tắt luôn các plugin bảo mật ví dụ như iThemes Security. Và plugin tạo form như contact form 7 hay ninja form.
Hướng dẫn chuyển website WordPress sang host mới.
Các nhanh nhất để chuyển website của bạn sang host mới là dùng plugin Duplicator. Cách sử dụng plugin này bạn có thể xem ở đây.
Bài viết này mình sẽ sử dụng cách làm thủ công. Cách làm này dĩ nhiên không tiện lợi bằng Duplicator. Nhưng đối với website đã có dung lượng tương đối thì sử dụng plugin Duplictor để tạo bản sao chép website thường hay bị lỗi.
Như trường hợp của mình, mỗi khi chạy Duplicator cho website dung lượng gần 1G trở nên kiểu gì cũng bị lỗi. Vì Duplicator khi chạy với website có dung lượng lớn sẽ ngốn hết tài nguyên cho phép của gói shared host. Dẫn tới tiến trình chạy sẽ ngắt đột ngột.
Về cách làm thủ công, cơ bản bạn sẽ thực hiện ba việc. Thứ nhất bạn sao chép mã nguồn và cơ sở dữ liệu của website từ host cũ sang host mới. Tiếp theo, bạn sửa lại thông tin kết nối database cho phù hợp với database ở trên host mới. Cuối cùng sau khi đã kiểm tra website đã hoạt động ok bạn sẽ trỏ domain về host mới.
Điểm quan trọng ở đây là mình sẽ chia sẻ cách kiểm tra website khi chạy trên host mới mà không cần trỏ domain về host mới vội. Làm như vậy bạn sẽ hạn chế được ảnh hưởng của việc chuyển host. Người dùng thậm chí sẽ không biết bạn vừa chuyển website sang host mới.
Dưới đây là các bước chuyển website sang host mới:
Bước 1: Tải về mã nguồn của website ở host cũ
Bạn truy cập vào cPanel và kéo xuống phần files. Click vào mục File Manage. Điều này sẽ đưa bạn tới màn hình quản lý tập tin trên host

Sau đó bạn di chuyển tới thư mục chứa website của bạn. Nếu domain của website là domain chính thì website của bạn sẽ nằm thư mục gốc (public_html). Ngược lại nếu domain là add-on domain thì mã nguồn website của bạn sẽ nằm trong thư mục có tên trùng với domain của website.
Khi vào đã ở trong thư mục chứa mã nguồn website của bạn, click vào Select All để chọn toàn bộ tập tin. Tiếp theo, bạn click chuột phải và chọn Compress từ menu ngữ cảnh hiện ra. Hoặc bạn có thể nút Compress từ thanh công cụ phía trên đầu màn hình.

Một popup xuất hiện yêu cầu bạn nhập vào tên file được nén. Nhập vào một tên bất kỳ và click vào nút Compress Files.

Ngay khi quá trình nén hoàn tất, bạn tải tập tin .zip về máy của bạn.

Như vậy bạn đã có mã nguồn của website. Bạn sẽ upload mã nguồn lên host mới ở bước tiếp theo.
Bước 2: Sao lưu cơ sở dữ liệu ở host cũ
Cũng ở trong màn hình cPanel của host cũ, bạn đi tới phần Databases. Click vào biểu tượng của ứng dụng phpMyAdminh

Điều này sẽ chuyển hướng bạn tới màn hình của phpMyAdmin. Ở đây bạn chọn cơ sở dữ liệu của website của bạn ở panel bên trái. Tiếp đó, bạn click vào tab có tên gọi là Export.

Trên màn hình của tab Export, bạn click vào nút Go

Lúc này bạn sẽ tải về một file có đuôi là .sql chứa toàn bộ cơ sở dữ liệu của website. Bạn sẽ import file này vào cơ sở dữ liệu trên host mới.
Bước 3: Upload mã nguồn lên host mới
Bây giờ vào đăng nhập vào cPanel của host mới. Bạn di chuyển tới phần files và click vào File Manager. Trên màn hình quản lý file của File Manager, bạn di chuyển tới thư mục chứa website.
Nếu domain bạn bổ sung vào host mới là domain chính thì thư mục sẽ là thư mục gốc (public_html). Còn nếu bạn bổ sung domain như là add-on domain, một thư mục có tên trùng với domain của bạn sẽ được tạo ra. Và bạn sẽ để mã nguồn website bạn định chuyển tới vào trong đó.
Như trong ví dụ bên dưới, mình bổ sung domain lookwp.info vào như là add-on domain. Lúc đó ình sẽ có một thư mục có tên gọi là lookwp.info. Bây giờ mình sẽ di chuyển vào trong thư mục đó. Và click vào nút Upload.

Tiếp theo, bạn chọn file zip mà bạn tải về ở bên trên.
Khi upload xong, bạn quay trở lại File Manager và click vào Reload. Lúc này bạn sẽ nhìn thấy tập tin zip bạn vừa tải lên.
Chọn tập tin này và click vào Extract từ menu ngữ cảnh khi click chuột phải hoặc click nút Extract trên thanh công cụ.

Ngay sau khi source code đã được giải nén xong, bạn nên xóa đi file zip để giải phóng bớt dung lượng host.
Bước 4: Di chuyển database sang host mới
Đầu tiên bạn cần phải tạo một cơ sở dữ liệu trên host mới.
Ở trong cPanel của host mới, bạn đi tới phần Databases. Click vào ứng dụng MySQL databases.

Ở đây bạn tạo một cơ sở dữ liệu mới. Sau đó bạn tạo một user mới và gán user đó vào cơ sỏ dữ liệu bạn vừa tạo ra. Nếu bạn chưa biết cách làm, bạn có thể xem lại bài viết cách sử dụng cPanel của mình.
Sau khi bạn đã có sơ sở dữ liệu bạn click vào phpMyAdmin trong cPanel. Ở đây, bạn chọn database bạn vừa tạo ra và click vào tab Import.
Tiếp theo, bạn click vào Choose File. Môt popup yêu cầu bạn chọn file từ máy tính của bạn. Bạn chọn file sql mà bạn tải về ở bước trên. Cuối cùng bạn click nút Go.

Thời gian import phụ thuộc vào dung lượng cơ sở dữ liệu của bạn. Nếu dung lượng cơ sở dữ liệu của bạn quá lớn, bạn có thể nhờ nhân viên kỹ thuật bên host mới của bạn trợ giúp.
Bước 5: Cập nhật thông tin kết nối với với database ở trong file wp-config
Khi bạn sao chép mã nguồn sang host mới, file wp-config vẫn còn chứa thông tin kết nối với host cũ. Bạn cần cập nhật thông tin này cho phù hợp với host mới. Các thông tin bạn cần thay đổi là database-name, databaser user, và password.
Ở FileManager của host mới, bạn chọn file wp-config. Tiếp theo click vào Code Editor.

Ở màn hình Code Editor, bạn sửa lại thông tin mình khoanh lại cho phù hợp với thông tin của bạn.

Bước 6: Kiểm tra website trước khi trỏ tên miền.
Dĩ nhiên bạn cần phải truy cập website thì mới biết được nó có bị lỗi gì không khi chuyển sang host mới. Để làm điều này bạn không cần thiết phải trỏ domain về host mới vội.
Đây là cách làm:
Bạn di chuyển tới vị trí file hosts nằm ở C:WindowsSystem32driversetc. Mở file host và thêm dòng sau vào file hosts:
119.81.140.208 lookwp.info
Bạn thay đổi lại địa chỉ IP thành địa chỉ IP của host mới. Để biết được địa chỉ IP của host mới. Bạn click Advaned DNS zone trong cPanel. Sau đó chọn domain mà bạn muốn biết IP. Kéo xuống dưới bạn sẽ nhìn thấy địa chỉ IP.
Tiếp theo, bạn thay đổi giá trị domain thành domain của bạn.
Bây giờ bạn có thể thoải mái kiểm tra xem website sau khi chuyển sang host mới có lỗi lầm gì hay không.
Bước 7: Trỏ tên miền về host mới.
Sau khi đã chắc chắn website hoạt động OK bạn cần trỏ domain về host mới là được. Cách làm cụ thể bạn có thể tham khảo bài viết này của mình.
Lời kết
Trên đây mình đã hướng dẫn bạn từng bước cách chuyển website sang host mới. Nhìn thì có vẻ nhiều bước lằng nhằng, nhưng nếu bạn làm vài lần thì chắc chắn sẽ thấy quen và thao tác nhanh thôi.
Và cũng đừng quên chia sẻ bài viết trên mạng xã hội nếu bạn thấy nó hữu ích.
Đã chuyển và website đã chạy. Nhưng khi bấm vào bài viết thì bị lỗi 404 là sao ad?
lỗi 404 như thế này do khá nhiều nguyên nhân gây ra. Ví dụ hôm qua mình vừa chuyển từ vps chạy ngin lên shared host sử dụng cấu hình .htaccess thì cũng lỗi 404. Bạn thử thay đổi tên file htaccess sau đó vào phần cài đặt đường dẫn tĩnh ấn save lại để file .htaccess được sinh ra xem sao.
Cảm ơn anh Thịnh đã hướng dẫn rất chi tiết!
Em đã làm được các bước 1-2-3.
Đến bước số 4, lúc import .SQL database vào host mới, thì có lỗi “MySQL said: #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘PK’ at line 1”. Em không biết phải xử lý thế nào cả.
Database khi tải xuống từ host cũ, em tải về ở dạng “abcdef.sql.zip”.
Nhờ anh Thịnh cho em lời khuyên với ạ. Cảm ơn anh rất nhiều!
khả năng db của hai host có gì khác biệt. Vì liên quan đến lỗi cú pháp sql mà mình không biết code thì nhờ support kỹ thuật của host cho nhanh.
Chào anh Thịnh, Hiện mình có một website wordpress tên miền X và sử dụng hosting A. Nhưng mình đang muốn tìm một hosting B và xây dựng lại một website mới, với tên miền X đang sử dụng này. Anh Thịnh có thể hướng dẫn giúp mình cách để gỡ tên miền X từ website đang hoạt động chuyển qua hosting mới, và xóa toàn bộ nội dung website này? Mình có một băn khoăn liệu chuyển tên miền qua hosting mới, và làm một website mới thì khi tìm kiếm trên google nó còn xuất hiện nội dung… Read more »
bạn chỉ cần trỏ tên miền sang hosting mới. Vì bạn tạo website mới nên không cần chuyển hướng 301. Nội dung cũ thì vẫn có trong bộ cache goole nên vẫn hiện trong kết quả tìm kiếm để báo google xóa nội dung bạn vào https://www.google.com/webmasters/tools/url-removal còn không thì sau một thời gian google sẽ xóa thôi. Nhìn chung việc này do google tự quyết mình không ép nó được.
ad có hỗ trợ chuyển dùm không nhỉ ?
nhà cung cấp nào bây giờ chả hỗ trợ chuyển host mà bạn.
Bạn ơi nếu chuyển giữa 2 stablehost cho nhau thì phần trỏ tên miền về host mới thấy phần DNS là như nhau thì xử lý thế nào bạn nhỉ, mình đấu nối vào nhưng web không chạy, thanks
mình khuyên bạn nên dùng clouflare dns (https://thuthuatwp.com/cach-su-dung-cloudflare-dns/) vì nó có tốc độ look up tốt (cải thiện tốc độ website), hơn nữa nếu bạn có nhiều website việc quản lý qua cloudflare cũng tập trung hơn đỡ mất công đăng nhập phần quản trị từng domain hơn. Sau đó bạn tạo bản ghi A trỏ ip về nhà cung cấp hosting, bài viết kia của mình đã có ảnh minh họa rõ ràng rồi. Còn nếu bạn dùng dns như cách bạn nói mình không biết dns của stable ở các location có khác nhau hay không (bên stablehost… Read more »
Hi anh. Em có 1 vấn đề mong anh giải đáp
Em đã chuyển web của em (tên miền của Godaddy) qua host Stable, bây giờ em vào quản trị của Godaddy -> Managed WordPress Website-> em thấy tên miền của em vẫn dùng IP của host Godaddy và vẫn chạy đc web ở trên đây. Không biết có đúng ko anh? Thế là web của em vẫn chạy trên 2 host ah?
Làm gì có chuyện ấy xảy ra domain chỉ trỏ về một tên một server hosting thôi. Nếu muốn chạy host stable phải thay địa chỉ ip về stable chính là bước 7 trong bài đấy, bước 6 chỉ là tạm trên máy mình thôi.
Em vào trang quản trị của Godaddy thì phát hiện như thế. Hay là em nên xóa cái mã nguồn này ah
Link ảnh em chụp lại: https://flic.kr/p/YBqkzv
Mình không dùng gói host 12$ của GoDaddy không biết chỗ thay đổi ip. Nhưng chỉ cần chắc chắn cấu hình domain trỏ ip về stablehost là ok. còn source code xóa đi hay không không quan trọng nếu muốn biết domain trỏ về đâu chỉ cần mở command line ping là biết ngay địa chỉ ip mà. Không thì xóa đi cho chắc đang trỏ tới đâu.
Vâng, để chắc thì em sẽ xóa nó đi và thêm tên domain mới vào cái host cũ Godaddy.Thanks anh
hi anh Thịnh. Em chuyển web sang host khác, làm theo hướng dẫn của anh, nhưng khi chạy thì hiện ra lỗi này.
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 491520 bytes) in /home/tocgiade/public_html/wp-content/plugins/js_composer/include/params/iconpicker/iconpicker.php on line 2538. Em ko biết để sửa, mong anh chỉ giúp. Cám ơn anh nhiều
Memory limit của bạn là 128MB thử tăng lên theo bài này xem sao (https://thuthuatwp.com/tang-gioi-han-bo-nho-php-wordpress/). Nhưng lỗi này bạn gặp ở bước này là vì bài này mình chuyển bằng thủ công nên không có cái nào gặm bộ nhớ được. Chỉ có một khả năng khi bạn chạy website trên hosting mới thì thấy lỗi này do plugin này không thấy đủ bộ nhớ cho nó hoạt động.
đúng rồi anh, cả sáng nay vò đầu ko biết lối j, cứ vào đổi tên file thì lại chạy, nhưng cài lại lỗi, em cũng sửa lại theo hướng của anh rồi. Cám ơn anh nhiều ah
sao mình tải về nó ghi là stored 0% và deflated 60%
Mình nén file trong cpanel và tải về bình thường. Mình không biết mấy cái thông số stored 0% và deflated 60% của bạn lấy ở đâu vì mình chưa bao giờ nhìn thấy.
Hi Thịnh,
Mình mới làm quen voi WP .Bạn cho mình xin ebook biên soạn làm quen với WP vào mail zancopki01@gmail.com
Cám ơn bạn .Chúc bạn nhiều sức khỏe và viết thêm nhiều bài hay cho cộng đồng.
Thanks bạn. Mình đã gửi sách cho bạn.