mv wordpress.com WordPress (self-hosted)

This blog was hosted on wordpress.com in 2013-2023, and displayed at koalie.blog since 2018. This setup expires –and will close– in July 2024.

These are my notes for future me and whoever may be curious.

Blogging software

I’ve been blogging offline since 2005 (I used a local instance of Blosxom as a diary which I kept for myself via a terminal on my laptop) and online since 2006 (on my friend Amy’s blog Dullicious where I blogged as Barbie-dull for several years, and on My Opera). My previous migration in 2013 moved my blog from My Opera (which Opera shut down four months after) to wordpress.com.

All this time my website koalie.net was hosted for free on a shared server in one of the machine rooms at MIT and I could not easily get any blogging software installed, so my blog had to be separate from my website.

But last year’s infamous Gandi dick move was both a curse and a blessing. Ditto an internal decision at work that free hosting for personal websites was ending by year end as a result of W3C moving out of MIT in January 2023.

Domain name, email, Web hosting

In June 2023, Gandi announced that the free e-mail service included with domain name rental was becoming a paying subscription by year end, as well as a general increase of their prices the following month. For email, I was using 2 boxes (for me and my son), so that meant paying an extra € 115/year. So I resolved to get email elsewhere and set up a redirect on Gandi mail. For domain name rental, I had renewed it for 5 years in January 2022, so I’m all set until February 2027.

I chose to register in July a free email account at Infomaniak (more than one in fact –for me, my son, my dad), and then the day after Christmas subscribed separately for € 82,80/year the Infomaniak Web Bundle hosting plan that offers 250 GB storage, for up to 20 sites, and the ability to install and manage over 100 web applications and CMS. I’m sharing that space with a colleague of mine. In February 2027, I’ll rent the koalie.net domain name with them too.

I activated ssh and was able in minutes via rsync to move my website content from the external hard drive it lives on, onto the web hosting.

I figured I now could at last unite my blog and my website! My wordpress.com subscription for the Starter Plan costs € 42/year and the koalie.blog domain name rental costs € 22/year, so a total of € 64/year (since I signed up for it in 2018, it has cost me € 320+)

So I painlessly installed the WordPress web app on my Infomaniak space.

Exporting from wordpress.com

I was able to export a lot of my wordpress.com data (a 6.3 MB XML file once unzipped) and import it in the self-hosted WordPress app I installed on Infomaniak as a sub-domain of koalie.net: 495 blog posts and 150+ comments.

That’s not everything, though. I was dismayed that the media items aren’t part of the export. They remain hosted on wordpress.com and the blog posts that reference them continue to link to the files on wordpress.com. Similarly, themes settings and blog settings aren’t exported. Finally, all links in blog posts and pages are absolute. In my case, I had a mix of links to coraliemercier.wordpress.com (2005-2018) and koalie.blog (2018-2023).

Importing and fixing my blog

I exported my wordpress.com media items (3.06 GB for about 1300 files sorted by year and month). Then I spent many mind-numbing hours (over 80h) uploading them post by post.

In addition to adding back the media files, I wanted to write the alternative texts (wordpress.com is very bad at nudging bloggers to write any alt text and even if you think of it, the blogging workflow makes it difficult, I found), to check and fix the links (so now most if not all of my blog links start with / and don’t include the domain name), and remove all of the posts that included media from the Instagram account I deleted many years ago.

At the moment I’m using the same theme I was using in wordpress.com: Twenty Fifteen. For the theme settings and the blog settings, I put two windows side by side and compared the pages to click through the options and fiddle to replicate what I had. There are a few differences but nothing that bothers me.

It’s costly to leave wordpress.com

I used my Christmas vacation to make a dent in the massive undertaking of re-uploading my media files and then checking each post for quality assurance. That’s the first intangible cost: time.

The second cost is intangible as well: the loss of the wordpress.com network effect (ability to find new blogs from fellow wordpress.com users, and for them to find and “follow” min), and of wordpress.com’s SEO (which only can explain that my blog had consistent hits every day.)

On wordpress.com that blog had 156 subscribers, and received 46,112 views (4.6K/month on average) from 28,123 visitors. Its most popular day was April 29, 2020 with 772 views. The visits picked up near the end of 2019, so in the past 5 years, the average views were 5.3K/month.

I don’t care that much but I’m pretty sure that after 10 years of being used to these figures (however artificial they are), I will feel the difference!

Screenshot of the wordpress.com stats interface showing a grid of the total views by months and years between February 2013 and January 2024.
koalie.blog all time total views by months and years

The third cost, which I chose not to incur, is the tangible cost of redirection of a wordpress.com blog elsewhere on the Web. It costs € 13/year.

What I did instead was to trash all of my posts on the wordpress.com end and replace that blog with just one static page as homepage, and a blog post, announcing that the setup was going to expire and close in July 2024.

Screenshot of a static page showing an illustration of people carrying cardboard boxes next to a message with my picture announcing the blog has moved
koalie.blog static page as homepage

Looks of my blog over the years

Screenshot of a wordpress blog with Twenty Fifteen theme in white and light grey
My self-hosted wordpress blog using the Twenty Fifteen theme in white and light grey

Why I moved from My Opera to WordPress .com

I came to use wordpress.com last weekend as a mean to an end, an intermediary step between My Opera and hosting my blog on my website. I’ve wanted to host my blog on koalie.net for several years without attending to it. When last month my former colleague Karl Dubost wrote myobackup, a Python script to export (backup) blog posts from my.opera.com, I saw an opportunity. And when I noticed that Daniel Davis added export to WordPress format (WXR), I just took the opportunity.

Blogging on my website

Like I said, I initially wanted to host a WordPress powered blog on koalie.net, but I learned that some of the constraints on the machine where my website lives include a requirement for limited (i.e. no-no!) database server installation and maintenance, as well as limited exposure in terms of services. M’kay.

Static blogging

Static blogging, why not? Since my website is already static, I may as well consider a static site generator approach. I had all my posts stored neatly in directories of years and months. Only the comments were missing. Presented with a couple of suggestions (Nikola, Pelican), I soon became hopeful that at some point, even koalie.net in full might be generated. Woo! Crazy. After years of building my RSS feed by hand, that would be a pleasant change!

Several attempts with Nikola

Hmmm… Maybe I didn’t pick the right one for me between the two generators. I chose Nikola because Tim van der Linden wrote a thorough tutorial that complemented nicely the Nikola handbook. I followed every step. Three times. It sucked most of Saturday and Sunday, well into each night. I tapped into Vlad’s brain and knowledge whenever I was too stuck. Thanks, Vlad.

I was at times enjoying discovering this whole new thing, and at other times I was really clueless about the whole infrastructure. I tried to rethink and adapt my future work flow without seeing a clear path. Maybe it would have been exactly the same had I chosen to try Pelican instead. Maybe I’m too old, or maybe I lost some of that characteristic geek nature.

At some point I realised the output.xml file that myobackup had generated wasn’t working in Nikola. It was missing the links to the posts, and the program’s import_wordpress function was stuck there.

From My Opera to WordPress.com via output.xml

WordPress.com took the content of output.xml that myobackup had generated and imported successfully. Less than a half-hour later I had exported from WordPress.com a nice, long and full contemplationsinmarkup.wordpress.2013-02-24.xml file.

Back to Nikola, and away

Nikola did just fine with the newest xml file. That milestone reached, I tinkered a while with theming and customisation. There again, I found the numerous directories daunting. I soon resolved, grudgingly, to use one of the available themes as is, without customisation, for the sake of my own sanity. I took a break and pouted away from the computer.

But I kept coming back to the promise of one integrated way to generate koalie.net, including my blog. So I tried harder and re-read the tutorial and the handbook, played further in the virtual environment I had set up.

At this point I was pretty frustrated with myself, to the point that it made me shed tears. I was disappointed. In truth, I was unable to sort things out, let alone make them work.

I nuked all directories.

Sticking with WordPress.com. For now.

I licked my proverbial wounds and then curated the content I had fed into WordPress.com hours before.

119 posts had tags but weren’t filed under any category. There aren’t categories in My Opera as far as I know. Also, a handful of posts used to have images that hadn’t been imported. That took a great while to transfer the 152 files in question, add a description for each, and insert them where they belonged.

Yet, I actually took pleasure in the otherwise boring manual tasks that were involved. I got to re-discover past entries I had totally forgotten. I got to look again at the photo blog of our vacation in Costa Rica last year. I generally got to recall memories attached to events recounted. So, at the end of that experience, there was smiling again, and comfort.

In the future I may try again to install and use a static site generator, be that Nikola, Pelican, or Jekyll/Octopress. In the meantime, I’ll stick a bit with WordPress.com.