{"id":33076,"date":"2026-08-04T16:28:28","date_gmt":"2026-08-04T14:28:28","guid":{"rendered":"https:\/\/contabo.com\/blog\/?p=33076"},"modified":"2026-08-04T16:29:35","modified_gmt":"2026-08-04T14:29:35","slug":"transfer-web-hosting","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/transfer-web-hosting\/","title":{"rendered":"How to Transfer Web Hosting: Step-by-Step Migration Guide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Transferring <a href=\"https:\/\/contabo.com\/en-us\/website-hosting-on-vps\/\">web hosting<\/a> means moving your website files, database, email, and DNS configuration from one hosting provider to another. Done in the right order \u2014 backup first, set up the new server, migrate content, test on the new server, then cut over DNS \u2014 the switch is invisible to your visitors and causes zero downtime. This guide covers the complete process step by step.<\/p>\n\n\n\n<h2 id=\"h-before-you-start-what-you-need\" class=\"wp-block-heading\">Before You Start: What You Need<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Access to your current host&#8217;s control panel or SSH credentials<\/li>\n\n\n\n<li>Your domain registrar login \u2014 you will update DNS records at the end<\/li>\n\n\n\n<li>The new VPS or hosting account already provisioned and reachable via SSH<\/li>\n\n\n\n<li>A verified backup of all files and the database from the current server<\/li>\n\n\n\n<li>At least 48 hours of buffer before any deadline \u2014 DNS propagation takes up to 48 hours<\/li>\n\n\n\n<li>A low TTL (300 seconds) set on your current DNS records 24 hours in advance \u2014 this reduces propagation delay at cutover<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-how-to-transfer-web-hosting-step-by-step\" class=\"wp-block-heading\">How to Transfer Web Hosting: Step by Step<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Back up everything on the current server. Files: rsync -avz \/var\/www\/ \/local\/backup\/. Database: mysqldump -u dbuser -p dbname > backup.sql (or pg_dump dbname > backup.sql for PostgreSQL). Verify the backup is complete and the SQL file opens correctly before continuing.<\/li>\n\n\n\n<li>Provision and configure the new server. Install your full web stack: NGINX or Apache, your language runtime (PHP, Python, Node.js), and your database engine (MySQL, PostgreSQL). Install SSL (Let&#8217;s Encrypt is free): sudo apt install certbot. Activate the Contabo Firewall at new.contabo.com \u2192 Network Services \u2192 Firewall before the new server IP is public.<\/li>\n\n\n\n<li>Transfer your files to the new server. rsync over SSH is the most reliable method for large sites: rsync -avz -e ssh \/local\/backup\/ user@&lt;new-server-ip>:\/var\/www\/html\/. For smaller sites, SFTP or scp work fine. Verify file counts and sizes match the source after the transfer.<\/li>\n\n\n\n<li>Import the database on the new server. Create the database and user first: CREATE DATABASE newdb; GRANT ALL ON newdb.* TO &#8216;dbuser&#8217;@&#8217;localhost&#8217; IDENTIFIED BY &#8216;password&#8217;;. Then import: mysql -u dbuser -p newdb &lt; backup.sql.<\/li>\n\n\n\n<li>Update your application&#8217;s configuration file. Change the database host, name, credentials, and any absolute URLs or environment variables that reference the old server&#8217;s IP or hostname.<\/li>\n\n\n\n<li>Test the site on the new server before touching DNS. Add a temporary entry to your local \/etc\/hosts file: &lt;new-server-ip> yourdomain.com. Open the site in your browser \u2014 it should load from the new server. Test forms, logins, database reads and writes, and any APIs or webhooks.<\/li>\n\n\n\n<li>Set your DNS TTL to 300 seconds (5 minutes) at your registrar. Do this 24 hours before cutover so resolvers pick up the low TTL. This limits how long visitors are stuck on the old server after you change the A record.<\/li>\n\n\n\n<li>Update the DNS A record to your new server&#8217;s IP. Log in to your domain registrar, find the DNS zone for your domain, and change the A record to the new server IP. Propagation takes minutes to 48 hours depending on your resolver.<\/li>\n\n\n\n<li>Keep the old server running for 48\u201372 hours after cutover. Monitor your analytics and server logs to confirm traffic has moved. Only decommission the old server \u2014 and cancel the old hosting account \u2014 once you are certain all traffic is hitting the new server and everything works.<\/li>\n<\/ol>\n\n\n\n<h2 id=\"h-transferring-email-during-a-hosting-migration\" class=\"wp-block-heading\">Transferring Email During a Hosting Migration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Email is the detail most people forget \u2014 and the one most likely to cause complaints. What you need to do depends on where your email is currently hosted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If email is at a separate provider \u2014 Google Workspace, Zoho Mail, or your domain registrar&#8217;s mail service \u2014 no action is needed. Your MX records already point there independently of your hosting. Just verify MX records are unchanged after you update the A record.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If email runs on your current hosting server, export all mailboxes before cutover using imapsync or manually via IMAP. Set up the same accounts on the new server, import the mailboxes, and update your MX records at the registrar after confirming the new mail server works. Do this after files and database are confirmed \u2014 email cutover is a separate step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A practical alternative when moving to a VPS: use a dedicated transactional mail service (Mailgun, Postmark, Amazon SES) for outbound mail and a hosted inbox (Google Workspace from $6\/user\/mo) for inbound. Running a self-hosted mail server is complex \u2014 SPF, DKIM, DMARC, IP reputation, and deliverability issues consume significant time to get right.<\/p>\n\n\n\n<h2 id=\"h-why-migrate-to-a-contabo-vps\" class=\"wp-block-heading\">Why Migrate to a Contabo VPS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most common trigger for a hosting migration is outgrowing shared hosting: slow response times under load, resource limits that cap your app, and no root access to install or configure anything beyond what the host permits. A Contabo Cloud VPS gives you dedicated resources, full root access, and flat-rate pricing with no surprise bills when traffic spikes.<\/p>\n\n\n\n<!-- Contabo Cloud VPS Migration Plans \u2014 Comparison Table -->\n<div class=\"contabo-vps-table-wrap\" role=\"region\" aria-label=\"Contabo Cloud VPS plans comparison table\" tabindex=\"0\">\n<style>\n.contabo-vps-table-wrap{font-family:Calibri,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#333333;max-width:100%;overflow-x:auto;margin:24px 0;border:1px solid #dbe5f1;border-radius:8px}\n.contabo-vps-table{width:100%;border-collapse:collapse;min-width:640px}\n.contabo-vps-table caption{text-align:left;font-size:0.95em;color:#5a5a5a;padding:12px 16px 8px;font-style:italic}\n.contabo-vps-table thead th{background-color:#4F81BD;color:#ffffff;font-weight:bold;text-align:left;padding:12px 14px;font-size:1em;border-bottom:2px solid #365F91}\n.contabo-vps-table tbody td{padding:12px 14px;border-bottom:1px solid #dbe5f1;vertical-align:top}\n.contabo-vps-table tbody tr:nth-child(even){background-color:#f4f8fc}\n.contabo-vps-table tbody tr:hover{background-color:#eaf1fa}\n.contabo-vps-table td:first-child,.contabo-vps-table th:first-child{font-weight:bold;color:#365F91}\n.contabo-vps-table td.price{font-weight:bold;color:#365F91;white-space:nowrap}\n.contabo-vps-table tfoot td{padding:10px 14px;font-size:0.85em;color:#6b6b6b;border-top:1px solid #dbe5f1}\n@media (max-width:600px){.contabo-vps-table{font-size:0.9em}}\n<\/style>\n<table class=\"contabo-vps-table\">\n<caption>Contabo Cloud VPS plans for migrating off shared hosting \u2014 specs and pricing verified August 2026.<\/caption>\n<thead>\n<tr>\n<th scope=\"col\">Plan<\/th>\n<th scope=\"col\">vCPU<\/th>\n<th scope=\"col\">RAM<\/th>\n<th scope=\"col\">Storage<\/th>\n<th scope=\"col\">Price<\/th>\n<th scope=\"col\">Migrate from<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Cloud VPS 4<\/td>\n<td>4<\/td>\n<td>8 GB<\/td>\n<td>100 GB SSD<\/td>\n<td class=\"price\">\u20ac4.40\/mo*<\/td>\n<td>Small shared hosting plan, personal blog, dev environment<\/td>\n<\/tr>\n<tr>\n<td>Cloud VPS 6<\/td>\n<td>6<\/td>\n<td>12 GB<\/td>\n<td>200 GB SSD<\/td>\n<td class=\"price\">\u20ac6.00\/mo*<\/td>\n<td>WordPress on shared hosting, small e-commerce, growing site<\/td>\n<\/tr>\n<tr>\n<td>Cloud VPS 8<\/td>\n<td>8<\/td>\n<td>24 GB<\/td>\n<td>300 GB SSD<\/td>\n<td class=\"price\">\u20ac11.20\/mo*<\/td>\n<td>Busy CMS, multiple sites, database-driven app with real traffic<\/td>\n<\/tr>\n<\/tbody>\n<tfoot>\n<tr>\n<td colspan=\"6\">All plans include always-on DDoS protection and a free configurable Contabo Firewall.<\/td>\n<\/tr>\n<\/tfoot>\n<\/table>\n<\/div>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Product\",\n  \"name\": \"Contabo Cloud VPS\",\n  \"description\": \"Unmanaged Cloud VPS hosting plans for migrating from shared hosting, with dedicated resources and full root access.\",\n  \"brand\": {\"@type\": \"Brand\", \"name\": \"Contabo\"},\n  \"offers\": [\n    {\"@type\": \"Offer\", \"name\": \"Cloud VPS 4\", \"price\": \"4.40\", \"priceCurrency\": \"EUR\", \"url\": \"https:\/\/contabo.com\/en-us\/pricing\/\", \"priceValidUntil\": \"2026-12-31\", \"availability\": \"https:\/\/schema.org\/InStock\"},\n    {\"@type\": \"Offer\", \"name\": \"Cloud VPS 6\", \"price\": \"6.00\", \"priceCurrency\": \"EUR\", \"url\": \"https:\/\/contabo.com\/en-us\/pricing\/\", \"priceValidUntil\": \"2026-12-31\", \"availability\": \"https:\/\/schema.org\/InStock\"},\n    {\"@type\": \"Offer\", \"name\": \"Cloud VPS 8\", \"price\": \"11.20\", \"priceCurrency\": \"EUR\", \"url\": \"https:\/\/contabo.com\/en-us\/pricing\/\", \"priceValidUntil\": \"2026-12-31\", \"availability\": \"https:\/\/schema.org\/InStock\"}\n  ]\n}\n<\/script>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-f71545a8\"><h2 class=\"uagb-heading-text\">FAQ: Transferring Web Hosting<\/h2><\/div>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1785853363278\"><strong class=\"schema-faq-question\">Can you transfer web hosting?<\/strong> <p class=\"schema-faq-answer\">Yes. Web hosting can be transferred from any provider to any other provider at any time. Your domain name and your hosting are separate \u2014 you can switch hosting without changing your domain name or losing your URL structure. The process involves backing up your files and database, setting up the new server, migrating content, testing, then updating DNS.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1785853374776\"><strong class=\"schema-faq-question\">How long does it take to transfer web hosting?<\/strong> <p class=\"schema-faq-answer\">The technical migration \u2014 backup, file transfer, database import, config update, testing \u2014 takes 1 to 4 hours for a typical site. DNS propagation after cutover takes minutes to 48 hours depending on TTL. Setting TTL to 300 seconds 24 hours before cutover minimises propagation time significantly.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1785853386350\"><strong class=\"schema-faq-question\">Will I lose data when transferring web hosting?<\/strong> <p class=\"schema-faq-answer\">Not if you follow the correct order: back up first, migrate to the new server, test thoroughly, then update DNS. Never delete files from the old server until you have confirmed the new server is receiving all traffic. Keep the old server running for 48\u201372 hours after DNS cutover.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1785853401293\"><strong class=\"schema-faq-question\">Do I need to notify my old host before transferring?<\/strong> <p class=\"schema-faq-answer\">No. The migration is entirely under your control \u2014 you back up your own files, set up a new server, and update DNS. Only cancel your old hosting plan after you are fully migrated and satisfied the new server is working correctly. Check your old contract for notice periods before cancelling, but technically the migration itself requires no advance notice to the old host.<\/p> <\/div> <\/div>\n\n\n\n<div class=\"wp-block-uagb-advanced-heading uagb-block-70bb26d7\"><h2 class=\"uagb-heading-text\">Articles you may like<\/h2><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/contabo.com\/blog\/migrate-from-digitalocean-cheaper-vps\/\">How to Migrate from DigitalOcean to a Cheaper VPS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/contabo.com\/blog\/vps-security-checklist\/\">VPS Security Checklist: 9 Steps After Setup<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Transferring web hosting means moving your website files, database, email, and DNS configuration from one hosting provider to another. Done in the right order \u2014 backup first, set up the new server, migrate content, test on the new server, then cut over DNS \u2014 the switch is invisible to your visitors and causes zero downtime. [&hellip;]<\/p>\n","protected":false},"author":78,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","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":"set","ast-page-background-enabled":"default","ast-page-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":"","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-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":"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":""},"mobile":{"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":""}},"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[18],"tags":[],"ppma_author":[4285],"class_list":["post-33076","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Jie Guo","author_link":"https:\/\/contabo.com\/blog\/author\/jieguo\/"},"uagb_comment_info":0,"uagb_excerpt":"Transferring web hosting means moving your website files, database, email, and DNS configuration from one hosting provider to another. Done in the right order \u2014 backup first, set up the new server, migrate content, test on the new server, then cut over DNS \u2014 the switch is invisible to your visitors and causes zero downtime.&hellip;","authors":[{"term_id":4285,"user_id":78,"is_guest":0,"slug":"jieguo","display_name":"Jie Guo","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/4e0d981b06988d6d456834e9d55bc9e713e918fa8444325543d14f448154106b?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Guo","first_name":"Jie","job_title":"","description":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/33076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/comments?post=33076"}],"version-history":[{"count":2,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/33076\/revisions"}],"predecessor-version":[{"id":33079,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/33076\/revisions\/33079"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/media?parent=33076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/categories?post=33076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/tags?post=33076"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=33076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}