mv WordPress (self-hosted)

This blog was hosted on in 2013-2023, and displayed at 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

All this time my website 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 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 subscription for the Starter Plan costs € 42/year and the 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

I was able to export a lot of my 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 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 and the blog posts that reference them continue to link to the files on 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 (2005-2018) and (2018-2023).

Importing and fixing my blog

I exported my 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 ( 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 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

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 network effect (ability to find new blogs from fellow users, and for them to find and “follow” min), and of’s SEO (which only can explain that my blog had consistent hits every day.)

On 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 stats interface showing a grid of the total views by months and years between February 2013 and January 2024. 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 blog elsewhere on the Web. It costs € 13/year.

What I did instead was to trash all of my posts on the 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 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 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 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, 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, 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 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 via output.xml took the content of output.xml that myobackup had generated and imported successfully. Less than a half-hour later I had exported from 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, 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 For now.

I licked my proverbial wounds and then curated the content I had fed into 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

mv My\ Opera WordPress

I have had an on-line blog since June 2006 (or, as I noticed recently, since precisely 6/6/6). I chose to have it hosted on for convenience. The style was rudimentary but I found it pleasant enough. I’ve found it functional, at the very least. Here is a screen shot of that blog home page:

screen shot of My Opera blog
screen shot of My Opera blog

And I move its content to on Sunday. Here is a screen shot of the blog home page after import and some tweaking:

Screen shot of WordPress blog
Screen shot of WordPress blog

On My Opera, the blog received 35872 visits. Some posts got comments, I can’t easily find out how many. All these were not imported, unfortunately. I will miss them from my records. So, I will remember that some people frequently left a note, or the occasional visitor did.

I am using the WordPress Bueno theme which I’m very fond of.

Update 2014-01-31: A belated update to add to the record the announcement Opera made 8 months afterwards, that they were shutting down