Nothing concentrates the mind like an Azure invoice that is three times what you were expecting. I have seen it happen again and again. A small business moves to the cloud because it is supposed to be cheaper, simpler and more flexible. Six months later the monthly bill has quietly climbed from two hundred pounds to two thousand and nobody is quite sure why.
Azure cost optimisation is not a one off project. It is a habit. Most of the overspend I find when I look at a client's subscription is not one big expensive mistake. It is forty small ones that nobody noticed.
This post is the list of things I check first. If you are running anything meaningful on Azure and you are not doing these things, you are almost certainly paying more than you need to.
Start with visibility before you start cutting
The worst way to reduce your Azure bill is to log in, panic, and start deleting resources. I have watched founders do this. They kill something that turns out to be load bearing, and spend the next three days rebuilding it while apologising to their customers.
Before you change anything, get proper visibility. Turn on Azure Cost Management and Billing. Tag every single resource with the project and environment it belongs to. If you cannot tell at a glance what is production, what is staging and what is an old experiment, you have no chance of knowing what is safe to delete.
Most subscriptions I inherit have zero tagging. Fixing that takes half a day and saves a fortune over a year.
The three biggest wasters
After the first tidy up, three categories of spend almost always dominate. Fix these before anything else.
Oversized VMs and App Service plans
This is the single most common mistake. Someone spun up a Standard_D4s_v3 for a staging environment three years ago. The app has never used more than ten percent of it. It is now quietly costing you a hundred and fifty pounds a month.
Azure Advisor will literally tell you this for free. Open the advisor blade, click on cost, and follow the recommendations. Right sizing a handful of virtual machines usually wipes twenty to thirty percent off the bill in an afternoon.
Unused storage, disks and old backups
When you delete a VM, the disk often stays behind. When you remove an app, the storage account often stays behind. Old backup vaults, orphaned managed disks, snapshots that should have been rotated off six months ago. All of it is being billed every hour.
Sort storage accounts by creation date. Anything older than a year that nobody can explain, flag it and work out what owns it. If the answer is nothing, it goes.
Log Analytics and Application Insights on the default plan
The default ingestion plan for Log Analytics is not cheap. If you are logging verbose telemetry from a busy app, this can quietly become the largest single line on your bill. Worse, because it sits under diagnostics and monitoring, nobody looks at it.
Cap your daily ingestion. Set retention to the shortest period that makes sense for you. Filter out noisy verbose logs at the source rather than ingesting them and regretting it. For most small businesses, the commitment tier pricing is significantly cheaper than pay as you go once you are over a few gigabytes a day.
The habits that keep costs sane
Once you have tidied up, Azure costs creep back in unless you build some habits around them.
Budget alerts on every subscription
Every subscription should have budget alerts configured. Not one alert at ninety percent. Several alerts at fifty, seventy five, ninety and one hundred percent. Route them to an email that someone actually reads, not to a shared inbox that nobody checks.
This is fifteen minutes of setup that will catch most runaway costs before they become disasters. I do not know why so few small businesses bother.
A monthly cost review in the diary
Put thirty minutes in your calendar on the first Monday of each month. Open Cost Management. Look at the top ten services by spend. Ask yourself if each one is still in use and still sized right.
This is boring. It is also the single cheapest insurance policy you will ever take out against runaway bills. I have written about a similar monthly habit in my post on SaaS metrics that matter when you are bootstrapped. The principle is the same. What you do not measure, you cannot control.
Reservations for anything that runs all year
If a VM, SQL database or App Service plan has been running twenty four seven for a year and you cannot see a reason to turn it off, buy a reservation. One year reservations typically save you around thirty percent over pay as you go. Three year reservations save more. The break even on a one year reservation is usually around seven months, so the downside is small.
Small businesses under use reservations because they feel like a commitment. They are, but for the stuff that genuinely runs all year anyway, the savings are basically free money.
The mistakes that bite later
Beyond the headline wasters, there are three smaller mistakes that keep costing businesses money long after they have forgotten about them.
Leaving dev and test environments running overnight and at weekends. These should auto shut down outside working hours. Azure has a button for this. Click it.
Public IP addresses attached to resources that no longer exist. Each one costs a few pounds a month. You can have fifty of them and not notice until you look.
Premium tiers picked because the dropdown defaulted to them. Service Bus Premium, Key Vault Premium, Redis Premium. Half the time the standard tier was fine. Read each tier page honestly before you click deploy.
When moving off Azure is the right call
I am a big fan of Azure for businesses that already live inside the Microsoft stack. It is not always the cheapest answer. If you are running a standard web app and a database and nothing else, there are other providers where the same workload will cost a quarter. If your workload does not need the Microsoft integrations, you probably do not need to be on Azure.
On the other hand, if you are running Dynamics 365, Microsoft 365, Entra ID and the rest of the stack, the value of keeping everything in one place and one bill is real. I have written before about how this kind of thinking affects decisions on build versus buy and the same logic applies to choice of cloud. Pick what is right for your business, not what was cheapest on a spreadsheet three years ago.
Get a second pair of eyes
If your bill has got away from you and you do not know where to start, get a fresh set of eyes on the subscription. Someone who has seen other Azure environments will spot the waste in an hour that you might miss in a week. This is the kind of thing I do through my Dynamics 365 and Azure consulting work, and the cost is almost always a fraction of a single month of the bill you are trying to reduce.
The cloud was supposed to make things cheaper. It can. It just requires someone to pay attention. Most of the time that someone does not exist at a small business, and that is how bills quietly triple. Start with visibility, fix the three big wasters, and build in the monthly habits. Do those three things and your Azure bill will behave itself.


