Muschamp Rd

Finally Changed Web Hosts

August 9th, 2025
Homepage on new web host

This is my first post to this blog since January so if you guessed my change to a new web host did not go well, you’d be correct. It officially started 4/27/2025 and I finally got 中文 and ® to display correctly last Sunday. I held off posting because how I fixed it was less than optimal.

Besides text encoding issues I had half a dozen or more other problems. I made a list and posted it to my homepage because eventually I could. I couldn’t just fix certain server issues and the database that powers this blog seems to be stuck in 2009 or between 2009 and today. If this post works and the two Chinese characters and the registered symbol display correctly, I’m probably just leaving things as is because I’m exhausted.

Blogging Builds Character

Work has been very busy and I don’t know if anything will change though some people were upset on Friday so who knows… I have half a dozen other blog posts I want to write and they might be more interesting and enjoyable to write than this one. However, I’ve learned the hard way to document the problems you have with your website and what fix you used. Alas after twenty plus years my links to past fixes have disappeared. For instance when I originally had Chinese character encoding issues, I got a fix from the blog of Selina Lai and she and I had the same issue when WordPress 2.7 came out.

Where she got the fix was from the Boring-est blog which is also gone, but I could learn all this from the Wayback Machine. Luckily other people have been maintaining WordPress blogs as long or longer than me and the temporary fix is still documented in the blogosphere and of course WordPress has the official solution created by latin1_swedish being the default character set of the database used originally by WordPress.

Database Schemas

At my current job I’ve never written so much SQL, but all I write is SELECTs. Generally you set up your database schema and tables once. Occasionally you add new columns or tables but converting all your textual columns from one character set to another, is not something you want to be doing often. Apparently this time I exported my content as a .sql file as instructed by my new webhost but previously it was done as .xml. This fact may have contributed to my recent struggles. I’m not so sure my old database and new database are identical, but I’m exhausted so if this blog is actually functioning the differences may remain a while. This website has been muddling along through various web hosting changes for over twenty years.

My old database had the server connection collation set as utf8mb4_unicode_ci it was version 5.7.44 of MySQL and the server charset was cp1252 West European (latin1). Different tables and columns had different encodings and that is still the case. The PHP version was 8.1.31. Now the server connect collation is utf8mb4_unicode_ci but the version is 10.11.13-MariaDB_0unbuntu0.24.04.1 – Ubuntu 24.04 with the server charset notw being UTF-8 Unicode (utf8mb4) and the PHP version being 8.4.8.

I took screenshots of all this, but shrinking them down to smaller image sizes they become difficult to read so I typed out all that previous paragraph for posterity and in case it helps anyone. But those two databases don’t look identical. The fix I had to make was to add two lines back to my wp-config.php file:

define('DB_CHARSET', 'latin1');
define('DB_COLLATE', 'latin1');

It took some trial and error. But Chinese characters and all the ® symbols I cut and pasted, to make the CFA® Institute happy may now be displaying correctly. I won’t know until I finally hit publish but I have many other issues to document. While all this was happening Google indexed my blog so the gibberish is in Google’s search results.

Other Issues I encountered

Formerly detailed on my about page are the following problems which I encountered and largely fixed over the last few weekends as that is the only time I have any energy or time. I had to get phone and email support of course.

  1. Outgoing Email
  2. FTP
  3. Rendering Issues
  4. HTTPS
  5. File permissions
  6. Subdomains
  7. Duplicate Copies of Files
  8. Text encoding/database schema

Outgoing Email

Do I need a blog? Do I need a domain? Why didn’t I choose McKay.ca? The answer to that last question is the clan society had it twenty plus years ago, then I think a furniture store ended up with it. I should have been monitoring the domain perhaps. Now I believe a law firm has McKay.ca. No it still might be furniture store. Regardless my primary email address is tied to this domain. So even if I deleted all my content or just went with a single page website which was en vogue for a while, I didn’t want to reregister on every website I’d ever used since 2002.

Of course email didn’t work when I moved web hosts. This is what I needed phone support for. There are online instructions but they didn’t work for me. The final fix was basically deleting my email account setup on Apple’s Mail app and creating a new one over and over. We also changed my password and tested that worked on webmail. Remember when you travelled and had to go to an Internet cafe to check your email using a random web browser? I can still do that apparently.

FTP

Next to email which I need for everything from banking to logging into certain websites, I needed FTP access to my website. It is true you can upload files through Plesk which my new webhost uses, but it is more convenient to keep a copy of your website locally and then if you update multiple files you can sync it with the copy on the Internet. Getting FTP to work was almost as hard as getting email to work and required another level of support beyond what I could get on the phone. Again I took screenshots of various combinations of settings, but once I got FTP access I could see just what they’d done to my website to cause it not to no longer function as designed.

Rendering Issues

Above is one of the renderings of my website when it finally worked at all. The featured image of this blog post shows how it looked for a while. At some point I switched from an index.html file to an index.php file, but as you can see no stylesheet is being applied to the above webpage. The majority of the styling of my website is done by a file called tabs.css and that is how it has been for over twenty years. I can’t recall who first developed this tab technique, but I had it working before I went to Japan, so it was developed in 2002 or 2003. There are additional style sheets and some inline styling used on my homepage but right away I knew the files were not in the same place as on my previous web host.

I was of course correct and complained and one of the things they did to try and fix this was make copies of entire directories and all the files inside them. This made some of the relative paths work, but why would I want three or more copies of tabs.css to maintain? Even that didn’t fix all the issues as will be detailed below as http://www.muschamp.ca/tabs.css is not the same as https://www.muschamp.ca/tabs.css

HTTPS

I probably should have switched to HTTPS before 2025, however neither of my two previous webhosts offered that easily or cheaply or made an issue of it. Google and probably the Yoast plugin have been on me to update to using HTTPS and apparently it will help with my search engine rankings, but I just didn’t care to be popular, my website worked. My new webhost apparently doesn’t support HTTP at all. The S is for secure. There are now cheaper ways to get your domain verified and since my new webhost is my longtime domain register, they must have all their security certificates in order.

Longterm I may be better off, but short term a lot of links were busted and had to be changed. Yes the server can accommodate webssurfers using HTTP sending them HTTPS auto-magically but for PHP and JavaScript I had to fix some things. Google also noticed and I had to reconfirm this still was my website. Now I may be getting more traffic and will get some use of the latest Google Analytics and their Site Kit plugin which I installed prior to undergoing all this, possibly even prior to traveling to Scotland.

File Permissions

In addition to basically having to edit every HTML file, I had to figure out which version of a file and domain is the live one that is visible to the public. I don’t know how much it helped but one of my oldest learnings in web development was:

chmod 644

I think the default they had set up was read only for many files but for PHP and probably JavaScript not to mention the directory that contains these files you need to grant execute permissions. I didn’t actually have to use a Unix command line. My FTP client Transmit can do this and I could have probably did this through Plesk too. But even changing all the instances of “HTTP” to be “HTTPS” and changing the permissions on all the PHP and JavaScript didn’t fix everything. I was however glad I’m a longtime BBEdit user, their multi-file search and replace doesn’t suck.

Subdomains

From the beginning this domain has had subdomains. The oldest and most famous is probably Nurgle almost as old and less famous is hockeypool and of course I went with blog.muschamp.ca! This apparently has hurt my search engine rankings for many years. I eventually created more subdomains and this is why I had absolute paths and not just relative paths. However if the webhosting environment had been identical the relative paths would have still worked.

As mentioned above I had to trial and error this by adding in comments to the code to discover which files were live and which files were just copies to make some relative paths work. Then I duplicated the one true folder structure on my local machine. Previously the subdomain folders would have been just “nurgle” or “hockeypool” but now the actual folder on the server is nurgle.muschamp.ca and hockeypool.muschamp.ca so I duplicated that structure on my local copy. Generally they flattened things as the main domain used to be above the subdomains in the folder structure but not anymore. You can see how this would mess up relative paths in code.

Some of the subdomains barely worked or were barely visited when I finally changed web hosts. I’m not sure the last time Dave or I updated our hockeypool website, probably in 2015. I should update it as I think I have the final standings of all the years on my laptop, Dave or another Dave might have it all on his computer too. I guess Dave K. got tired of writing HTML. A bigger problem was the main domain and even the various subdomains used files off other subdomains. This was so I could not only have one primary style sheet but also only one copy of certain script files.

Ultimately I decided to move some PHP and JavaScript to my main domain and delete some subdomains. At least one of them used to be popular but with all the changes made to all the APIs and RSS feeds neither my specialty news websites nor my webmashups work very well anymore. I still wanted a random quotation to appear on my homepage so I got that to work along with the feed from my miniature painting hobby blog so now my homepage looks as below.

Or at least that is how it looks some of the time. At some point Safari and perhaps other browsers changed so sometimes it is necessary to resize your browser window to get Isotope the JavaScript library I decided to use on top of SimplePie demo code. I followed both those developers on Twitter, but I’m not sure either of them use it since it became X. I could try downloading the latest version, but I think Ryan doesn’t maintain SimplePie anymore and I know Dave (yes a third Dave) works for some company now, not all on his own.

I definitely know how it is not having time to maintain code you gave away for free and as long as it works well enough for whatever the original purpose was or if it was just a demo to prove you can code then you don’t have to maintain it forever. For the record both SimplePie and Isotope still work it could be something in my CSS. I’ve just learned that it does usually render better if you refresh or resize your browser window.

But you can’t resize on mobile. I really should look at my browser traffic but I just don’t have unlimited free time. I’ve been working on this blog post for many hours or weeks it seems, further below are some speed measurements and I noticed Google now defaults to measuring the speed on mobile as many people in the world use their phone not a laptop let alone a desktop to browse the web. Redesigning my homepage and website to be even more mobile friendly is something I could do if I had unlimited free time and energy.

Duplicate copies of files

I already went on about this, but when I got FTP access and saw that their fix was just to throw up multiple copies of folders and files to get my website to look a little better I was not impressed. I think Liquid Web had better tech support but if you saw how slow my website ran especially this blog, especially the backend, on whatever shared server they stuck all the little Alpha Hosting clients on. I just wasn’t a priority.

I’m not sure I’m a priority on my new web host either. But I believe they just billed me. I had to pay for more expensive hosting than I was originally quoted. That is the exact same thing Liquid Web always tried to do to me, upsell me. A coworker asked me how big this website is and because I had to find and replace so many URLs I know approximately how many html files there are. I also know how many blog posts there are and the answer is a couple hundred of each. Of course there are more files including plenty of images but this is not a big website and I still do some things in an old fashioned way. I handcode not vibecode. I keep my images small. I generally just fix everything myself but I this can become exhausting. I need a vacation.

This is why for most people I recommend they use WordPress.com or some other webhost that will just give them a CMS and take care of all the backend stuff for them. They won’t have to deal with chmod or HTTPS certificates or ftp or JavaScript or PHP. I have sunk so much time and a certain amount of money into this website. The ROI is definitely negative.

What’s Next?

With everything that I have said above, I actually have plans. There are a half dozen blog posts I haven’t been able to write because first I was busy with work and coursework and then my website and blog literally were not working and I could not even access the files to change them. My next blog posts will be about:

  1. My new electric guitar
  2. My trip to Toronto
  3. My newest certificate
  4. My plans to study Python for Finance further
  5. A surprise announcement!

That last one isn’t just clickbait, especially because I can’t link to a blog post I haven’t written. I have however thought about it and started planning to write five more blog posts. There are lots of images I need to edit and upload somewhere. I’m not doing that all tonight or even this weekend, but I would like to have all five written by September. A couple of them may end up shorter than they would have if I could have written them back when I bought the electric guitar or the weekend after I got back from Toronto.

I also have additional long term plans to edit old blog posts now that the WordPress backend is working a bit better. When I redid my taxonomy I never edited every post. The posts that were in the Technology category or the default unclassified category did not all get edited. So editing them all and improving my internal link structure further is still a long term goal. Another long term web development goal for this domain is to run a link checker on it again. I literally edited every HTML file and moved them to another server so some things may be broken and I haven’t noticed, but worse are domain squatters. Many old links now go to completely different websites and those websites are often not nice.

Blogging has been an ordeal for me, these last few months have been frustrating but not anywhere near my worst in the blogosphere. However, after posting this I’ll also update my blogging difficulties post..

When I completed my last course and certificate I did update my resume or at least my LinkedIn because as detailed above my website was down, rendering incorrectly and I could not update it. Over the last few years updating my blog was so frustrating plus I wanted to keep a low profile so I mainly updated my miniature painting hobby blog which ran better on free web hosting than this blog did on Liquid Web! I don’t know what all my new web host did, but my blog both the backend and rendering seems notably faster. I think they are using a lot more caching but maybe I’m just on a faster server.

Is my new web host faster?

Previously I used a tool by Google to measure this. The tool has changed since 2019. It seems to default to testing using a mobile browser. This blog performs better than my old home page, so I will have to investigate and fix that eventually. Google also thinks my robot.txt is not quite right so there is another thing to look into now that I’ve changed web hosts. But the backend of WordPress is definitely faster than it was on Liquid Web and my 2019 scores would have been on Alpha Hosting. Apparently I should switch from JPG to a new modern web friendly image format. Yet another thing to look into.

For posterity here are two more screenshots of Google measuring the speed of my website in August 2025.

Of course changing web hosts broke many many things I had to fix by editing HTML, JavaScript and PHP, probably some CSS too. And I was just trying to get my website back online not optimize it for speed like I was in back in 2019. If you see anything that doesn’t look correct or is completely broken you can leave a comment below, assuming commenting works. That is one of the first things I used to test when I upgraded WordPress.

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Posts on Muskblog © Andrew "Muskie" McKay.
CFA Institute does not endorse, promote or warrant the accuracy or quality of Muskblog. CFA® and Chartered Financial Analyst® are registered trademarks owned by CFA Institute.