Warningindexing.meta-refresh

The page redirects with a meta refresh

Why it matters

A <meta http-equiv="refresh"> with an address in it sends the browser on once the page has loaded: a redirect done by the page instead of the server. Google follows it, but reads the two kinds differently. "Google Search interprets instant meta refresh redirects as permanent redirects", and "interprets delayed meta refresh redirects as temporary redirects". For a temporary redirect Google will "Show the source page in search results", so a delayed refresh keeps the old address in Google and leaves the new one out.

Google lists redirects "ordered by how likely Google is able to interpret correctly (for example, a server side redirect has the highest chance of being interpreted correctly by Google)", and offers meta refresh only for when server-side redirects "aren't possible to implement on your platform". So a delayed refresh is a warning, and an instant one, which works, is a notice. Either way every visitor downloads the old page first. A refresh that only reloads the page is no redirect, and not this rule's business.

Sources: Google's meta refresh redirects and overview of redirect types.

How to fix it

Redirect on the server, with a 301, and take the tag out. In nginx:

location = /old-cakes { return 301 https://www.example.com/cakes; }

In Apache's .htaccess:

Redirect 301 /old-cakes https://www.example.com/cakes

Most hosts and site builders (Netlify, Cloudflare, Shopify, WordPress with a redirection plugin) have a redirects setting that does the same. Where the server can't be changed at all, make the refresh instant, which Google reads as permanent:

<meta http-equiv="refresh" content="0; url=https://www.example.com/cakes">

Examples

These are the rule's own test pages, and what it says about each. They are run on every change to the rule book.

<meta http-equiv="refresh" content="5; url=https://www.example.com/cakes">
<p>Our cakes have moved.</p>

WarningThe page sends visitors on to https://www.example.com/cakes after 5 seconds with a meta refresh, which Google reads as a temporary redirect: it keeps showing this address in search results, not the new one.

fail-delayed
<meta http-equiv="refresh" content="0;URL='/cakes'">

NoticeThe page sends visitors on to https://www.example.com/cakes with an instant meta refresh. Google reads it as a permanent redirect, but a redirect from the server is the kind it reads most reliably.

fail-instant
<meta http-equiv="refresh" content="300">
<p>Today's bakes, as they come out of the oven.</p>

PassedThe page's meta refresh reloads it rather than sending visitors elsewhere.

pass-reload