Déploiements
La vérification part avec le déploiement, pas au prochain cycle
Une sonde qui passe toutes les 5 minutes vous apprend une régression 5 minutes trop tard. PostShip se déclenche sur votre mise en ligne, puis revient 2 fois.
Déploiements
La vérification part avec le déploiement, pas au prochain cycle
Une sonde qui passe toutes les 5 minutes vous apprend une régression 5 minutes trop tard. PostShip se déclenche sur votre mise en ligne, puis revient 2 fois.
9f3c2e1 · fix: marges du header
- Cloning github.com/vous/votre-site (main)
- Installing dependencies
- Building
- Compiled successfully
- Deploying outputs
- Webhook deployment.ready → PostShip
9f3c2e1 reçu à 16:02:40
- /en file
- /tarifsen file
- /checkouten file
- /blogen file
- /contacten file
Acte 1 · Le push
16:02. Un correctif de style.
3 lignes de CSS, et un fichier renommé au passage. Rien qui ressemble à un risque.
git push.
Le correctif part sur main, comme des dizaines d'autres avant lui.
Le build passe au vert.
L'hébergeur compile, déploie et répond « Ready ». Rien dans ce journal ne lit la page que vos clients vont ouvrir.
Et prévient PostShip.
Vercel, Netlify ou Cloudflare Pages, branché une fois depuis l'app : l'événement de déploiement arrive dans la seconde, et les pages surveillées partent en file.
Acte 1 · Le push
16:02. Un correctif de style.
3 lignes de CSS, et un fichier renommé au passage. Rien qui ressemble à un risque.
git push.
Le correctif part sur main, comme des dizaines d'autres avant lui.
Le build passe au vert.
L'hébergeur compile, déploie et répond « Ready ». Rien dans ce journal ne lit la page que vos clients vont ouvrir.
Et prévient PostShip.
Vercel, Netlify ou Cloudflare Pages, branché une fois depuis l'app : l'événement de déploiement arrive dans la seconde, et les pages surveillées partent en file.
styles/header.css
- .header { margin: 0 24px; }
+ .header { margin: 0 auto; }
js/pay-loader.js → js/pay.js
$ git commit -am "fix: marges du header"
[main 9f3c2e1] fix: marges du header
2 files changed, 1 insertion(+), 1 deletion(-)
$ git push origin main
To github.com:vous/votre-site.git
4b1d7a0..9f3c2e1 main -> mainBrancher une fois, ne plus y penser
3 réglages, puis plus rien à faire : chaque mise en ligne déclenche la vérification, sans une ligne dans votre CI.
Votre hébergeur
Vercel, Netlify ou Cloudflare Pages, depuis les réglages du projet. Sur Vercel, l'intégration permet aussi le retour arrière.
Vos pages
Celles qui comptent : l'accueil, les tarifs, le paiement. 5 URLs sur Découverte, 25 URLs sur Pro, 100 URLs sur Pro Plus.
Vos canaux
L'email, Slack et Discord pour tous les plans ; un webhook signé à partir de Pro.
Réglages · Intégrations
- VercelBranché · retour arrière possible
- NetlifyBrancher
- Cloudflare PagesBrancher
Acte 2 · Les passages
16:02:41. T+0.
La vérification part dans la seconde qui suit la mise en ligne : les 5 URLs surveillées, demandées tout de suite.
5 pages, 6 contrôles chacune.
La page et ses ressources, l'indexabilité, la carte sociale, le sitemap, le certificat et la lisibilité par les moteurs de réponse.
/checkout ne passe pas.
La page répond 200 en 184 ms. Une sonde de disponibilité s'arrêterait là, au vert.
On entre dans la page.
Le récapitulatif, le prix, le bouton. Et l'emplacement du paiement, qui reste vide.
Dans son HTML.
Tel que le serveur l'envoie. Une ligne charge le script de paiement.
/js/pay-loader.js
PostShip demande aussi chaque ressource que la page appelle.
404.
Le correctif a renommé le fichier ; la page, elle, l'appelle encore par son ancien nom. Elle s'affiche, le paiement ne se charge plus.
Vu à T+0, 1 seconde après la mise en ligne.
Une sonde voit 5 pages en 200. PostShip voit une ressource en 404 sur la page qui encaisse.
Acte 2 · Les passages
16:02:41. T+0.
La vérification part dans la seconde qui suit la mise en ligne : les 5 URLs surveillées, demandées tout de suite.
5 pages, 6 contrôles chacune.
La page et ses ressources, l'indexabilité, la carte sociale, le sitemap, le certificat et la lisibilité par les moteurs de réponse.
/checkout ne passe pas.
La page répond 200 en 184 ms. Une sonde de disponibilité s'arrêterait là, au vert.
On entre dans la page.
Le récapitulatif, le prix, le bouton. Et l'emplacement du paiement, qui reste vide.
Dans son HTML.
Tel que le serveur l'envoie. Une ligne charge le script de paiement.
/js/pay-loader.js
PostShip demande aussi chaque ressource que la page appelle.
404.
Le correctif a renommé le fichier ; la page, elle, l'appelle encore par son ancien nom. Elle s'affiche, le paiement ne se charge plus.
Vu à T+0, 1 seconde après la mise en ligne.
Une sonde voit 5 pages en 200. PostShip voit une ressource en 404 sur la page qui encaisse.
<!doctype html>
<html lang="fr">
<head>
<title>Paiement · votre-site.com</title>
<link rel="stylesheet" href="/css/site.css">
<script src="/js/pay-loader.js" defer></script>
</head>
<body>
<main class="checkout">
<h1>Paiement</h1>
<div id="payment"></div>
<button>Payer 34 €</button>
GET /js/pay-loader.js HTTP/2
host: votre-site.com
accept: */*
HTTP/2 404
content-type: text/html; charset=utf-8
date: 23 sept. 2026 16:02:41Ce que chaque passage lit, sur chaque URL
Pas une capture d'écran : la page telle que le serveur l'envoie. 6 contrôles, à la mise en ligne, à T+2 et T+8, puis à chaque passage de votre cadence.
La page et ses ressources
Le statut, le temps de réponse, et chaque script, feuille de style ou image qu'elle appelle.
L'indexabilité
Ce qui la sortirait des moteurs de recherche : un noindex, un canonical qui pointe ailleurs.
La carte sociale
Le titre, la description et l'image qu'affichent les réseaux quand on partage le lien.
Le sitemap
Présent, et lisible par les moteurs.
Le certificat
Valide, et le nombre de jours qu'il lui reste.
Les moteurs de réponse
Ce que ChatGPT, Perplexity et les autres peuvent lire de la page.
votre-site.com — /checkout : /js/pay-loader.js répond 404 depuis le déploiement 9f3c2e1.
Cause probable : le déploiement 9f3c2e1 (16:02:40), « fix: marges du header ».
votre-site.com — /checkout : /js/pay-loader.js répond 404 depuis le déploiement 9f3c2e1.
Cause probable : le déploiement 9f3c2e1 (16:02:40), « fix: marges du header ».
votre-site.com — /checkout : /js/pay-loader.js répond 404 depuis le déploiement 9f3c2e1.
Cause probable : le déploiement 9f3c2e1 (16:02:40), « fix: marges du header ».
{
"event": "fail",
"projectName": "votre-site",
"items": [{
"url": "https://votre-site.com/checkout",
"httpStatus": 200,
"missing": ["asset:404:/js/pay-loader.js"]
}]
}Déploiements · votre-site
- 9f3c2e1fix: marges du header16:02:40En échecRevenir en arrière
- 4b1d7a0feat: page contact15:41:08Vérifié bon
Remettre en ligne 4b1d7a0, le dernier déploiement vérifié bon ?
T+2 · 16:04:41 · 5 sur 5
T+8 · 16:10:41 · 5 sur 5
- 16:02:41échec sur /checkout
- 16:02:42alerte
- 16:03:14retour arrière
- 16:04:41rétabli
Acte 3 · Le retour
16:02:42. L'alerte part.
Sur chaque canal branché, en même temps, une seule fois : pas un message par passage.
Avec sa cause probable.
Un déploiement dans la minute qui précède un échec est le premier suspect : l'alerte le nomme, commit compris.
Le retour arrière, à un lien.
Sur la page Déploiements de l'app : le dernier déploiement que PostShip a vu passer, et un bouton pour le remettre en ligne. Sur Vercel, où l'intégration a la main.
Tout repart en arrière.
Vercel repointe vos domaines vers 4b1d7a0, vérifié bon à 15:41. Rien n'est reconstruit : quelques secondes.
16:04:41. T+2.
Le passage prévu 2 minutes après la mise en ligne trouve les 5 pages au vert. /checkout charge de nouveau son script.
16:10:41. T+8. C'est tenu.
Dernier passage prévu, dernier vert. L'incident se referme et garde sa chronologie, de l'échec au retour.
Acte 3 · Le retour
16:02:42. L'alerte part.
Sur chaque canal branché, en même temps, une seule fois : pas un message par passage.
Avec sa cause probable.
Un déploiement dans la minute qui précède un échec est le premier suspect : l'alerte le nomme, commit compris.
Le retour arrière, à un lien.
Sur la page Déploiements de l'app : le dernier déploiement que PostShip a vu passer, et un bouton pour le remettre en ligne. Sur Vercel, où l'intégration a la main.
Tout repart en arrière.
Vercel repointe vos domaines vers 4b1d7a0, vérifié bon à 15:41. Rien n'est reconstruit : quelques secondes.
16:04:41. T+2.
Le passage prévu 2 minutes après la mise en ligne trouve les 5 pages au vert. /checkout charge de nouveau son script.
16:10:41. T+8. C'est tenu.
Dernier passage prévu, dernier vert. L'incident se referme et garde sa chronologie, de l'échec au retour.
- 16:02:41échec sur /checkout
- 16:02:42alerte
- 16:03:14retour arrière
- 16:04:41rétabli
Selon le plan
Tous les plans vérifient à la mise en ligne. Ce qui change : la cadence entre deux passages, le nombre d'URLs, les canaux et la mémoire.
Découverte
- Entre deux passages
- 5 min
- URLs surveillées
- 5
- Canaux d'alerte
- Email, Slack, Discord
- Historique
- 7 jours
Pro
- Entre deux passages
- 2 min
- URLs surveillées
- 25
- Canaux d'alerte
- Email, Slack, Discord, webhook sortant
- Historique
- 30 jours
Pro Plus
- Entre deux passages
- 1 min
- URLs surveillées
- 100
- Canaux d'alerte
- Email, Slack, Discord, webhook sortant
- Historique
- 90 jours
Le même incident, vu par une sonde
Une sonde de disponibilité demande une adresse et regarde son statut. C'est utile, et c'est tout ce qu'elle voit.
| Une sonde de disponibilité | PostShip | |
|---|---|---|
| Quand elle passe | À son rythme, toutes les quelques minutes | À la mise en ligne, puis à T+2, T+8 et à votre cadence |
| Ce qu'elle demande | L'adresse, et son statut | La page, ses ressources, ses balises, son certificat |
| Ce qu'elle a vu à 16:02 | 200 sur les 5 pages | /js/pay-loader.js en 404 sur /checkout |
| Ce qu'elle en dit | Rien | L'alerte, sa cause probable, et le retour arrière |
Avant, après, et ce qui a changé
À chaque mise en production, PostShip ouvre vos 3 premières pages dans le Chrome mobile de PageSpeed : une capture, le score Lighthouse, le LCP, le CLS et le temps de blocage. Puis il compare au déploiement précédent, pixel à pixel. Un statut 200 ne dit pas qu'un bouton est devenu gris.
Performance et apparence
https://boutique-corail.fr/lampe-corail
Rendu modifié de 14 % (haut de page, milieu) — au-delà du seuil du projet
Vous fixez la limite, PostShip prévient
Sans réglage, la comparaison reste visible sur l'écran du déploiement et ne réveille personne. Les mesures tournent sur tous les plans ; la comparaison pixel à pixel, le seuil et le budget sont en Pro et Pro Plus.
Un seuil de rendu
5 % de pixels changés, par exemple : au-delà, l'alerte part sur vos canaux et le Ship Score perd une ligne.
Un budget de performance
Un score Lighthouse plancher, un LCP maximal. Franchi, c'est une ligne au barème, quel que soit le nombre de pages lentes.
Des zones masquées
Un carrousel, une date, un compteur de stock : masquez la zone sur la fiche de l'URL, elle ne compte plus dans la comparaison.
Les previews aussi
Une préversion est comparée à la dernière capture de production : vous voyez ce que la pull request change avant de la fusionner, sans alerte ni note.