You are here

An experience of migrating to Drupal

Well, as you can see, I have moved my blog from WordPress to Drupal.

Why move from WordPress to Drupal

Partly, you could read about the reasons I love Drupal earlier. The reason why I moved this very blog (now a site) to Drupal are

  • I'd like to expand the site in the future and Drupal allows creating any page templates without any PHP knowledge with the right modules
  • Drupal also has various page sorting mechanisms, allowing to group, filter and show various pages as one likes - I couldn't see that in WP easily without programming
  • what actually prompted this move right now, is that I can have only one installation of Drupal to run multiple websites. As I plan to launch a couple of other projects on Drupal, having them running from the same hosting account, required a solid Drupal installation
  • I am now moving a client's site to Drupal, and having one's own blog not on it was kinda weird

The experience

Migrating a WP blog to Drupal was a experience. Sadly, not a very positive one. Here's what happened:

  • I backed up my WP database (of course)
  • installed Drupal 4.7 in a subfolder (and also downloaded and enabled the wp2drupal module, which only works with Drupal 4.7)
  • migrated the blog to the 4.7 Drupal version
  • copied the Drupal 5.1 version to the root folder, replacing the WP installation
  • tried upgrading the database to Drupal 5.1

This is where things went wrong. Upgrading WP to Drupal 4.7 is easy. But
- I forgot to create and make the files/tmp folders writable
- I didn't know how to make all requests to the old URLS to go to the moved-temporarily.php file with mod_rewrite (which is a requirement of the wp2drupal plugin) without simply redirecting all traffic to that file - this is not entirely an elegant solution
- I didn't change the pathauto default settings to match how WordPress creates URLs from titles

So, I had about 3-5 attempts to migrate the WordPress blog to Drupal 4.7 to create a fresh database, because I haven't backed it up before upgrading to Drupal 5.1, which I thought would be a simple procedure.

Then, I've had the same amount of upgrade attempts. After which going to the homepage returned /install.php and asked me to upgrade. Again.

I kept dumping the ugpraded database, migrating WP to Drupal 4.7 and upgrading to Drupal 5.1 for a couple of hours with the same result. And yes, I have made the files/tmp folders writable by that time.

So, I searched for 'install.php' in the CMS core files and copied those again. Amazingly, it worked. And I thought I did copy everything on the first run - and I still think so.

The leftover is that I have to fix page paths manually, because
- I have changed post titles in WP earlier and URLs didnt match them
- Drupal pathauto default installation skips stop words, unlike WP
- Drupal pathauto module, when told to create new aliases, created URLs, based on new post titles without stop words

How you can do better

So, how I could or you can do better:

  • do everything on the test site (which is popular with Drupalers), even with the newest Drupal version. If everything goes fine, you just install the latest version over your current WP blog and voila
  • make sure you create the necessary files/tmp folders and make them writable
  • wait till someone creates a script to move your WP version to the latest Drupal version - forget about upgrading Drupal
  • have pathauto enabled and properly configured configuration back to default later)
  • read thoroughly and follow migration instructions closely
  • if you are not a PHP programmer, getting a professional to do this might be more efficient for your work

Possibly, it is very well worth paying someone to move the site. It'd relieve me of the agony every non-programmer feels when something doesn't work and no one on the Drupal forums is answering your pleads for help.

Should I not use Drupal?

Technically, the only problem I see with the whole process is that I am a not PHP developer. If I was, I'd create the WordPress 2.0.7 to Drupal 5.1 migration script and be happy. I'd be able to fix anything without feeling like it was the doom day.

Or the problem is with me not finding the up-to-date migration script.

Anyway, Drupal is the best CMS around, because you are in full control. You can create anything and do anything with anything/anyone on your website. You can similarly empower your visitors/members/clients to do anything on your site under your moderation (content moderation, access based on actions come to mind).

Moving any large or large-wannabe website to Drupal is a must. And all the pain is worth it.

Likewise, I do not whine and I won't write anyone about my horrible experience (I have spent about 10-15 hours on this, while it should've taken only the time to upload files to the server, technically) and feel overall happy, because it'll allow my site to grow easily.

If I make sure all old URLs redirect show the relevant pages, I'll consider the whole process a success.

P.S. Did you receive this message through your RSS reader without re-subscribing? If so, do let me know. If not, do let me know, too. Thanks.



Drupal is a very nice system to use for any type of site. I hope you come to enjoy it just as I have done!

Yup, I am thoroughly enjoying running it.

However, I am having trouble with redirecting feeds from feed/ URLs to current ones (the WP subscribers may not be receiving the feeds).

How is drupal on SEO? I know WP is sweet, but drupal doesn't seem as good for seo out of the box or with mods.

What do you think?

Overall, semantic does convert text to semantic markup, however, you need to code it yourself, mostly (using subheadings and lists).

Also, plenty of stuff depends on the theme you have chosen. As you can see, the theme I use is partly built on tables, which isn't that bad, since it uses CSS anyway. Largely, it uses semantic markup (subheadings).

To make Drupal more SEO friendly, you can:

  • select a theme with semantic markup (HTML/CSS, subheadings, lists) and make even an accessible one (search for 'accessible drupal theme'
  • use subheadings in posts on your own, as well as write your titles using the words, related to your post
  • use clean URLs, select categories/topics carefully (maybe even create a custom taxonomy name, such as "Topics" here)
  • add URLs that show duplicate content (such as comments, feeds) to robots.txt that comes with Drupal - you can check my robots.txt, for an example

Overall, it means knowing your audience, words your audience uses and use them throughout your website.

Add new comment