Migrating business site from Namesco to SiteGround
For over a couple years my employers website been served from shared hosting solution on Namesco. On recent years however, we feel that we been left behind. It started with just PHP, where we stick with the 7.3 version without not plan to go into 7.4 and not thinking even with 8.0. Until significant issues with performance of the servers (where even Customer Support couldn’t help without persuading you to migrate to dedicated servers), it was time to think what’s next.
Despite heavy use of W3 Total Cache together with Cloudflare, where the front end served to customers (oscillating in 350 people in weekdays) seems to work fine, any work on the back end was a constant pain. Working with Wordpress shall be fluid. I personally, as a person responsible for managing the website, hate it.
When websites like GTMetrix start dropping us in performance results, once we hit the read, I said enough and start looking for a change.
In the same time, where in 2021 website speed start matters the most, I struggle to improve Core Web Vitals of the website, and sooner or later we will see a drop in Google results and visitors.
Where in the past (around 2015) we used couple solutions like TSO, and even one in Poland on Polish servers, we stick with Namesco as a good value for money. As this value stop representing the money that we were paying, decided to go on a hunt.
I was thinking even into purchasing a WP Rocket plugin to improve performance until I read again about SiteGround and their hard work into bringing SG Optimizer into live, who people compare to WP Rocket as a competitor on their servers
Even that SiteGround state, that website on their servers can work together with WP Rocket, I planned to put their SG Optimizer to the test, along with Cloudflare that we use for some time, and see how this will go.
Our site is not big (slightly over 1 GB including all files and 50 MB in MySQL database), however, it has a quite decent number of visits, as it contains plenty useful informations for our customers.
Waterfall on GTMetrix shown between 1-2 MB of our home page, which I think personally is a lot, especially that privately I am using Hugo for blogging, and my website in waterfall goes below 512 KB.
But nothing annoy you when somebody from Namesco is changing something in a code of your website without informing you and without any particular reason. Many times I personally put a change into our Wordpress Theme to realise that it been changed back to old code at some point (possibly they restore from backup?). That’s totally unacceptable!
So I started migration to SiteGround at the end of January 2021.
To avoid any caching issues, I turned off caching plugins and put Cloudflare into development mode. Then I followed automatic migration process via the SiteGround Migration plugin.
In background, I’ve been observing cPanel on Namesco and noticed a lot in RED from I/O on 1.46 MB/s as 100% (!) and memory usage in the range of 860 MB. I was a little worry as progress bar not appear for a couple minutes, but suddenly there was a light in the tunnel.
I struggle to find what are the I/O limits on SiteGround, so hope that will not discover this shortly, and this will become a big issue.
I started on the StartUp Hosting package before I read that for using Dynamic Cache and MemCached, you need at least GrowBig, but even that I decided to move and see.
MemCached may not give me performance that I am expecting, but if Dynamic Cache will give me a boost, I will consider upgrade (I later upgraded to GrowBig, and this was a good decision).
At the time of last renewal, I paid £120.99 for cPanel Professional hosting, and additionally to that £24.99 for cPanel Backup (R1Soft Restore Backup) on Namesco.
On SiteGround, I started with a promo offer for £5.99 per month, paid annually (£71.88), which included daily backups, so I been still in the budget.
I started the migration process 10 minuted before 7pm. 10 minutes later, I saw progress in the migration plugin with a message starting file download.
During this time, cPanel on Namesco were screaming of almost 90% CPU usage, with slightly less memory usage, but still in Yellow.
Further, 10 minutes later it’s been at just over 1100 downloaded files from nearly 9000.
After another 10 minutes+ passed 2000 files. It looks that this will take at least an hour to finish (this step).
An hour and 10 minutes later, we have been close to 8000 files…
An hour and 20 minutes later, all files were downloaded, but migration was far from over, as it just started site migration… just to finish with failure!
What I noticed, it mostly failed, as suddenly migration key become invalid (?). Possible, as I generated it at approx 3pm that day and started process just before 7pm, this will give approx 6 hours life of the key. Fair enough.
Despite that migration guide advise moving manually in case of issue, I decided to try again and then follow it if needed.
And so on, 10 minutes to 9pm of the migration day started again. This time, hours later it failed again (11:20pm)!
Failing reasons are unknown, but as is mentioned in the Error message, it more likely due to differences in the hosting environment. Namesco is using Apache for default and SiteGround Nginx.
Funny thing is, that I received emails from SiteGround that migration finish successfully (!?!).
At this time, I was thinking about manual migration, as mentioned above.
Before I did that, I need to move my redirections (from Apache format in .htaccess into Nginx). I been using Redirection plugin, hence just head to plugin settings, section Import/Export, and selected export Everything in Nginx rewrite rules. Then when the website will migrate, will need to import Nginx rules.
To avoid temporary issues with redirects, I have moved my redirects into Wordpress group (despite that native redirect are faster, this will be more compatible than not having them working for start). I need to remove them manually from .htaccess file as well, as plugin don’t seem to do this for me (which I discover painfully at a later stage of migration).
Before I start manual migration, I need to delete content of the public_html folder in my domain on SiteGround servers, that contained remaining files from failed migration. I used File Manager for that in SiteGround Tools, as it’s faster than via FTP (Dashboard > Site > File Manager). I remove also, created by migration process, databases (MySQL).
As I prepared myself for manual migration, I started from cPanel on Namesco and their File Manager, where I compressed my website folder into .tar.gz archive which I later downloaded into my computer. On the next step, I dump my database from phpMyAdmnin (I am always using Custom Export where I am selecting output as gZiped).
In such a way, I finished with two compressed files, one containing my sight and one containing database. Good backup in case some hick-ups.
Off-course, you can ask SiteGround employees to help you with migration, but as you already half-way through (have your files and database ready), don’t think that it’s needed to spend extra 20 pounds for that, unless you are not sure what you are doing.
I was moving this site a couple of times in the past, and think I will handle this one, despite that I haven’t got too much experience with Nginx.
So let’s start with it using provided tutorial.
Before I will start importing files, I will need to create a new MySQL database on the SiteGround side. After that’s done, the fun will begin.
On the next day, I uploaded extracted database into the server and do Import Database Dump from Tools panel.
All been simple.
Then I went into phpMyAdmin, and what I noticed was a pain for Namesco that their default engine was MyIsam, on Siteground was InnoDB, which was an additional plus. I just needed to convert remaining MyISAM engines into InnoDB, and all done for now (shortly speaking, speed prevail). Some time in the past, I spoke with Namesco Customer about that and struggle to get a positive approach on database engines.
Next is to upload my files.
After that, just updated my wp-config.php file and pointed Cloudflare to the new server, and have been ready to go. Surprisingly, everything works fine on front-end and back end require slight TLC.
First run of GTMetrix didn’t show any improvement, however Cloudflare cache was off as well as other plugins.
Activated SG Optimizer and straight away I want to activate Dynamic Cache, hence need to upgrade to the GrowBig plan, which I did.
After all settings done on plugin, I re-run Performance tests.
Firstly, I run Speed Test inside plugin, which shone 80 on Desktop and 61 for mobile on homepage, which is quite poor.
Retest on GTMertix shown slight improvement from E to F on Canada server and C on UK one.
There is nothing better however than results shown in web.dev website.
Web.dev for home page shown Performance at 51% (lot to improve still), Accessibility 94, Best Practices and SEO at 100.
Off-course, on the initial tests, the Cache just start to build up, hence I cannot assess yet that all is working well and speed increased compared with Namesco. At least I don’t have for now an issue with my Wordpress back end.
On the following weeks and months, I checked everything and been very please that I could work in the back end without pulling my hairs. All been very responsive and don’t have any warning about limited resources (that I have on TSO host!).
Since the website been hosted at Namesco, I always got some errors reported at Google Search Console, which I now reported for re-evaluation to see if different hosting fix some of them.
Doing web.dev and PageSpeed Insights checks for selected part of the website noticed that I need to enable Combine CSS in SG Optimizer. Typically, this was done by plugin Autooptimize, however SG Optimizer got this as well, hence will not duplicate this functionality.
From time-to-time, I used to have issue with Images, especially with displaying WebP Images. I used EWWW Image Optimizer by default, and during migration I moved already generated WebP files as well. When using SG Optimizer as a replacement, I removed all WebP images and Bulk regenerate them with one click.
As this process was time and resource consuming, I decided to do that in the evening hours when the number of visitors on our website is not such big.
Apart from using Dynamic Caching, I turned on MemCached as well.
Time for clean-up.
Autooptimize (very good plugin from the same author as above) also been replaced with SG Optimizer and Front End Optimisation.
W3 Total Cache for obvious reasons is not longer needed.
EWWW Image Optimizer removed.
Heartbeat Control (by WP Rocket) alternative is also included in SG Optimizer hence removed it as well.
Shortly speaking, even on the GrowBig package, for what SG Optimizer offering, including free daily backups in their Site Tools, its was worth the move.
The only thing I struggle to connect Cloudflare on SiteGround Tools, which I would need to reach Customer Service. Initially all worked well, including Cloudflare, hence not sure if that integration is needed (after month confirmed that probably not), however still need to ask question, as don’t see the option in SG Optimizer to purge cache from Cloudflare as well when post is published or updated.
In a mean time I installed the official Cloudflare plugin (which I not used due to the same functionality in other plugins) that help me with the above issue.
As been advised by Customer Service, as I am using DNS servers and full management through Cloudflare, there is no need to add Cloudflare in Site Tools.
Just in Cloudflare plugin, I enabled auto purge cache when something changed on the website, and that’s all for now.
One more thing. I got into Wordpress back end > Site Health (from Tools), where firstly got a notification on PHP 7.3, where recommended by WordpPress, was 7.4, so change that without problem in SiteGround Site Tools. By the way, SiteGround at this time marked 7.3 as recommended.
Other thing highlighted, there was missing optional package
imagick but SiteGround website quickly gives me a method to enable that. Super!
As everything start working well, it was time to say goodbye to Namesco (almost).
I noticed that going into GrowBig or higher package, you got to disposition Staging Copies of my website. Thanks to that, there is no need to do local deployment before putting it live. This function is particularly interested in me and will be checking that on the following weeks, as recently local development become pain for myself.
And so on, couple months later (mid April), everything been working really well. Site was responsive, nobody complained, and (after doing some tweaks in code - which I am still improving from the original theme developer), I started gaining back in Google Search Console Core Web Vitals.
Despite that website start to be showing in green on Mobile and Desktop (web.dev and PageSpeed Insight itself), Google approach with 28 days validation, to tell you that validation failed or pass start annoying me, but I saw a light in the tunnel.
All the migration has been a big success, and the work that been put towards SG Optimiser was so incredible, that I don’t need to use anymore any other caching and performance plugins.
As I calculated, when times will come, renewal of hosting will be more expensive than on Namesco, however the time that I spent solving issues with them, and then performance gained through SG, compensated it all.
Overall, through recent months, WordPress start been less and less useful tool for myself, and for any new projects I am starting to use Static Site Generators like Hugo.
For our company’s website, it may be too early (mostly due to WooCommerce), however, we are already looking into options, how to improve the site in the future.
For now, I will concentrate to bringing current theme (on back end site mostly) to modern techniques of HTML and CSS, as theme developer (external company) who created it initially (I changed it a lot since then) put some silly HTML/CSS solutions that are far from modern practices. This was back in 2014, hence since then, a lot has changed.
Time will show what will happen next, but at this stage SiteGroud is my recommendation for business users.
And so on, I said goodbye to Namesco, but not fully. I still pay with them for domains that we hold. And even we could move them across, Namesco, to release them from their company, is asking for a fee (like an extortion) that in mostly equal or more than annual extension of single domain. They claim that this is an administration fee, which I disagree.
As this is not cost effective, I will stick with them for that only purpose.