Docs Status Pages

Status pages

A status page gives your customers one address to check when something looks wrong, so they read your answer instead of emailing you for it. You choose the address, you choose which of your sites sit behind each public label and you publish incidents and maintenance windows on it yourself.

Pages are managed from Dashboard → Status pages. How many you can have depends on your plan.

Plan Status pages Private pages
Free Not included No
Solo 1 No
Starter 1 No
Pro 3 Yes
Agency* 10 Yes

* Agency is waitlist-only and not yet available for self-serve signup.

Every page can carry up to 10 components, on every plan that includes pages at all. The component ceiling does not change with your plan, so adding a component during an incident never turns into a billing decision.

1 - Create a status page

Solo+

  1. Go to Dashboard → Status pages and click Create status page.
  2. Enter a title. This is the heading your readers see, up to 80 characters.
  3. Enter an address. The form shows you the full URL your address produces as you type it and refuses a malformed one before you submit.
  4. Click Create status page.

A new page is a draft. Nothing is served at its address until you publish it, so you can add components and settle on an address without anybody seeing a half-built page.

Address rules

  • Lowercase letters, numbers and hyphens only.
  • Start and end with a letter or a number.
  • Up to 63 characters.
  • A few addresses are reserved and cannot be used. If the one you picked is reserved the form refuses it and you pick another.
  • The page is served at https://status.guardr.io/your-address.

The Generate button next to the address box fills it with a random value, for when you want an address nobody can guess. If you have already typed something, Generate asks before replacing it.

2 - Add components

A component is one public label, such as Website, API or Checkout, covering one or more of the sites you already monitor. Readers see the label and its state. They never see which domains sit behind it.

Open the components and branding disclosure on a page card to manage them. The link is labelled with the page's component count, for example 2 components and branding - manage.

  1. Type a label in the box at the bottom of the disclosure and click Add component.
  2. Under Sites covered, tick the sites this component stands for. The heading counts your selection against your whole site list, for example Sites covered (2 of 19 selected). A filter box narrows a long list.
  3. Selections save as you tick them. There is no separate save step for site membership.

Use rename and delete on a component to change or remove it.

Ceiling Limit
Components per status page10
Sites per component50

3 - Publish the page

Publishing is a deliberate step with its own confirmation, not a toggle you can hit by accident. Click Publish on the page card, read what the confirmation tells you, then click Publish page.

You need at least one component first. Publish stays disabled on a page with no components and the card says so, because an empty published page tells your readers nothing.

Unpublish takes the page down again at any time. The page, its components, its incidents and its address are all kept - only the public serving stops.

Deleting a page is not the same as unpublishing it. Delete removes the page along with its components and their site assignments. Guardr asks you to confirm first.

4 - Changing the address

The address can be changed while the page is a draft. Only while it is a draft. Open the components and branding disclosure and use Change address. Once the page is published that control is gone, because a published address is fixed.

To change a published page's address you have to accept the cost of doing it:

  1. Unpublish the page.
  2. Change the address.
  3. Publish it again.
The old address stops working the moment the address changes. No redirect is left behind. Anybody holding a link to the old address gets the not-found page. Bookmarks, links in your own documentation, links in past emails and links pasted into chats all break. Pick the address you want before you publish. Use Generate if the address itself needs to be unguessable.

5 - Search engine indexing

The publish confirmation carries a checkbox: Allow search engines to index this page. Leave it on if you want customers to find the page by searching. Turn it off to keep the page reachable only to people who already have the address.

You can change your mind later. A published page card carries the same checkbox with no confirmation step. A published page that is not indexed is badged Published, not indexed so the two facts never get confused on the dashboard.

Turning indexing off is not access control. The page is still readable by anybody who has the address - it is only kept out of search results. If you need the address itself to be the credential, use a private page instead.

6 - Branding

Two optional addresses put your own marks on the public page. Both live in the components and branding disclosure, under Branding.

  • Logo image address - drawn in the page header, beside the title.
  • Favicon address - used as the page's browser tab icon.

Paste an address into either box and click Save branding. Save stays disabled until something actually changed, so an accidental click cannot resubmit a field you never opened.

What both addresses must be

  • A full https:// URL. Plain http is refused.
  • No username or password embedded in the URL.
  • 512 characters or fewer.

Guardr checks these when you save and names the field it refused, so a truncated paste comes back as an error rather than being stored.

To remove a logo or a favicon, clear its box and save. An empty box that is saved clears the stored value. There is no separate remove button.

Both boxes point at an image you host yourself. If that image moves or stops being served, the page stops showing it.

7 - Incidents and maintenance windows

Incidents live under Incidents, further down the same Dashboard → Status pages screen. What you file there appears under Recent incidents on the published page. You need a status page before you can file anything, so on the Free plan this section shows the plan sentence rather than a form.

Opening an incident

An incident opens on one of three statuses, in the order you would normally move through them:

Status What it says to a reader
investigatingSomething is wrong and you are working out what.
identifiedYou know the cause.
monitoringA fix is in and you are watching it hold.

A new incident needs a title of up to 80 characters and a first update body. You can also set an impact of minor, major or critical. You can tick which components the incident affects. Impact is optional and leaving it unset is a legitimate answer.

Moving an incident on

Post an update to change the status. Each update adds an entry to the timeline your readers see, so the page shows what you knew and when. The update form offers all four incident statuses, including the terminal resolved.

Status only ever changes through an update. Editing an incident changes its title, its impact and which components it affects. It does not change the status, so the incident row and the newest update on the public timeline can never disagree.

Maintenance windows

Tick This is planned maintenance, not an incident on the create form and you are filing a maintenance window instead. A maintenance window runs through its own three statuses:

Status What it says to a reader
scheduledPlanned work, not yet started. Every window opens here.
in_progressThe work is happening now.
completedThe work is finished. This is terminal.

A maintenance window also carries a start, an end and a time zone. The zone list offers your own browser zone first, so the times you type are read on the clock you are looking at, with UTC as the alternative when you are scheduling against the times your readers see.

A maintenance window moves itself

You do not have to be at the dashboard to move a window on. Guardr checks scheduled windows once an hour and moves them for you:

  • Once the start has passed, a scheduled window becomes in_progress.
  • Once the end has passed, the window becomes completed.

Each of those moves is a real update. It is posted to the public timeline the same way one you typed would be. It also emails your confirmed subscribers. Mail goes out on both transitions with nobody at the keyboard, so a window you schedule on Friday can mail your readers twice over the weekend. Schedule the times you actually mean.

The hourly check only ever moves a window you have not already moved yourself. If you set a window to completed by hand, the check leaves it alone.

An incident and a maintenance window are different things and one never becomes the other. Their status words do not overlap and the choice is made once, when you file the row. If you filed the wrong kind, delete it and file the other.

8 - Times and time zones

The public page shows each incident's times on the clock of the zone stored with that incident and names the zone alongside them. Two rows filed in two different zones both keep their own zone on the same page - the page does not convert one into the other. A row with no zone of its own is shown in UTC.

Every public status page carries this line in its footer, so a reader never has to guess which clock a date is on:

Each time shown names its own zone. Dates shown without a zone are UTC.

The practical consequence for you is that the zone you pick when you schedule a maintenance window is the zone your readers see it in. If your readers are somewhere else, schedule in their zone or in UTC rather than in yours.

Which zone names are accepted

Zones are IANA names in region and city form - Europe/London, America/New_York, Asia/Kolkata and the rest of that list. The literal UTC is accepted too. It is the second choice the zone picker offers you.

A bare abbreviation is refused. EST, PST, CET, GMT and their kin are not zone names Guardr accepts, because an abbreviation names an offset rather than a place and the two stop agreeing the moment daylight saving moves. Pick the city instead. This only comes up if you are posting to the API by hand. The zone picker in the dashboard offers valid names only.

9 - Private pages

Pro+

A private page is for readers you choose: one client, one customer, one internal audience. Visibility is set per page from the page card with Make private. On plans below Pro the dashboard shows a sentence naming the two plans that include it rather than a control you cannot use.

What changes when a page goes private

  • The page is reachable only at its private link, which has the form https://status.guardr.io/s/your-address?k=your-token. Copy it with Copy private link.
  • The public address stops serving the page. Its card says so. A reader who tries it gets the same not-found page an address that never existed returns - it does not reveal that a page exists there at all.
  • Search engines are told not to index the page for as long as it stays private. Your indexing choice is not lost. It is overridden while the page is private and comes back when the page is public again.
The link is the credential. Anybody who has it can read the page and no sign-in is asked for. Treat it the way you would treat a password: a private link pasted into a public ticket or a shared document is a public page.

Replacing the link

Replace link issues a new one. Every link you have already shared for that page stops working immediately, including any pasted into documents or chats. Anybody who still needs access has to be sent the new link. This cannot be undone. There is no way to revoke one link while leaving the others working.

Making a page public and then private again has the same effect. The round trip issues a fresh link, so every link handed out before it stops working too. If you make a page public to show somebody and then put it back, send your existing readers the new link.

What it costs if your plan changes

Private pages are part of the Pro and Agency plans, so a private page stops being served if your plan drops below Pro - every private link you shared stops working until you upgrade. The page and its address are untouched and start working again as soon as your plan does.

10 - JSON, RSS and Atom feeds

Every public status page comes with three machine-readable versions of itself, at the page address with a suffix:

Feed Address Content type
JSON https://status.guardr.io/your-address.json application/json
RSS https://status.guardr.io/your-address.rss application/rss+xml
Atom https://status.guardr.io/your-address.atom application/atom+xml

None of them needs a key and none needs an account. They are as public as the page itself.

The page announces its own feeds. A public status page carries <link rel="alternate"> tags in its head for the RSS feed and the Atom feed, so a feed reader handed the page address discovers them without being told where they are. The JSON feed is deliberately not announced this way, because it is not a document a feed reader would act on.

A private page emits no autodiscovery tags at all. Its feeds sit behind the same private link the page does, so an announced address could only ever refuse whoever followed it. An address carrying the token would put the credential in the page body instead.

Polling costs you nothing when nothing changed

All three send an ETag header. Send it back as If-None-Match on the next request and, if nothing has changed, Guardr answers 304 Not Modified with an empty body instead of the whole document. Any feed reader and most HTTP clients do this for you.

curl -H 'If-None-Match: W/"0c78eb0c7638c043"' \
  https://status.guardr.io/your-address.json

What the JSON carries

The JSON is the page's own data rather than a separate API, so it holds what the page shows:

  • page - the page's title, its slug and its overall state.
  • components - one entry per component, each with its label, its state, when it was last_verified_at and a data_confidence reading for how much history is behind that state.
  • windows inside each component - the 24 hour, 7 day, 30 day and 90 day summaries, each with its uptime_percentage and how much of the window Guardr actually covered. A component Guardr has been watching for a week reports a 90 day window as partially covered rather than pretending to a figure it does not have.
  • incidents - the incidents the page is showing.

The RSS feed is standard RSS 2.0 and the Atom feed is standard Atom 1.0, so either one can be pointed at any feed reader. They carry the same updates in the same order, because both are built from one list rather than from two. RSS names the page in its channel title, its link and its description; Atom names it in the feed title, the feed link and the subtitle.

11 - Email subscribers

A published page carries a Subscribe to updates box. A reader enters an email address and gets your incident updates by email, with no account and nothing for you to administer.

The page states the deal in its own words: Guardr sends a confirmation link first, nothing is sent until the reader follows it and every message carries an unsubscribe link.

Readers choose how much they hear

The box lists your components with a tick box beside each one. What the reader ticks decides what they are sent:

  • Nothing ticked subscribes them to the whole page. They get every incident update you post, whichever components it names. A reader who just types an address and submits lands here, so this is what most of your readers get.
  • A ticked component narrows what they hear about that component. They get updates for incidents naming that component. They do not hear about incidents that name only other components. Ticking several components subscribes them to several.
  • An incident that names no component reaches everybody. If you post an incident without ticking any component, it is a whole-page incident and every subscriber gets it. That includes readers who narrowed to a single component. Somebody who asked to hear about one part of your service still hears when the whole thing is affected.

A reader who ticks four boxes still confirms once. One trip through the form is one confirmation email however many components it covered.

A scoped subscriber is genuinely scoped. If you file an incident against one component, readers who ticked only a different component hear nothing about it. That is the point of the picker. It is worth knowing before you assume an incident reached everyone.
  • Only confirmed subscribers receive incident mail. An address that never follows its confirmation link gets nothing after that one confirmation, so a typo or somebody entering an address that is not theirs costs your readers nothing.
  • Every message carries an unsubscribe link. A reader leaves without asking you.
  • The page has to be published. A draft page does not accept subscriptions.
  • A reader may meet a challenge. The subscribe box can carry a Cloudflare Turnstile check, which keeps automated signups off your list. Most readers clear it without noticing. Some are asked to tick a box before the form will submit.
Guardr handles the confirmation and the unsubscribe links itself. There is no subscriber list in the dashboard to manage.

Try it on your site - free

Free scan, no signup required. Upgrade when you need alerts, history or PDF reports.

Scan your site →