Hướng dẫn về Image Optimization

Cách optimize images cho SEO và performance — modern formats như WebP và AVIF, compression, correct dimensions, và lazy loading — để improve Core Web Vitals và LCP.

Xuất bản lần đầu: 2 thg 7, 2026 · Cập nhật lần cuối: 8 thg 8, 2026 · Advanced
Ngôn ngữ

Image optimization là một speed discipline, không một xếp hạng lever. Formats (WebP, AVIF), compression, và correct sizing exist để shrink bytes và improve LCP — có không trực tiếp xếp hạng boost cho đó format itself (Mueller confirmed này three tách biệt times). Đó single highest-giá trị rule: không bao giờ lazy-load của bạn LCP image (thường đó hero) — điều này delays đó chính xác chỉ số bạn là trying để cách sửa. Đó một nhận loading="eager" plus fetchpriority="cao". Native loading="lazy" là cho images bên ngoài đó ban đầu viewport, không một fixed 'dưới đó fold' line. Compression có không universal "right" quality — kiểm thử theo image. Correct size = được kết xuất container size × device pixel ratio, và đó container size itself moves với responsive layout, mà là vì sao bạn deliver một srcset range. None of này bảo đảm một passing Core Web Vitals score, một xếp hạng thay đổi, hoặc hơn traffic — đo lường LCP và CLS trước và sau. Này là đó cách-để companion để đó Image SEO hub, mà owns đó điều gì/vì sao.

TL;DR — Image optimization là một trang-speed / Core Web Vitals discipline, không một trực tiếp xếp hạng lever. Format lựa chọn (WebP, AVIF) shrinks bytes nhưng cho không SEO boost — Mueller có đã nói so three tách biệt ways; cũng weigh transparency, animation, và hiện tại trình duyệt hỗ trợ, không chỉ compression ratio. Đó single hầu hết valuable rule: không bao giờ lazy-load của bạn LCP image (thường đó hero); đó delays đó very chỉ số bạn là optimizing. Cho điều này loading="eager" + fetchpriority="high", though priority hints chỉ help một phát hiện/fetch-timing bottleneck, không mỗi LCP vấn đề. Native loading="lazy" là cho images bên ngoài đó ban đầu viewport — không một fixed “below the fold” (bản dịch) «dưới đó fold» pixel line. Compression có không universal “right” quality — kiểm thử theo image loại. Correct dimensions = được kết xuất container size × device pixel ratio, và đó container size itself shifts với responsive layout, so deliver một srcset/sizes range (một sai sizes giá trị âm thầm downloads an oversized image) với một <picture> fallback. Images là đó hầu hết phổ biến LCP element on đó web, mà là vì sao này bài viết cross-lists vào Web Performance — nhưng none of này bảo đảm một passing Core Web Vitals score, một xếp hạng thay đổi, hoặc hơn traffic; đo lường trước và sau.

Điều gì image optimization optimizes cho (đặt myth lên front)

Let me kill đó biggest myth trước bất cứ điều gì khác: image format là một speed lever, không một xếp hạng lever. Converting để WebP hoặc AVIF không earn bạn một xếp hạng bump. Điều này earns bạn nhỏ hơn files, mà earn bạn một nhanh hơn trang, mà feeds Core Web Vitals — và đó là đó part tìm kiếm các hệ thống dùng. Đó chain là real nhưng gián tiếp, và collapsing điều này vào “next-gen formats rank better” (bản dịch) «tiếp theo-gen formats xếp hạng tốt hơn» là nơi hầu hết đối thủ các hướng dẫn go sai.

Google tài liệu là blunt về vì sao images quan trọng cho speed: họ là “often the largest contributor to overall page size, which can make pages slow and expensive to load,” (bản dịch) «thường đó largest contributor để overall trang size, mà có thể làm các trang chậm và expensive để load,» và đó advice là để “apply the latest image optimization and responsive image techniques to provide a high quality and fast user experience” (bản dịch) «apply đó latest image optimization và responsive image techniques để cung cấp một cao quality và fast người dùng experience» (Google Search Central — Images). Note đó cách diễn đạt: fast người dùng experience, không một xếp hạng reward cho đó file format.

Evidence for this claim Images are often a major contributor to page weight, and Google recommends responsive image and optimization techniques for a fast user experience. Scope: Google Search image guidance about performance; no claim that a particular format directly improves rankings. Confidence: high · Verified: Google Search Central: Google Images SEO

cho Điều gì/Vì sao của image SEO overall — alt text, filenames, image sitemaps, structured dữ liệu, image-tìm kiếm xếp hạng — đó parent Image SEO hub job. điều này bài viết là canonical Cách: formats, compression, sizing, và loading strategy.

Lead với rule mọi người breaks: không bao giờ lazy-load của bạn LCP image

Nếu bạn take một điều từ này trang, take này. Đó Largest Contentful Paint (LCP) element — đó biggest điều painted trong đó viewport on load — là “either an image or a web font,” (bản dịch) «either an image hoặc một web font,» theo web.dev (Optimize LCP), và on hầu hết các trang đây là an image: đó hero, đó featured image, đó sản phẩm shot. web.dev diễn đạt đó rule về as bluntly as Google bao giờ phrases bất cứ điều gì:

“Never lazy-load your LCP image, as that will always lead to unnecessary resource load delay, and will have a negative impact on LCP.” (bản dịch) «Không bao giờ lazy-load hình ảnh LCP, vì điều đó luôn gây ra độ trễ tải tài nguyên không cần thiết và tác động tiêu cực đến LCP.»

Evidence for this claim Lazy-loading an LCP image adds resource load delay; web.dev recommends loading it eagerly and considering high fetch priority. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP

Này là đó nuance hầu hết “just use lazy loading” (bản dịch) «chỉ dùng lazy loading» advice misses hoàn toàn. Lazy-loading là great — cho images dưới đó fold. Apply điều này để đó LCP image và bạn actively delay đó một chỉ số bạn là trying để improve. web.dev lazy-loading hướng dẫn says cùng một điều từ đó other direction: “Don’t lazy-load images that are likely to be in-viewport when the page loads, especially LCP images” (bản dịch) «không lazy-load images đó là có khả năng để là trong-viewport khi đó trang loads, especially LCP images» (Trình duyệt-cấp độ lazy loading).

I’ve đã làm đó giống nhau argument trong my own LCP bài viết on Ahrefs: đó largest element “is usually going to be a featured image or maybe the <h1> tag,” (bản dịch) «là thường going để là một featured image hoặc maybe đó thẻ h1 tag,» và đó các cách sửa follow từ đó. “If you don’t need the image, the most impactful solution is to simply get rid of it. If you must have the image, I suggest optimizing the size and quality to keep it as small as possible.” (bản dịch) «Nếu bạn không cần đó image, đó hầu hết impactful giải pháp là để đơn giản nhận rid of điều này. Nếu bạn phải có đó image, I suggest optimizing đó size và quality để giữ điều này as nhỏ as có thể.» Bạn nên “lazy load any images that you don’t need immediately” (bản dịch) «lazy load bất kỳ images đó bạn không cần immediately» — nhưng đó flip side là một hard rule I put trong caps cho một reason: “Do not lazy load images above the fold!” (bản dịch) «Không lazy load images trên đó fold!»

fetchpriority="high" on LCP image

không lazy-loading hero là cần thiết nhưng chư đủ. để hãy đảm bảo LCP image loads as sớm as có thể, hint của nó priority để trình duyệt. từ web.dev:

“You can hint to the browser as to which resources are most important using the fetchpriority attribute… It’s a good idea to set fetchpriority=\"high\" on an <img> element if you think it’s likely to be your page’s LCP element.” (bản dịch) «Bạn có thể gợi ý cho trình duyệt về những tài nguyên quan trọng nhất bằng fetchpriority thuộc tính… Bạn nên đặt fetchpriority=\"high\" on an thẻ img element nếu bạn cho rằng đó có thể là phần tử LCP của trang.»

<img src="/hero.webp" alt="…" fetchpriority="high" width="1200" height="675">

Trong my LCP ghi-lên I mô tả fetchpriority="high" cùng cách — điều này “can be used on <img> or <link> tags and tells browsers to get the image early” (bản dịch) «có thể là dùng on thẻ img hoặc thẻ link tags và tells các trình duyệt để nhận đó image sớm» — và I pair điều này với Sớm Hints (một 103 phản hồi) as một complementary way để bắt đầu đó fetch trước đó main HTML ngay cả arrives. So đó LCP recipe là: eager load + fetchpriority="high" (+ Sớm Hints nếu của bạn stack hỗ trợ them). Mọi thứ khác on đó trang có thể lazy-load.

Treat fetchpriority và preload as bottleneck-cụ thể tools, không guaranteed khắc phục. họ help Khi LCP image là discovered hoặc fetched muộn; họ làm không có gì cho chậm máy chủ phản hồi, render-blocking tài nguyên ahead của image, hoặc genuinely oversized file. xác nhận mà bottleneck bạn thực ra có (PageSpeed Insights hoặc Lighthouse breaks LCP vào của nó subparts) trước khi assuming priority hint alone sẽ move number.

Native loading="lazy" — free, đơn giản, và đúng dưới fold

Cho mỗi image đó không trong đó ban đầu viewport, native lazy loading là đó easiest win trong performance. web.dev: “You can use the loading attribute to lazy-load images without the need to write custom lazy-loading code or use a separate JavaScript library.” (bản dịch) «Bạn có thể dùng đó loading thuộc tính để lazy-load images không có đó cần để ghi custom lazy-loading code hoặc dùng một tách biệt JavaScript library.»

<img src="/below-the-fold.webp" alt="…" loading="lazy" width="800" height="600">

Hai điều giữ điều này safe:

  • Base điều này on đó ban đầu viewport, không một fixed “below the fold” (bản dịch) «dưới đó fold» line. “Đó fold” không một fixed pixel count — điều này shifts với viewport size và layout. Đó thực tế kiểm thử là liệu đó image có khả năng là visible khi đó trang đầu tiên paints. Bất cứ điều gì đó là — và especially đó LCP image — nhận loading="eager" (đó default), không bao giờ lazy.
  • Ưu tiên đó native thuộc tính over JS hacks. JavaScript lazy-loaders đó hide đó real URL trong data-src và không bao giờ expose một src risk không đang được lập chỉ mục tại all. Native loading="lazy" (hoặc một sạch IntersectionObserver) giữ đó src visible để các crawler. Đó parent Image SEO hub covers đó lập chỉ mục caveat trong đầy đủ.

Modern formats: WebP so với. AVIF so với. JPEG/PNG

Formats là nơi myth-busting matters phần lớn, so let là precise về Điều gì mỗi buys bạn — mà là bytes, không thứ hạng.

  • WebP“often has better compression than JPEG, PNG, or GIF, offering both lossy and lossless compression” (bản dịch) «thường có tốt hơn compression hơn JPEG, PNG, hoặc GIF, offering cả hai lossy và lossless compression» (web.dev — Image performance). Khoảng 25–35% nhỏ hơn JPEG với near-universal trình duyệt hỗ trợ. Đó safe default cho photos hôm nay.
  • AVIF“supports both lossy and lossless compression, and tests have shown greater than 50% savings when compared to JPEG in some cases.” (bản dịch) «hỗ trợ cả hai lossy và lossless compression, và các kiểm thử có shown greater hơn 50% savings khi compared để JPEG trong một số trường hợp.» Best-trong-class compression, slightly ít hơn universal hỗ trợ, so pair điều này với một WebP hoặc JPEG fallback.
  • JPEG — đó universal fallback cho photographs.
  • PNG — khi bạn cần transparency hoặc crisp-edged graphics.
  • SVG — logos và icons: vector, scales infinitely, tiny.

Mà format để reach cho cũng phụ thuộc vào Điều gì image cần để làm, không chỉ mà một compresses hardest: transparency, animation, và Cách consistently trình duyệt hoặc tool hỗ trợ đó cụ thể combination all factor vào lựa chọn alongside thô size savings trên — kiểm tra hiện tại hỗ trợ cho chính xác feature bạn cần, especially cho bất cứ điều gì animated, trước khi bạn commit để một format as default.

Google Search hỗ trợ “BMP, GIF, JPEG, PNG, WebP, SVG, and AVIF” (bản dịch) «BMP, GIF, JPEG, PNG, WebP, SVG, và AVIF» referenced trong an <img> src. Serve đó modern format với một graceful fallback dùng <picture>:

<picture>
  <source srcset="/photo.avif" type="image/avif">
  <source srcset="/photo.webp" type="image/webp">
  <img src="/photo.jpg" alt="…" width="1200" height="800" loading="lazy">
</picture>

<img src> tại bottom là của bạn safety net — older các trình duyệt và các crawler fall lại để nó, và nó URL Google thực ra indexes.

Làm format ảnh hưởng thứ hạng? (Không — và Mueller có đã nói so three ways)

Đây là single myth-busting chuỗi trao đổi worth pulling qua toàn bộ topic. Three tách biệt, independently-timed John Mueller statements all land on giống nhau conclusion — format ảnh hưởng crawl/chỉ mục mechanics và trang weight, không bao giờ xếp hạng trực tiếp:

  1. AVIF cho không SEO boost. Sau Google đã thêm native AVIF hỗ trợ, Mueller confirmed có không “SEO boost” cho dùng AVIF over other supported formats (SE Roundtable coverage).
  2. WebP là “fine.” “WebP images are fine for Image Search” (bản dịch) «WebP images là fine cho Image Tìm kiếm» — “fine,” notably, không “tốt hơn” (SE Roundtable coverage).
  3. WebP lập chỉ mục quirks không format-cụ thể. Khi mọi người saw WebP files cho thấy as “Crawled – currently not indexed” (bản dịch) «Được crawl – hiện tại không được lập chỉ mục» trong GSC, Mueller point đã là đó image files không được lập chỉ mục as HTML các trang, và he đã không believe đó phenomenon đã là limited để WebP tại all (SEJ coverage).
những điều này rep statements là quoted qua verbatim phụ coverage (SE Roundtable, công cụ tìm kiếm Journal) của office-hours và social posts thay vì deep-linkable chính trang; họ’re giống nhau citations được sử dụng trong parent Image SEO hub, kept consistent ở đây. SEJ piece paraphrases/summarizes Mueller thay vì block-quoting him.

Compression và quality: có không universal “right” setting

Đó hầu hết phổ biến bad advice trong image các hướng dẫn là một single “compress to 80%” (bản dịch) «compress để 80%» bullet. web.dev là rõ ràng đó không such magic number tồn tại:

“When compressing, there isn’t a universal setting suitable for all cases. The recommended approach would be to experiment with different compression levels until you find a good compromise between image quality and file size.” (bản dịch) «Khi nén, không có một thiết lập chung phù hợp cho mọi trường hợp. Cách tiếp cận được khuyến nghị là thử nghiệm với các mức nén khác nhau cho đến khi tìm được sự cân bằng phù hợp giữa chất lượng hình ảnh và kích thước tệp.»

Practically: kiểm thử theo image loại. Photographs tolerate aggressive lossy compression well; graphics, logos, và screenshots với text cho thấy artifacts quickly và thường muốn lossless hoặc một cao hơn quality setting. Thay vì trusting một slider, export đó giống nhau image tại hai hoặc three quality levels và eyeball them tại display size — đó smallest một bạn không thể visually distinguish từ đó original là của bạn câu trả lời. đó là một real workflow, không “run it through TinyPNG and hope.” (bản dịch) «chạy điều này qua TinyPNG và hope.»

đúng dimensions: container size × device pixel ratio

“Just make it smaller” (bản dịch) «Chỉ làm điều này nhỏ hơn» không đó rule — matching đó được kết xuất size × đó device pixel ratio (DPR) là. Từ web.dev:

“An image displayed in a 500 pixel by 500 pixel container would be optimally sized at 500 pixels by 500 pixels.” (bản dịch) «Một hình ảnh hiển thị trong vùng chứa 500 pixel × 500 pixel sẽ có kích thước tối ưu là 500 pixel × 500 pixel.»

“If the device has a DPR of 2 and the image is displayed in a 500 pixel by 500 pixel container, then a square 1000 pixel image… is now the optimal size.” (bản dịch) «Nếu thiết bị có DPR bằng 2 và hình ảnh hiển thị trong vùng chứa 500 pixel × 500 pixel, thì hình vuông 1,000 pixel… là kích thước tối ưu.»

So 500×500 container on 2× (Retina-class) display wants 1 000×1 000 nguồn. Go bigger hơn đó và bạn waste bytes với không perceptible gain; go nhỏ hơn và nó looks soft on cao-DPR screens. Đây là Vì sao bạn phục vụ range của sizes và let trình duyệt pick, sử dụng srcset + sizes:

<img
  src="/photo-800.webp"
  srcset="/photo-400.webp 400w, /photo-800.webp 800w, /photo-1600.webp 1600w"
  sizes="(max-width: 600px) 100vw, 500px"
  alt="…" width="800" height="600" loading="lazy">

Đó trình duyệt đọc đó container width (sizes) và của nó own DPR, thì picks đó right candidate từ srcset — đó responsive-phân phối version of đó DPR math trên. Google khuyến nghị <picture> hoặc srcset cho responsive images và says để “always specify a fallback URL using the src attribute.” (bản dịch) «luôn specify một fallback URL dùng đó src thuộc tính.»

Nhận sizes sai và không có gì warns bạn. nếu giá trị bạn declare không match Cách wide image thực ra renders — phổ biến bug sau khi layout hoặc CSS thay đổi — trình duyệt có không way để know đó và đơn giản picks candidate dựa trên inaccurate number bạn gave nó, mà typically có nghĩ là nó downloads lớn hơn file hơn layout cần. đó silently undoes format và compression hoạt động trên. chỉ reliable way để catch nó: open DevTools’ Network panel, tìm image yêu cầu, và so sánh delivered file dimensions so với container thực tế được kết xuất width.

Đó 500×500 ví dụ trên là illustrative, không một site-wide number để hard-code — đó giống nhau hero image có thể render tại một khác nhau width on mobile hơn on desktop, so “container size” (bản dịch) «container size» moves với của bạn responsive layout thay vì staying fixed. đó là chính xác vì sao bạn deliver một srcset range thay vì exporting một “optimal” size và calling điều này đã xong.

Vì sao điều này all ties lại để Core Web Vitals

Đó throughline connecting mỗi technique trên là LCP. Images là đó hầu hết phổ biến LCP element on đó web, và LCP là một of đó three Core Web Vitals. Google đích: “LCP should occur within 2.5 seconds” (bản dịch) «LCP nên occur trong 2,5 seconds» tại đó 75th percentile of trang loads trên mobile và desktop (web.dev — Chỉ số quan trọng). Core Web Vitals “apply to all web pages, should be measured by all site owners, and will be surfaced across all Google tools.” (bản dịch) «apply để all web các trang, nên là measured by all chủ trang web, và sẽ là surfaced trên all Google tools.»

So image optimization không phải discrete xếp hạng factor — nó contributor để trang-experience tín hiệu (Core Web Vitals) đó xếp hạng các hệ thống làm sử dụng. đó phân biệt là chính xác cách diễn đạt, và nó Vì sao điều này bài viết lives trong cả hai Image SEO cluster và Web Performance cluster. cho deep dive on chỉ số itself, see Core Web VitalsLCP trong Web Performance.

Một nhiều hơn caution worth stating plainly: none của các cách sửa on điều này trang bảo đảm bất cứ điều gì. Image bytes là chỉ một có thể component của LCP — web.dev own breakdown của LCP subparts bao gồm điều như máy chủ phản hồi time và render-blocking các tài nguyên ahead của image, none của mà format hoặc compression touch — và image dimensions là chỉ một input vào CLS, không bảo đảm của particular score. Shrinking hero image có thể measurably help, làm không có gì, hoặc (nếu điều gì đó khác là thực bottleneck) barely move number tại all. Optimizing images cũng không itself bảo đảm passing Core Web Vitals assessment, xếp hạng thay đổi, nhiều hơn traffic, nhiều hơn conversions, hoặc AI-tìm kiếm citation — những điều đó phụ thuộc on far nhiều hơn image bytes. Treat mỗi image khắc phục as hypothesis, không đã xong deal: đo lường LCP và CLS trước khi và sau khi, trong lab và trong trường, và let đó dữ liệu — không assumption đó optimizing “worked” — tell bạn liệu nó moved bất cứ điều gì.

phổ biến implementation pitfalls

  • CSS background images không được lập chỉ mục. Devs sometimes đổi an <img> cho một background-image cho layout convenience. Google “can find images in the src attribute of <img> element (even when it’s a child of other elements, such as the <picture> element)” (bản dịch) «có thể tìm images trong đó src thuộc tính of thẻ img element (ngay cả khi đây là một child of other elements, such as đó thẻ picture element)» nhưng “doesn’t index CSS images.” (bản dịch) «không chỉ mục CSS images.» Nếu bạn muốn đó image trong image tìm kiếm, giữ điều này trong an <img>. (Này một performance-liền kề, nhưng đó mistake là phổ biến đủ để flag.)
  • không bulk-rename existing files cho một performance/SEO “refresh.” Mueller có đã nói điều này takes “a lot of time” (bản dịch) «một lot of time» cho Google các hệ thống để reprocess renamed images và đó effect là minimal nếu của bạn context là đã good — đó parent Image SEO hub covers này trong đầy đủ.
  • Bị thiếu width/height. Luôn set intrinsic widthheight (hoặc CSS aspect-ratio) so đó trình duyệt có thể reserve space trước đó image loads — này reduces image-driven layout shift, nhưng đây là một input vào CLS among several, không phải là bảo đảm of một particular score.

Nhanh recipe

  • Hero / LCP image: modern format, right-sized, loading="eager", fetchpriority="high".
  • Mọi thứ dưới fold: loading="lazy".
  • phục vụ WebP/AVIF với <picture> src fallback.
  • Size để container × DPR; deliver srcset range với sizes.
  • Compress theo image loại — kiểm thử 2–3 quality levels, không trust một slider.
  • luôn đặt width/height.

cho rest của image SEO — alt text, filenames, image sitemaps, dữ liệu có cấu trúc, và image-tìm kiếm xếp hạng — head lại để Image SEO hub.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.