La balise meta Expires ne remplace pas le noindex

Expires

Il y a peu, j'ai eu un doute à la suite d'un commentaire concernant le meta tag "expires". Ce dernier pouvait-il permettre de désindexer une page passé une certaine date ? J'étais sceptique, mais peu sur de moi, je me suis donc lancé dans un petit test.

Le pire est qu'en commençant par me renseigner,  j'ai lu de tout sur cette balise. Comme quoi il faut parfois se méfier de ce que l'on trouve sur le web. Alors, cette balise meta, que fait-elle ?

Expires : késako ?

<meta http-equiv="expires" content="Sun, 04 May 2014 00:00:01 GMT"/>

Ce truc barbare, se place dans la partie <head> de la page.  La date est indiquée en anglais dans le format spécifique que j'ai indiqué. Le béotien déduira assez facilement que ce meta tag doit faire expirer un truc, mais quoi ?

Sur le web

En fouillant, j'ai tout de même assez vite trouvé des infos qui semblaient fiables, en revanche des dizaines de sites diffusent des articles qui prêtent largement à confusion.
On pourrait effectivement croire comme Antonin (mon commentateur) que cette meta indique aux moteurs qu'un contenu est expiré à compter d'une certaine date et de doit donc plus être indexé.

Petit florilège :

Chez ybet.be : que je remercie très vivement par ailleurs pour des publications très utiles.

meta expires

Dire aux robots de ne plus indexer la page

Chez metatags.info : là il est clairement stipulé que cette meta sert à la désindexation d'une page sur un moteur une fois la date dépassée

expiration

Déclarer aux moteurs quand le contenu expire

Chez moz.com : la réponse donnée à une question sur l'utilité de cette balise meta confirmerait que les moteurs doivent désindexer la page concernée.

Delete

Même réponse dans un forum réputé.

La vérité est-elle ailleurs ?

Oui, puisque cette balise sert avant tout à indiquer la date d'expiration du cache d'une page. En quelques mots on dit aux moteurs (et aux navigateurs) qu'ils n'ont pas besoin de récupérer une nouvelle version de la page sur le serveur. Ils peuvent utiliser celle qu'ils ont en cache jusqu'à la date indiquée. Ceci permet d'éviter de requêter systématiquement le serveur. Utile pour une page susceptible de recevoir des millions de visites sur un laps de temps donné.

Pour en savoir plus, je vous invite à lire cette excellente explication : http://www.mnot.net/cache_docs/index.fr.html

Mon petit test

Un peu têtu et par réflexe, j'ai testé en intégrant cette balise sur une page du site Baume-referencement.com

Une page publiée le 18 avril contient la meta suivante :
<meta http-equiv="expires" content="Tue, 29 Apr 2014 18:00:01 GMT" />
La date d'expiration est donc fixée au 29 avril à 18h00.

Le 1er mai, je fais un petit contrôle et je constate que :

  • Google est revenu mettre la page en cache le 30 avril à 05:49:11 GMT (peut-être un hasard, ce n'est qu'un test).
cache google

Date de la nouvelle mise en cache par Google

  • La page est toujours parfaitement indexée. Pour voir cette page, je vous invite à rechercher sur Google : Google envisage nouvelle page accueil

La page du Baume-referencement est toujours dans les résultats du moteur malgré la présence de la meta toujours en place (et contient toujours une petite blague)

Oui mais

Je dois avouer qu'une chose me turlupine toujours, car sur les pages de support de Google destinées à l'optimisation des vidéos, j'ai trouvé ceci :

meta expires pour vidéos

Une date d'expiration conseillée si justifiée

On peut donc supposer que dans le cas de la mise en place du balisage schema.org, Google prendrait en compte la directive ? En fait ce n'est pas très clair, car rien n'indique clairement ce que le moteur en fait. Je reste paumé. Quelqu'un a-t-il une explication ?

En conclusion

  • Attention à ce que vous pouvez lire sur le web. Il suffit qu'une personne publie une ânerie un jour pour qu'elle soit reprise à droite et à gauche sans vérification.
  • A la vue de ce test (que je vous invite à reproduire pour vérifier vous-mêmes) Google ne désindexe pas une page qui comporte cette balise meta. La solution passe donc visiblement uniquement par le noindex.

Article connexe :

http://www.webrankinfo.com/dossiers/indexation/expires-unavailable_after

(je recevrai un mail quand un article est publié (no spam)

10 thoughts on “La balise meta Expires ne remplace pas le noindex

  1. Marie-Aude

    L'indication de Google ne me parait pas incompatible avec la date d'expiration du cache.
    Il s'agit d'un point particulier, pour les vidéos. Google ne "crawle" pas la video elle même mais la page la contenant, qui peut toujours avoir un code d'embed même si la vidéo devient indisponible. Sur Youtube, il y a toujours une réponse de type "fichier vidéo" pour les vidéo indisponible. ça peut donc être un cas particulier où le moteur a besoin d'aide 🙂

  2. Christian MELINE

    Salut Sylvain,

    Deux choses :
    - cette instruction va avec sa sœur :de combat :" Last Modified",
    - il est très intéressant de coupler ces instructions en les plaçant aussi dans le header http.

    Selon mes expériences, mais qui datent un peu maintenant, cette balise permet au navigateur de ne pas recharger l'interface graphique d'un site par exemple mais cela ne concerne pas la page elle-même MAIS la version de la page. Passé la date d'expiration, tout est rechargé par le navigateur, systématiquement.
    Perso, j'utilise ces instructions de façon dynamique et non pas statique, en fontion de la date du jour. Ce qui évite de se prendre la tête 😉

  3. Wilfried

    Bonjour,
    même s'il est toujours utile de tester jusqu'au bout les choses établies, il me parait évident que cette meta indique clairement que le contenu n'est plus a jour. A partir de ce moment il est normal que le robot repasse sur le site pour vérifier si le contenu à changer. Aucune raison qu'il le désindexe.
    Pour pousser le test, il faudrait ôter tout contenu de la page à la date indiquée et regarder comment réagit Google. Ces deux informations (expiration et vidage) sonnerait peut être le glas de l'indexation de la page, mais j'en doute.

    Il est plus difficile (mais pas impossible), et plus rare, de mettre à jour un contenu vidéo, il parait donc logique que la meta indique ici que la vidéo n'est plus disponible. Pour sa désindexation je vais tester; mais je pense une fois de plus que le contenu de la vidéo doit être vide pour éventuellement ne plus être indexer.
    Wilfried

  4. alfred

    Vous avez trois manières classiques de passer une info de header :
    - via la config serveur. Votre .htaccess sous Apache. ExpiresByType par exemple.
    - via le PHP (ou autre.) header("Expires: Sat, 21 Jul 2014 01:00:00 GMT");
    - via une balise meta.

    Bref, exactement comme l'encodage de la page par exemple.

    Ceci signifie juste que la ressource identifiée (dans le cas d'une meta, la page html) doit être redemandée lorsqu'elle aura expirée.

    En général vous entrerez en conflit avec votre config serveur, qui cache rarement les fichiers html longtemps.

    Dans tous les cas une requête sera faite... et le robot la fera de même.

    Ça ne change donc RIEN en terme de SEO.

  5. Laurent Bourrelly

    En complément d'Alfred, tu n'as pas besoin de passer par le .htaccess. Via Apache (vhost) c'est beaucoup mieux. Surtout ne pas passer par la META !!!
    Inutile de goinfrer son code ou son htaccess de lignes inutiles.
    D'ailleurs, Apache a une config débile par défaut puisqu'elle indique une date d'expiration fixée en novembre 1981.
    J'ai fait ton test il y a 10 ans et je suis ravi de voir que ça ne change toujours rien.
    Après, c'est quand même bien de tout configurer comme il faut.
    Pour moi, les 3 directives serveurs indispensables pour le SEO sont Expires, IfModifiedSince et Cache-Control.

  6. Sylvain Auteur de l’article

    @ Marie-Aude
    Bien vu, l'explication est logique.

    @ Christian
    Oui, pour le navigateur, c'est ce que j'avais en tête avant de me lancer dans ce petit test.

    @ Alfred, Laurent
    Merci pour vos infos utiles.

  7. Christophe Maggi

    Hello,

    La balise meta http-equiv=expires ne concerne que le cache du navigateur (pas le cache de Google !) et n'a aucun rapport avec l'indexation ou la désindexation des pages dans les moteurs de recherche. L'exemple suivant empeche l'utilisation du cache : par ailleurs l'exemple donné dans l'article : n'est pas valide en HTML5, regardez la documentation du côté de Cache Manifest [http://www.w3.org/TR/html5/browsers.html#manifests].
    Les balises schema n'ont aucune interaction avec les balises meta. Les balises meta sont dans le header, les balises schema, englobe les éléments dans le body. L'expire que l'on rertouve dans le schema d'une vidéo par exemple ne concerne que la vidéo à laquelle elle se réfère, pas la page qui contient la vidéo, ni la page qui contient l'embedded (si il y en a un). Les balises schema sont encore peu utilisées et reconnues mais l'adoption s'améliore.
    Vous avez tout intéret (surtout en développement pour mobile) d'utiliser soit Cache Manifest soit une solution dynamique (PHP) pour générer dynamiquement des balises <meta http-equiv="expires" comme le dit Christian Méline.

  8. Jean-Sam

    "Il suffit qu’une personne publie une ânerie un jour pour qu’elle soit reprise à droite et à gauche sans vérification."
    C'est même un sport national !
    Heureusement que certain(e)s continuent à tester, avant de publier. #crédibilité

  9. Fabien

    J'ai publié un petit snippet il y a quelques semaines qui permet de passer automatiquement les liens d'une pages en noindex après un certain délai sous WordPress :

    Pour ce qui est de passer carrément la page elle-même en noindex ça se fait encore plus simplement en rajoutant un petit bout de code dans le header 😉

  10. Maurice Largeron

    Merci Sylvain pour ce post du lundi !

    ..et aux commentateurs pour leurs suggestions, je mets l'article au top de ce qui faut savoir en la matière de no index...
    Ah ce seo.....toujours un truc à vérifier..et aller au fond de ce même truc pour ne pas rester sur des fausses vérités..

    Merci encore !

Partagez sur :

Les commentaires sont fermés.