What is a Refresh header?
Instructs the browser to reload the page, or redirect to a different URL, after a given number of seconds.
Refresh can either reload the current page or redirect to a new URL after a set number of seconds, and while it still works, it's widely considered poor practice compared to a proper server-side redirect or client-side navigation, since it's jarring for visitors and generally treated unfavourably by search engines. Seeing it on a website today is usually a sign of a very old or hastily built redirect rather than a deliberate modern choice.
Common use case
A simple status page auto-refreshes itself every 30 seconds using Refresh: 30 to show updated data, without needing any client-side JavaScript polling logic.
Example
Refresh: 5; url=https://example.com/new-pageHistory
Introduced informally by Netscape in the mid-1990s as both an HTTP header and an equivalent HTML meta tag, never part of an official HTTP standards track RFC.
Deprecated / legacy status
Never formally deprecated, but long discouraged by accessibility and SEO best practice guidance in favour of a proper 301/302 redirect or JavaScript-based navigation, both of which are less jarring for visitors and easier for search engines to interpret correctly.
Did you know?
It has an HTML meta-tag equivalent (`<meta http-equiv="refresh">`) that behaves identically, which is how it most commonly still shows up on the web today, embedded directly in a page rather than sent as a real HTTP header.