What does a broken payment page cost when nobody notices?

Checked on

When your checkout or signup page breaks, you lose every sale or signup from the people who reach it, you keep paying for ad clicks that land there, and you can end up paying refund and dispute fees and answering support emails. The size of the bill depends mostly on one thing: how long the page stays broken before you find out. Check the pages your customers use after every publish, and have something check them on a schedule.

Why this happens with apps built with AI tools

Your homepage can load fine while the page where people pay or sign up is broken. An uptime monitor, a service that checks every few minutes that your homepage answers, won't notice, because it usually only looks at the homepage.

If you build with Lovable, Bolt, Replit, Cursor or v0, each request to the AI can change more than you asked for. A change to the header can also move a page to a new address or change a setting the app needs. The preview (the copy you see while you build) can look fine while the live site (the copy your customers use) is broken.

Checkout and signup also rely on other services, such as Stripe for payments or Supabase for accounts. Any of them can stop working with your app while the homepage keeps loading.

Lost sales and signups

Everyone who reaches a broken checkout and can't pay is a lost sale, unless they come back later.

Shoppers already leave when a site misbehaves. In Baymard Institute's survey of US online shoppers, once people who were "just browsing" are left out, 17% said they had abandoned an order because the website had errors or crashed (Baymard Institute, page last updated September 2025). That figure covers errors in general, not only a fully broken checkout. When the checkout doesn't load or shows no way to pay, nobody who reaches it can buy.

An example with made-up numbers (put in your own): your checkout page gets 60 visitors a day, 1 in 20 of them buys, and the average order is $40. That's 3 orders and $120 a day. If checkout breaks on Friday evening and you notice on Monday morning, about 2.5 days have passed: 7 or 8 orders, about $300, that you didn't take.

The same sum works for a signup page:

Lost revenue ≈ hours broken × visitors to the page per hour × share who complete it × what each one is worth to you

For a signup page, "what each one is worth" is the share of new signups who go on to pay, times what they pay. A broken signup page doesn't cost one month of revenue. It costs every month those customers would have stayed.

Ad money spent on a broken page

If you run Google search ads, you usually pay for each click, not for each sale. Google's own definition of cost-per-click says you "pay for each click on your ads" (Google Ads Help). While the page your ads point to is broken, those clicks still cost money.

Google does check the pages ads lead to. Its rules say an ad can be turned off if the page it leads to doesn't work properly or shows Google's automated checker an error instead of the page (Google Advertising Policies Help). That is Google's check, on Google's timetable. It isn't an alert to you that your checkout lost its Pay button.

An example with made-up numbers: 10 paid clicks an hour at $1.50 each, sent for 12 hours to a signup page that doesn't load, is $180 spent with no signups from it.

Refund and dispute fees

Sometimes the break is partial. The payment goes through, but the customer never gets what they paid for, such as an account upgrade, an order confirmation or a download. Or they retry a checkout that seems stuck and pay twice.

Those customers ask you for a refund, or they ask their bank to reverse the payment. That second route is called a dispute or chargeback. Both cost more than the sale itself. The figures below are from Stripe, a popular payment service:

  • Refunds: Stripe keeps its processing fee (the fee it charged to handle the original payment) when you refund (Stripe Docs: Refunds). Its US pricing page lists 2.9% + 30¢ per successful domestic card payment (Stripe Pricing). So if you refund a $40 order, you give back the $40 and also lose the $1.46 fee.
  • Disputes: Stripe's US pricing page lists a fee of $15.00 for each dispute you receive (Stripe Pricing). Stripe takes the disputed amount plus that fee from your Stripe balance (Stripe Docs: How disputes work).

Fees vary by country, so check the figures for yours.

Support time

Each customer who does write in becomes a support email. You read it, test the page, reply, maybe refund, and reply again once it's fixed. For a solo founder, that's time taken from building.

Customers who don't come back

Some people who hit a broken page try again later. Some don't, and you won't see them in any report, because they never became customers. We haven't found a reliable public figure for this for small apps, so we don't put a number on it. It's still part of the cost.

What to check

In every example above, the biggest number is how long the page stays broken before you know. You can't stop every publish from breaking something, but you can find out sooner:

  1. After every publish, open your live signup, login and checkout pages yourself in a private browser window, not only the preview.
  2. On checkout, check that the payment form or Pay button appears. Don't pay.
  3. If you run ads, open the exact page each ad points to.
  4. Have something check these pages on a schedule, so you don't depend on remembering.

How to find out sooner next time

Heedza opens your live landing, signup, login and checkout pages in a real browser on a schedule: daily on the free plan, or every 60, 30 or 15 minutes on paid plans. It checks that each page loads and shows its form or Pay button. Every plan also checks that your homepage is up (every 5 minutes on Free, every minute on Solo and Starter, every 30 seconds on Pro and Business), and when a new version of your homepage goes live, a full page check runs soon after.

If a page breaks, Heedza sends you a screenshot and a fix prompt, a ready-written request you paste into the AI tool you built with. It never signs in, fills in a form or pays. Checkout checks stop as soon as the payment form or Pay button is visible.

That also means it can't see problems that happen after a real payment, such as Stripe failing to tell your app that a payment went through. Those show up in your Stripe dashboard.

Let Heedza check this for you. Heedza’s payment page check opens your live payment page on a schedule and tells you if the Pay button disappears. It never pays. It never logs in or fills in forms, so it can’t see errors that only show after that.

Made with Lovable, Bolt, Replit, Cursor or v0? Free for 1 site: start free or see prices.

More questions

Does an uptime monitor tell me when checkout is broken?

Usually not. An uptime monitor checks that your homepage answers. Checkout is a different page and often depends on other services such as Stripe, so it can break while the homepage still loads.

Do I get Stripe's fee back if I refund a customer?

No. Stripe says its processing fees from the original payment aren't returned when you refund (Stripe Docs: Refunds). At Stripe's US rate of 2.9% + 30¢, that's $1.46 on a $40 order.

Will Google stop my ads if my page is broken?

It can. Google's rules say ads can be turned off when the page they lead to doesn't work or shows an error (Google Advertising Policies Help). But that happens on Google's timetable, and you still pay for clicks until then.

Where this comes from

All dollar amounts in the examples are made-up example numbers, not data.