I’ve tried both ExitWP and the “WordPress to Hugo Exporter” (which you have to manually install from the GitHub repo).
The plugin is good and it worked first time. ExitWP also worked but seems to create more code that has to be edited than the exporter plugin does.
Note, however, that neither of these are a magic bullet.
For starters, none of my TAGS came across using either method. Though the Categories came over just fine.
Also, while you get your uploads (images, etc), they end up (at least with the plugin) in a separate folder that you need to integrate and the references in any posts remain pointed back to your original WordPress site so you have to change all of those - I used VSCode with search and replace in files.
I think that both converters add URL frontmatter variables so that you can easily retain your original URL’s for posts which is a tremendous benefit over something like Jekyll.
Not so good is that I ended up with a bunch of “excerpt” frontmatter variables that really should have been converted to “description” which I use in my converted site. Another search/replace fixed that up.
Then there were the code blocks. These really didn’t convert at all well so I ended up with a load of code
tags in my markdown which got default formatting instead of proper highlighting. I’m having to go through those by hand though I probably could have automated it using Notepad++ or PowerShell or such-like. I didn’t have so many that it was that big an issue and I got them all done in about an hour.
Dated archive “folders” are also problematic. Hugo has no facility for this - you get it pretty well automatically in WordPress. There are various examples for workarounds but they all seem rather involved and I haven’t got far enough down my fixup list yet to resolve this.
Feed URL’s are another issue since WordPress’s are in the form /feed
but Hugo uses index.rss
- as I am using Netlify for hosting, I’ve simply used their rewrite feature to fix this up.
I needed a new theme of course and 10/10 to Hugo for making themes pretty easy - I’ve been recreating something that looks a little like the WordPress Twenty-Sixteen theme that I was using before.
I’ve had to reproduce some sidebar widgets, particularly the Twitter feed and some “follow me” icons. Not difficult.
The default styles for pagination are a bit naff and I still need to improve that but again, not too hard to do.
My menu’s took a lot of effort to get right - but that is partly due to how I wanted to structure my sections.
My WP theme has a banner image that changes on page reload/change - I’ll add that back in when I implement lazy loading but it will have to be done on the front-end of course.
I still have a long list of things to do but actually the basics are all there and the site could go live as is.
The preview site is here: https://confident-carson-5eac42.netlify.com
I’d say that it has taken me about a week of mainly evening work though that hasn’t been every night. There are a few really weird gotcha’s in Hugo but overall I’m finding it very productive and sane.