← Blog
Design 9 min read

Status Page Design: What Makes a Great Public Status Page

Status pages are a customer-facing product. Users visit them when something is wrong — stressed, in a hurry, deciding whether to wait or move on. The design choices you make have real consequences for trust.

Most status pages are an afterthought. A developer spins one up, points it at a single "Website" monitor, and never touches it again. It shows green. Users don't know where to find it. During an incident, nobody updates it.

A good status page is designed from the user's perspective: someone who is panicking slightly, checking on their phone, trying to quickly answer the question "is it just me, or is the service actually down?" Every design decision should serve that person.


The anatomy of a great status page

1. A clear current status at the top

The most important piece of information — is everything working right now? — should be visible without scrolling. A large, colored status indicator with plain English text: "All systems operational" in green, or "Partial outage" in amber, or "Major incident in progress" in red.

Bad status pages bury this. The user has to scroll past a company logo, navigation, and multiple components before they see the aggregate status. During an outage, users shouldn't have to hunt for the answer.

2. Component breakdown, not a single dot

A single "Website: operational" monitor tells users almost nothing. A well-structured status page breaks the service into meaningful components:

This specificity does two things: it helps affected users understand whether their use case is impacted, and it demonstrates that you actually know your own system. "API is degraded, dashboard is unaffected" is meaningful. "Some services are experiencing issues" is not.

3. 90-day uptime history

The row of colored bars showing uptime history over the past 90 days is one of the most important trust signals a status page can have. Here's why: a status page that only shows the current moment is easy to fake or manipulate. A 90-day history is harder to dismiss — it's a record.

A page with a few incidents in the past 90 days, each handled and resolved, is more trustworthy than a page showing a perfect green record with no history. The former demonstrates that the team monitors, responds, and communicates. The latter is suspicious.

PingBase status pages show 90-day uptime history bars by default, on all plans.

4. Real-time updates without manual refresh

During an incident, users shouldn't have to manually refresh the page to see updates. Status pages should reflect the current state automatically. This requires the page to be served from infrastructure independent of your main application — if your app is down, the status page still needs to load.

PingBase status pages are served from Cloudflare's edge network. If your origin server is down, the status page still loads in under 100ms from a CDN node near your user.

5. An incident timeline during active incidents

When something is wrong, users want to see that you know about it and are working on it. An incident timeline shows timestamped updates in reverse chronological order — the most recent at the top.

The timeline should show the progression: "Investigating → Identified → Monitoring → Resolved." Each state change should have a plain-English update describing what's happening. This is the piece of the status page that does the most work to maintain user trust during a difficult moment.


What bad status pages do wrong

Having seen a lot of status pages, a few failure patterns appear repeatedly:

The permanently green page

A status page that shows 100% uptime for months and never has a single incident is suspicious. No service is that perfect. What it usually means is that the monitoring isn't sensitive enough to catch degradation, or the page isn't being updated during incidents. Users notice this and trust it less, not more.

The stale incident

An incident was created three days ago, the last update was "Investigating," and the monitor shows green. This means someone forgot to close the incident. Users visiting the status page see an unresolved incident and don't know if the service is working or not. This is worse than no status page.

Fix: when a monitor recovers, automatically transition the incident to "Resolved" if it wasn't manually closed. PingBase does this.

Ads on the status page

Some monitoring tools (UptimeRobot's free plan, notably) show ads from competitor services on your status page. During an incident, your users are already stressed — serving them ads for your competitors at that moment is a trust-destroying experience. This is the single thing that drove most PingBase users away from UptimeRobot.

PingBase never shows ads on any status page, on any plan.

Slow to load during incidents

Status pages need to be fast precisely when everything else is slow. If your status page is hosted on the same servers as your main application, and your servers are under load (which is often what causes the incident), your status page may also be slow or unavailable.

The solution is to host the status page on infrastructure that's independent of your main stack. A CDN-served static page, or a page on a completely separate hosting provider, ensures that users can always reach it.

No mobile optimization

When something is broken, users often check the status page on their phone — walking around, away from their desk, in the middle of something else. A status page with tiny text, horizontal scrolling tables, and buttons that are hard to tap is a failure of basic product thinking.

PingBase status pages are fully responsive — readable on a 375px screen with no horizontal scroll.


The custom domain question

Your status page should live on your domain: status.yourcompany.com, not yourcompany.somethirdparty.io.

The reasons are practical and trust-related:

PingBase supports custom domains on Pro ($9/month). Setup is one CNAME record — takes about 2 minutes. SSL is handled automatically.


Design checklist

When evaluating your status page, run through this list:

If you're checking your current status page against this list and finding gaps, most of them are fixable in under an hour. The custom domain and component breakdown are the two highest-impact changes — do those first.


What PingBase status pages include

PingBase status pages are built around this design checklist:

The free tier includes a full status page at pingba.se/status/your-slug. Upgrade to Pro for a custom domain.

See the live demo status page to see what it looks like in practice.

Build a status page that users actually trust

PingBase gives you a fast, honest, ad-free status page. Free to start — custom domain on Pro for $9/mo.

Get started free →

Related