This past December, I started the laborious and often stressful process of migrating my 40+ websites (mostly running WordPress) to a new web host. This time, I’m moving from a VPS (virtual private server) with Site5.com to a VPS with LiquidWeb. My monthly costs are doing down by $31, while my monthly allowed transfer is increasing from 1.5 TB (terabits) to a whopping 10 TB. My server RAM has gone down from 3 GB to 2 GB, but because the provided disk storage is on a SSD (solid state drive) it seems faster and snappier to load. My use of a WordPress caching plugin (Comet Cache) on most of my sites also contributes to their responsiveness. With this changover to Liquid Web, my disk space has gone up from 75 to 100 GB. I updated the graphic below which I originally created in January 2014 for the post, “Why I Switched My WordPress Web Host from WP Engine to Site5.” I’m not done with this migration process, but I’m about halfway finished, and have reached some notable personal milestones. In this post, I’ll share some of my lessons learned from the painful but necessary web host migration “this time around.”
Choose Your Web Host Carefully
How do you decide which web host to use? Since web hosting is generally going to involve a long term business relationship, you definitely want to choose carefully. Our local Oklahoma City WordPress Users Group (@okcwpug) has been a great place for me to get WordPress recommendations from others through the years, but my number one “trusted WordPress” organization since the late 2000s has been iThemes (@ithemes), a WordPress plugin, theme, and services company based in Edmond, Oklahoma. (Full disclosure: I did some contract work for iThemes for a couple years around 2012-13). I chose Site5.com on the advice of iThemes back in 2014, and since LiquidWeb is iThemes’ recommendation for fully managed VPS hosting now, that’s who I’m switching to. (Of course I did my own research and checking around, and LiquidWeb’s pricing and feature tiers are very competitive with others.)
I think it also pays to shop around for a new web host every few years. This definitely isn’t something you want to change frequently, but I’ve noticed that pricing for existing accounts and services seems to stagnate when you stay with your same web host. If you want a better deal, you have to shop around. While hosting costs haven’t declined precipitously, they HAVE gone down while provided hosting specs for comparable prices have improved.
Alan Levine (@cogdog) is a friend and another trusted source of WordPress advice. Based on his encouragement, I considered switching my sites over to Reclaim Hosting (@reclaimhosting), but it turns out the number of sites I’m running and my need for a VPS put me out of their target market. If you are an educator and just have one or a few websites to host, however, I’d definitely encourage you to consider them. The company has its roots in #ds106 and with the amazing Jim Groom (@jimgroom), among a host of others. They are a top notch group and are running a great company with excellent services.
Register Domains and Host Podcasts Separately from Hosting
In my experiences over the past 16 years using and paying for different web hosting services, I’ve found it’s a “best practice” to both register your domains as well as host your podcasts with a SEPARATE service from your web host. The reason is that when you have your domains registered with a different company than your web host, it’s a much simpler and faster process to switch web hosts. I recommend registering domains either with Google Domains or GoDaddy.
Back in 2014, when I briefly tried hosting my main website with WPengine, I had to move all my podcast content (about 400 episodes dating back to 2005) over to another service. The reason was that WPengine will host your WordPress website, but they won’t host media assets for podcasts. As a result of that experience (which eventually took me to Site5.com for web hosting) I discovered the benefits of hosting podcasts on the Amazon Cloud, specifically with the Amazon S3 service. I pay just a few dollars a month for quite a bit of podcast hosting and transfer costs with Amazon, and now I don’t have to worry about migrating that content when I switch web hosts because it’s not hosted on the same servers as my WordPress websites.
The notable exceptions to this are the two websites I still maintain which are running the wonderful, free and open source podcasting software “Podcast Generator.” I think I discovered Podcast Generator in the course of my dissertation research (“Impact Analysis of Phonecasted Lecture Summaries”) in the late 2000s. The podcast generator sites I maintain, and recently updated during my latest web host migration saga, are:
- testimonies and tales: audio interviews about Christian faith and mission work
- Lecurecasts by Wesley Fryer: audio recordings from class
The latter site includes all my class sessions recorded as MP3 audio files from the Fall of 2010 at the University of North Texas, and the Spring of 2011 at the University of Central Oklahoma. I have no idea if anyone has found these sites useful or beneficial since those courses concluded, but it’s still a good example of what’s possible and eminently “doable” with course lecturecasts if an instructor / professor wants to… as long as access to a PHP-capable web hosting account is available.
Consider Sitesucker Static Versions of Archived WordPress Sites
Here’s one of my newest lessons learned in the course of migrating and archiving websites: Consider using the MacOS-only software Sitesucker for WordPress websites which you no longer plan to add content to or accept comments on. As Adam Croom (@acroom) explained in his August 2017 post, “A Web Diet: Converting WordPress Sites Over to Static Sites,” there are at least four clear benefits to using a static site created with Sitesucker:
- …you are less vulnerable to becoming infected through an out-of-date theme or plugin. If you aren’t actively updating the site, you are making yourself susceptible to a lot of mean people on the web.
- You can host it on any type of web server.
- You can even just keep it locally on your computer and access it via your web browser.
- Because of it’s portability, it’s much easier to share a static site as an open education resource (OER).
I’ve experienced WordPress hacks several times in the past ten years, and it’s not something I care to repeat again. Our shared computing environment is MUCH more hostile today than it was “in the early days” when I first started dabbling with HTML, and if you don’t NEED the mySQL and PHP elements of WordPress which make sites dynamic, don’t use them! In addition to Adam’s post linked above, I also commend Alan Levine’s posts on archiving WordPress sites:
- Archiving Old WordPress Sites as Static HTML (August 2016)
- Organizing My Pile of Old Web Bones (January 2018)
For this round of WordPress website migrations, I opted to use Sitesucker to archive our son’s 2008 website “String and Me” which I helped him create to share 9 different string figure video tutorials, also included in this YouTube playlist. Per Alan’s recommendations, I turned off all commenting on posts before using Sitesucker to download the entire site. Sitesucker reminds me of a program that was a favorite when I first started teaching in an elementary computer lab in Lubbock, Texas, in 1998-99: WebWhacker. We used it to create offline copies of some websites our students used for web research, because “in those days” we didn’t have direct classroom connections to the Internet – We didn’t even have (yet) T1 lines connecting our buildings to the main district network. So, it’s old school, but it works and there are good reasons to use it for website archival.
One of the tricky things I had to figure out involved web server permissions for the uploaded files created by Sitesucker. I used to use a FTP client (like CyberDuck, which is free) to transfer files to and from my web hosting accounts, but a number of years ago I discovered the File Manager within CPANEL is much easier and can handle almost all my file transfer needs. One exception is resetting file permissions. I needed to set permissions for uploaded Sitesucker files to 755, which allows any web visitor to view and click on the static webpages. I couldn’t figure out how to do this “recursively” within CPANEL, but did with CyberDuck. After connecting to the folder containing all the Sitesucker files, you just press “Command-i” (on a Mac) and choose the desired permissions, and click the “Apply changes recursively” button. That’s it.
Beware of Wordfence File and Data Changes
If you run self-hosted WordPress websites today, you need to be running a security plugin like iThemes Security Pro or using a WordPress-specific security service like Securi’s Web Application Firewall. In the course of experimenting with and running a variety of WordPress security options, I used Wordfence on multiple sites for several years. While I don’t use it any longer, during my ongoing website migration process I learned that Wordfence makes changes to WordPress files as well as mySQL data tables that may not be deleted and fixed when you disable the plug-in. The Wordfence Assistant plugin is helpful in deleting much of that unwanted data, but I learned it’s not a complete solution. After a great deal of frustrating hand wringing and Google searches, I finally figured out that I needed to change the code in a user.ini file for WordPress to get my BackupBuddy archive to properly reinstall on my new web hosting account.
It was a rogue user.ini script addition left by pesky Wordfence that wasn't cleaned up by the "Wordfence Assistant" https://t.co/wzNAvx9zCO
— Wesley Fryer ??? (@wfryer) March 18, 2018
Backupbuddy is Your Best Friend for WordPress
BackupBuddy by iThemes is, without question, my most valuable and helpful web tool for migrating websites to a new web host, and also insuring that I won’t lose WordPress website data in the case of a hack or other unforeseen problem. They run different discount promotions throughout the year, and you can generally get their entire Plugin Suite for 35% to 50% off, depending on when you buy. I highly recommend it. (And they’re not compensating me in any way to say this!)
Wildcard DNS Forwarding
DNS forwarding is used when you change the web address of a particular website, and you want the old address to continue working. Alan Levine has a good description of how to make this kind of change to your DNS records with your web registrar in the January 2018 post I already recommended, “Organizing My Pile of Old Web Bones.”
In my case, I’d previously maintained a separate “Christian blog” which I’d titled, “Eyes Right.” (eyesright.speedofcreativity.org). I’ve been working on a book project for several years which has gone through several title changes, from “Digital Witness for Jesus Christ” (www.dw4jc.com) to now “Pocket Share Jesus.” I changed my Christian-focused Twitter ID from @eyesright to @pocketshare last year, but hadn’t changed my blog address. In making this migration to LiquidWeb, I changed my Christian blog title and address over to “Pocket Share Jesus” (pocketshare.speedofcreativity.org). For more of the backstory on this, check out the “About” page of my Christian blog.
The technical benefit to setting up Wildcat DNS forwarding for my previous site to the new one is that older tweets as well as Google search results should still work and resolve to their correct, “new” web links. I don’t have a ton of followers and web traffic to that site or that Twitter ID, but for the digital content I’ve shared previously I’m thankful to keep the links working! Avoiding broken links is a good thing, and Wildcard DNS changes can help as long as you still have control over the original domain name.
CPANEL Database Tool Repair
Sometimes WordPress mySQL data can become corrupted. This can happen from hacks, but it can also happen over the course of time as different plugins and web visitors access and use the mySQL tables. mySQL is generally a “black box” I don’t mess with directly, except to occasionally delete overhead using phpMyAdmin. For some reason, one of the WordPress sites I’ve been working to migrate the past week got corrupted and stopped working entirely. Visiting the site resulted in a WordPress database connection error.
I ended up resolving this by opening “mySQL Databases” in CPANEL, and under the MODIFY DATABASES heading choosing to REPAIR the database corresponding to my broken WordPress website. Fortuitously in this case, that fixed the mysterious problem which had disconnected by website from its database. If that had not of worked, I was planning to use the most recent BackupBuddy archive of the site to restore it on my new web host.
Siloed CPANEL Setup with WHM
One of the biggest differences with the new website setup I’m configuring now with LiquidHost involves the number of CPANEL accounts. Previously with my other web hosts, I’d just used a single CPANEL account to setup all my sites. I learned from the LiquidWeb support team that this isn’t a good idea. The best practice is to setup a separate CPANEL account for each web domain you have and maintain. While you can use the ADD-ON DOMAINS feature within CPANEL to add another domain in a single CPANEL installation, it’s better not to from a security as well as performance standpoint.
WHM (web host manager) is another web-based graphical user interface (GUI) offered by the CPANEL creators, which facilitates the process of creating web hosting accounts for different domains. Both the CPANEL and WHM software is licensed, so you generally pay a monthly fee to use it with your web host, but in my experience it’s WELL worth the cost. I’m not a Linux command line guru, so these tools are invaluable and allow me to do things with web hosting that I’d never be able to figure out (or certainly would be unlikely to take the time to both figure out and do) without them.
Value and Power of Recorded Audio
The last lesson learned I’ll share in this post regards the value and power of recorded audio. In the last couple weeks I migrated my short audio recordings from Audioboom and Audioboo over to Anchor.fm, to the channel anchor.fm/wfryer. Lots of the content there includes family recordings from vacations, holidays, and trips over the years, and there is some priceless stuff. I haven’t added to the site in 2 years, but I also just migrated a website I titled “Sounds of My World,” which is an ambient audio and sound recording website I started just for fun sometime after I published my first book in 2011, “Playing with Media.”
I was inspired to start the site and project by Jess McCulloch’s (@jessmcculloch) website, “Life Sounds Like This.” I absolutely LOVE and am so thankful to have recorded many of the moments that are now preserved on that site. I considered archiving it as a static site like “String and Me” with Sitesucker, but after listening to some of the recordings I’ve decided to keep adding to the site when I can.
Another site I just migrated, but have continued to add to more consistently over the years, is my “Fuel for Educational Change Agents” podcast channel. This is a space where I’ve shared and continue to share unedited and “lightly edited” audio recordings of different conference presentations, by me and (with permission, of course) by others. Thanks to YouTube, podcasting platforms like Anchor, and many other media sites, we are absolutely awash in rich media choices today. The overwhelming plethora of sources for personal media consumption should not deter us, IMHO, from creating and sharing media about which we are interested and/or personally invested.
This includes both family-related audio recordings as well as stuff we can do professionally – and stuff that’s just fun! This is part of the thesis of “Playing with Media: simple ideas for powerful sharing” from 2011: The more we play with media, the more comfortable we will become as media creators and sharers, and that expertise can positively carry over into the classroom lessons we design and teach / facilitate with our students!
Here’s a closing personal example of why recording and archiving audio can be quite powerful. My wife’s dad passed away in January, and her mom has now been moved into a nursing home as she continues to battle late stage Alzheimer’s. This past weekend we visited her, and I honestly don’t know how much longer she is going to hang on to life. She was unable to speak, but did respond to my wife and I as we both sang different songs to her. She mouthed some of the words, and made eye contact with us at times as we sang. Other than those moments, her eyes were closed as she lay on her bed.
We sang verses from Jesus Loves Me, Jesus Loves the Little Children, Happy Birthday, and Christmas carols including Away in a Manger, Angels We Have Heard on High, and Silent Night.
As we sat on the floor by her bedside singing, I remembered that I had a copy of our son singing “Jesus Loves Me” when he was about 4 years old on my phone. I’d uploaded it to Apple Music, so it’s part of our iTunes Match songs. I played it on my phone and she listened, it brought tears to my eyes (as it still does) to think about what a gift it was to be able to share this. I don’t think she knew it was her grandson singing about 16 years ago, but it was the sweet voice of a child singing a much beloved song that she still knew in her heart.
Here’s a copy of that short song, which I uploaded to my channel over on Anchor.fm. I do not think we can put a price on the value of this song to us today.
Among all the technical lessons I have continued to learn sharing content on websites and moving that content to different web hosts throughout the years, perhaps none is more poignant or important than this: Be bold and courageous in your efforts to both document and digitally share important milestones and moments in your life! Our family learning blog, “Learning Signs,” is another example of web content which has great personal value, and I’m so happy to be able to preserve.
Yes, we increasingly live in a surveillance state, but the tools available to document and share our lives as well as our learning with each other are unprecedented and easier than ever to use.
So go forth and share. And keep shopping for a new web host every few years!
(If this post has been helpful or even inspirational to you in some way, please let me know with a comment below or by reaching out on Twitter @wfryer.)
If you enjoyed this post and found it useful, subscribe to Wes' free newsletter. Check out Wes' video tutorial library, "Playing with Media." Information about more ways to learn with Dr. Wesley Fryer are available on wesfryer.com/after.
On this day..
- AirPlay Mirroring for Chromebooks with AirParrot - 2016
- Visualizing #beyondthetextbook - 2012
- Synthesizing #beyondthetextbook dialog in groups - 2012
- Morning discussions on digital content, textbooks, & learning - 2012
- Required Reading for #beyondthetextbook - 2012
- Questionable Apple Behavior Regarding Original ACOT Research and Challenge Based Learning - 2010
- Effectiveness of Technology in Schools - 2007
- Internet Connections - 2007
- Liberian Refugees and Bloggers - 2006