{"id":222,"date":"2026-06-02T23:29:29","date_gmt":"2026-06-03T06:29:29","guid":{"rendered":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/"},"modified":"2026-06-02T23:29:29","modified_gmt":"2026-06-03T06:29:29","slug":"how-to-migrate-wordpress-to-a-new-host","status":"publish","type":"post","link":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/","title":{"rendered":"How to Migrate WordPress to a New Host (Without Breaking Your Site)"},"content":{"rendered":"<h2>Overview<\/h2>\n<p>A WordPress migration means moving your files, database, and configuration from one hosting environment to another. It&#8217;s one of the most common tasks in web hosting, and it&#8217;s also one of the most commonly done wrong. People either forget to export the database, update the wrong config file, or flip DNS before the new server is ready.<\/p>\n<p>You&#8217;ll need this guide if you&#8217;re switching hosting providers, upgrading from shared hosting to a <a href=\"https:\/\/www.hostandtech.com\/managed-wordpress-hosting\/\">Managed WordPress Hosting<\/a> plan, or moving a client site between accounts. The process is the same in all three cases.<\/p>\n<p>This article covers two methods: a plugin-based migration (easier, good for most users) and a manual migration (more control, better for developers and larger sites). I&#8217;d recommend the manual method if your site is over 2 GB or if you&#8217;ve had issues with plugin-based tools timing out before.<\/p>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>Admin access to your current WordPress dashboard (or FTP\/SFTP credentials if the dashboard is inaccessible)<\/li>\n<li>cPanel, Plesk, or SSH access to <strong>both<\/strong> your old and new hosting accounts<\/li>\n<li>A database created on the new server before you start (note the DB name, username, and password)<\/li>\n<li>FTP\/SFTP client installed locally \u2014 <a href=\"https:\/\/filezilla-project.org\/\" target=\"_blank\" rel=\"noopener\">FileZilla<\/a> works fine<\/li>\n<li>Access to your domain registrar to update nameservers or DNS records<\/li>\n<li>Allow 24\u201348 hours for DNS propagation after cutover (plan your migration window accordingly)<\/li>\n<\/ul>\n<h2>Method 1: Plugin-Based Migration (Recommended for Most Users)<\/h2>\n<p>This method uses the free <strong>Duplicator<\/strong> plugin (version 1.5+) or <strong>All-in-One WP Migration<\/strong>. Both work well on sites under 512 MB. For larger sites, Duplicator Pro handles chunked uploads which avoids PHP timeout errors.<\/p>\n<ol>\n<li>\n    <strong>Install and run Duplicator on the old site.<\/strong> In your WordPress dashboard, go to <em>Plugins &gt; Add New<\/em>, search for &#8220;Duplicator&#8221;, install and activate it. Then go to <em>Duplicator &gt; Packages &gt; Create New<\/em>. Accept the defaults and click <em>Build<\/em>. When it finishes, download both the <strong>Installer<\/strong> file and the <strong>Archive<\/strong> zip.<\/p>\n<\/li>\n<li>\n    <strong>Upload both files to the new server.<\/strong> Using FileZilla or cPanel&#8217;s File Manager, upload the installer (<code class=\"\" data-line=\"\">installer.php<\/code>) and the archive (<code class=\"\" data-line=\"\">*.zip<\/code>) to the public web root on the new server. That&#8217;s typically <code class=\"\" data-line=\"\">\/public_html\/<\/code> or <code class=\"\" data-line=\"\">\/public_html\/yourdomain.com\/<\/code> depending on your setup.\n  <\/li>\n<li>\n    <strong>Create a database on the new server.<\/strong> In cPanel, go to <em>MySQL Databases<\/em>, create a new database, create a user, and assign full privileges. Write down all three values \u2014 you&#8217;ll enter them in the next step.\n  <\/li>\n<li>\n    <strong>Run the installer.<\/strong> In your browser, visit <code class=\"\" data-line=\"\">https:\/\/yournewdomain.com\/installer.php<\/code>. The Duplicator wizard will walk you through entering your new database credentials and finalising the migration. On the last step, it will update <code class=\"\" data-line=\"\">wp-config.php<\/code> and run a search-replace on the database to swap old URLs for new ones.<\/p>\n<p>    \u26a0 <strong>Warning:<\/strong> Don&#8217;t close the browser tab mid-install. If it times out, the database will be in a partial state and you&#8217;ll need to drop it and start again.\n  <\/li>\n<li>\n    <strong>Log into WordPress on the new server<\/strong> and confirm everything looks right before touching DNS.\n  <\/li>\n<\/ol>\n<h2>Method 2: Manual Migration via SSH and cPanel<\/h2>\n<p>This is the cleaner approach for larger sites or anyone who wants full control. It&#8217;s also what I&#8217;d use when migrating to a VPS or dedicated server where you have shell access.<\/p>\n<ol>\n<li>\n    <strong>Export the database from the old server.<\/strong> SSH into the old server and run:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-1\"><code class=\"\" data-line=\"\">mysqldump -u DB_USERNAME -p DB_NAME &gt; wordpress_backup.sql<\/code><\/pre>\n<\/div>\n<p>    Replace <code class=\"\" data-line=\"\">DB_USERNAME<\/code> and <code class=\"\" data-line=\"\">DB_NAME<\/code> with your actual values from <code class=\"\" data-line=\"\">wp-config.php<\/code>. You&#8217;ll be prompted for the password. If you don&#8217;t have SSH, use phpMyAdmin: go to your database, click <em>Export<\/em>, choose <em>Quick<\/em>, format <em>SQL<\/em>, and click <em>Go<\/em>.\n  <\/li>\n<li>\n    <strong>Archive your WordPress files.<\/strong> Still on the old server via SSH:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-2\"><code class=\"\" data-line=\"\">cd \/public_html\ntar -czf ~\/wordpress_files.tar.gz .<\/code><\/pre>\n<\/div>\n<p>    This compresses your entire WordPress installation into a single file in your home directory. If you only have FTP access, download the files directly with FileZilla instead \u2014 it&#8217;s slower but works.\n  <\/li>\n<li>\n    <strong>Transfer the archive and SQL file to the new server.<\/strong> You can use <code class=\"\" data-line=\"\">scp<\/code>:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-3\"><code class=\"\" data-line=\"\">scp ~\/wordpress_files.tar.gz ~\/wordpress_backup.sql user@NEW_SERVER_IP:~\/<\/code><\/pre>\n<\/div>\n<p>    Or upload both files via FileZilla to the new server&#8217;s home directory.\n  <\/li>\n<li>\n    <strong>Extract files on the new server.<\/strong> SSH into the new server:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-4\"><code class=\"\" data-line=\"\">cd \/public_html\ntar -xzf ~\/wordpress_files.tar.gz<\/code><\/pre>\n<\/div>\n<\/li>\n<li>\n    <strong>Import the database.<\/strong> First create the new database in cPanel under <em>MySQL Databases<\/em>, then import:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-5\"><code class=\"\" data-line=\"\">mysql -u NEW_DB_USERNAME -p NEW_DB_NAME &lt; ~\/wordpress_backup.sql<\/code><\/pre>\n<\/div>\n<\/li>\n<li>\n    <strong>Update wp-config.php.<\/strong> Open <code class=\"\" data-line=\"\">\/public_html\/wp-config.php<\/code> in a text editor (nano works fine):<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-6\"><code class=\"\" data-line=\"\">nano \/public_html\/wp-config.php<\/code><\/pre>\n<\/div>\n<p>    Update these three lines to match your new database:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-7\"><code class=\"\" data-line=\"\">define( &#039;DB_NAME&#039;, &#039;new_database_name&#039; );\ndefine( &#039;DB_USER&#039;, &#039;new_db_username&#039; );\ndefine( &#039;DB_PASSWORD&#039;, &#039;new_db_password&#039; );<\/code><\/pre>\n<\/div>\n<p>    \u26a0 <strong>Warning:<\/strong> Leave <code class=\"\" data-line=\"\">DB_HOST<\/code> as <code class=\"\" data-line=\"\">localhost<\/code> unless your host has told you otherwise. Changing it unnecessarily will break the database connection.\n  <\/li>\n<li>\n    <strong>Run a search-replace to update URLs in the database.<\/strong> Old serialised data in WordPress can&#8217;t be updated with a plain SQL find-and-replace \u2014 it&#8217;ll corrupt the data. Use WP-CLI instead:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-8\"><code class=\"\" data-line=\"\">wp search-replace &#039;https:\/\/oldsite.com&#039; &#039;https:\/\/newsite.com&#039; --all-tables<\/code><\/pre>\n<\/div>\n<p>    If WP-CLI isn&#8217;t available, use the <a href=\"https:\/\/interconnectit.com\/search-replace-db\/\" target=\"_blank\" rel=\"noopener\">Search Replace DB script<\/a> by Interconnect\/it. Upload it temporarily, run it, then <strong>delete it immediately<\/strong> \u2014 leaving it accessible is a security risk.<\/p>\n<p>    \ud83d\udcdd <strong>Note:<\/strong> This step is the one most people skip, and it&#8217;s why images and internal links break after migration. Don&#8217;t skip it.\n  <\/li>\n<li>\n    <strong>Test the site using a hosts file override<\/strong> before changing DNS. On your local machine, add a temporary entry to <code class=\"\" data-line=\"\">\/etc\/hosts<\/code> (Linux\/macOS) or <code class=\"\" data-line=\"\">C:WindowsSystem32driversetchosts<\/code> (Windows):<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-9\"><code class=\"\" data-line=\"\">NEW_SERVER_IP  yourdomain.com www.yourdomain.com<\/code><\/pre>\n<\/div>\n<p>    This routes your browser to the new server without affecting anyone else. Browse your site, test the checkout or login flow, check that images load. When you&#8217;re satisfied, remove the line and update your DNS.\n  <\/li>\n<li>\n    <strong>Update DNS.<\/strong> Log into your domain registrar and point your A record (or nameservers) to the new server. Propagation typically takes 1\u20134 hours but can take up to 48 hours globally.\n  <\/li>\n<\/ol>\n<h2>Common Issues and Troubleshooting<\/h2>\n<h3>White screen or &#8220;Error establishing a database connection&#8221;<\/h3>\n<p>Almost always a wrong value in <code class=\"\" data-line=\"\">wp-config.php<\/code>. Double-check <code class=\"\" data-line=\"\">DB_NAME<\/code>, <code class=\"\" data-line=\"\">DB_USER<\/code>, and <code class=\"\" data-line=\"\">DB_PASSWORD<\/code>. Also confirm the database user has been <strong>assigned to the database<\/strong> in cPanel \u2014 creating both separately isn&#8217;t enough, you have to link them under <em>Add User to Database<\/em>.<\/p>\n<h3>Images and links pointing to the old domain<\/h3>\n<p>You didn&#8217;t run the search-replace step, or it only partially completed. Run the WP-CLI command again or use the Search Replace DB script. Also check your theme&#8217;s customiser settings and any page builder data \u2014 some plugins store URLs in their own database tables that the standard search-replace misses.<\/p>\n<h3>Redirect loop after migration<\/h3>\n<p>Usually caused by mismatched <code class=\"\" data-line=\"\">siteurl<\/code> and <code class=\"\" data-line=\"\">home<\/code> values in the database, or a leftover <code class=\"\" data-line=\"\">.htaccess<\/code> file from the old server with hardcoded rewrite rules. Try resetting <code class=\"\" data-line=\"\">.htaccess<\/code> by going to <em>Settings &gt; Permalinks<\/em> and clicking <em>Save Changes<\/em> \u2014 this regenerates the file. If that doesn&#8217;t fix it, check <code class=\"\" data-line=\"\">wp_options<\/code> in phpMyAdmin and manually correct the <code class=\"\" data-line=\"\">siteurl<\/code> and <code class=\"\" data-line=\"\">home<\/code> rows.<\/p>\n<h3>File permissions errors or 403 Forbidden<\/h3>\n<p>Permissions sometimes get mangled during transfer. WordPress files should be <code class=\"\" data-line=\"\">644<\/code> and directories should be <code class=\"\" data-line=\"\">755<\/code>. Fix them in bulk via SSH:<\/p>\n<div class=\"ht-code-snippet\"><button class=\"ht-code-snippet__copy\" type=\"button\" aria-label=\"Copy code\"><\/button><span class=\"ht-code-snippet__feedback\">Copied to clipboard<\/span><\/p>\n<pre class=\"ht-code-snippet__code\" id=\"code-block-10\"><code class=\"\" data-line=\"\">find \/public_html -type f -exec chmod 644 {} ;\nfind \/public_html -type d -exec chmod 755 {} ;<\/code><\/pre>\n<\/div>\n<p>Never set files to <code class=\"\" data-line=\"\">777<\/code> \u2014 that&#8217;s a security hole.<\/p>\n<h3>Migration plugin times out on large sites<\/h3>\n<p>Free migration plugins hit PHP&#8217;s <code class=\"\" data-line=\"\">max_execution_time<\/code> limit (usually 30\u201360 seconds on shared hosting). Options: use the manual method above, upgrade to Duplicator Pro which uses chunked transfers, or temporarily increase <code class=\"\" data-line=\"\">max_execution_time<\/code> in <code class=\"\" data-line=\"\">php.ini<\/code> or via <code class=\"\" data-line=\"\">.htaccess<\/code> with <code class=\"\" data-line=\"\">php_value max_execution_time 300<\/code>. On Host &amp; Tech&#8217;s <a href=\"https:\/\/www.hostandtech.com\/managed-wordpress-hosting\/\">Managed WordPress Hosting<\/a> plans, we handle migrations for you so this isn&#8217;t something you&#8217;d run into.<\/p>\n<h2>FAQ<\/h2>\n<div class=\"ht-faq-section\">\n<h2>Frequently Asked Questions<\/h2>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">Can I migrate WordPress without losing SEO rankings?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>Yes, as long as your URLs stay the same and you don&#8217;t leave the old site live at the same domain simultaneously. Make sure the search-replace step updates all internal links correctly, and submit an updated sitemap in Google Search Console after the move. Rankings can dip slightly for a few days after a DNS change \u2014 that&#8217;s normal and usually recovers quickly.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">How long does a WordPress migration take?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>The actual file and database transfer usually takes 15\u201360 minutes depending on site size. The DNS cutover can take anywhere from 1 to 48 hours to propagate globally, though most users will see the new site within 1\u20134 hours. Plan your migration during low-traffic hours and keep the old hosting active until DNS has fully propagated.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">Do I need to reinstall WordPress on the new server first?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>No. If you&#8217;re doing a full migration, you&#8217;re bringing your own WordPress files and database. Installing WordPress fresh on the destination first will just give you files you&#8217;ll overwrite anyway. Create the database and upload your migrated files directly to the web root.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">What happens to my emails when I migrate my website?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>Email is separate from WordPress \u2014 migrating your site files and database doesn&#8217;t affect email unless you also change your MX records. If your email is hosted with your current provider, leave your MX records pointing at them until you&#8217;ve set up email on the new server. Changing nameservers (rather than just the A record) will move everything at once, including email, so be careful there.<\/p>\n<\/div>\n<\/div>\n<div class=\"ht-faq-item\">\n<h3 class=\"ht-faq-question\">Is it safe to use a migration plugin on a live site?<\/h3>\n<div class=\"ht-faq-answer\">\n<p>Yes, migration plugins read your files and database without modifying the original site. Your live site stays up during the process. The only risk is if the plugin crashes mid-way on the destination server, which can leave a broken database \u2014 that&#8217;s why you always migrate to the new server first and only cut over DNS after you&#8217;ve confirmed everything works.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Moving WordPress to a new host is straightforward when you follow the right order of operations. Skip a step and you&#8217;ll end up with broken images, a white screen, or a database that won&#8217;t connect. This guide covers everything from backup to DNS cutover.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[91],"tags":[40,324,619,93,618,576,477,130],"class_list":["post-222","post","type-post","status-publish","format-standard","hentry","category-wordpress","tag-cpanel","tag-dns-propagation","tag-how-to-migrate-wordpress-to-a-new-host-without-breaking-your-site","tag-managed-wordpress","tag-site-transfer","tag-wordpress-backup","tag-wordpress-migration","tag-wp-config-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Migrate WordPress to a New Host (Without Breaking Your Site)<\/title>\n<meta name=\"description\" content=\"Step-by-step WordPress migration guide covering manual transfers, plugin methods, DNS cutover, and common errors. Works with any host.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Migrate WordPress to a New Host (Without Breaking Your Site)\" \/>\n<meta property=\"og:description\" content=\"Step-by-step WordPress migration guide covering manual transfers, plugin methods, DNS cutover, and common errors. Works with any host.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/\" \/>\n<meta property=\"og:site_name\" content=\"Host And Tech knowledge base\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/stshostandtech\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-03T06:29:29+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@stshostandtech\" \/>\n<meta name=\"twitter:site\" content=\"@stshostandtech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/person\\\/b6fa79c48ddaba71af32e395c5b017ee\"},\"headline\":\"How to Migrate WordPress to a New Host (Without Breaking Your Site)\",\"datePublished\":\"2026-06-03T06:29:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/\"},\"wordCount\":1520,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#organization\"},\"keywords\":[\"cPanel\",\"DNS propagation\",\"How to Migrate WordPress to a New Host (Without Breaking Your Site)\",\"managed wordpress\",\"site transfer\",\"wordpress backup\",\"WordPress migration\",\"wp-config.php\"],\"articleSection\":[\"WordPress Hosting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/\",\"name\":\"How to Migrate WordPress to a New Host (Without Breaking Your Site)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#website\"},\"datePublished\":\"2026-06-03T06:29:29+00:00\",\"description\":\"Step-by-step WordPress migration guide covering manual transfers, plugin methods, DNS cutover, and common errors. Works with any host.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wordpress\\\/how-to-migrate-wordpress-to-a-new-host\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Migrate WordPress to a New Host (Without Breaking Your Site)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#website\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/\",\"name\":\"Host And Tech knowledge base\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#organization\",\"name\":\"Host And Tech knowledge base\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/logo-dark.png\",\"contentUrl\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/logo-dark.png\",\"width\":1134,\"height\":395,\"caption\":\"Host And Tech knowledge base\"},\"image\":{\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/stshostandtech\",\"https:\\\/\\\/x.com\\\/stshostandtech\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/#\\\/schema\\\/person\\\/b6fa79c48ddaba71af32e395c5b017ee\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\\\/\\\/hostandtech.com\\\/kb\"],\"url\":\"https:\\\/\\\/hostandtech.com\\\/kb\\\/author\\\/admin_fjj7qydm\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Migrate WordPress to a New Host (Without Breaking Your Site)","description":"Step-by-step WordPress migration guide covering manual transfers, plugin methods, DNS cutover, and common errors. Works with any host.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/","og_locale":"en_US","og_type":"article","og_title":"How to Migrate WordPress to a New Host (Without Breaking Your Site)","og_description":"Step-by-step WordPress migration guide covering manual transfers, plugin methods, DNS cutover, and common errors. Works with any host.","og_url":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/","og_site_name":"Host And Tech knowledge base","article_publisher":"https:\/\/www.facebook.com\/stshostandtech","article_published_time":"2026-06-03T06:29:29+00:00","author":"admin","twitter_card":"summary_large_image","twitter_creator":"@stshostandtech","twitter_site":"@stshostandtech","twitter_misc":{"Written by":"admin","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/#article","isPartOf":{"@id":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/"},"author":{"name":"admin","@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/person\/b6fa79c48ddaba71af32e395c5b017ee"},"headline":"How to Migrate WordPress to a New Host (Without Breaking Your Site)","datePublished":"2026-06-03T06:29:29+00:00","mainEntityOfPage":{"@id":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/"},"wordCount":1520,"commentCount":0,"publisher":{"@id":"https:\/\/hostandtech.com\/kb\/#organization"},"keywords":["cPanel","DNS propagation","How to Migrate WordPress to a New Host (Without Breaking Your Site)","managed wordpress","site transfer","wordpress backup","WordPress migration","wp-config.php"],"articleSection":["WordPress Hosting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/","url":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/","name":"How to Migrate WordPress to a New Host (Without Breaking Your Site)","isPartOf":{"@id":"https:\/\/hostandtech.com\/kb\/#website"},"datePublished":"2026-06-03T06:29:29+00:00","description":"Step-by-step WordPress migration guide covering manual transfers, plugin methods, DNS cutover, and common errors. Works with any host.","breadcrumb":{"@id":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/hostandtech.com\/kb\/wordpress\/how-to-migrate-wordpress-to-a-new-host\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hostandtech.com\/kb\/"},{"@type":"ListItem","position":2,"name":"How to Migrate WordPress to a New Host (Without Breaking Your Site)"}]},{"@type":"WebSite","@id":"https:\/\/hostandtech.com\/kb\/#website","url":"https:\/\/hostandtech.com\/kb\/","name":"Host And Tech knowledge base","description":"","publisher":{"@id":"https:\/\/hostandtech.com\/kb\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hostandtech.com\/kb\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/hostandtech.com\/kb\/#organization","name":"Host And Tech knowledge base","url":"https:\/\/hostandtech.com\/kb\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/logo\/image\/","url":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/05\/logo-dark.png","contentUrl":"https:\/\/hostandtech.com\/kb\/wp-content\/uploads\/2026\/05\/logo-dark.png","width":1134,"height":395,"caption":"Host And Tech knowledge base"},"image":{"@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/stshostandtech","https:\/\/x.com\/stshostandtech"]},{"@type":"Person","@id":"https:\/\/hostandtech.com\/kb\/#\/schema\/person\/b6fa79c48ddaba71af32e395c5b017ee","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/aa1edac8bbadb442e059a5b65ad45a3b2e3ce689202373b96e3e567517ae4b39?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/hostandtech.com\/kb"],"url":"https:\/\/hostandtech.com\/kb\/author\/admin_fjj7qydm\/"}]}},"_links":{"self":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/posts\/222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":0,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"wp:attachment":[{"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostandtech.com\/kb\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}