L’en tête http if-modified-since

Vous allez me dire c’est quoi ce charabia ? En résumé l’en tête http if-modfied-since est utilisé par le robots d’indexation de Google pour savoir si la page a été modifiée depuis sa dernière visite.

Avant de débuter votre lecture, si vous souhaitez améliorer le SEO de votre boutique en ligne, téléchargez gratuitement notre livre blanc seo.

Livre blanc seo

Comment ça fonctionne ?

Pour afficher une page web il faut que le navigateur envoie une requête http au serveur. Le serveur analyse cette requête et y répond en conséquence.

L’en tête if-modified-since ajoute une condition à la requête en lui demandant de vérifier la date de dernière modification du fichier avec la date donné en arguments de if-modified-since. Si cette dernière est plus récente que la date de dernière modification cela signifie que le fichier n’a pas été modifier le serveur renvoie alors un code 304 ce qui indique que le fichier peut être récupéré à partir du cache. Dans le cas contraire le serveur renvoie un code 200 et le fichier sera téléchargé.

Pourquoi google utilise t’il if-modified-since ?

La réponse est très simple, Google n’aime pas gaspiller du temps et de la bande passante. En effet, savoir immédiatement qu’une page n’a pas été modifiée lui permet de ne pas la réenregistrer dans son cache, il peut alors immédiatement passé à la page suivante et gagne ainsi du temps.

Qu’est ce que ça apporte en terme de référencement ?

A priori, l’en tête if-modified-since permet à Google de mieux indexer les pages des sites qu’il visite et donc améliore leur référencement naturel.
Le robots d’indexation de google met souvent à jour son cache pour les pages ayant des modifications régulières par contre le cache des pages moins actives ne pourra pas facilement bénéficier d’un rafraichissement.

On peut donc supposer que configurer son serveur de manière à ce qu’il gère correctement les requêtes if-modified-since facilitera la mise à jour du cache pour les pages qui n’ont pas souvent de modification.

De plus vous économisez votre propre bande passante car vous n’imposez pas le téléchargement systématique de vos fichiers.

Le cas des fichiers dynamiques.

Lorsque vous envoyez un fichier sur votre serveur celui-ci enregistre sa date de dernière modification et c’est par rapport à cette date que sera fait la vérification avec celle fournis par if-modified-since. Par conséquent on peut entrevoir un problème. En effet, si pour vos pages statiques (programmées en HTML) cela ne posera aucun soucis, pour vos pages dynamiques (php ou autres..) c’est une autre histoire. Le principe d’une page dynamique est d’être mises à jour sans avoir à toucher son code. Le serveur n’a donc aucun moyen de savoir que cette page a été mise à jour, il ne changera donc pas la date de dernière modification et la requête if-modified-since se basera sur une date erronée.

Pour palier à ce problème Il faut donc prévoir un code php capable de repérer la requete if-modified-since, d’en extraire la date fournis, de la comparer avec la date de dernière modification réelle (que vous devrez fournir vous même par exemple à l’aide d’une base de données), et de renvoyer selon le cas soit un code 304 soit un code 200 dans le header.

Subscribe
Recevoir un email pour
guest

5 Commentaires
Inline Feedbacks
View all comments
DSampaolo
DSampaolo

Bonjour,

Tous les serveurs gérant le protocole HTTP/1.1 sont théoriquement capables de gérer les entêtes comme if-modified-since.
Apache, par exemple, les gère très bien: enregistrez un fichier avec l’extension .html par exemple et regardez les entêtes renvoyées (avec FireBug sous FireFox par exemple, onglet « Réseau »).

Les fichiers dynamiques (php, asp et consorts) n’ont, eux, pas d’entête « Last-Modified ». Ils renvoient toujours un code 200 (OK), donc Google et les autres moteurs les téléchargeront à chaque passage.

Il faudrait en effet se pencher sur les solutions permettant, non pas de retirer ces entêtes, mais plutôt de les forcer, pour que les moteurs ne gaspillent pas votre bande passante.

Cordialement :)

Sohbet
Sohbet

Les fichiers dynamiques (php, asp et consorts) n’ont, eux, pas d’entête “Last-Modified”. Ils renvoient toujours un code 200 (OK), donc Google et les autres moteurs les téléchargeront à chaque passage.

Sophie
Sophie

Merci pour ces explications et pour le site de vérification, c’est très pratique et facile ! Niveau référecement je trouve ça assez interressant comme développement ;-) Ravie d’être tombée sur ton site, c’est plein de très bons conseils.

Fred
Fred

Excellente page, riche en informations précises.
A + !

Colin
Colin

Merci vraiment, je ne savait pas du tout que les mise à jours et les modifications de pages étaient vérifiable.

Perso, je suis chez 1and1 et ça à l’aire bon.