Redirection meta refresh
Comprendre la redirection meta refresh, sa place entre les redirections côté serveur et JavaScript, la différence entre actualisation immédiate et différée, et les raisons de l’éviter.
Langues
Une redirection meta refresh est une balise HTML <meta http-equiv="refresh">, ou un en-tête HTTP Refresh équivalent, et non un code d’état HTTP. Le serveur renvoie une réponse 200 normale, puis le navigateur agit après le chargement de la page. Google interprète la version immédiate content="0" comme permanente et la version différée comme temporaire. John Mueller indique qu’elle devrait fonctionner, mais la déconseille pour des raisons d’expérience utilisateur et de temps d’analyse. Ne l’utilisez qu’en dernier recours sans accès aux redirections côté serveur, privilégiez 0 seconde et remplacez-la par une véritable 301 dès que possible.
TL;DR — Une redirection meta actualisation est une ligne de HTML — a
Evidence for this claim Google supports instant and delayed meta refresh redirects but recommends server-side permanent redirects when possible. Scope: Google redirect processing and implementation preference. Confidence: high · Verified: Google Search Central: Redirects Evidence for this claim Timed redirects can create accessibility problems, particularly when users cannot control the time limit. Scope: WCAG timing guidance; not a search-ranking claim. Confidence: high · Verified: W3C WCAG: Timing Adjustable<meta http-equiv="refresh">tag — qui demande à le navigateur d’accéder à une autre URL après le chargement de la page. Ce n’est pas an Code d’état HTTP comme un 301. Le serveur renvoie une page normale en en premier, puis le navigateur effectue la redirection. Elle fonctionne, mais elle est plus lente et moins élégante qu’ a réel redirection côté serveur, donc ne l’utiliser que lorsqu’aucune autre option n’est disponible.
Ce qu’est une redirection meta actualisation
La plupart des redirections sont exécutées sur le serveur. Vous demandez une URL, et avant vous obtenir quelconque
page at tout, le serveur répond “cette ressource a été déplacée : allez plutôt ici” (il s’agit d’un 301 or a
302). A meta actualisation fonctionne tout autrement. Le serveur renvoie a
normal, fonctionnement page (a 200 OK), et dans le HTML de cette page est an instruction
telling le navigateur d’aller ailleurs:
<meta http-equiv="refresh" content="0;url=https://example.com/newlocation">Cette balise se trouve dans le <head> de la page. Le nombre placé avant le point-virgule est how
nombreux secondes to wait; le url= partie est où to send le visitor. Puisque c’est
le navigateur — et non le serveur — qui l’exécute, on parle de a côté client
redirection.
Immédiate ou différée
Il existe en réalité deux variantes, et seul ce nombre les distingue:
- Immédiate —
content="0;url=...". Le navigateur bascule dès que lune page finishes chargement. C’est la version à choisir si vous ont to utiliser meta actualisation at tout. Google l’interprète comme a permanente redirection (similaire to a 301). - Différée —
content="5;url=..."(quelconque nombre bigger que 0). Le navigateur montre lune page pour quelques secondes, alors jumps. Google interprète ce as a temporaire redirection, et c’est historiquement ce délai qui a valu à meta actualisation sa mauvaise réputation liée au spam.
Pourquoi personnes dire to éviter it
A meta actualisation fonctionne — but elle est moins fiable qu’ a serveur redirection parce que le navigateur n’exécute la redirection instruction une fois la page est treated as finished chargement — la condition de déclenchement du standard HTML — et et pas avant. A redirection côté serveur se produit immédiatement, avant le moindre chargement de page. Les recommandations de Google classent redirection côté serveurs en en premier, meta actualisation in le middle, et JavaScript redirections en en dernier.
La règle est donc simple: utilisez un vérile 301 chaque fois que possible. N’utilisez a meta
actualisation que si votre hébergeur ne permet réellement pas de configurer a serveur redirection
(certains hébergements statiques) — et, même dans ce cas, utiliser le immédiate (0) version et
passez à a proper 301 le moment you’re able to.
Vouloir une vue complète — Google’s exact wording, les enjeux d’accessibilité, et how to detect ces on votre site? Consultez l’onglet Avancé .
TL;DR — Une meta actualisation est une balise HTML
Evidence for this claim Google supports instant and delayed meta refresh redirects but recommends server-side permanent redirects when possible. Scope: Google redirect processing and implementation preference. Confidence: high · Verified: Google Search Central: Redirects Evidence for this claim Timed redirects can create accessibility problems, particularly when users cannot control the time limit. Scope: WCAG timing guidance; not a search-ranking claim. Confidence: high · Verified: W3C WCAG: Timing Adjustable<meta http-equiv="refresh">tag (or le serveur-injectedRefreshen-tête), pas a3xxcode d’état — le serveur renvoie200et le navigateur navigates seulement après lune page a entièrement chargée. Immédiate (content="0") lit comme permanente to Google, comme un 301/308; différée (> 0) lit comme temporaire. It sits entre côté serveur et JavaScript redirections in Google’s fiabilité ordre parce que of que full-page-load dependency. Mueller: it “devrait just fonctionner,” mais ne la recommande pas (back-button historique + analyser-time cost). Ne l’utiliser que quand vous genuinely lack serveur accès, privilégier0, pair it avecrel=canonicalet a visible fallback lien, et replace it avec a réel 301 as soon as vous pouvez.
Ce n’est pas un code d’état
C’est le point essentiel à comprendre. Une meta actualisation est pas an HTTP 3xx
réponse. Le serveur renvoie une réponse ordinaire 200 OK avec le corps complet d’une page; sitting
in que page’s <head> se trouve une directive HTML que le navigateur exécute après le
page charge:
<!-- Instant: treated by Google as permanent -->
<meta http-equiv="refresh" content="0;url=https://example.com/newlocation">Il existe un équivalent côté serveur — le Refresh HTTP en-tête — qui fait le même
chose mais est injecté par le code serveur au lieu de figurer dans le balisage:
HTTP/1.1 200 OK
Refresh: 0; url=https://www.example.com/newlocationNotez que même la version sous forme d’en-tête renvoie 200, pas a 3xx. Dans les deux cas, ce est a
redirection côté client: le navigateur effectue le navigation, et non le serveur.
Immédiate ou différée — la distinction de Google
Google élit la distinction selon le nombre de secondes. Dans sa documentation
Redirections and Recherche Google
Google précise qu’il “differentiates between two kinds of meta refresh redirects” (traduction) « distingue deux types de redirections meta refresh » :
- Immédiate (
content="0") — “Triggers as soon as lune page est chargé… Google Recherche interprets immédiatemeta refreshredirections as redirection permanentes.” So pour canonicalization elle appartient donc à la même catégorie qu’ a 301/308: Google la suit et utilise it as a signal que le cible devrait être canonical. - Différée (
contentsupérieur que 0) — “Triggers seulement après an arbitrary nombre of secondes… Recherche Google interprets différéemeta refreshredirections as redirection temporaires.” Comme a 302/303/307, le cible pourrait encore être indexé via autre signals, mais la redirection elle-même n’est pas considérée comme un signal de déplacement permanente.
Mon propre classement des redirections in le Ahrefs guide to 11 types of redirections reflète cette distinction: pour déplacements permanents I rank les 308 / 301 → meta actualisation 0 → JavaScript → crypto, et différée meta actualisation descend dans la catégorie temporaire aux côtés des 302/303/307.
Sa place dans l’ordre de pdocumentation de Google
Google’s redirection docs publie explicitement un leau de pdocumentation, “ordered by how
probable Google est able to interpret [la redirection] correctement.” Pour permanente
redirections le ordre est: HTTP 301 → HTTP 308 → meta refresh (0 seconds) →
JavaScript location → crypto. Meta actualisation est le middle rung — sous
côté serveur, au-dessus de JavaScript.
Google décrit clairement les deux limites. Pour la limite supérieure: “Si côté serveur
redirections aren’t possible to implement on votre platform, meta refresh redirections
may être a viable alternative.” Pour la limite inférieure: “Seulement utiliser JavaScript
redirections si vous pouvez’t faire côté serveur or meta refresh redirections.” That’s le
whole ladder in two sentences — et correspondent à l’analyse déjà présentée dans le
redirections hub, qui indique que JS
et différée meta-actualisation sont moins fiables car elles dépendent du rendu.
Deux “ordres” — à ne pas confondre
Voici une nuance qui piège souvent les développeurs. MDN publishes a
différent ordering
pour redirections — but it’s à propos de l’ordre d’exécution du navigateur lorsque plusieurs redirection
mécanismes coexistent sur une page, et non leur fiabilité SEO. MDN’s ordre est: HTTP
redirections d’abord, puis JavaScript, alors meta actualisation en en en dernier, car “le <meta>
redirection se produit après le chargement complet de la page, qui est après tout scripts
ont executed.”
So JavaScript “beats” meta actualisation in MDN’s temporisation ordre, but meta actualisation “beats” JavaScript in Google’s fiabilité ordre. Les deux sont corrects — ils réponse différent questions. MDN est asking “lequel se déclenche en en en premier dans le navigateur?” (synchronous JS s’exécute pendant le chargement, avant le minuteur post-chargement de la meta actualisation). Google est asking “lequel suis-je le plus susceptible d’interpréter correctement pour la recherche?” (a meta actualisation est lire straight depuis le parsed HTML; a JS redirection nécessite Google’s distinct rendering step to succeed). Distinguez ces deux axes et le apparent contradiction disappears.
Pourquoi elle dépend du chargement de la page — et pourquoi cela la rend moins fiable
A meta actualisation ne peut se déclencher avant que lune page a entièrement chargée. Per MDN’s
<meta http-equiv>
documentation, “le minuteur démarre lorsque lune page est entièrement chargée, qui est après
le load et pageshow events ont les deux fired.” Cela vaut même pour
content="0" — “immédiate” signifie aucun délai supplémentaire après le chargement, pas zero
elapsed temps. Une page lente retarde même a 0-second actualisation d’une manière qu’ a côté serveur
3xx ne pourrait jamais reproduire, car le serveur envoie la redirection avant quelconque page charge at
tout.
Précisons un point: a meta actualisation est pas processed at Google’s render (JS
execution) stage de la même manière qu’ a window.location redirection est — it’s lire directement depuis
le parsed HTML <head>. Sa faiblesse ne vient pas de le rendering pipeline; mais de la
full-page-load dependency (fin des transferts réseau, ressources bloquant le rendu) plus,
pour différée variants, une attente arbitraire.
Ce que spécifie réellement le standard HTML
L’algorithme d’actualisation déclarative du standard HTML est plus précis que la formule « attendre le chargement de la page ». Plusieurs détails comptent pour l’audit et le diagnostic :
- Échéance. L’actualisation arrive à échéance après le chargement complet du document
et, pour un élément
<meta>, après son insertion — l’événement le plus tardif l’emporte — avec un ajustement possible selon les préférences de l’utilisateur. Les événements réseau et de rendu exacts restent des détails propres à chaque navigateur. - URL relatives. La cible est résolue par rapport à l’URL propre du document. Lors
d’un audit, calculez donc la destination absolue au lieu de vous fier à la chaîne
url=: un chemin relatif peut mener ailleurs que ne le suggère sa lecture rapide. - La première instruction l’emporte. Dès qu’un document est marqué pour une actualisation
déclarative, l’algorithme ignore toute instruction ultérieure. Deux balises
<meta refresh>incompatibles, ou une balise accompagnée d’un en-têteRefresh, constituent une erreur de création et non un mécanisme de secours. - Les cibles
javascript:sont rejetées. Si la cible analysée utilise le schémajavascript:, l’algorithme s’arrête sans lancer la navigation. - Le déclenchement n’est pas garanti. Le standard autorise l’annulation de la navigation, son ajustement selon les préférences de l’utilisateur ou de son agent, son blocage par les restrictions d’un document en bac à sable, son exposition dans l’interface du navigateur, ou son absence pure et simple. Une redirection ne doit donc jamais être tenue pour absolue.
- Gestion de l’historique. Le standard prévoit de remplacer l’entrée d’historique actuelle lors de la navigation, plutôt que d’en ajouter une nouvelle. Cette règle nuance l’observation rapportée en 2018 par un porte-parole de Google. Considérez l’affirmation “meta refresh always leaves the source page in history” (traduction) « une meta refresh laisse toujours la page source dans l’historique » comme une idée non confirmée comme une idée non confirmée plutôt que comme un comportement établi ; sa vérification nécessiterait des tests propres à chaque navigateur et à chaque version.
John Mueller a résumé les raisons de cette recommandation (propos relayés par Search Engine Roundtable, 2018) : une meta refresh “should just work” (traduction) « devrait fonctionner », mais Google la déconseille pour l’expérience utilisateur — “it keeps the page in browser history, afaik” (traduction) « elle conserve la page dans l’historique du navigateur, à ma connaissance » — et pour le temps de traitement, puisque Google doit analyser la page avant de détecter la redirection. “Once processed, it’s just like a redirect.” (traduction) « Une fois traitée, elle se comporte comme une redirection. » Cette explication nomme des coûts concrets sans transformer l’observation sur l’historique en garantie normative.
Pourquoi it’s discouraged — le historical baggage
Distinct depuis Mueller’s UX/analyser-time raisons, meta actualisation carries a reputation. In le 2000s web-spam era it était a courant doorway-page vehicle: une page ranks pour a requête, alors near-instantly meta-refreshes le visitor to a différent, moins relevant destination — showing moteur de recherches et utilisateurs effectively différent outcomes. That’s le origin of le “spammy” étiquette. It’s worth étant accurate ici: aucun actuel Google spam-policy page noms “meta actualisation” explicitly; le policies define “sneaky redirections” et “doorway” abuse as general categories que meta actualisation historiquement served as a mechanism pour. Treat ce as historical/secteur context, pas an explicit actuel policy citation.
Il existe aussi a concrete, non-spam échec mode Mueller flagged in a 2018 hangout (via Moteur de recherche Journal): a site que meta-refreshed listing pages to a shared payment page. “So si vous faire ce à travers votre pages there’s a big chance we’ll follow ce redirection et think ‘Oh, ce payment page est en réalité ce que vous vouloir to ont indexé et pas le réel contenu.’” Mass-refreshing nombreux source pages to un generic destination peut obtenir le destination indexé au lieu de votre contenu.
None of que rend an isolated, legitimate meta actualisation a penalty risk. Google’s propre actuel docs appel it “a viable alternative” quand redirection côté serveurs aren’t possible. Le risk est pattern et intent, pas le mechanism.
Evidence for this claim Google says meta refresh can be a viable alternative when server-side redirects are not possible, while permanent server-side redirects are recommended whenever possible for a URL move. Scope: meta refresh and HTTP Refresh interpretation Confidence: high · Verified: Redirects and Google SearchAccessibilité: le même immédiate-vs-différée split
Le SEO framing a an presque exact twin in accessibilité guidance — avec un
qualification worth stating up front: W3C’s WAI techniques
sont, in leur propre words, exemples of façons to meet WCAG success criteria, pas
mandatory conformance rules. Meeting or manquant a spécifique technique isn’t itself
an automatic réussir or échouer; le réel requirement est le success criterion (ici,
2.2.1 Temporisation Adjusle). Avec que indiqué, W3C’s propre pdocumentation matches le SEO
guidance au-dessus de: it recommends a redirection côté serveur en en premier, et où a
redirection côté client est genuinely necessary, its sufficient techniques (H76,
G110) appel pour aucun delay (content="0") et a source page whose contenu est
limited to redirection-related information plus a visible lien to le destination.
That’s a narrower bar que “tout 0-second actualisation automatiquement passes” — it’s
“zero delay, redirection-seulement contenu, et a fallback lien” as le documented
sufficient pattern. A différée meta actualisation avec aucun façon to pause, extend, or
disable it risks failing 2.2.1, parce que it peut navigate away avant a
screen-reader utilisateur or quelqu’un avec low vision a finished reading — but si a
spécifique différée actualisation en réalité fails le criterion est a case-by-case WCAG
evaluation, pas quelque chose a technique nombre alone settles. MDN’s
accessibility remarque
describes le même underlying risk: too-short actualisation intervals signifier personnes en utilisant
assistive tech “may être unable to lire via et comprendre lune page’s contenu
avant étant automatiquement redirigé.”
So les deux a moteur de recherche et a standards corps land on le même rule: immédiate est
fine, différée est risky. That’s a nice bit of reinforcement — et un plus raison
to privilégier content="0" si vous utiliser meta actualisation at tout.
Quand it’s a legitimate en en dernier resort
Utiliser meta actualisation seulement quand vous genuinely can’t faire une redirection côté serveur. Réel cas où que se produit:
- Static hosts avec aucun serveur config — e.g. GitHub Pages, où vous pouvez’t ajouter
.htaccess/nginx rules. - Static-site generators whose “aliases” fonctionnalité outputs meta actualisation, pas 301s.
Hugo est a connu exemple — its
aliases:front-matter generates little meta-actualisation HTML fichiers, pas réel serveur redirections. (Plus on que in Hugo SEO.) - No-code / website-builder exports et some doc generators que seulement let vous emit static HTML.
Si you’re stuck avec it, faire it bien:
- Préférer immédiate (
content="0") over quelconque delay — permanente signal, et it clears le accessibilité bar. - Pair it avec
rel="canonical"pointing at le destination, so le canonicalization intent est explicit même avant Google processes l’actualisation. - Inclure a visible, clickable fallback lien in le corps pour le rare navigateur or assistive-tech setting où auto-actualisation est disabled.
- Don’t stack it dans a chaîne de redirections — si le meta-actualisation page’s URL plus tard aussi obtient une redirection côté serveur layered on, you’ve construit a chain (voir chaîne de redirectionss).
- Replace it avec a réel 301 le moment vous ont serveur accès. Meta actualisation est a bridge, pas a destination.
Detecting meta actualisation on votre site
Robots d’exploration surface ces, usually as a low-to-medium severity flag plutôt que a
critical error — Screaming Frog, Sitebulb, Ahrefs Site Audit, et Semrush tout
report les. Pour an isolated handful of URLs it’s a “fix lorsque convenient” item, pas
an emergency; site-wide utiliser on pages importantes est où it becomes worth
prioritizing. To vérifier a unique URL by hand, view source or curl lune page et
regarder pour http-equiv="refresh" in le <head> (là sont ready snippets in le
Scripts lens).
Faites attention avec claims in soit direction on popularité des liens. Le Ahrefs help-center line que meta actualisation “fait pas pass much or tout lien juice” est worth questioning — Google’s redirection le classifies an immédiate meta actualisation in le même permanente-redirection interpretation bucket as a 301, qui est a signal à propos de how Google interprète et canonicalizes la redirection, pas a stated promise à propos de identical PageRank, lien-equity, or ranking transfer. Neither Google’s redirections documentation nor le HTML Standard rend an explicit claim à propos de equity parity entre a meta actualisation et a 301 — so treat “it passes le même value as a 301” et “it passes little or none” as equally unverified au-delà what’s en réalité documented: Google classifies it comme permanente, et processes it après it charge le page.
A meta-actualisation source page encore a its propre HTTP réponse et its propre HTML
document — auditing un shouldn’t arrêter at reading l’actualisation tag. Vérifier, in ordre:
l’URL source’s HTTP état et réponse headers (notamment a possible Refresh
en-tête); le raw HTML versus ce que a navigateur en réalité parses; qui actualisation
directive est le en en premier (et therefore effective) un, et its resolved absolute
cible; how Google’s redirection le voudrait classify it (immédiate/permanente vs.
différée/temporaire); le source page’s propre balise canonical, robots directives, et
indexability; le final destination’s réponse; si la redirection est
cancelable, controllable, or skipped by utilisateur/navigateur preferences; cache et historique
behavior in le spécifique named navigateur et version you’re testing (pas as a
universal claim); lien internes encore pointing at le source; et, en en dernier, votre plan
to replace it avec une redirection côté serveur. Le Checklists et Scripts lenses on
ce page break ces dans concrete steps et commands.
AI summary
A condensed prendre on le Avancé version:
- Pas a code d’état. Une meta actualisation est une balise HTML
<meta http-equiv="refresh">tag (or leRefreshHTTP en-tête). Le serveur renvoie200; le navigateur navigates après lune page entièrement charge. It’s a redirection côté client. - Immédiate ou différée.
content="0"= Google l’interprète as permanente (comme a 301/308).content > 0= temporaire (comme a 302/303/307), et delay est le trait tied to ancien spam par pages satellites. - Middle of Google’s ordre. Serveur-side → meta actualisation → JavaScript → crypto. Google: “Si redirection côté serveurs aren’t possible… meta actualisation… may être a viable alternative,” et “Seulement utiliser JavaScript redirections si vous pouvez’t faire côté serveur or meta actualisation redirections.”
- Deux “ordres.” MDN’s execution ordre puts JS avant meta actualisation (meta actualisation fires post-load, après scripts). Google’s fiabilité ordre puts meta actualisation au-dessus de JS. Les deux correct — différent questions.
- Pourquoi moins fiable: le HTML Standard’s due-time algorithm holds it jusqu’à lune page est
chargé — vrai même pour
0— et le navigation peut être canceled or skipped by utilisateur/navigateur preferences; it’s pas a 100% guarantee. Mueller: it “devrait simplement fonctionner” mais ne la recommande pas (navigateur historique “afaik” + analyser-time cost) — le historique point est his reported observation, pas quelque chose le actuel spec text itself indique (le Standard specifies replace historique handling). - Popularité des liens: unverified soit façon. Google’s le groupes immédiate meta actualisation avec 301s pour interpretation, pas a documented PageRank/equity-parity promise — don’t over-claim in soit direction.
- Accessibilité mirrors SEO, avec a caveat: W3C prefers redirection côté serveurs aussi; its sufficient techniques (H76/G110) appel pour zero delay + redirection-seulement contenu + a fallback lien — but ces sont exemple techniques, pas mandatory conformance rules. A différée actualisation avec aucun utilisateur contrôler risks failing 2.2.1 Temporisation Adjusle; si it en réalité fait est a case-by-case evaluation.
- Utiliser seulement en en en dernier recours (GitHub Pages, Hugo
aliases, static/no-code hosts). Préférer0, ajouterrel=canonical+ a visible fallback lien, éviter chains, et la remplacer par a réel 301 as soon as vous pouvez.
Documentation officielle
Primary-source documentation on meta actualisation et où it fits.
- Redirections et recherche Google — tableau de préférence, définition des variantes immédiate et différée, et présentation de la « solution viable ».
- Règles antispam pour la recherche Google — définit les redirections trompeuses et les pages satellites comme des catégories générales, sans nommer explicitement la meta refresh.
MDN
<meta http-equiv>— mécanisme côté client et démarrage du minuteur après le chargement complet.- En-tête HTTP
Refresh— équivalent injecté par le serveur. - Redirections HTTP — ordre d’exécution dans le navigateur, distinct de l’ordre de fiabilité SEO de Google.
W3C / WCAG
- H76 : utiliser meta refresh pour créer une redirection côté client immédiate — le serveur reste préférable ; à défaut, la redirection à 0 seconde constitue une technique suffisante, pas une règle obligatoire.
- G110 : utiliser une redirection côté client immédiate — version générale de la même technique.
- F41 : échec lié à une meta refresh temporisée — explique comment une actualisation différée incontrôlée peut enfreindre le critère 2.2.1 ; cette fiche ne constitue pas elle-même l’exigence de conformité.
Quotes depuis le source
Déclarations publiques. Chaque lien mène directement au passage cité.
Google — Redirections et Recherche Google docs
- “The following table explains the various ways you can use to set up permanent and temporary 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).” (traduction) « Le tableau suivant présente les différentes façons de configurer des redirections permanentes et temporaires, classées selon la probabilité que Google les interprète correctement. » Jump to quote
- “If server-side redirects aren’t possible to implement on your platform, meta refresh redirects may be a viable alternative.” (traduction) « Si votre plateforme ne permet pas les redirections côté serveur, les redirections meta refresh peuvent constituer une solution de remplacement viable. » Jump to quote
- “Google differentiates between two kinds of meta refresh redirects: Instant meta refresh redirect: Triggers as soon as the page is loaded in a browser. Google Search interprets instant meta refresh redirects as permanent redirects. Delayed meta refresh redirect: Triggers only after an arbitrary number of seconds set by the site owner. Google Search interprets delayed meta refresh redirects as temporary redirects.” (traduction) « Google distingue deux types de redirections meta refresh : les redirections immédiates, interprétées comme permanentes, et les redirections différées, interprétées comme temporaires. » Jump to quote
- “Place the meta refresh redirect either in the <head> element in the HTML or in the HTTP header with server-side code.” (traduction) « Placez la redirection meta refresh soit dans l’élément <head> du HTML, soit dans l’en-tête HTTP au moyen de code côté serveur. » Jump to quote
- “Only use JavaScript redirects if you can’t do server-side or meta refresh redirects.” (traduction) « N’utilisez les redirections JavaScript que si les redirections côté serveur ou meta refresh sont impossibles. » Jump to quote
- “While Google attempts to render every URL Googlebot crawled, rendering may fail for various reasons. This means that if you set a JavaScript redirect, Google might never see it if rendering of the content failed.” (traduction) « Google tente de rendre chaque URL explorée par Googlebot, mais le rendu peut échouer ; une redirection JavaScript risque alors de ne jamais être détectée. » Jump to quote
John Mueller, Google (tweets relayés par Search Engine Roundtable, 2 mars 2018)
- “A meta refresh type redirect should just work. We don’t recommend it for 2 reasons: UX (it keeps the page in browser history, afaik) & processing time (we need to parse the page to see it). Once processed, it’s just like a redirect.” (traduction) « Une redirection meta refresh devrait fonctionner. Nous la déconseillons pour deux raisons : l’expérience utilisateur — elle conserve la page dans l’historique du navigateur, à ma connaissance — et le temps de traitement nécessaire pour analyser la page. » Jump to quote
John Mueller, Google (session Webmaster Central de juillet 2018, relayée par Search Engine Journal)
- “So if you do this across your pages there’s a big chance we’ll follow this redirect and think ‘Oh, this payment page is actually what you want to have indexed and not the actual content,’ and in that case we won’t have the content indexed.” (traduction) « Si vous appliquez cela à toutes vos pages, nous risquons de suivre la redirection et de considérer que la page de paiement doit être indexée à la place du contenu réel. » Jump to quote
MDN
- “The timer starts when the page is completely loaded, which is after the load and pageshow events have both fired.” (traduction) « Le minuteur démarre lorsque la page est entièrement chargée, après le déclenchement des événements load et pageshow. » Lire la documentation
- “When possible, use HTTP redirects and don’t add <meta> element redirects.” (traduction) « Dans la mesure du possible, utilisez des redirections HTTP et n’ajoutez pas de redirections au moyen d’un élément <meta>. » Lire la documentation
Qui redirection devrait I utiliser?
Meta actualisation est a fallback, pas a en en premier choice. Fonctionner bas depuis le plus fort option vous pouvez en réalité implement.
Choosing a redirect when meta refresh is on the table
Meta actualisation myths et mistakes
Courant misconceptions, et what’s en réalité vrai.
“Meta actualisation est an HTTP redirection / a 3xx état code.”
Aucun. It’s une balise HTML tag (or le Refresh HTTP en-tête) que le navigateur exécute après
a normal 200 réponse et a complet page charger — pas un code d’état le serveur sends
avant quelconque contenu.
“A 0-second meta actualisation fires instantly, avant le page even charge.”
Aucun. Per MDN, le timer “starts lorsque le page est completely chargée.” content="0"
signifie zero additional delay après charger, et non un temps écoulé nul. That’s exactly pourquoi
Mueller cites “traitement time (we need to analyser le page to voir it)” même pour le
immédiate variant.
“Meta actualisation est basically le même as a JavaScript redirection.” Pas quite. Les deux sont côté client, but a meta actualisation est declared in HTML et lire straight depuis le parsed document, pendant que a JS redirection nécessite script execution. Google ranks meta actualisation au-dessus de JS pour fiabilité; MDN’s l’ordre d’exécution du navigateur ranks synchronous JS avant meta actualisation. Les deux sont vrai — ils réponse différent questions.
“Meta actualisation doesn’t pass tout lien equity / PageRank.” Unsupported as stated — but so est le opposite claim. Google’s redirection le puts an immédiate meta actualisation in le même permanente-redirection interpretation bucket as a 301/308, qui est à propos de how Google classifies et canonicalizes le signal. Neither Google’s documentation nor le HTML Standard rend an explicit statement à propos de PageRank, lien-equity, or ranking parity entre le two mechanisms — so don’t assert equivalence soit façon au-delà le documented classification.
“Meta actualisation est always spammy et will get my site penalized.” Faux as a blanket claim. It a a historical doorway-spam association, but a unique legitimate utiliser — e.g. on a static host avec aucun serveur accès — n’est pas a spam signal. Google’s actuel docs appel it “a viable alternative.” Le risk est pattern et intent (cloaking, mass-redirecting to unrelated contenu), pas le mechanism.
“A few secondes’ delay est a nice UX courtesy, pas a real problem.” Mixed. Quelconque delay supérieur que 0 downgrades it to Google’s temporaire treatment, et W3C’s accessibilité techniques treat an uncontrollable delay as le pattern to éviter — but a missed technique isn’t automatiquement a WCAG violation on its propre; it encore comes bas to si le réel success criterion (2.2.1, Temporisation Adjusle) est met. “A few secondes to let le utilisateur lire a message” avec aucun façon to pause, extend, or skip it est exactly le pattern que risks failing it.
“My crawler flagged ‘meta actualisation tag’ — it’s a critical issue to fix now.” Overstated pour isolated cas. Outils comme Screaming Frog classify it as a low-severity warning. Worth replacing avec a réel 301 quand vous obtenir serveur accès, but pas le même urgency tier as broken redirections, loops, or manquant indexation signals — unless it’s site-wide or on high-value pages.
Si vous ont to ship a meta actualisation — checklist
Utiliser ce seulement après confirming une redirection côté serveur genuinely isn’t disponible:
- Confirmed there’s aucun redirection côté serveur option (vérifié hosting
settings,
.htaccess/nginx accès, CDN rules, framework config). - Utilisé le immédiate formulaire —
content="0"— pas une redirection différée. - Le tag est in le
<head>, et leurl=valeur est le final destination (pas un autre redirection — éviter building a chain). - Ajouté a
rel="canonical"pointing at le destination URL. - Inclus a visible, clickable fallback lien in le corps pour anyone whose navigateur/assistive-tech setting disables auto-actualisation.
- Destination renvoie a clean
200(pas itself a 404, redirection, or error). - Logged a follow-up to replace it avec a réel 301 une fois serveur accès est disponible.
Auditing meta actualisation à travers a site
- Ran a explorer (Screaming Frog / Sitebulb / Ahrefs Site Audit / Semrush) et exported tout URLs flagged as meta-actualisation redirections.
- Pour chaque flagged URL, vérifié le HTTP état et réponse headers
(notamment a possible
Refreshen-tête) — pas simplement le HTML. - Identified le en en premier (effective) actualisation directive si plus que un est
présent, et resolved its
url=cible to an absolute URL. - Classified it immédiate vs. différée to predict Google’s permanente/temporaire treatment, et separately vérifié le source page’s propre balise canonical, robots directives, et indexability.
- Vérifié si it’s isolated (low priority) or site-wide / on high-value pages (prioritize).
- Looked pour le payment-page pattern — nombreux source pages refreshing to un generic destination que pourrait obtenir indexé au lieu de votre contenu.
- Flagged quelconque différée refreshes as les deux an SEO et an accessibilité problème.
Meta actualisation — cheat sheet
Le two variants
| Variant | Syntax | Google l’interprète as | Accessibilité |
|---|---|---|---|
| Immédiate | content="0;url=..." | Permanente (comme 301/308) | Sufficient technique (H76/G110) |
| Différée | content="5;url=..." (quelconque > 0) | Temporaire (comme 302/303/307) | Risks failing 2.2.1 (F41 pattern) |
Google’s redirection pdocumentation (permanente), plus fort → weakest
| Rank | Méthode | Notes |
|---|---|---|
| 1 | 301 / 308 (côté serveur) | Meilleur — fires avant quelconque page charge |
| 2 | Meta actualisation 0 | Lire comme permanente, but clumsy/slow (nécessite complet charger) |
| 3 | JavaScript location | Nécessite rendering; may jamais être vu si render fails |
| 4 | Crypto redirection | Vrai en en dernier resort; pas tout bots prise en charge it |
Two orderings, don’t conflate
| Question | Ordre |
|---|---|
| Google — SEO fiabilité | côté serveur → meta actualisation → JavaScript → crypto |
| MDN — navigateur execution temporisation | HTTP → JavaScript → meta actualisation |
Fast facts
- Pas a code d’état — serveur renvoie
200, navigateur navigates après complet charger. Refresh:HTTP en-tête est le serveur-injected equivalent (encore200).- “Immédiate” = zero delay après charger, et non un temps écoulé nul.
- Mueller’s two “pas recommandé” raisons: navigateur historique (his reported “afaik”)
- analyser-time cost. Le Standard itself specifies replace historique handling.
- Popularité des liens/PageRank parity avec a 301: undocumented soit façon — don’t assert it.
- Robots d’exploration flag it low-to-medium severity, pas critical.
- Utiliser seulement avec aucun serveur accès (GitHub Pages, Hugo
aliases, static/no-code).
Detecting et reading meta actualisation tags
Vérifier un URL depuis le command line
# Fetch the page and look for the meta refresh tag in the HTML
curl -s https://example.com/old-page/ | grep -i 'http-equiv=["'"'"']*refresh'
# Also check for the server-side Refresh header (case-insensitive)
curl -sI https://example.com/old-page/ | grep -i '^refresh:'A meta-actualisation page renvoie 200 (pas a 3xx), so a plain curl -I que seulement
semble at code d’états va miss it — vous ont to inspect le corps et le Refresh
en-tête précisément.
Extract le destination avec a regex
Le content attribute packs le delay et URL ensemble as N;url=.... Ce pulls
out les deux:
curl -s https://example.com/old-page/ \
| grep -io 'content=["'"'"']*[0-9]\+; *url=[^"'"'"'>]*'
# → content="0;url=https://example.com/newlocation"Si le leading nombre est 0 it’s immédiate (permanente to Google); anything supérieur
que 0 est différée (temporaire).
XPath (pour a rendered DOM or an XML/HTML parser)
//meta[translate(@http-equiv,'REFSH','refsh')='refresh']/@contentLe translate() normalizes le attribute to lowercase so it matches
Refresh, REFRESH, or refresh.
Chrome DevTools console — inspect le actuel page
// Is there a meta refresh on this page, and where does it point?
const m = document.querySelector('meta[http-equiv="refresh" i]');
console.log(m ? m.getAttribute('content') : 'no meta refresh');Bookmarklet — flag meta actualisation on quelconque page you’re viewing
javascript:(()=>{const m=document.querySelector('meta[http-equiv="refresh" i]');alert(m?('Meta refresh: '+m.getAttribute('content')):'No meta refresh tag on this page');})();Enregistrer que as a bookmark; clicking it on quelconque page indique vous si a meta actualisation est
présent et its content valeur — handy pour spot-checking une URL avant l’actualisation
whisks vous away.
Two ordres, two différent questions
Meta actualisation apparaît in two redirection orderings que regarder contradictory jusqu’à vous nom le axis étant mesuré.
| Ordre | Question | Sequence | Ce que cela signifie |
|---|---|---|---|
| Navigateur execution | Qui mechanism fires en en premier lorsque plusieurs exist? | HTTP redirection → JavaScript → meta actualisation | Meta actualisation waits jusqu’à lune page charge; synchronous JavaScript peut run en en premier |
| Google fiabilité | Qui mechanism est Google la plupart probable to interpret correctement? | Serveur-side 301/308 → immédiate meta actualisation → JavaScript | Parsed HTML est plus dependable que a redirection que exige successful JavaScript rendering |
Utiliser le framework in three steps:
- Identifier le question. Debugging ce que le navigateur fait est an execution-ordre problem. Choosing an SEO migration mechanism est a fiabilité-ordre problem.
- Ne faites pas convert temporisation dans endorsement. JavaScript firing avant meta actualisation fait pas faire it Google’s preferred redirection méthode.
- Choisir le plus fort disponible couche. A réel redirection côté serveur permanente remains
le par défaut. Si serveur accès est genuinely unavailable, utiliser an immédiate (
0second) meta actualisation avec a canonical et visible fallback lien, alors replace it quand serveur contrôler becomes disponible.
Le même separation explique pourquoi an “immédiate” meta actualisation n’est pas network-immédiate: it adds zero delay seulement après le document charge, pendant que a serveur redirection arrives avant le document corps.
Testez vos connaissances: meta actualisation redirections
Five rapide questions on how meta actualisation fonctionne et où it fits. Pick an réponse pour chaque, alors vérifier.
Ressources utiles
Mes articles connexes
- Onze types de redirections et leur impact SEO (Ahrefs, avec Joshua Hardwick) — classement complet des redirections, dont la meta refresh à 0 seconde entre le serveur et JavaScript.
- Problèmes de SEO JavaScript et bonnes pratiques (Ahrefs) — enjeux du rendu et moindre fiabilité des redirections JavaScript.
- Qu’est-ce qu’une redirection meta refresh et pourquoi est-elle considérée comme un problème critique ? (centre d’aide Ahrefs) — présentation du signal d’audit ; l’affirmation “doesn’t pass link juice” (traduction) « ne transmet pas la popularité des liens » n’est étayée par aucune documentation Google.
My speaking
- How Search Fonctionne (SlideShare) — my walkthrough of exploration, rendering, indexation, et ranking, le pipeline a redirection côté client a to survive. (Standing disclaimer: “Ce est my understanding of systems… pas going to être 100% complete or accurate.”)
Autres ressources du secteur
- Redirections et recherche Google (Google Search Central) — source principale sur la distinction immédiate ou différée et l’ordre de préférence.
- Google indique que les redirections meta refresh fonctionnent, sans les recommander (Search Engine Roundtable) — Barry Schwartz relaie le tweet de Mueller et ses deux réserves.
- Google avertit que meta refresh peut conduire à indexer le mauvais contenu (Search Engine Journal) — cas où une page de paiement est indexée à la place du contenu réel.
- Redirections HTTP (MDN) — ordre de priorité d’exécution dans le navigateur, distinct de l’ordre SEO de Google.
- Redirections au moyen de meta refresh (Sitebulb) — méthode d’audit pour les trouver et les trier.
- Redirection interne avec meta refresh (Screaming Frog) — signalement par le robot d’exploration et niveau de gravité.
- Rediriger un site GitHub Pages avec cette astuce HTTP (Opensource.com) — exemple réel de meta refresh sur un hébergement statique sans accès au serveur.
Journal des modifications
Mis à jour le 21 août 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
-
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.