A meta refresh is an instruction in a page's HTML head that tells the browser to reload the page or go to another URL after a set number of seconds. It is a client-side redirect, used when you cannot set server redirects. Google follows meta refreshes, treating an instant one like a permanent redirect and a delayed one like a temporary redirect, but recommends server-side redirects where possible.
The syntax
The content attribute holds the delay in seconds, followed by the target URL. A delay of 0 redirects immediately.
<meta http-equiv="refresh" content="0; url=https://example.com/new-page">How search engines treat it
Google's redirect documentation says an instant meta refresh is interpreted as a permanent redirect, and a delayed one as temporary. Because the crawler has to fetch and parse the HTML first, it is slower to process than a 301 or 308 sent in the HTTP response, and other crawlers may handle it less reliably.
When to use it
Use a meta refresh only when the server cannot send a redirect, for example on some static hosting setups or hosted platforms with no redirect settings. Pair it with a canonical tag pointing at the destination and a visible link for users. Delayed refreshes are also bad for accessibility, since content can disappear before people finish reading it.
Example
Redirecting on a host with no redirect rules
Lanternhook keeps an old microsite on a static host that offers no server redirect rules. To move it into the main site, the team replaces each page with a zero-second meta refresh, a canonical tag to the new URL, and a plain link. Later, when the domain moves behind a CDN, they replace these with real 301s.
Common mistakes
Using delayed refreshes for permanent moves
A delay signals a temporary redirect to Google. Use zero seconds, or better, a server redirect.
Auto-refreshing the same page
Pages that reload themselves on a timer frustrate users and can confuse crawlers. Update content with JavaScript instead.
Questions
Google treats an instant meta refresh as a permanent redirect, so it should consolidate signals, but a server-side 301 or 308 is the more reliable choice.