Premier affichage de contenu (FCP)

Ce que Premier affichage de contenu mesure, qu’est-ce que a bon FCP score, pourquoi il n’est pas a Core Web Vital, comment il differs depuis Premier Paint et LCP, et Comment corriger a lent un.

Première publication : 26 juin 2026 · Dernière mise à jour : 3 août 2026 · Avancé

Premier affichage de contenu (FCP) est le temps depuis quand une page commence chargement à quand quelconque partie de son contenu — texte, image, SVG, or non-white canvas — premier renders. Bon est ≤1,8 s à le 75th percentile de réel utilisateurs. Il n’est pas a Core Web Vital: le classement signaux sont LCP, INP, et CLS. FCP est a diagnostic metric (lab et champ) c’est a building bloquer de LCP — il se produit à or avant LCP — donc c’est mainly utile pour catching ressources qui bloquent le rendu et lent TTFB. Dans Lighthouse 10 c’est 10% de le Performances score. Corriger il par eliminating rendre-blocking CSS/JS, cutting TTFB, inlining critical CSS, en utilisant font-display: swap, et preconnecting à requis origins.

TL;DR — FCP est le temps depuis navigation commencer à quand quelconque page contenu (texte, image, <svg>, or non-white <canvas>) premier renders. Il est pas a Core Web Vital — c’est a supplementary, lab-et-champ diagnostic metric, et a building bloquer de LCP (FCP se produit à or avant LCP). Champ thresholds (p75): Bon ≤ 1,8 s, nécessite-improvement ≤ 3,0 s, poor > 3,0 s. Dans Lighthouse 10 c’est 10% de le Performances score. Parce que FCP’s clock commence à navigation — il inclut redirection temps, connection setup, et TTFB — lab (Lighthouse) et champ (CrUX) numbers souvent diverge. Corriger il où il lives: rendre-blocking CSS/JS premier, alors TTFB, alors fonts.

Ce que FCP measures (precisely)

Google’s definition, depuis Philip Walton’s web.dev article, est le accuracy spine ici: “Premier affichage de contenu (FCP) mesure le temps depuis quand le utilisateur premier navigated à lune page à quand quelconque partie de lune page’s contenu est rendu on le screen.” “Contenu,” per le même doc, signifie “texte, images (notamment background images), <svg> elements, or non-white <canvas> elements.”

Le word que fait tout le fonctionner est quelconque. FCP ne fait pas care ce que renders — a 40-pixel logo counts le même as a complet hero image. c’est le “is anything on screen yet?” signal, qui est exactly pourquoi c’est an early indicator plutôt que a completion metric.

Preuve à l’appui de cette affirmation FCP measures from navigation until the first text, image, SVG, or non-white canvas content is rendered. Portée : Current web.dev FCP definition and qualifying content types. Niveau de confiance : élevé · Vérifié : web.dev: First Contentful Paint

Un detail c’est facile à miss et changements comment vous lire le number: FCP’s clock commence à navigation, donc il bundles dans tout que se produit avant votre HTML est même parsed. Google’s propre Clé Point: “FCP inclut quelconque unload temps depuis le previous page, connection définir up temps, redirection temps, et Temps À Premier Byte (TTFB) qui peut être significant quand mesuré dans le champ.” A serveur que takes 1,5 s à respond a déjà burned la plupart de votre 1,8 s budget avant le navigateur a processed a unique byte.

FCP n’est pas a Core Web Vital

Let me être blunt à propos de ce parce que la plupart pages hedge il: FCP n’est pas a Core Web Vital et n’est pas partie de Google’s classement signaux. Le Core Web Vitals sont LCP, INP, et CLS — et FCP n’est pas mentioned anywhere on Google’s Recherche classement Core Web Vitals page.

Ce que FCP est, dans Google’s taxonomy, est an “Other Web Vital” — a supplementary metric c’est utile pour diagnosis. web.dev puts il ce façon: “le metrics Temps à Premier Byte (TTFB) et Premier affichage de contenu (FCP) sont les deux vital aspects de le chargement experience, et sont les deux utile dans diagnosing problèmes avec LCP (lent serveur réponse times or ressources qui bloquent le rendu, respectively).”

Donc le honest framing pour stakeholders est deux-sided, et vous devez state les deux halves sans flinching:

  • FCP ne fait pas affecter rankings directement. ne pas optimize FCP “pour SEO.”
  • FCP est a great diagnostic pour LCP, qui fait affecter rankings. Rendre-blocking resources montrer up dans FCP premier.

FCP vs Premier Paint (FP)

Ces obtenir conflated constantly:

«- First Paint (FP) fires when the browser paints anything at all — including a bare background color with no actual content. » (Traduction) (Résumé en français de la section trente-six, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- FCP fires only when eligible content renders: text, images (including background images), <svg> elements, or non-white <canvas> elements. That’s a specific, spec-defined list — not a loose “any DOM content” rule — and it’s worth keeping precise, since a background image counts even though it isn’t text in the DOM. » (Traduction) (Résumé en français de la section trente-six, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.)

Donc FP ≤ FCP, toujours. On la plupart pages ils sont nearly identical, parce que painting a background color avec aucun contenu on top est rare. Quand là est a meaningful gap, il généralement signifie a cosmetic background painted avant quelconque contenu réel a fait. Le Paint Timing API renvoie les deux first-paint et first-contentful-paint entries — mais FCP est le un worth analyzing; FP rarely indique vous n’importe quoi actionable.

FCP vs LCP

The autre pair personnes merge:

  • FCP = quand quelconque contenu paints. Fires early. Pourrait être a tiny logo or a nav lien.
  • LCP = quand le largest element dans le viewport renders. Fires à or après FCP.

Google’s wording: FCP mesure quand quelconque contenu est painted et LCP quand le principal contenu est painted, donc LCP est prévu à être plus selective. Lire que as “plus selective,” pas “certified correct” — aucun metric proves lune page’s réel principal contenu est complet or utile à le visitor. FCP simplement confirms quelque chose eligible painted; LCP confirms le largest eligible candidate a fait. Une page peut ont a rapide FCP (logo à 0,5 s) et a lent LCP (hero image à 4 s) — que gap est itself a utile diagnostic. Et si votre FCP est fermer à votre LCP, c’est souvent a bon sign: il signifie le premier chose painted est aussi le largest un, avec aucun wasted early-paint on chrome que ne fait pas matter à le utilisateur.

Preuve à l’appui de cette affirmation FCP answers when any eligible content first appears, while LCP tracks the largest eligible viewport candidate; neither metric proves the page's main content is complete or useful. Portée : field and lab Niveau de confiance : élevé · Vérifié : First Contentful Paint (FCP)

«One measurement oddity worth knowing: because of security restrictions on cross-origin image timing, the browser API can in rare cases report LCP earlier than FCP. That’s a measurement artifact, not something that physically happened. » (Traduction) (Résumé en français de la section quarante-deux, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«## Thresholds — and why lab and field disagree » (Traduction) (Résumé en français de la section quarante-trois, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«Field thresholds (CrUX, p75): Good ≤ 1.8 s · needs improvement ≤ 3.0 s · poor > 3.0 s. Google’s guidance is to measure at the 75th percentile of page loads, split across mobile and desktop.

Preuve à l’appui de cette affirmation A good FCP is 1.8 seconds or less at the 75th percentile; above 3 seconds is poor. Portée : Current web.dev FCP field thresholds. Niveau de confiance : élevé · Vérifié : web.dev: First Contentful Paint

» (Traduction) (Résumé en français de la section quarante-quatre, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

«But Lighthouse desktop uses different, stricter cutoffs — green is roughly 0–0.9 s, orange 0.9–1.6 s, red over 1.6 s — because the lab runs a clean, throttled Chrome on a simulated device, not real-world conditions. (Those bands, like the score weights below, are Lighthouse-version-specific — this reflects the current audit doc as of this writing.) The Lighthouse FCP score is “a comparison of your page’s FCP time and FCP times for real websites, based on data from the HTTP Archive.” » (Traduction) (Résumé en français de la section quarante-cinq, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

Ce is the unique la plupart courant source of FCP confusion, so internalize it:

Le 1,8 s “bon” line est le champ (CrUX p75) threshold. Lighthouse desktop’s “green” line est ~0,9 s. Ils sont différent scales pour différent jobs.

Champ et lab numbers diverge mainly parce que ils sample différent populations, pas parce que un est universally “plus true.” Lighthouse exécute a unique clean session on fixed device/network conditions. Champ/CrUX aggregates réel devices, réel networks, cache states, et navigation types — notamment back/forward-cache restores et prerendered pages, qui ne pas automatiquement obtenir a fresh FCP le façon a normal navigation fait; ils besoin leur propre lifecycle handling (le web-vitals library fait ce pour vous). On la plupart sites le champ number fait lire plus élevé — réel utilisateurs carry chaîne de redirectionss, previous- page unload temps, et cold connections a lab exécuter skips — mais c’est a tendency, pas a règle. Avant reading a lab/champ gap as a problème, vérifier vous êtes comparing like-pour-like (même device class, même network conditions). Utiliser champ données pour votre real-world number et Lighthouse pour diagnosis.

Où FCP sits in the Lighthouse score

Dans Lighthouse 10 — le actuel version as de ce writing, pas a permanent figure — FCP est 10% de le Performances score. Le complet weighting:

MetricWeight
Total Blocking Temps (TBT)30%
Plus grand affichage de contenu (LCP)25%
Décalage cumulatif de mise en page (CLS)25%
Premier affichage de contenu (FCP)10%
Speed Index10%

Le Performances score est a weighted average de le individual metric scores, et Google notes le weightings modifier over temps as leur research evolves — FCP a held à 10% depuis Lighthouse 8 via 10, mais confirmer contre whatever version vous êtes running avant treating “10%” as timeless. Le practical lire: a perfect FCP peut seulement déplacer votre Lighthouse number donc far — et a mauvais FCP souvent points à a mauvais LCP aussi (ils share root causes), though c’est an overlap worth checking, pas quelque chose le score guarantees.

Ce que causes a slow FCP

In rough priority order:

  1. Ressources qui bloquent le rendu — le #1 killer. CSS et synchronous JS dans <head> force le navigateur à wait: il ne peut pas construire le CSSOM et rendre tree, donc il ne peut pas paint n’importe quoi, jusqu’à ceux fichiers sont downloaded et parsed.
  2. Élevé TTFB — FCP ne peut pas fire avant bytes arrive. A lent serveur est le premier domino, et c’est à l’intérieur le FCP measurement.
  3. Chaîne de redirectionss — chaque redirection est a complet round-trip ajouté avant le premier byte.
  4. Webfont chargement stratégie — font-display: block (or aucun règle) peut laisser texte invisible pour up à ~3 seconds. Même si paint technically fires on a background, le utilisateur voit rien utile.

Comment corriger it

Le complet liste, mais avec a priority order le docs ne pas donner vous. Ces sont le courant levers, pas universal ones — vérifier votre propre trace or filmstrip premier à voir qui resource or phase est en réalité delaying votre FCP candidate avant reaching pour corrections (preconnect, preload, a font-display modifier) que peut pas appliquer à votre page:

Do ces premier (biggest wins):

  • Eliminate rendre-blocking CSS et JavaScript. Inline le critical, ci-dessus-le-fold CSS directement dans <head>; charger le rest asynchronously; ajouter async/defer à non-critical scripts. Repositioning a <link> balise fait pas aider — le navigateur ne va pas paint jusqu’à tout CSS est chargé et parsed regardless de où le balise sits.
  • Reduce TTFB (serveur réponse temps). Mise en cache, a CDN, a faster origin — n’importe quoi que obtient le premier byte out sooner directement shaves FCP.
  • Corriger font chargement. Utiliser font-display: swap (montre fallback texte immédiatement, swaps dans le web font quand ready) or font-display: optional (skips le web font si il n’est pas déjà mis en cache). Éviter font-display: block pour critical texte — c’est le worst pour FCP.

Alors tidy up the rest:

  • Preconnect à requis origins avec <link rel="preconnect"> — establishing early connections à important tiers origins peut enregistrer 100–500 ms.
  • Preload clé requêtes (<link rel="preload">) pour a critical font or le LCP image.
  • Minify CSS, supprimer unused CSS, supprimer unused JavaScript — plus petit fichiers parse et unblock paint faster.
  • Éviter plusieurs redirections, éviter enormous network payloads, servir static assets avec an efficient cache policy, éviter an excessive DOM size, et minimize critical requête depth. General payload hygiene que tout feeds premier paint.

Le FCP → TTFB → LCP diagnostic chain

Ce est comment je voudrais en réalité utiliser FCP, et c’est le framing le docs gesture à mais ne pas develop. Treat le three chargement metrics as un workflow:

  1. FCP est élevé → vérifier pour ressources qui bloquent le rendu (CSS/JS dans <head>). c’est le la plupart courant causer et le fastest win.
  2. Aussi vérifier TTFB — parce que FCP inclut il, a lent serveur inflates FCP avant quelconque rendre-blocking même enters le picture. web.dev’s guidance: parce que TTFB precedes les deux FCP et LCP, votre serveur devrait respond rapide suffisant que le 75th percentile de utilisateurs hit a “bon” FCP.
  3. Ces même problèmes souvent cascade dans LCP — le metric c’est en réalité a classement signal — parce que FCP et LCP frequently share root causes. c’est an overlap worth checking, pas a guarantee: LCP a factors de son propre (le size, priority, et charger chemin de son spécifique largest element), donc fixing FCP’s causes ne fait pas promise a fixed LCP. c’est le correct premier placer à regarder, pas le dernier étape.

c’est le valeur de FCP pour an SEO: c’est a cheap, early lire on si le chargement chemin est sain, avant le plus selective LCP measurement même completes.

Ajouter une note d’expert

Épingler une citation d’expert

Nouvelle personne ? Créez son profil non revendiqué à /admin/experts/ → Épingler une citation d’expert d’abord.