Blogger to WordPress Conversion FTP Migration Procedure

Blogger 2 WordPress Conversion Procedure:

Welcome to my new According to Jim WordPress website look.

By now, most folks have probably heard about the end of life support for FTP publishing via the Blogger online system of being able to post directly to your own server using FTP publishing. Blogger has a FTP migration solution to transfer your FTP blog, and move it to a custom subdomain or even a blogspot.com address if you so desire. See: FTP Migration Tool Released for information and a video on how to do the Blogger FTP switch. I have used the tool on some FTP blogs, and it does work. However, I wanted to do something different here.

Welcome to my Blogger converted to WordPress blog with FTP migration changes.

This is a writeup about the procedure, tips, pitfalls, and what needs to be done for everything to work right when converting from Blogger FTP publishing to WordPress publishing.

Blogger to WordPress Conversion Criteria for Everything to Function Properly

  • Switch to WordPress from Blogger FTP publishing.
  • Make sure file names (including archives, labels, and posting pages) were the same from the old system to the new WP system.
  • New blog must be SEO friendly and maintain Google PageRank.
  • Set up .htaccess redirects for seamless intergration with new WordPress categories vs Blogger labels.
  • Support for PHP “includes” for file pages.
  • Allow for any type of file naming convention (i.e.: .htm, .html, or .php) at the old file names to the new file names and must be seamless from the old to the new.
  • Blog posting must also include all original comments.
  • Be able to merge two or more blogs together in one new WordPress blog.
  • And, last but not least, as if I have to say this, the new WordPress blog must work.

Below is the process I used for converting to a WordPress blog.

Suffice it to say, there was a fair amount of work involved with the conversion.

I have to say at this point, the WordPress blogging platform is a very powerful tool. It also can be somewhat intimidating for someone to first install and use it.

Step One: Create a WordPress blog on your website.

There are a couple of things to consider when initially setting up a WordPress blog directly on your own server for the first time. If you already have an FTP blog using Blogger to a subdirectory (i.e. yoursite. com/blog) or are using the naked domain name (i.e. yoursite.com) as the FTP blog posting area for all your postings, or even multiple blogs on the same domain name with Blogger, then you will need to consider a few things before stepping forward.

In my particular case I had a number of subdirectories prior to installing a WordPress blog on my website. Since I did not have a subdirectory called “blog” I decided to install WordPress into that directory. There were two main benefits to installing it in a subdirectory. This provided a work in progress design area for creating and customizing the blog, without it affecting any of my other content on the website. This also turned into what was a major plus for the future, with an quick and easy option to make it the main website, without having to reinstall the WP blog at the root level. I’ll go into more detail with this later.

To create the blog, is very easy if you have a “cPanel” hosting provider. cPanel hosting is my favorite, because of the powerful tools available to users and webmasters. For example, most cPanel hosting providers have installed the Fantastico De Luxe software script that makes installing WordPress easy. Fantastico also makes it a breeze installing over 50 other programs such as, web content management systems, shopping carts, wikis, various blog open source software, photo sharing, surveys, and other cool software too. If you don’t have Fantastico from your hosting provider, and they do not automatically include WordPrss in the hosting package, then you will need to install WordPress manually. You can go to the WordPress website for more information and detailed direction on how to do that.

Step Two: Customization of the WordPress Blog

Once the WordPress blog is created on your sever, it is at a level that is a very basic installation but fully functional. There is a first posting created for you along with a generic template. You can use the template if you wish, but most folks will want a cool customized template, suited to their own tastes. There are thousands of WordPress templates available for free at the WordPress website or other websites online. You can even download a number of different templates and upload them to your server, and switch from one to the other with a template selection button. However, once you settle on a particular template, then you will probably want to stick with that one, because ultimately you will have more WP template customizations that you will do.

Step Three: Import Blogger Postings and Comments

First thing to do before messing with your Blogger blog is to export a backup XML file from the Blogger settings tab in the blog administrative panel. Do this first, because you will actually need this XML file later for the comments import.

The reason to import your old FTP Blogger postings is so you can eventually turn the original Blogger blog hosted on your own server, and redirect or make it so all the WordPress postings’ file names are the same as the orignal Blogger FTP postings. WordPress has an import tool that I thought was going to be the perfect tool to do the job of importing not only the postings from Blogger, but also the comments too. However, there was a problem with the importing of the comments. The WordPress import did not import all the comments. Before I go into the details on the issue with the comments, I need to point out what I did to even allow importing of the postings to the WordPress blog to begin with.

Blogger provides a FTP Blogger Migration Tool and FAQs for conversion of FTP blogs hosted on your own server, to Blogger hosted, either with a .blogspot.com subdomain name or a Custom Domain name (i.e. blog.yoursite .com). I would suggest reading that in detail to decide which way you wish to go and before clicking the FTP Migration tool in your Blogger Dashboard area.

As far as the WordPress importing postings, you need to know that you can not import directly from a FTP published blog using the WordPress import tool. It requires you to switch your blog to a blogspot.com subdomain name or yoursite custom domain name. Since I was not sure the WordPress solution was going to work for me, I still wanted the option of using the Blogger FTP Migration tool and migrating to a custom domain name permanently for writing my online articles in the future.

In my case, what I did was essentially make it so the Blogger FTP Migration would only go part way to fully completing the migration switch to my own custom domain at: abc.jimwarholic.com. I blocked Blogger from republishing the new updated meta redirected files and not letting the system automatically upload them to my server by changing the password at the Blogger administrative publishing settings tab to the wrong value. I think that is the first time I ever entered the wrong value for a password on purpose. This stopped the full migration process at the point of updating the old postings with meta redirects included in the postings. At that point in the migration process, I was provided a link to the ZIP file to download, with all of the updated files that I could manually upload to my server if I ever wanted to do that in the future. I also did not want a double content SEO penalty at abc.jimwarholic.com, so I included the following meta tag in the header section of the new blog only, to prevent the search engines from cataloging my content at the new abc.jimwarholic.com website. If you want to see how this code looks in the header section of my ABC website, click my ABC link and select view source code from your browser menu area. Also read about this at the Google Webmaster Help area online. Here is the code that I entered in the new blog:

<META NAME="ROBOTS" CONTENT="NOINDEX, FOLLOW">

This provided me a safe place, and reachable online, to keep my old postings banked while I updated my main website at www.jimwarholic.com. Also note that the old original files were still sitting on www.jimwarholic.com during this whole WP conversion process and were still functional to the point that the information could be fully navigated to from the external and internal links, and the search engine results pages.

Once the old blog information was converted to the new Blogger Custom Domain name website, I was able to do a importing of the blog postings from the new website to my WordPress blog that resided at www.jimwarholic.com/blog. This however, is only half the battle. Blogger typically truncates the original blog posting file name (based on the title of the the original post) and leaves out smaller words at times in the file name. Before you do any importing of blog postings, you need to switch from the default WP file type Permalink Settings i.e. http://jimwarholic.com/?p=123 and need to turn on Custom Structure of /%year%/%monthnum%/%postname%.php if you had PHP file names or /%year%/%monthnum%/%postname%.html if you had HTML ending file names. The WP importing tool looks at the title of the article and creates a new file name with that title, but does not use the original blog file names. I then uploaded a PHP script to my blog directory that automatically converted it to the original file names. Take a look at these two articles for more details on the cool PHP script for easy file conversion from the old to the new and more details on the Blogger to WordPress migration process:

Now, I had my file names the same, but some of my comments were missing in some of the postings that were imported. There seems to be some sort of glitch that some folks are experiencing when importing the postings directly from the blog using the WordPress importing tool. WordPress does not provide the option of importing from the XML exported file from Blogger, but there is a workaround. Once I had the file names exactly the same way I wanted them from the past, I then used another tool at http://blogger2wordpress.appspot.com to convert the saved exported Blogger XML file from the top of Step #3 into a WordPress WXR export file that can be understood by the WordPress blog import button.

You might ask, why didn’t I just use the Blogger 2 WordPress tool to begin with? Well, that is a good question, and there are a number of reasons why it was not the ideal importing solution to begin with. First off, the export/import using the Blogger 2 WordPress tool was only effective at getting all the comments and postings into the new WordPress blog. It however had difficulty with the conversion and importing of Flash files within postings, and it also did not import a custom meta tag for original file names. Since there was no reference for the original file names, there was no way to run a script automatically to quickly change the file names on these imported postings. So, what I did was go through and edit the file names manually on the ones that had the comments, and then deleted the other imported postings that were duplicates.

Yes, this all took some time to do, and it requires a bit of critical thinking skills to keep track of what is what and where is it. It helps to use two windows and do side by side comparisons. Sometimes I had to copy the entire posting from one copy to the other that had all the comments, but might have been corrupted with the Flash internally in the post itself. Other times, I had to change the file name of the one I  did not want, to make the one I did want, the same as what was there to begin with. I know this sounds a bit confusing but the WordPress file system will not let you have two files with the same name.

Step Four: Creating Custom .HTACCESS Files and Redirects

I would like to give a special thank you to Alistair MacDonald and his article on Blogger to WordPress Migration. His insights were invaluable, along with his published .htaccess files were quite helpful in getting a handle on this part of the project.

Now that I had all the post files ending the same way and structured with a .php or .html file name for the postings, I needed to address the archives, labels (Blogger has labels) and categories (WordPress has categories, and also tags and pages). Also, keep in mind that at this step of the process, when you are about to begin switching things on and making them live, it is a good idea to have a complete backup of all of our public_html files from the website. You can use a standalone FTP program or even use a browser based cross-platform FTP like FireFTP for completely backing up your server files to your local disk.

This is where things start to get a bit more interesting. Remember that I mentioned in the beginning of this Blogger FTP to WordPress posting, that I created the WordPress blog in a subdirectory called “blog”? Well, I wanted to make the blog live at the root directory and for online readers to arrive at and navigate from the root. I did not want to have the subdirectory “blog” in my postings, labels/categories, archives, tags, and separate page file names.  A really cool feature of a WordPress installation is that it can be quickly changed to make it as though it is installed at the root of the website, without having to actually install it at the root level, while still keeping all WP files in the directory where it was originally installed. What I did, was basically follow the following WordPress article backwards for setting up a WordPress blog in its own directory. It required toggling how it was published from the WP settings area and uploading a change to the .htaccess file on the server.

The following directions are very important to follow when toggling where WordPress files are being published online, as in being displayed, and where all the WordPress files are located. This is taken from the WordPress information link above with a few clarifications:

  • #7. Copy the index.php and .htaccess files from the WordPress directory into the root directory of your site (Blog address). The .htaccess file is invisible, so you may have to set your FTP client to show hidden files. If you are not using pretty permalinks, then you may not have a .htaccess file.
  • #8. Open your root directory’s index.php file in a text editor
  • #9. Change the following and save the file. Change the line that says:
    require(‘./wp-blog-header.php’);
    to the following, using your directory name for the WordPress core files:
    require(‘./yourdirectory/wp-blog-header.php’);
  • #10. Login to the new location. It might now be http://example.com/yourdirectory/wp-admin/
  • #11. If you have set up Permalinks, go to the Permalinks panel and update your Permalink structure. WordPress will automatically update your .htaccess file if it has the appropriate file permissions. If WordPress can’t write to your .htaccess file, it will display the new rewrite rules to you, which you should manually copy into your .htaccess file (in the same directory as the main index.php file.)
  • In my case, the “yourdirectory” is: “blog” i.e. www.jimwarholic.com/blog . This is where the WordPress files are located, but the files are actually displayed without the “blog” directory being displayed at the root of the website. The root of my website is where the index.php file is located.

This is what the index.php file looks like:

/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define(‘WP_USE_THEMES’, true);

/** Loads the WordPress Environment and Template */
require(‘./blog/wp-blog-header.php’);
?>

Once I performed that process above, I then pasted the following into my .htaccess file at the root level of the website:

RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

These rewrite conditions above effectively rewrite all the blog files to the root level of the website.

To get the labels that are in Blogger to automatically redirect to the categories in WordPress required the implementation of a couple of special things. I suggest you read Alistair MacDonald’s article on Blogger to WordPress Migration. It wasn’t absolutely necessary that the old labels be exactly the same file names, but I wanted the old label files to be redirected or renamed to “category” names.

The archive files were similar to the label files, in that they also needed to be redirected to the proper areas regardless of the file names within links online or the search engines. While the posting file names were important to remain the same, due to the number of postings I had online, I did not think it was quite as important to have the archives and the categories match exactly to the old file names.

Using the procedure on the .htaccess files I learned from Alistair MacDonald, I did the following. I first created an empty labels and archives folder (directories) in the root level (public_html area) of my website because that is where the original ones were stored from Blogger FTP. Before I created those folders at the root level, I changed the original folder names that still had the original Blogger written files, to labels-o and archives-o. Now that I had my empty folders, I then created separate .htaccess files and placed them into the previously created labels and archives directories using my cPanel File Manager. Once those were created, I then placed the following modified code for my website that Alistair had first written.

Labels: Here is what I added to the labels .htaccess file.

RewriteEngine On
RewriteBase /
RewriteRule ^(.+)\.(.*)?$ category/$1/ [R=301,L]

What this does is basically changes any labels file that someone clicks on online, and converts it to a category file at my WordPress blog.

For example the following link: http://jimwarholic.com/labels/apple.php, becomes: http://jimwarholic.com/category/apple when clicked on.

Archives: Here is what I added to the archives .htaccess file.

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)_([0-9]+)_([0-9]+)_(.*)$ /$1/$2/ [R=301,L]

What this .htaccess file does is take the year and month of the archives and rewrites them to the root level with the following format: http://jimwarholic.com/2007/06. Notice that the archives file does not have the ending .php file name as the Blogger FTP published files, because WordPress creates the archives files by default with no file type at the end.

I also redirected the old RSS and Atom subscript feeds to the new feed file format.

RewriteRule ^atom\.xml$ /feed [R=301,L]
RewriteRule ^rss\.xml$ /feed [R=301,L]

At this point in time, I was ready to write this blog posting.

By the way, I also imported some blog postings from another blog I had hosted in another subdirectory on this domain name. It was a smaller blog, with less postings, but I also did some special .htaccess file creation over at that other directory to redirect those postings directly here.

Yes, there are a few more template customizations that I intend to do for this WordPress blog but for the most part, I think I got it the way I want. I have also loaded some cool WordPress plugins that are really helpful for doing some special functions. I’ll have to write another posting on those a bit later. Feel free to tell me what you think of my new blog layout and post your comments here. You may also post your how-to questions here or send me an email.

I hope this has been beneficial to anyone looking for the procedure on how to convert from a Blogger FTP published blog to a WordPress self hosted published blog. While this information is mainly to convert to WordPress from Blogger FTP, most of the information can also be utilized in the future for importing postings from other blogs to a WordPress blog. Besides that, I can refer to this information myself in the future. Reference notes are always nice to have. Online blogging after all, is much better than taking notes the old fashioned way, and helps everyone find the information out semantically too.

Find your company online today with Professional Web Services, Internet Marketing Services. Gain new customers now!

Marketing Internet Marketing Services

Professional Web Services Internet Marketing Services

Regards,

Jim

PS If you come upon any glitches in my site, please let me know. Thank you very much for your input.