How to Move WordPress Without Plugin (Manual Migration Guide)

Moving your WordPress website might sound scary. But guess what? You can totally do it without a plugin. Yes, you heard that right! You don’t need fancy tools, rocket science, or even a plugin to move your entire WordPress site. All you need is a bit of time, a steady hand, and this fun guide. Let’s get going!
Why Move WordPress Manually?
You might be wondering… why even bother?
- Control – You control every step of the process.
- No more plugin bloat – Plugins are great, but too many can slow your site down.
- Learning experience – Once you’ve done it, you’ll understand WordPress way better.
Alright, ready to roll? Let’s begin!
Step 1: Back It All Up
This step is very important. Don’t skip it. Think of it as packing before moving to a new home.
- First, back up all your website files. This includes themes, plugins, uploads—everything.
- Then, back up your WordPress database. That’s where all your content and settings live.
You can do the file backup via an FTP tool like FileZilla. Just connect to your current hosting account and download all files from your WordPress root directory (usually called public_html).
For the database, log in to your hosting control panel and go to phpMyAdmin. Select your WordPress database and click Export. Choose the Quick option and format as SQL. Then hit Go.

Step 2: Prepare the New Host
Now, go to your new hosting provider. You’ll need a clean, empty folder (like a new house with no furniture). Set up a domain and directory if needed.
- Create a new MySQL database.
- Create a MySQL user and give it full permissions.
- Keep the database name, username, and password handy. You’ll need them soon.
You can usually create databases in the “MySQL Databases” section of your hosting cPanel.
Step 3: Upload Your Files
Okay, time to move in!
Using that same FTP tool, upload all the files you previously downloaded into the root directory of your new site (again, probably named public_html).
This may take a while, especially if you have many media files. Be patient. Stretch your legs. Maybe grab a snack.
Step 4: Import the Database
Now it’s time to bring in all your posts, pages, menus, and magic. Remember the SQL file you exported earlier?
- Go to phpMyAdmin on your new host.
- Select the newly created database.
- Click Import.
- Choose the SQL file and press Go.
Voila! Your content has arrived at its new home.
Step 5: Edit wp-config.php
This is your site’s control panel. It’s found in the root directory of your WordPress files.
- Open wp-config.php with a code editor like Notepad++ or VS Code.
- Find the following lines:
define('DB_NAME', 'old_db_name'); define('DB_USER', 'old_user'); define('DB_PASSWORD', 'old_password'); define('DB_HOST', 'localhost');
Replace them with the new database name, user, and password.
Save the file. That ties your WordPress installation to your new database.
Step 6: Fix URLs (If Needed)
If your site’s domain is also changing, you’ll need to update URLs in your database. Otherwise, your links may still point to the old site.
You can do this with a search-and-replace tool via SQL:
- Go back to phpMyAdmin.
- Tap on the database and click on the SQL tab.
Then run this:
UPDATE wp_options SET option_value = replace(option_value, 'http://oldsite.com', 'http://newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://oldsite.com','http://newsite.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://oldsite.com', 'http://newsite.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://oldsite.com','http://newsite.com');
Make sure to change the URLs to match your actual old and new domains.
Be careful here! A wrong query can break things, so double-check your input.

Step 7: Test Everything!
You’ve done the hard part. Now let’s check if it works.
- Open your website in a browser.
- Click through posts and pages.
- Try logging in to the WordPress dashboard.
If you get a “Error Establishing a Database Connection” message—double-check your wp-config.php file.
Make sure URLs look correct. If images aren’t loading, check your media paths and permissions.
Troubleshooting Tips
1. White screen?
This could be a PHP issue. Look for errors in your error_log file or enable WP_DEBUG in your config.
2. Database errors?
Did you assign the right user permissions to your new database?
3. Still pointing to old domain?
Clear your browser cache and/or run the search-and-replace queries again.
Final Touches
Almost done! For the final polish:
- Update your permalinks. Go to Settings › Permalinks in your WordPress dashboard and click Save (don’t change anything, just hit save).
- Reinstall security and caching plugins, if you had any.
- Reconfigure things like email, payment gateways, etc. if they depend on the domain.
Wrap-Up: You Did It!
Wow. Look at you go! You just moved an entire WordPress website manually. 🎉 No plugins. No shortcuts. Just you and some good old elbow grease.
This wasn’t just a website move—it was a journey. And now you’ve got pro-level WordPress skills.

Bonus tip: Once you’re confident, try setting up a staging environment next time before making big changes. It’ll help you test safely.
Until then, keep building, keep learning, and high five yourself for a job well done!