This is a vary simple overview for standard wordpress site - for nitty gritty explanations and for huge sites you may need to look elsewhere for further information.
Old Site:
1. Export Database to local sql file on local computer.
2. Zip up entire site and download to local computer.
3. Delete zip file on the old site since it can be a security hole.
New Site:
1. Create new database and new database user.
2. Import the old site database. (if you look at the structure of the new database and see that the collation for your site - bottom listed collation in the table - is different from your original site, then change it via the operations tag to the old setting. I'm not completely up to speed on this setting but that's what i've seen in other videos... e.g. https://www.youtube.com/watch?v=dg8Fx7e1fqo )
3. Upload the zip file and extract it.
4. Download a php script (zipped) from here: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
5. Upload the php script (zipped) to top level directory and extract the contents.
6. Immediately rename the directory it unpacks into to something cryptic - since if anyone finds this script they'll be able to destroy your database.
7. Using a browser go to this cryptic directory - e.g. mynewdomain.com/cryptic and the script will run.
8. Put in the replace box the old domain path (e.g. myolddomain.com/blog - if the blog was perhaps located in a sub directory of "blog") and the new domain path in the with box (e.g. mynewdomain.com - if the new blog is in the top directory of the new domain) and click "dry run" to make sure that it finds these paths.
9. If you're happy, then click "live run". All references will then be changed. If you find you've made a make a mistake at any stage, then you may have to delete everything in the database and re-import the data and start again.
10. It's probably a good idea to also do a substitution of "mynewdomain.com" for "myolddomain.com" to capture other occurrences of the domains - such as in email addresses, etc.
11. Edit the config.php and enter the new database, database user and database user password - This info is helpfully displayed on the php script window.
12. That's it - pretty much.
Open the new site in your browser and it should all work. Start testing and keep an eye on your URL - if a link is bad you may jump to your old site without realising. Make sure you can log in - same username and password as old site - and that everything is OK. You may (hopefully not) find that some things need to be edited using the wordpress cpanel - and if you have created some other hardwired URLs - say in your own php files, etc. then you will have to sort those yourself.
FINAL STEP: Oh yes... if it all looks OK - delete the cryptic directory with the dangerous script in it as soon as you're happy all is OK!
Old Site:
1. Export Database to local sql file on local computer.
2. Zip up entire site and download to local computer.
3. Delete zip file on the old site since it can be a security hole.
New Site:
1. Create new database and new database user.
2. Import the old site database. (if you look at the structure of the new database and see that the collation for your site - bottom listed collation in the table - is different from your original site, then change it via the operations tag to the old setting. I'm not completely up to speed on this setting but that's what i've seen in other videos... e.g. https://www.youtube.com/watch?v=dg8Fx7e1fqo )
3. Upload the zip file and extract it.
4. Download a php script (zipped) from here: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
5. Upload the php script (zipped) to top level directory and extract the contents.
6. Immediately rename the directory it unpacks into to something cryptic - since if anyone finds this script they'll be able to destroy your database.
7. Using a browser go to this cryptic directory - e.g. mynewdomain.com/cryptic and the script will run.
8. Put in the replace box the old domain path (e.g. myolddomain.com/blog - if the blog was perhaps located in a sub directory of "blog") and the new domain path in the with box (e.g. mynewdomain.com - if the new blog is in the top directory of the new domain) and click "dry run" to make sure that it finds these paths.
9. If you're happy, then click "live run". All references will then be changed. If you find you've made a make a mistake at any stage, then you may have to delete everything in the database and re-import the data and start again.
10. It's probably a good idea to also do a substitution of "mynewdomain.com" for "myolddomain.com" to capture other occurrences of the domains - such as in email addresses, etc.
11. Edit the config.php and enter the new database, database user and database user password - This info is helpfully displayed on the php script window.
12. That's it - pretty much.
Open the new site in your browser and it should all work. Start testing and keep an eye on your URL - if a link is bad you may jump to your old site without realising. Make sure you can log in - same username and password as old site - and that everything is OK. You may (hopefully not) find that some things need to be edited using the wordpress cpanel - and if you have created some other hardwired URLs - say in your own php files, etc. then you will have to sort those yourself.
FINAL STEP: Oh yes... if it all looks OK - delete the cryptic directory with the dangerous script in it as soon as you're happy all is OK!