optimisation core web vitals 7 min

Office 365 : créer une boîte partagée pour vos alertes Core Web Vitals

Centralisez les rapports de performance sans éparpiller l'info. Guide pas à pas pour configurer une boîte aux lettres partagée Office 365 dédiée au monitoring Web Vitals.

Par Julien Morel
Partager

Sur un projet e-commerce avec 14 propriétaires de route, on a failli rater un LCP passé de 2,1s à 3,8s en une nuit. L’alerte Lighthouse avait atterri dans la boîte personnelle d’un dev en congé. L’incident a duré 72 heures parce que le rapport n’était visible nulle part ailleurs. Cette défaillance n’a rien d’un bug réseau ou d’un couac API : c’est un problème de tuyauterie de messagerie que personne n’avait pensé à industrialiser.

On a fini par créer une boîte aux lettres partagée dans Office 365 qui centralise chaque notification de performance. Aucune licence supplémentaire. Aucun routage exotique. Le mécanisme est natif à Exchange Online, mais sa documentation officielle est pensée pour des cas d’usage « service commercial » ou « service client ». Nous, on l’a détournée pour l’observabilité.

La page « Équipes et groupes » est le seul point d’entrée à connaître

Ouvrez le centre d’administration Exchange. Pas le portail Azure Entra, pas l’admin Microsoft 365 généraliste : l’interface Exchange Admin, accessible depuis admin.exchange.microsoft.com. Une fois dedans, direction Destinataires puis Groupes. Cliquez sur Ajouter un groupe, et surtout, choisissez le type Boîte aux lettres partagée. Si vous prenez « Groupe Microsoft 365 », vous héritez d’un espace SharePoint et d’une Teams attachée, ce qui alourdit l’objet pour zéro bénéfice sur notre besoin.

Donnez-lui un alias explicite. Sur notre dernier projet, on a utilisé [email protected]. Pas de nom à rallonge, pas de caractère spécial : les scripts Lighthouse et les webhooks vont devoir le cibler sans qu’un underscore casse leur parser.

Déléguez « Envoyer en tant que » sans transformer la boîte en passoire

Une fois la boîte créée, elle apparaît dans la liste des destinataires. Sélectionnez-la, puis ouvrez l’onglet Délégation. Deux colonnes vous regardent : « Envoyer en tant que » et « Envoyer de la part de ». La première est celle qui nous intéresse. C’est elle qui autorise un compte de service, ou votre propre compte, à pousser un email sortant avec l’adresse collective comme expéditeur.

Ajoutez les comptes qui doivent pouvoir émettre des alertes. Typiquement, le compte de service qui tourne vos audits Lighthouse CI, celui qui exécute le script Node.js de synthèse des métriques, et peut-être le vôtre pour les envois manuels pendant un debug. Ne mettez pas « Tout le monde » ; Office 365 interprète ce groupe comme l’ensemble des utilisateurs de votre tenant, ce qui ouvre la boîte à toutes les applications enregistrées.

⚠️ Attention : Si vous oubliez cette étape, tout envoi SMTP depuis un script externe utilisant la boîte partagée comme from sera silencieusement rejeté. Vous ne verrez pas de bounce dans votre client mail habituel, il faudra fouiller les traces de quarantaine.

La délégation « Accès total » permet de lire les mails reçus, de les classer, de les marquer comme lus. Elle ne donne aucun droit d’émission. On revient trop souvent sur cette confusion quand un nouveau membre de l’équipe ne comprend pas pourquoi son envoi de rapport a échoué.

Le piège du forwarding : pourquoi une vraie boîte partagée vaut mieux qu’une redirection

On a vu des équipes configurer une redirection depuis une boîte nominative vers trois adresses perso, en pensant économiser du temps. Six mois plus tard, la personne qui possédait la boîte d’origine a quitté la société, son compte a été désactivé, et la règle de transfert a sauté avec lui. L’historique des rapports CrUX, les snapshots de LCP hebdomadaires, les logs d’erreur JavaScript : tout a disparu.

Une boîte aux lettres partagée existe indépendamment de tout compte utilisateur individuel. Même si le dernier admin qui l’a créée quitte l’organisation, la boîte persiste tant qu’un autre détenteur du rôle « Administrateur Exchange » ne la supprime pas manuellement. Pour de la rétention long terme de vos données de performance, c’est le seul niveau de résilience acceptable sans monter un archivage automatisé hors Exchange.

Branchez vos outils de monitoring sur l’adresse collective

Un exemple concret avec Lighthouse CI. Dans votre configuration lighthouserc.js, la propriété upload.target peut pointer vers un serveur, mais vous pouvez aussi déclencher un envoi d’email après chaque run, via un simple script Node. Nous, on utilise une fonction sendAlertIfRegression qui interroge l’API du LHCI server, compare les scores, et si la régression dépasse 5 %, elle appelle l’API Microsoft Graph avec l’expéditeur positionné sur la boîte partagée.

const mail = {
  message: {
    subject: `Régression LCP sur ${url}`,
    body: { contentType: 'Text', content: rapport },
    from: { emailAddress: { address: '[email protected]' } },
    toRecipients: [{ emailAddress: { address: '[email protected]' } }]
  },
  saveToSentItems: false
}

await client.api('/users/[email protected]/sendMail').post({ mail })

Le saveToSentItems: false évite de saturer le dossier « Éléments envoyés » de la boîte partagée. Après un week-end de 1 400 audits automatiques, vous apprécierez de ne pas avoir à purger manuellement.

La même logique s’applique aux webhooks Google Search Console. Quand une détection d’anomalie Core Web Vitals est remontée, la Search Console peut envoyer une alerte par email. Si cette alerte part sur une boîte perso, vous perdez l’horodatage croisé avec vos propres métriques. Sur la boîte partagée, chaque notification de la Search Console arrive dans le même fil que les rapports internes. Le rapprochement devient immédiat : une alerte externe déclenchée à 22h14 et un script interne qui détecte la même dérive à 22h16, c’est un début de confirmation en deux minutes chrono. Là où, avant, on perdait une heure à se transférer des emails en se demandant qui avait reçu quoi.

Quand on couple cette adresse à un état global, le debug s’accélère

Cas vu sur une app React : un sélecteur trop large côté state management React avec Zustand faisait re-render la moitié de l’arbre, le LCP dérapait. L’alerte arrive dans la boîte partagée, pas dans celle du lead front qui benchait ce jour-là Claude Code et Cursor IDE sur un autre projet. Le bon dev attrape le ticket en vingt minutes au lieu d’attendre qu’on lui transfère une capture tronquée.

Ce que change la boîte partagée pour vos rituels Core Web Vitals

Une revue hebdomadaire des métriques devient un exercice de lecture collective. Chaque lundi matin, les membres de l’équipe « performance » se connectent à la même boîte. Ils voient les mêmes alertes, dans le même ordre, avec les mêmes pièces jointes. La réunion de 30 minutes qui démarrait par « qui a reçu le dernier rapport CrUX ? » n’existe plus. On ouvre Outlook pour la Web, on filtre par date, on lit.

Le second effet, c’est une traçabilité réglementaire quand le site tombe sous le coup d’un audit de performance contractuel. Nous avons déjà présenté un dossier où l’adresse [email protected] contenait 18 mois de rapports quotidiens, sans aucune rupture de continuité. Aucun collaborateur n’avait archivé en local, aucune règle Outlook n’avait effacé les éléments. L’intégralité de l’historique a été exportée via une recherche de contenu dans le centre de conformité Microsoft 365. Pour un site qui doit prouver une amélioration continue de ses Core Web Vitals, l’historique tient seul.

Questions fréquentes

La boîte aux lettres partagée peut-elle envoyer un email automatique sans intervention humaine ? Oui, à condition qu’un compte autorisé (utilisateur ou application avec les bonnes permissions Microsoft Graph) utilise la délégation « Envoyer en tant que ». La boîte elle-même n’est pas un expéditeur autonome, mais vos scripts en délégation le sont. C’est exactement ce qu’on fait avec Lighthouse CI.

Faut-il une licence supplémentaire ? Non. Une boîte aux lettres partagée ne consomme pas de licence. Les utilisateurs qui y accèdent doivent être licenciés, ce qui est déjà le cas dans un abonnement Microsoft 365 standard. La seule limite concerne la taille : en dessous de 50 Go, la boîte partagée est gratuite ; au-delà, il faut une licence Exchange Online Plan 2 affectée.

Est-ce que la boîte partagée peut capter les erreurs de déploiement liées au rendu AMP ? Si votre pipeline envoie une alerte email à chaque échec de validation AMP, la boîte la reçoit comme n’importe quel autre destinataire. Elle devient un réceptacle pour vos validateurs AMP server-side, vos logs de build, et vos notifications Google AMP Test. L’important est de paramétrer vos outils pour qu’ils pointent vers cette adresse unique.

Articles similaires

Julien Morel

Julien Morel

Ancien dev front React passé SEO technique après une migration e-commerce qui a fait perdre 60% du trafic organique à son employeur en une nuit (fichier robots.txt oublié en staging). Depuis, il écrit pour que ça n'arrive à personne d'autre et teste sur ses propres side-projects avant de publier quoi que ce soit.

Cet article est publie a titre informatif. Faites vos propres recherches avant toute decision.