Meta Refresh Checker: Detect Meta Refresh Redirects on Any Page

RankNibbler scans any URL for <meta http-equiv="refresh"> tags that automatically redirect users — the kind Google has warned against for years. Free, instant, no signup. Every match is flagged with the delay value and destination URL so you can fix them fast.

Check a page now →

What Is a Meta Refresh?

A meta refresh is a redirect implemented in HTML rather than at the server level. It looks like this:

<meta http-equiv="refresh" content="5;url=https://example.com/new-page">

The content attribute has two parts: a delay in seconds, and the destination URL. When the browser encounters this tag, it waits the specified number of seconds, then navigates to the destination. A delay of 0 causes an immediate redirect; any positive number leaves the original page visible for that time.

Why Meta Refresh Hurts SEO

Link Equity Passes Poorly

A 301 permanent redirect passes essentially all of the original URL's link equity (PageRank, authority, backlink value) to the destination. A meta refresh with a 0-second delay is treated similarly to a 301 by Google — but treatment is inconsistent, delayed, and not guaranteed. For permanent redirects, use a server-level 301 every single time.

Timed Refreshes Are Worse

A meta refresh with any delay is treated as a 302 temporary redirect at best, and often ignored entirely. Users see the original page briefly, then get jerked to the destination, which is bad UX and a poor ranking signal.

Confuses Crawlers

Search engine crawlers have to download the page, render the HTML, identify the meta tag, and follow it. Server-level redirects are handled at the HTTP layer before any content downloads — faster, cheaper, unambiguous.

User Experience Problems

Users see flash-of-original-content, then an abrupt page change. Back-button behaviour gets unpredictable. Screen readers announce the redirect oddly. Browsers sometimes block meta refreshes as a security measure.

Accessibility Violations

WCAG 2.1 Success Criterion 2.2.1 explicitly forbids timed redirects without user control. A meta refresh violates this because the user has no way to prevent or delay the redirect.

When Meta Refresh Is Actually OK

How to Replace Meta Refresh with 301 Redirects

Apache (.htaccess)

Redirect 301 /old-page https://example.com/new-page

Nginx

location = /old-page {
  return 301 https://example.com/new-page;
}

IIS (web.config)

<rule name="Redirect" stopProcessing="true">
  <match url="^old-page$" />
  <action type="Redirect" url="https://example.com/new-page"
    redirectType="Permanent" />
</rule>

WordPress

Use the Redirection plugin or Yoast Premium's redirect manager.

Next.js / Vercel

module.exports = {
  redirects: async () => [{
    source: '/old-page',
    destination: '/new-page',
    permanent: true
  }]
};

Cloudflare

Rules → Redirect Rules. Configure status 301 and destination URL. Applies at the edge before requests reach your origin.

How to Audit Your Site for Meta Refresh

  1. Run this checker on suspect pages. Especially old category archives, legacy landing pages, and pages migrated from an old CMS.
  2. Check templates and themes. Sometimes theme headers include conditional meta refreshes.
  3. Scan all pages with Bulk Checker. The Bulk Checker flags meta refresh across lists of URLs at once.
  4. Replace each with a 301 redirect.
  5. Update internal links. Point directly to the destination, skipping the redirect.
  6. Re-audit.

Related Redirect Tools