Table of Contents
When your website goes down, two things happen simultaneously: your users start experiencing problems, and your support inbox starts filling up. Most businesses handle this reactively — scrambling to fix the issue while customer-facing teams field a flood of identical tickets asking "is the site down?"
A public status page breaks this cycle. It gives your users a single place to check, eliminates duplicate support tickets, and — when used well — turns an outage into a demonstration of how seriously you take reliability. This guide covers everything you need to set one up properly.
What is a Status Page?
A status page is a public-facing webpage that shows the current operational status of your product, broken down by component. Users can visit it at any time to see whether known issues exist, read incident updates, and view historical uptime data.
The most basic status pages show a single "All systems operational" message. The best ones show individual component status, live incident timelines with frequent updates, subscriber notifications via email or SMS, and 90-day rolling uptime history.
Status pages are not just for big companies. Atlassian, Stripe, and GitHub have famous status pages — but a bootstrapped SaaS with 500 paying customers benefits just as much. Any product with paying users who depend on your uptime should have one.
Why Every Business Needs a Status Page
Here is what typically happens during an outage without a status page: a user hits an error, opens a support ticket, waits for a response. Meanwhile, 50 other users do the same. Your support team spends the duration of the outage sending identical replies instead of helping fix the issue. When the incident ends, nobody knows about it until they try again.
With a status page, the same user hits an error, checks your status page, sees an acknowledged incident with a timeline, subscribes for updates, and goes about their day. The number of support tickets during a typical outage drops by 25–60% simply because users have a place to self-serve.
- Reduces support ticket volume during incidents — users check the status page instead of emailing.
- Demonstrates proactive transparency — communicating problems before users report them builds trust.
- Passive sales tool — potential customers researching your product see historical uptime data and incident handling.
- SLA evidence — if you promise 99.9% uptime to enterprise customers, a status page with historical data is proof.
- Reduces internal chaos — your team has one place to post updates, preventing Slack-based rumors and escalations.
- SEO benefit — a well-maintained status page at status.yourproduct.com builds domain authority for your brand.
What to Include on Your Status Page
A good status page has five elements:
- 1Component-level status — break your product into the pieces users care about: Website, Dashboard, API, Payments, Email Delivery, Mobile App. Show each separately. "All systems operational" is useless if payments are down but the homepage loads.
- 2Current incident banner — if an incident is in progress, show it prominently at the top with the affected components, the start time, and the current status (Investigating / Identified / Monitoring / Resolved).
- 3Incident timeline — each incident should have a chronological log of updates with timestamps. Users want to know you are actively working on it, not radio-silent.
- 4Historical uptime — a 30-day or 90-day rolling uptime chart per component. This turns your status page from a reactive tool into a proactive trust signal for every visitor.
- 5Subscribe option — let users opt into email or SMS notifications for incidents and updates. Subscribers are informed automatically; they do not need to keep refreshing the page.
Start with 3–5 components rather than trying to model every service. Common starting set: Website, API, Dashboard, Payments. You can always add more as your product grows.
The Infrastructure Rule: Host It Separately
This is the most commonly violated rule of status pages: your status page must run on completely separate infrastructure from your main application. If your server goes down and takes your status page with it, the only place users could check is the one place that is also broken.
- Use a subdomain like status.yourproduct.com — not yourproduct.com/status. A path-based URL shares your server's fate; a subdomain can point to a completely separate host.
- Use a dedicated status page service — Uptime Assure, Better Stack, Statuspage.io — these run independently of your infrastructure by design.
- If you self-host a status page, deploy it on a different cloud provider or region than your main app.
- Verify independence: deliberately take down your test environment and confirm status.yourproduct.com still loads.
During the 2021 Facebook outage, the engineering team could not access internal tools to fix the issue because those tools also ran on the affected infrastructure. Your status page has the same risk if it is not hosted separately.
How to Communicate During an Incident
How you communicate during an outage matters as much as how quickly you fix it. The cardinal rule: post an update before you have a fix. An acknowledgment posted within 5 minutes of an incident starting — even if it just says "We are aware of an issue and investigating" — is worth more than silence for 30 minutes followed by a perfect explanation.
- Investigating — posted within 5 minutes. Acknowledge the issue exists and that the team is looking at it. Do not speculate on cause.
- Identified — once you know what caused the incident. Describe the cause simply, state what you are doing to fix it, and give an estimated resolution time if you can.
- Monitoring — the fix is deployed and you are watching to confirm it holds. Include what was done.
- Resolved — the incident is over. Include total duration, what happened, and a brief note on what will be done to prevent recurrence.
Update frequency matters. During an active incident, post an update every 15–30 minutes even if you have nothing new to report. "We are still investigating, no new findings to share yet" is better than silence. Users interpret silence as either incompetence or abandonment.
Incident Update Templates
Copy and adapt these for your status page updates:
- Investigating: "We are aware of an issue affecting [Component]. Users may experience [symptom]. Our team is actively investigating. We will provide an update in 30 minutes."
- Identified: "We have identified the cause of this incident: [brief technical description]. We are implementing a fix now and expect resolution by [time]. Affected: [components]."
- Monitoring: "A fix has been deployed. We are monitoring the situation to confirm full recovery. Users should no longer experience [symptom]. We will close this incident after 30 minutes of stable metrics."
- Resolved: "This incident has been resolved. [Component] is fully operational. Total duration: [X] minutes. Root cause: [1-sentence summary]. We will publish a post-mortem within 48 hours."
Avoid vague language like "some users may be affected" if you know the impact is broad. Users can tell when you are downplaying an incident, and it damages trust more than honest disclosure.
Examples of Great Status Pages
These are widely cited as models worth emulating:
- Stripe (status.stripe.com) — granular component breakdown, detailed incident timelines, clear writing. Sets the standard for fintech reliability communication.
- GitHub (githubstatus.com) — component-level status with a full incident history going back years. Users can see GitHub's track record before committing to the platform.
- Notion (status.notion.so) — plain-English incident descriptions that non-technical users can understand. Avoids jargon.
- Cloudflare (cloudflarestatus.com) — real-time graphs of metrics alongside status indicators. Shows actual data, not just labels.
- Vercel (vercel-status.com) — fast, minimal, always up. A good example of a status page that prioritises availability over aesthetics.
How to Set Up Your Status Page
The fastest path to a production-ready status page:
- 1Sign up for a monitoring tool that includes a status page — Uptime Assure includes one on the free plan, as does Better Stack and UptimeRobot.
- 2Add your monitors first — you need HTTP monitors running before the status page can reflect live status.
- 3Create your components — map your monitors to user-visible components. "API Monitor" becomes "API" on the status page; "Checkout Page Monitor" becomes "Payments".
- 4Configure your subdomain — point status.yourproduct.com to your status page provider via a CNAME record. This takes 5 minutes and makes the page look like it belongs to you.
- 5Set your brand — add your logo, choose colors that match your product. A status page that looks like your product is more trustworthy than a generic template.
- 6Enable subscriber notifications — turn on email (and SMS if available) so users can subscribe for updates without refreshing.
- 7Add a link everywhere — footer of your main site, your login page, your error pages, your support email signature, your Slack bot replies.
- 8Test it — create a maintenance window or temporarily take a monitor down and confirm the status page updates within your expected window.
Add a link to your status page in every automated system email you send — transactional emails, billing receipts, onboarding sequences. When an outage happens, that link is already in every customer's inbox history.
Uptime Assure Team
Monitoring experts · Based in India
Written by the team behind Uptime Assure — developers and reliability engineers who build and use uptime monitoring tools every day. We write about website reliability, performance, and the practical side of keeping services online.
About us