Day one: a static site with real 404s

Heliocite is a site about SEO that is also its own case study. This blog will follow every change made to it and what each one does for search visibility. Here is where it starts.

The setup

The site went up on 27 October 2026. It is hosted on Firebase Hosting, with the Firebase command-line tools pinned as a project dependency. A GitHub workflow deploys the site whenever changes land on the main branch, and every pull request gets its own preview link first.

Why plain static HTML

Every page on Heliocite is a complete HTML file. There is no framework, no build step and no JavaScript that has to run before content appears. For SEO that matters:

  • Search engines get the full content on the first request, with nothing left to render.
  • Pages are small and fast, which helps Core Web Vitals.
  • There are very few moving parts, so changes in this blog can be tied to their effects more cleanly.

The first fix: real 404s

The Firebase setup wizard offers to configure a site as a single-page app. That adds a rule sending every URL to index.html. For an app that routes in the browser it makes sense. For a site of separate pages it means any made-up URL, like /this-does-not-exist, returns the homepage with a 200 OK status.

Search engines call that a soft 404: a page that says it exists but doesn't. Soft 404s waste crawl time, can let junk URLs into the index as copies of the homepage, and show up as errors in Google Search Console.

The fix was to remove the rule and add a 404.html page. Firebase Hosting serves that page automatically, with a proper 404 Not Found status, for any URL that doesn't match a file. After deploying, a quick check confirmed it: the homepage answers 200, a made-up URL answers 404.

A design that stays out of the way

The look is deliberately quiet: a warm white background, one typeface (Figtree, served from this site as a single 20 KB file), one amber accent, and no scripts. Fewer files to load means faster pages.

What's next

The site isn't connected to Google Search Console yet, and it has no robots.txt or sitemap. Those come next, along with a first baseline of what search engines can see. Future posts will report what changes, including when nothing does.

← All posts