Skip to main content

Website Maintenance: What Breaks, and What It Costs to Fix

What breaks on a small business website, why the dashboard rarely tells you, and what it costs to fix. Website maintenance in Hamilton, explained.

Back9 Digital branded article graphic titled Website Maintenance: What Breaks, and What It Costs to Fix, in the Website Maintenance category

Website maintenance in Hamilton covers four recurring jobs: applying security and platform updates, watching uptime and page speed, keeping backups you have actually restored from, and verifying that what search engines read still renders correctly. Almost everything that breaks on a small business site breaks quietly: no error page, no warning email, nothing in the dashboard. The repair bill grows with how long the fault goes unnoticed.

We build and look after WordPress sites for businesses across Hamilton and the surrounding towns, and the maintenance conversation is rarely about the thing people expect. Owners picture a site going down. In practice a site that goes down gets fixed the same afternoon, because somebody notices. The expensive failures are the ones that leave the website looking completely normal while it quietly stops doing part of its job. Here is what actually breaks, how to find it, and what the fix is worth.

What actually breaks on a small business website?

Six things, in roughly descending order of how often we find them. Each one has a different warning signal, and the useful column below is the middle one: how loudly the failure announces itself. The quiet rows are the ones that cost money.

What breaks How it announces itself What it costs to leave
Outdated core, plugins or theme An update badge nobody clicks Known public vulnerabilities, and eventually a version gap too wide to update through safely
Contact and quote forms Nothing at all. The form still submits and shows a thank-you message Every enquiry sent during the outage. This is the single most expensive silent failure we see
Structured data Nothing. The SEO plugin reports it as present and configured Rich results and AI citations the page should be eligible for
Expired certificates, licences and integrations A browser warning, or a payment or booking tool that silently stops syncing Lost trust on the day it expires, or orders that never reach your system
Page speed regression after a plugin change Slowly, through bounce rate, weeks later Mobile visitors who leave before the page paints
Backups Nothing, until the day you need one Everything. An untested backup is not a backup

Takeaway: test your contact form from an outside email address once a month. It takes two minutes and it is the highest-value maintenance task a business owner can do without a developer.

Why does your dashboard say everything is fine?

Because a dashboard reports configuration, not output. It tells you what it was told to do, not what the visitor or the crawler actually received. That gap is where the whole category of silent breakage lives, and structured data is the clearest example of it.

A failure mode we routinely check for: structured data that has been saved in the wrong storage format renders into the live page as a node carrying no @type at all. Search engines read the page, find a shape they cannot classify, and discard it. The markup is physically present in the HTML and worth exactly nothing.

What makes this one nasty is that the plugin interface is reassuring. Open the SEO panel and the schema is listed, filled in and apparently active. There is no warning, no error, and no report anywhere in the admin area. The only way to catch it is to read the JSON-LD on the rendered page, which is not something any dashboard does on your behalf.

The consequence is not academic. Valid markup is what makes a page eligible for rich results, and it is what gives an AI assistant something concrete to quote when somebody asks for a service in your city. A page with an unclassifiable node is competing on prose alone against pages that state their facts in machine-readable fields.

Takeaway: never trust the plugin interface. Validate the rendered page.

How do you check whether your structured data is actually rendering?

  1. Open one of your main service pages in a browser and view the page source.
  2. Search the source for ld+json to find the structured data blocks.
  3. Read each block and confirm every node has an "@type" value, such as LocalBusiness, Service, FAQPage or BlogPosting.
  4. Paste the same URL into Google’s Rich Results Test and check that it reports the item types you expect, not merely that the page is valid.
  5. If you find a node with no @type, the problem is how the markup was stored rather than what it says, and re-saving it in the plugin will not fix it.

Which other failures stay completely silent?

Three more failures stay completely silent: a firewall blocking the AI crawlers you want, image delivery that works on the origin but not behind a CDN, and stacked optimisation plugins that degrade your images. All of them were measured rather than theoretical, and all of them are invisible from the admin area:

  • Your firewall blocking the crawlers you want. We tested AI crawlers directly against a Cloudflare-protected site. GPTBot, OAI-SearchBot, ChatGPT-User, PerplexityBot and ClaudeBot all returned 403 Forbidden, while Googlebot and Bingbot returned 200. The cause was Cloudflare’s block-AI-bots setting, which is on by default and which most site owners have never opened. You cannot be cited by assistants that are not allowed to read you, and almost nobody checks. A better configuration allows the search and agent crawler categories while keeping training crawlers blocked if you prefer.
  • Image delivery that works on the origin and not in production. Rewriting requests in .htaccess so the server hands modern image formats to browsers that accept them is textbook configuration, and it delivers nothing behind a CDN. Cloudflare caches by URL and does not vary on the Accept header, so whichever format lands in the cache first is served to everybody afterwards. The fix is to rewrite the image URLs in the HTML so each format has its own address.
  • Stacked optimisation plugins. Running two image optimisation plugins in sequence visibly degraded a logo for almost no additional saving, because the format conversion had already done the work. More tools is not more optimisation.

The common thread is that each of these looks correct from inside WordPress. Checking them means looking at response headers, at cached responses and at rendered HTML, which is the part of technical SEO services in Hamilton that overlaps most with ordinary maintenance.

What does website maintenance cost, and what does skipping it cost?

Maintenance is quoted against scope, because a five-page brochure site and a store processing payments are not the same liability. Skipping it costs more: after years of deferral, the version gap, dead plugins and abandoned theme stop being patchable and the honest recommendation is a rebuild, from $1,499. That is the real price, a build, not a repair.

Package Starting price When deferred maintenance lands here
Starter from $1,499 A small site whose theme or page builder is no longer supported and cannot be updated in place
Growth from $2,999 Several services or service areas, where years of plugin accretion need unpicking alongside the technical SEO work
Commerce from $4,999 A store, where an unpatched payment path is a genuine liability rather than a cosmetic problem

Those are the figures for our web design in Hamilton, and they are deliberately in this article because a rebuild quote is what most maintenance conversations eventually turn into. Compared against that, the ongoing work is the cheaper side of the choice by a wide margin.

The platform you are on changes the split. A hosted builder absorbs updates into its subscription and takes the decisions out of your hands; a self-hosted WordPress site gives you control of the markup, the data and the hosting, and hands you the update schedule as well. We set that trade-off out in full when comparing WordPress and Wix for small business sites.

What should a maintenance routine actually include?

A maintenance routine should include a form test, a tested backup restore, staged updates, speed checks after plugin changes, a JSON-LD check, crawler access checks and a review of anything expiring. The sequence matters more than the frequency, so do the cheap verification steps first, since they are the ones that catch silent failures:

  1. Submit your own contact form from an address outside your domain and confirm the message arrives in the inbox a human reads.
  2. Take a backup and restore it somewhere, even once, so you know the restore path works before you need it under pressure.
  3. Apply updates on a staging copy, then on the live site, rather than clicking update-all on a Friday afternoon.
  4. Re-check page speed after every plugin change, because performance regressions arrive attached to something that looked unrelated. Our walkthrough of the Core Web Vitals checks worth running first covers which numbers to watch and in what order.
  5. Read the rendered JSON-LD on your key pages using the steps above.
  6. Confirm crawler access at the firewall and CDN layer, not just in robots.txt.
  7. Review certificates, licences and integrations for anything expiring in the next quarter.

Takeaway: maintenance is mostly verification. Updating is the easy part, and the part that tools already automate; confirming that the site still does what it is supposed to do is the part that needs a person.

Frequently asked questions about website maintenance in Hamilton

How often does a small business website need maintenance?

Monthly for the verification tasks and updates, quarterly for a deeper review of speed, licences and integrations. The monthly rhythm matters more than the depth, because the failures that cost real money are the quiet ones, and a quiet failure found in three weeks is a nuisance while the same fault found in nine months has been losing enquiries the whole time.

Can I just let WordPress update itself automatically?

Partly. Automatic updates for security releases are sensible and should stay on. Automatic major updates for plugins and themes on a live site are a different matter, because the update itself rarely fails loudly; it changes something else on the page instead. Let the security patches apply themselves, and schedule the rest somewhere you can check the result.

What is the first thing to check on a site nobody has maintained in years?

Whether the contact form still delivers. After that, whether a backup exists and can actually be restored. Only then start on the update queue, because applying a long backlog of updates to a site with no working recovery path is how a maintenance job turns into an emergency.

What should you do this week?

This week, send yourself a test enquiry through your own website from an email address that is not on your own domain. If it arrives, spend five minutes on the JSON-LD check. Those two tasks cover the two failures most likely to be live on your site right now, and neither shows up in any dashboard.

If the answer turns out to be that the site is too far behind to maintain sensibly, that is worth knowing before the busy season rather than during it. The same applies if visitors are leaving before the page loads, which we broke down in detail in why slow websites lose leads.