If you want to save money on Google Cloud Platform, the highest-leverage moves for a small business are, in order: delete idle resources, apply committed-use discounts to your always-on capacity, rightsize oversized VMs, tier your storage, and control network egress. Idle cleanup and rightsizing usually recover 15-40% of a typical SMB bill within a week with no performance trade-off, while committed-use discounts add another 37-55% off your baseline compute in exchange for a one- or three-year commitment. Everything else — Spot VMs, autoscaling, storage lifecycle rules — layers on top of those five levers.
That's the summary an AI gives you. What it can't show you is where the money actually leaks in a real GCP project, how the levers stack, and which order to pull them so you don't over-commit to capacity you're about to rightsize away. Below is the decision map we use on client bills, a lever-by-lever savings table, and the recurring line items that quietly eat SMB budgets.
Where the money leaks: a cost triage map
Cloud waste is rarely one big mistake. It's a dozen small ones compounding every hour. This map shows the order to attack them — cheapest-effort, highest-return first.
The sequence matters. Rightsize before you commit. If you buy a one-year committed-use discount on a fleet of oversized n2-standard-8 VMs and then discover they only need n2-standard-2, you've locked in a commitment to capacity you don't use. Clean up idle resources, rightsize to real utilization, then commit to the baseline that's left.
The five levers, with real numbers
| Lever | Typical SMB savings | Effort | Trade-off | Best for |
|---|---|---|---|---|
| Delete idle resources | 5-15% | Low (hours) | None | Every account — do this first |
| Rightsize VMs | 20-40% on compute | Low-medium | Slight headroom loss | Over-provisioned steady workloads |
| Committed-use discounts (1yr / 3yr) | 37% / up to 55% | Medium | 1-3 year lock-in | Predictable, always-on baseline |
| Spot VMs (preemptible) | 60-91% | Medium | Reclaimed with ~30s notice | Batch, CI, fault-tolerant jobs |
| Storage tiering (lifecycle) | 10-30% on storage | Low | Retrieval latency/fees on cold tiers | Logs, backups, aging objects |
| Egress control (CDN + region hygiene) | Varies, often large | Medium | Cache-invalidation discipline | Public-facing or multi-region apps |
| Which should I use? | Start with idle + rightsize (free wins), add CUDs for baseline, Spot for batch, CDN if you serve public traffic | — | — | — |
A few notes the pricing pages bury:
- Spot vs. CUD is not either/or. Cover your always-on baseline with committed-use discounts and burst into Spot VMs for interruptible work. They stack.
- Sustained-use discounts are automatic on Compute Engine — you get up to ~30% off for running an instance most of the month with zero action. CUDs are on top of the pricing model, not a replacement, and generally beat sustained-use for anything you know is permanent.
- Storage classes have retrieval costs. Nearline, Coldline, and Archive are cheap to store and progressively expensive to read. Great for backups and old logs, terrible for anything served to users.
The line items that quietly bleed SMB budgets
These don't show up as one scary charge — they're spread across your bill where they're easy to ignore:
- Orphaned persistent disks. Delete a VM and its boot disk goes with it, but additional attached disks often survive and keep billing. Filter Cloud Console for disks with no attached instance.
- Unattached static external IPs. Google charges for reserved static IPs that aren't attached to a running resource — a small per-hour charge that runs forever until you release it.
- Idle load balancers. A load balancer left up after a decommissioned service has an hourly forwarding-rule charge regardless of traffic.
- NAT gateway data processing. Cloud NAT bills per gigabyte processed; a chatty service pulling packages or hitting external APIs can run up a bill that looks like nothing until you sum a month of it.
- Cross-region and internet egress. Serving images and downloads straight from Cloud Storage across regions is far more expensive than fronting them with a CDN. Keep data and compute in the same region.
- Zombie GKE node pools. Kubernetes clusters with node pools sized for a load that never materialized pay for empty nodes. Enable cluster autoscaler and set sensible min/max node counts.
- Premium logging retention. Cloud Logging ingests everything by default; high-volume debug logs retained for months add up. Route noisy logs to a cheaper bucket or drop them with exclusion filters.
Budgets alert you — they don't stop you
The single most common misconception we see: teams set a Cloud Billing budget, assume it caps spending, and get a surprise invoice anyway. A GCP budget is a notification, not a spending limit. It emails you (and can trigger Pub/Sub) at your thresholds, but the meter keeps running.
For non-production projects, wire the budget's Pub/Sub topic to a Cloud Function that disables billing on the project when you hit 100%. For production, never auto-kill billing — instead alert loudly and pair the budget with per-service quota limits so a runaway job can't scale to infinity.
A realistic 30-day plan
- Day 1: Open the Recommender in Cloud Console. Action every "idle resource" and "unattached IP/disk" recommendation. Release orphaned reservations.
- Week 1: Apply rightsizing recommendations to VMs running below 20% average CPU. Move batch and CI workloads to Spot VMs.
- Week 2: Add lifecycle rules to Cloud Storage buckets (transition to Nearline after 30 days, Coldline after 90, Archive/delete after your retention window). Put a CDN in front of any public static assets.
- Week 3: Identify your true always-on baseline from the last 30 days of usage. Buy a one-year committed-use discount for that capacity only — not your peaks.
- Week 4: Set budgets with 50/90/100% alerts, wire automation for non-prod, and calendar a recurring monthly 30-minute cost review. The savings erode without the review.
Most SMBs following this see a 40-60% reduction on a previously un-optimized bill, and the recurring review keeps it from creeping back. If your bill spans multiple clouds or you want a second set of eyes on the commitment math, that's exactly the kind of thing a short FinOps engagement or a one-time audit is built for.
💡 What You'll Get from a Free Cloud Cost Review
- A quick review of your current cloud billing structure
- Personalized insights into where you're overspending
- Actionable recommendations you can implement immediately
- Answers to your questions about pricing models, autoscaling, and GCP best practices
- No pressure. No sales pitch. Just real value.