LCP image origin on React sites

Serving the hero image from your own domain versus an external image CDN: how a separate connection adds 38 ms of resource load delay (442 ms vs 404 ms) and when <link rel="preconnect"> pays it back.

Field data PhoneDesktopAll Scope All sites October 2026 edition · Phone field outcomes · React sites only
React Scoped to 9,570 sites out of 210,902 analyzed (frameworks) Compare with all sites →

72.0% of React sites use third-party LCP image hosting, and 91% of those sites have a good LCP, against 84% of all React sites.

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
1

LCP pass rate

Sites with third-party LCP image hosting have a good LCP most often: 91%, against 84% of all React sites. Sites with first-party image hosting have it least often, at 67%.

SitesGood, needs improvement, poor LCPMedian
All React sites5,48884%1.4s
Third-party domain 72.0%2,92291%1.2s
Same-origin / first-party 28.0%1,24367%2.0s
GoodNeeds improvementPoorSites: with Chrome field data
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
2

LCP image hosting usage

Third-party is the most used: 72.0% of React sites.

Third-party domain 72.0% Same-origin / first-party 28.0%
Third-party domain 72.0% Same-origin / first-party 28.0%
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
3

Where third-party LCP images lose and win time: the four LCP phases

Across the four LCP sub-parts in Chrome's field data, the largest gap between third-party and first-party sits in time to first byte (TTFB): 428 ms median for third-party against 1100 ms for first-party. Overall median field LCP is 1.2s for third-party (TTFB 428 ms, load delay 442 ms, load duration 121 ms, render delay 159 ms) versus 2.0s for first-party.

Median LCP phase breakdown (Chrome field p75) Load delay Median LCP
React sites with LCP image hosting 3,277510 ms433 ms433 mslab 437 ms1.4s
Same-origin / first-party 1,0061100 ms404 ms265 ms404 mslab 383 ms2.0s
Third-party domain 2,271428 ms442 ms442 mslab 451 ms1.2s
TTFB Resource load delay Resource load time Element render delay
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
4

LCP image origin combined with preconnect and priority hints

Combining third-party with Highprio reaches 94% good LCP across 1,657 sites (454 ms median load delay). At the other end, first-party paired with None sits at 65% across 978 sites (456 ms median load delay).

Image origin No priority hint <link rel="preconnect"> fetchpriority="high" <link rel="preload">
Same-origin / first-party
65% 456 ms delay 1,613 sites
few sites
75% 210 ms delay 295 sites
70% 207 ms delay 100 sites
Third-party domain
89% 396 ms delay 1,852 sites
82% 550 ms delay 238 sites
94% 454 ms delay 3,057 sites
few sites
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
5

LCP image hosting per platform

Wix sets the LCP image hosting to third-party on 100% of its sites, and 94% of Wix sites have a good LCP, against 84% of all sites. WordPress sets the LCP image hosting to first-party on 93% of its sites, and 63% of WordPress sites have a good LCP.

PlatformLCP image hosting on its sitesGood LCP
React sites with LCP image hosting 7,170 sitesThird-party domain 72%Same-origin / first-party 28%84%
Wix 4,215 sitesThird-party domain 100%94%
WordPress 1,816 sitesSame-origin / first-party 93%63%
Third-party domain Same-origin / first-party
The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
6

LCP image origin or the platform

Does the platform explain the LCP image hosting difference?

On WordPress, 64% of sites with third-party LCP image hosting have a good LCP, against 63% of WordPress sites with first-party. Within WordPress, sites with third-party and first-party have a good LCP about equally often.

Why third-party hero images pay a connection tax in resource load delay

When the LCP image lives on the same origin as the HTML document, the browser reuses the open HTTP/2 or HTTP/3 connection immediately. When the image sits on a separate domain, Chrome must resolve DNS, complete a TCP or QUIC handshake, and negotiate TLS before requesting the first image byte. That handshake shows up directly in Chrome's field data: third-party LCP images have a 442 ms median resource load delay compared with 404 ms for first-party images (38 ms slower to start), even though dedicated image CDNs finish the download slightly faster (121 ms vs 180 ms).

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
7

Understanding LCP image origin

Serve the LCP image from the same origin as your HTML document whenever possible, so the image rides the already-open HTTP/2 or HTTP/3 connection. If you use a dedicated image CDN on a separate domain (72.0% of audited sites), add <link rel="preconnect" href="https://your-cdn.example" crossorigin> in the document <head>. In Chrome's field data, third-party LCP images without a hint wait 396 ms before the download starts, while pairing a third-party image with <link rel="preconnect"> cuts resource load delay to 550 ms and lifts good LCP from 89% to 82%.

The State of Web Vitals · October 2026 · React: 9,570 crawled sites · 5,488 with phone field data · 7,170 sites with LCP image hostingBy Arjen Karel · corewebvitals.io/state-of-cwv
Related signals LCP image size → LCP loading attribute → LCP element type → LCP responsive markup → By Arjen Karel · 9,570 crawled React sites (5,488 with phone Chrome field data, 7,170 sites with LCP image hosting, October 2026) · How we measured