Both to learn how to create a website and to comply with a shoestring budget I had decided to create my own website from scratch. I picked up a course on Udemy (opens in a new tab) by Daniel Walter Scott (opens in a new tab), on one of the many sales, to learn how to use Adobe Dreamweaver (opens in a new tab). I slowly worked my way through building the framework of a Portfolio website. Afterwards, I expanded the website with what knowledge I had gained with CSS and HTML. Then I incorporated some scripts I found and repurposed for the web, to further customize the look and feel. Though my pipeline didn’t start with building the site’s design first, I was happy to fiddle with the framework and edit the design right in Dreamweaver, with what I had in mind. I added and removed items, I played with JQuery & JavaScript, massaged the CSS and reworked the HTML to create something I was really pleased with. The process took me countless hours of finding solutions, tackling design problems and managing development coding issues.
Finally, once it was done, I wanted to see it display on the 3 Ws, the World Wide Web. At first, I looked at Firebase (opens in a new tab) as a hosting option, by recommendation of an App Developer. Countless hours spent trying to figure out the platform and attempting to solve PHP related issues, I gave up. After all, Firebase doesn’t run PHP, so I wasn’t able to get my contact form to work. These are the things you learn only from experience or if you’re lucky to be guided along the way. I ended up hosting the website on a free hosting service called 000webhost, which was perfect for displaying my website and getting feedback from friends and family. In this case, PHP was supported, so I could finally test my contact form properly, and ask others to help test it. But the amazing thing is, I got to see my site live and functioning. Still, there was more problem solving to be done. Luckily, there are many helpful people and resources online to solve pretty much any problem, so long as you utilize search engines well you’ll be able to find them.
After speaking with a Developer friend of mine about what to do next, I was left with a lot more work that needed to be done, before I could call the website a success. After all, the website needs to be stable, run smoothly, fast and be easy to find. The first thing was to get the website a proper domain and hosting platform. I decided on using a local web host named AfriHost (opens in a new tab) and subscribed to a cheap shared hosting Linux Server with CPanel access for maintaining the website. Though there are some limitations with a shared server, I have been able to host my website successfully and make all the necessary implementations and optimizations. This doesn’t mean my website is discoverable online via search engines, only that you can find it by directly typing my URL into a browser.
To get my website to appear on Google, Bing and other Search Engines there were a few more steps to take. Firstly, I had to generate a Sitemap and index it with the appropriate Search Engine. To generate the Sitemap I used Screaming Frog SEO Spider (opens in a new tab) to scan my site and export an XML sitemap. Then I submitted my sitemap to Google (opens in a new tab) and Bing (opens in a new tab) via their Webmaster tools. This allows a Search Engine to index your site properly, but it takes a while for their bots to crawl your website before it makes its way into relevant search results. On its own, it didn’t help my website to rank higher on search results. After all, I want my website to appear on the first page for searches, not page 20-something.
The next step was to optimize my website so that a search engine would be willing to display it further up. I found a good place to start was Google’s PageSpeed Insights (opens in a new tab), as it scans your website and gives constructive feedback related to what is needed to speed up your website. It also gives your website a Mobile and Desktop score, relating to the quality of optimization present in your website. There were a fair bit of changes I had to implement to get a higher rating. My developer friend also recommended GTmetrix (opens in a new tab) for the same purpose, which I fully utilized as a guide for optimizing my website alongside a lot of Google searching and troubleshooting.
So the optimization began, and already at the start, I ran into issues related to my shared server and its limitations. Luckily, with the help and advice, I was able to find solutions to bypass the limitations to some extent. Cloudflare (opens in a new tab) being one amazing tool that I would definitely recommend, as it was able to solve various optimization related issues. It granted my site security, speed, minified code, caching capabilities, a live backup and access to various servers around the world. Though I am utilizing the free version there are various bonuses when subscribing to its paid content. The rest was up to me, to solve and find solutions, with the help of many online resources and helpful people. Part of this was scaling images in a batch process in Photoshop and further optimizing the images with online tools such as the Kraken Image Optimizer (opens in a new tab) and TinyPNG (opens in a new tab). Another was editing my website code to run smoother and avoid content that would block rendering. I also included LazyLoad to render above the fold content efficiently and switched some of my icons and vector images to SVG for crisp scalable content.
Changing code, editing items and locations would have been a hassle without Dreamweaver’s Template which allowed me to update certain elements sitewide. I did, however, move my site over to PHP when most of the heavy lifting was done to be able to implement additional features and make the site more manageable when updating content. It also allowed me to inject the header and footer as separate PHP files into each page, making updates to the site from a text editor easier and streamlined.
A service I utilize on my website is Google Tag Manager (opens in a new tab), which allows me to add various Google-related services without much hassle, from a centralized location. The services that I did require to include in this way was Google Analytics (opens in a new tab) for one, which I required to monitor how successful my website is doing and to get insights to where the traffic was coming from. Another service is Google AdWords (opens in a new tab), which helps with generating more leads to my website with Google-driven ads and targeted keywords.
There is still a lot I wish to do in order to optimize my website, boost its SEO quality and further improve its search engine index status. A lot has been done so far to make the website a success, so I want to continue next with building up my Social Media marketing and find ways to generate more leads to my website that will generate more business and hopefully great clients.
Corrections and updates
Added in 2026. The article above is unchanged; these are the places where it was wrong at the time, or has since been overtaken.
Two of the products I named had already been renamed when I wrote this. Google Webmaster Tools became Google Search Console (opens in a new tab) in May 2015, three years before this piece. And Google AdWords became Google Ads (opens in a new tab) on 24 July 2018, about seven weeks before I published an article calling it AdWords. Both links in the text above point at addresses that now redirect. It is a small thing, but it is the kind of small thing that tells a reader how closely the writer was watching.
Recommending 000webhost was a worse call than I knew. In March 2015 it was breached, and roughly 13.5 million account records (names, email addresses and passwords held in plain text) were taken and later offered for sale. The intrusion went unnoticed for about five months and was made public by the security researcher Troy Hunt, who wrote up both the breach and the company’s handling of it (opens in a new tab). The reported entry point was an exploit in an outdated version of PHP. I recommended the service three years after that happened, on the strength of it being free and supporting PHP, which is exactly the reasoning that gets people hurt. Storing passwords in plain text is not a lapse in judgement. It is the absence of any.
The LazyLoad script is no longer needed. Browsers do this natively now: loading="lazy" on an
<img> tells the browser to defer the image until it is close to the viewport, with
no JavaScript at all (opens in a new tab).
A dependency I was pleased to have added has become a single attribute.
PageSpeed Insights no longer means what it meant here. It is now built on Lighthouse, and the numbers that actually matter are the Core Web Vitals (loading, interactivity and visual stability), which Google announced as ranking signals in 2020 (opens in a new tab) and rolled into search ranking in 2021. Chasing a single composite score, which is what I was doing, was already the wrong instinct; it just was not measurable yet.
Loading fonts from Google’s CDN turned out to have a legal cost. This site pulled its typefaces
from fonts.googleapis.com, which sends every visitor’s IP address to Google as a side effect of
rendering the page. In January 2022 a Munich court ruled that doing so without consent breached the
GDPR and awarded the complainant damages, on the reasoning that the site could simply have
hosted the font files itself (opens in a new tab)
(LG München I, Az. 3 O 17493/20). The site you are reading now serves every typeface from its own
domain, and that is why.
The one call that held up was Cloudflare. Eight years on, this site is still behind it. Of everything in this article, the tool I described in the vaguest terms is the only choice I did not have to undo.