How To

How I moved all my content from comeacross.info to raoulpop.com

A place in this world

Background info

As midnight approached this past New Year’s Eve, I was busy working on a long-term project. I was about to move all of my content (every article and post I’d written) from comeacross.info to raoulpop.com. There were many reasons for this, but consolidation was the most readily apparent.

As detailed on my About page, I’d already combined my content from other sites of mine onto comeacross.info, but there was one more piece of the puzzle that needed to fall into place. I’d alluded to it already. I was thinking about doing it in 2006, believe it or not. As a matter of fact, when I sat down and thought about whether to start writing at comeacross.info or raoulpop.com, I knew deep down I should choose to start writing on my personal domain, but worried it might be too difficult for people to remember and type the name.

After a year or so at ComeAcross, I realized that the subjects I was writing about were much too varied for a standalone site. I was writing in a personal voice, using a lot of 1st person, and it only made sense to have that sort of content reside on my personal site. Plus, there were so many splogs (spam blogs) on the .info TLD, that I worried whether I would be taken seriously if I stayed on .info. I’d owned raoulpop.com for a long time, I wasn’t really putting it to good use, and it didn’t make sense not to.

I set a deadline of 12/31, and got to work on planning and research. What better time for such a big change as this than New Year’s, right?

I’m documenting this for you because someone else might need to know how to do it. And I figure the thought process that went on behind the scenes is also worth knowing.

Planning and research

My biggest challenge was to figure out how to redirect all of the traffic from comeacross.info to raoulpop.com, reliably and accurately. I needed to make sure that every one of my articles and posts would redirect to my new domain automatically, so that a URL like

http://comeacross.info/2007/12/30/my-photographic-portfolio/

would automatically change to

https://raoulpop.com/2007/12/30/my-photographic-portfolio/

and the redirect would work in such a way that search engines would be properly notified and I wouldn’t lose my page rank.

I knew about 301 redirects, but I wasn’t sure how to accomplish them in the Linux/WordPress environment the way that I wanted them to work. I had worked mainly with Microsoft web servers until recent times, and Linux was and still is fairly new to me. I was using John Godley’s Redirection plugin for WP (it’s an awesome plugin btw), and I knew it could do 301 redirects quite nicely. I had been using it heavily when I changed post slugs or deleted/consolidated posts at ComeAcross.

I worked out a line of Regex code that I could use to create a site-wide redirection, I tested it and it worked fine. In case you’re wondering, you can easily test it by creating a 307 (temporary) redirection instead of a 301 (permanent) redirection. Here’s how to do it:

Create a new 301 redirection where the source URL is

/(.*)

and the target URL is

http://www.example.com/$1

Make sure you check the Regex box, add it, and you’re done.

Just to make sure, I contacted John Godley to confirm whether it was the best way to do things. He said that would certainly do the job, but there was a MUCH easier and faster way to do it, one that saves a lot of the overhead that comes into play when WP gets used. It works through the .htaccess file. He was kind enough to provide me with the code, which is reproduced below.

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

</IfModule>

Just paste that into your .htaccess file (remove all other code but make sure you back it up somewhere in case you need it), save it, upload it, and you’re done.

Don’t do anything yet though! Not before you’ve thoroughly backed up everything! Let me outline the steps for you, and keep in mind that I wanted to mirror all of my content from two separate WP sites using the same WP version, and to redirect from the first to the second. These two conditions have to be met in order for my advice to apply to your situation.

  1. Make sure both sites are on the latest and greatest version of WP, or at least they’re on the SAME version of WP
  2. Back up the database from the old domain
  3. Download all site files from the old domain
  4. Upload site files to new domain
  5. Restore database to new domain
  6. Make changes to .htaccess file as shown above
  7. Log into your new domain’s WP admin panel and change the site and blog URLs. Now you’re done! Check to make sure the redirection works properly and all of your content is there.

Upgrade your WP installs

The two sites have to be on the same version, or else things might not work as expected. Upgrade both sites to the latest and greatest, or at least make sure they’re on the SAME version before you do anything else. Go to WordPress, download and install the latest versions. There’s also an Automatic Upgrade plugin, but I haven’t tried it yet, so I can’t vouch for it.

BEFORE you do any sort of upgrade, you need to back up. Yes, you can’t get away from this… You’ll need to do two backups, one before you upgrade, and one after you upgrade, before you transfer the content.

Back up your content

This combines steps 2 and 3 listed above. Backing up your site files is easy. Use an FTP client to access the files on the web server and download them to your hard drive. I always keep a local copy of my site files. It just makes sense.

Backing up your database is a little more involved. Your database contains all of your site content (posts, links, comments, tags, categories, etc.) so you definitely don’t want to lose it. There are detailed instructions on backing up the database on the WordPress site. You can follow those, or you can go to your site’s Admin Panel >> Manage >> Export and download the WordPress WXR file, which you can import into your new site afterwards.

While this is great for backups, restores are another matter. I tried it and found that the import operation kept timing out at my web host. Given that I have thousands of posts, I didn’t want to sit there re-restoring the WXR file only to get a few posts done with every operation. I needed something quicker.

There is a plugin called WordPress Database Backup which lets you download a zipped SQL file of the database. You can use this to restore the database through the MySQL Admin Panel, if your webhost provides you access to it.

What I did was to simply point my new site install to my old database. This is a very handy and easy solution if you plan to host both sites with the same web host. But this still doesn’t excuse you from backing up the DB before you upgrade the WP install! 🙂

Restore your content to the new site

This is a two-step process (see #4 and #5 above) and involves reversing the steps you took during the backups. You will now upload your site files to the new domain, and you will restore the database to the new domain as well. If you’re in my situation, where you’re using the same web host, you can simply point the wpconfig.php file on your new domain to the old database.

Make sure all your content is properly restored before going on to the next step!

Make changes to the .htaccess file

You will need to make sure you don’t touch the .htaccess file before you transfer it to your new domain. Only the .htaccess file on your old domain needs to change. Remember this, or you’ll be wondering what’s going on with the redirects afterwards…

Use the code I’ve given you above, in the Planning and Research section, to make changes to the .htaccess file on your old domain, after you’ve made absolutely sure that all of your content is now mirrored on the new domain. Once this is done, the redirects will occur automatically and seamlessly.

Final checks and tweaks

This is very important. Surf to your old URL. You should get re-directed to your new URL. Do a search in the search engines for content of yours that you know is easily found. Click on the search results and make sure the links get redirected to your new site. Because you’re using 301 redirects, the search engines will automatically change their search results to reflect the URL changes without affecting your page rank, so you shouldn’t lose any search engine traffic if you execute the content move correctly.

There are a few more things you’ll need to check:

If you’d like to make changes to your site feed (and I did), you’ll need to handle that properly. I use FeedBurner, and there are people that subscribe to my content via RSS or via email. I needed to transfer both groups of subscribers to my new feed seamlessly. The FeedBurner folks helped me do just that, and I didn’t lose a single subscriber during the move. I detailed that process in this post.

What about internal links? If you’ve blogged for a while, you’ll have linked to older posts of yours. Those link URLs now contain the old domain, and you’ll need to change all of them at some point, or you’ll risk making those links invalid if you should ever stop renewing your old domain. Fortunately, there’s a Search and Replace plugin for WP that lets you do just that. It works directly with the database, it’s very powerful, and it’s very fast. That means you have to be VERY careful when you use it, because there’s no undo button. You can easily mess up all of your content if you don’t know what you’re doing.

What I did was to replace all instances of “.raoulpop.com/” with “.raoulpop.com/“. That did the trick nicely. I then did a regular site search for all instances of ComeAcross and manually made any needed changes to those posts. (Here’s a thought: back up the DB before you start replacing anything. This way you can restore if something should go wrong.)

Finally, if you’re using the Google Sitemaps Generator plugin, you’ll want to make sure you manually rebuild your site map. You don’t want to have your old site information in the site map as Google and the other search engines start to crawl your new domain.

That’s about all I did for the site content transfer. It occupied half my New Year’s Eve night, but it was worth it. It’s quite a bit of work, but if you plan it out, it should only take you 4-5 hours or less to execute the transfer, depending on your familiarity with this sort of thing, and the speed of your internet connection (keep in mind that upload speeds are a LOT slower than download speeds on most broadband connections).

Given how much work is involved, I was a bit surprised to see Matthew Mullenweg (founding developer of WordPress) talk about doing his own switch to a new domain in “2 seconds“. I think what he referred to is the changes to the .htaccess file and the blog URLs, which are the fastest parts of the process. There is, however, quite a bit of work that needs to take place behind the scenes before those switches can get flipped. And I also believe (someone correct me if I’m wrong) that he pointed both domains to the same web files — in other words, re-used his existing WP install — so he bypassed a lot of the steps that are otherwise required.

Hope this proves helpful to someone!

Standard
Thoughts

A few feed changes for my site

Birds of a feather…

The transfer of all my content from comeacross.info to raoulpop.com has gone smoother than expected, which is great. I’ve been monitoring the feed usage stats, and it looks like everyone has migrated over to the new feed. Just in case, please check your bookmarks and feeds, and correct them as follows, where appropriate:

All of my other feeds have stayed the same. Here they are:

Of course, all URLs are getting automatically redirected (with a 301 status) from comeacross.info to raoulpop.com. That’s been working great, although some people reported issues during the first few days. Thanks for letting me know about those!

If you’re linking to my site in your sidebar, could you do me a big favor and check to make sure you’re no longer linking to comeacross.info but to raoulpop.com? And if you’re not linking to me, would you please?

A big thank you goes out to FeedBurner for migrating my email subscribers and helping with the feed redirect!

Standard
Events

Happy New Year!

Things were quite busy at our home as the New Year arrived. I was working on my site, transferring the content over from ComeAcross and making sure the feeds were pointing the right away. That was my New Year’s surprise, something that I’d planned to do for quite some time. I wanted to move all of my content from ComeAcross to my namesake domain. It’s now pretty much finished, minus a few details that still have to be worked out. By the way, I apologize for the double feed items that occurred overnight. I’ve straightened that out and it shouldn’t happen again.

We also found time to celebrate with a wonderful dinner prepared by Ligia, and a couple of movies. We watched “The Shop Around the Corner” (1940), which was wonderful even for a second time, and “The Secret of NIMH” (1982) an animated movie which could have been much more entertaining, but was so stretched out that it was dull. Children might still enjoy it though, for its animation and colors, which were done quite well.

I leave you with a few photos. This was the last dawn of 2007.

Last sunrise of 2007

New Year’s wouldn’t be New Year’s without the celebratory sparkler.

Celebration

The clear sky allowed us a wonderful view of the New Year’s half moon. The photo is somewhat soft, and I apologize for that, but there was no way I could have gotten that close without the aid of the digital zoom on my trusty Olympus C770UZ (and as you may already know, digital zooms will make things softer).

Have a slice

Happy New Year! May this year bring you many blessings and good health!

Standard
Thoughts

A few suggestions for FeedBurner

FeedBurnerI’m a very happy user of FeedBurner, the wonderful feed management service from Google. I’ve been using it since early 2006, and I log on multiple times every day to keep track of my feeds. I’d like to talk about some features and options that I’d love to see on the site.

Ability to splice multiple feeds without having to add them to a network or put them in FAN. I’d love to be able to have a single feed that combines all of my content, without having to go through what I’m going now, which is to create a feed network, add my own feeds to it, and burn that feed to a feed… I know there are other services on the web that do this, but I’d rather be able to do it through FeedBurner.

Ability to splice external feeds (ones not burned at FeedBurner), into a single FeedBurner feed. This would work sort of the way that Jaiku or TwitterFeed work, in the sense that I’d take my feeds with very few subscribers, like my Twitter feed or my Vimeo feed, and add them to my single feed without needing to “burn” them as separate feeds at FeedBurner, and having them show up under My Feeds. I’m not really interested in managing those feeds at this point — I just want to add them to my single feed.

Better revenue reporting from FAN (FeedBurner Ad Network). I never know how much I’m getting, because the figures are just approximations, and the pay is somehow always less than what’s indicated in the control panel. AdSense always reports my revenues correctly, Amazon does it too, but FeedBurner always leaves me wondering how much money I’m going to get. Maybe I just don’t know where to look, but believe me, I’ve looked all over the place. There’s only one place where revenues are reported centrally, and then there are ad revenues for each individual feed in FAN, and still I don’t know how much money I’m making with my feed ads.

Ability to “refresh” feed flares. Old feed flares display with old preferences, so I have a ton of flares showing up for older posts. I understand that they’re cached, and they have to stay cached, because it would be murder on a database if the flares would be constructed dynamically for every feed item, including the older ones… But I’d like to have a manual “refresh” function for the flares, that would let all of the old posts and old feed flares inherit the most recent settings for my feed flares.

Ability to separate feed flares from the ads. I’d like to display the feed flares at the top of my posts, for example, and the ads at the bottom. Right now they’re together and there’s no way to display them but right next to each other.

The SmartCast feature is a bit confusing. Either I’m the one that doesn’t get it, or it doesn’t quite work as advertised. Here’s what it says on the site:

“Makes podcasting easy in feeds that normally cannot support it. Link to MP3s, videos, images, and other digital media in your site content and SmartCast creates enclosures for them automatically. Optionally adds elements required for a richer, more detailed listing in iTunes Podcast Directory and sites using Yahoo Media RSS.”

When I took my podcast feed, which is a simple category feed from my blog, and turned on the SmartCast option, enclosures for the media files linked from each post weren’t turned into enclosures. The iTunes elements were added to the feed, but it still didn’t become a feed that I could subscribe to from iTunes, so I gave up on it.

Now, a little more than a month since my last podcast, I see that I can subscribe to that feed in iTunes, and the podcast downloads just fine. But only the last item shows up instead of every single episode, or at least the last 10 feed items, which is the standard. Why? And why didn’t it work when I first turned on SmartCast for this feed? I can’t help but be confused by this. SmartCast can be a very elegant and easy way to turn a normal feed into a podcast feed, but it looks like it still needs some work.

Photo Splicer only works with the Flickr ID. The Photo Splicer option says I can put in either my Flickr user ID or my screen name, but it really only works with the User ID, which is annoyingly hard to find on Flickr. It would be nice if the User ID would be automatically looked up if I entered my screen name.

I know the FeedBurner folks will read this. They’re very conscientious and follow up on these things. I don’t want special treatment, but it would be very nice if they could consider my feature requests and see what can be done. FeedBurner has my thanks for a wonderful service!

Standard
Thoughts

Book giveaway: SUSE Linux by Chris Brown

I’m giving away “SUSE Linux” by Chris Brown, a book I reviewed here at ComeAcross. It’s the first edition of the book, published in July, 2006, and it’s about 430 pages. It covers pretty much everything you’d like to know about SUSE Linux. I encourage you to read my review to see if you’re interested. Retail price is $39.99, but you’ll get it for free if you simply tell someone you know about ComeAcross and encourage them to subscribe to the ComeAcross feed.

Now that I’ve re-designed ComeAcross, you can choose to subscribe only to the feed that interests you. See this post for more details on that.

To qualify, just leave a comment on this post, letting me know you’ve told someone. If more than one person is interested in the book, I’ll hold a quick drawing and pick their name at random this following Sunday morning. I’ll announce the winner on my blog, and link to his or her site, if they’ve got one. The winner will be responsible for the shipping cost.

By the way, there’s another book giveaway going on. It’s a book on Change Management.

Standard