---
title: "Redirect hygiene · Sitebulb Labs"
description: "Agents that don't run JavaScript never follow a meta refresh or a location.href hop, so they only see the initial page."
url: https://labs.sitebulb.com/docs/checks/discoverability/redirect-hygiene/
---

# Redirect hygiene

Agents that don't run JavaScript never follow a meta refresh or a location.href hop, so they only see the initial page.

- Category

  [Discoverability](https://labs.sitebulb.com/docs/checks/discoverability)

- Standard

  Recommended

## What it checks

The extension fetches the page’s HTML and looks for two kinds of client-side redirect:

- a `<meta http-equiv="refresh">` tag, and
- a stub page: one that assigns `location` (for example `window.location.href =` or `location.replace(`) and has fewer than 200 characters of visible text.

Both conditions are needed for a stub. Plenty of working pages assign `location` somewhere in their scripts; only a page with almost no content is treated as a redirect in disguise. An agent that does not run scripts stops at that page.

## Results

| Status   | When                                                                                   |
| -------- | -------------------------------------------------------------------------------------- |
| **Pass** | No meta refresh and no stub redirect, including pages reached through an HTTP redirect |
| **Fail** | The page contains a meta refresh tag                                                   |
| **Fail** | The page has under 200 characters of visible text and redirects in JavaScript          |
| **N/A**  | The page’s HTML could not be fetched, so there was nothing to inspect                  |

## How to fix

Replace client-side redirects with an HTTP 301 (permanent) or 302 (temporary) from the server. For example, in a Cloudflare Pages or Netlify `_redirects` file:

```txt
/old-page  /new-page  301
```

Or in nginx:

```nginx
location = /old-page {
    return 301 /new-page;
}
```
