Published:

Last Updated:

μžλ™μœΌλ‘œ Lazy Loading 속성 μΆ”κ°€ν•˜λŠ” 방법: 이미지 μ΅œμ ν™”μ™€ μ›Ή μ„±λŠ₯ κ°œμ„ 

Lazy Loading κΈ°λŠ₯을 μžλ™μœΌλ‘œ 이미지에 μ μš©ν•˜μ—¬ μ›Ή μ„±λŠ₯을 κ°œμ„ ν•˜κ³  초기 λ‘œλ”© μ‹œκ°„μ„ λ‹¨μΆ•μ‹œν‚€λŠ” 방법을 μ•ˆλ‚΄ν•©λ‹ˆλ‹€. SEO μ κ²€μ˜ 핡심 μš”μ†ŒμΈ LCP(μ΅œλŒ€ μ½˜ν…μΈ  λ Œλ”λ§ μ‹œκ°„) μ΅œμ ν™” 및 색인 μƒνƒœ κ°œμ„ μ„ μœ„ν•œ 이미지 μ΅œμ ν™” λ°©λ²•μž…λ‹ˆλ‹€.


이미지 μ΅œμ ν™”μ™€ λΉ λ₯Έ λ‘œλ”©μ„ μœ„ν•œ Lazy Loading μ„€μ • 방법

Lazy Loading은 μ›ΉνŽ˜μ΄μ§€ λ‘œλ”© μ‹œ 이미지와 λ‹€λ₯Έ μš”μ†Œλ₯Ό ν•„μš”ν•œ μ‹œμ μ—μ„œλ§Œ λ‘œλ“œλ˜κ²Œ ν•˜λŠ” 이미지 μ΅œμ ν™” λ°©λ²•μž…λ‹ˆλ‹€. 이 κΈ°λŠ₯은 이미지λ₯Ό ν•„μš”ν•  λ•Œλ§Œ λ‘œλ“œν•˜μ—¬ 초기 λ‘œλ”© μ‹œκ°„μ„ λ‹¨μΆ•μ‹œν‚€κ³  μ„œλ²„ μžμ›μ„ μ ˆμ•½ν•  수 μžˆμ–΄ 맀우 νš¨κ³Όμ μž…λ‹ˆλ‹€. 특히 νŽ˜μ΄μ§€ λ‘œλ”© μ‹œ λΆˆν•„μš”ν•œ μžμ›μ„ μ§€μ—°μ‹œμΌœ μ‚¬μš©μž 접근성을 ν–₯μƒμ‹œν‚€λ©°, HTML μ½”λ“œμ— loading="lazy" 속성을 μΆ”κ°€ν•΄ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 속성은 λΈŒλΌμš°μ €κ°€ 이미지가 화면에 보일 λ•Œλ§Œ λ‘œλ“œν•˜λ„λ‘ ν•˜μ—¬ μ›Ή μ„±λŠ₯을 κ°œμ„ ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ›ΉνŽ˜μ΄μ§€μ˜ νš¨μœ¨μ„±μ„ 높이고, λΉ λ₯Έ λ‘œλ”© 속도λ₯Ό μœ μ§€ν•˜μ—¬ Core Web Vitals 점수λ₯Ό κ°œμ„ ν•˜λŠ” 데 직접적인 도움을 μ€λ‹ˆλ‹€.

Lazy Loading은 μ½”λ“œκ°€ 싀행될 λ•Œ ν•„μš”ν•œ μžμ›λ§Œ λ‘œλ“œν•˜λ―€λ‘œ, νŽ˜μ΄μ§€μ˜ λ‹€λ₯Έ λΆ€λΆ„μ˜ λ‘œλ”©μ„ μ œμ–΄ν•˜λŠ” 데도 도움을 μ€λ‹ˆλ‹€. μ•„λž˜ 방법은 μž‘μ„±μžκ°€ 별도 μ½”λ”© μž‘μ—… 없이 μžλ™μœΌλ‘œ 이미지에 LAZY 속성을 μΆ”κ°€ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

Lazy Loading μ½”λ“œλŠ” 싀행될 λ•Œ ν•„μš”ν•œ μ‚¬ν•­μ—μ„œλ§Œ μ„€μ •λœ λ¦¬μ†ŒμŠ€λ₯Ό λ‘œλ”©ν•˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€. 이λ₯Ό μ§€μ—° λ‘œλ”©μ΄λΌκ³  ν•©λ‹ˆλ‹€. 처음 λ‘œλ”© μ‹œ λΆˆν•„μš”ν•œ 뢀뢄은 차후에 λ‘œλ”©μ„ μ‹œμΌœμ£Όκ³  ν•„μš” μ‹œλ§Œ λ‘œλ”©μ„ ν•΄μ£ΌλŠ” λ°©λ²•μœΌλ‘œ, κΈ€μ˜ 이미지가 초기 λ‘œλ”© 속도에 λ―ΈμΉ˜λŠ” 영ν–₯을 μ΅œμ†Œν™”ν•©λ‹ˆλ‹€.

Lazy Loading의 효과 μš”μ•½ (SEO 점검 핡심)

κ°œμ„  μ§€ν‘œ 효과 및 영ν–₯
LCP (μ΅œλŒ€ μ½˜ν…μΈ  λ Œλ”λ§ μ‹œκ°„) 뷰포트 λ°”κΉ₯의 이미지λ₯Ό μ§€μ—°μ‹œμΌœ κ°€μž₯ μ€‘μš”ν•œ μ½˜ν…μΈ μ˜ λ‘œλ”©μ„ κ°€μ†ν™”ν•©λ‹ˆλ‹€.
초기 λ‘œλ”© 속도 νŽ˜μ΄μ§€ λ‘œλ“œμ‹œ λΆˆν•„μš”ν•œ HTTP μš”μ²­μ„ 쀄여 μ „λ°˜μ μΈ λ‘œλ”© μ‹œκ°„μ„ λ‹¨μΆ•ν•©λ‹ˆλ‹€.
μžμ› μ ˆμ•½ μ‚¬μš©μžκ°€ λκΉŒμ§€ μŠ€ν¬λ‘€ν•˜μ§€ μ•ŠλŠ” 경우 λŒ€μ—­ν­κ³Ό μ„œλ²„ μžμ› λ‚­λΉ„λ₯Ό μ€„μž…λ‹ˆλ‹€.

μžλ™ ν˜•μ„± Lazy Loading κ΅¬ν˜„ 방법 및 μ½”λ“œ 적용

μžλ™ ν˜•μ„± LAZY μ‚¬μš© 방법

  • 일반적인 글을 μž‘μ„±ν•˜κ³  글에 μƒμ„±λœ 이미지에 μžλ°”μŠ€ν¬λ¦½νŠΈ λ˜λŠ” ν”ŒλŸ¬κ·ΈμΈμ„ 톡해 속성을 μΆ”κ°€ν•˜λŠ” κ°„λ‹¨ν•œ λ°©λ²•μž…λ‹ˆλ‹€.

μ•„λž˜λŠ” 였늘 μ œκ°€ μž‘μ„±ν•œ μ„œμšΈμ‹œ μ²­λ…„μˆ˜λ‹Ήμ— λŒ€ν•œ κΈ€μ˜ 홍보이미지 μžλ£Œμž…λ‹ˆλ‹€. 이 μžλ£ŒλŠ” κ·Έλƒ₯ 에디터을 ν†΅ν•΄μ„œ κ°„λ‹¨ν•˜κ²Œ 이미지λ₯Ό μ‚½μž…ν–ˆμ„λΏμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ½”λ“œλ₯Ό ν™•μΈν•˜κ²Œ 되면 μ œκ°€ λ³„λ„λ‘œ μ½”λ”© μž‘μ—…μ„ ν•˜μ§€ μ•Šμ•„λ„ loading="lazy" 속성이 λ“€μ–΄κ°€ μžˆλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œ 적용 μ—¬λΆ€ 확인

βœ” μ˜ˆμ‹œ (μžλ™ 적용된 μ½”λ“œ)

img
src="https://blog.kakaocdn.net/dna/bidI61/btsIhViAlvh/AAAAAAAAAAAAAAAAAAAAAC-b0DERD4OkgnW5s9yXP0Sti53wAbdxHkxTif3qcY1q/img.webp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1772290799&allow_ip=&allow_referer=&signature=rKD0ujW0j2gqi7T9VcqS4eBd3Ws%3D"
srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbidI61%2FbtsIhViAlvh%2FAAAAAAAAAAAAAAAAAAAAAC-b0DERD4OkgnW5s9yXP0Sti53wAbdxHkxTif3qcY1q%2Fimg.webp%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1772290799%26allow_ip%3D%26allow_referer%3D%26signature%3DrKD0ujW0j2gqi7T9VcqS4eBd3Ws%253D"
onerror="this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';"
alt="μ„œμšΈμ‹œμ²­λ…„μˆ˜μž₯"
data-filename="54878545474.webp"
data-origin-width="599"
data-origin-height="788"
loading="lazy"
data-phocus-index="1"

μ•„λž˜λŠ” 속성이 μ μš©λ˜μ§€ μ•Šμ•˜μ„ λ•Œμ˜ μ›λž˜ μ½”λ“œμž…λ‹ˆλ‹€. loading="lazy" 속성이 μ—†μŠ΅λ‹ˆλ‹€. 초기 λ‘œλ”© μ‹œ λͺ¨λ“  이미지λ₯Ό ν•œ λ²ˆμ— 뢈러였게 λ©λ‹ˆλ‹€.

βœ” μ˜ˆμ‹œ (속성 미적용 μ½”λ“œ)

img
src="https://blog.kakaocdn.net/dna/bidI61/btsIhViAlvh/AAAAAAAAAAAAAAAAAAAAAC-b0DERD4OkgnW5s9yXP0Sti53wAbdxHkxTif3qcY1q/img.webp?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1772290799&allow_ip=&allow_referer=&signature=rKD0ujW0j2gqi7T9VcqS4eBd3Ws%3D"
srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbidI61%2FbtsIhViAlvh%2FAAAAAAAAAAAAAAAAAAAAAC-b0DERD4OkgnW5s9yXP0Sti53wAbdxHkxTif3qcY1q%2Fimg.webp%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1772290799%26allow_ip%3D%26allow_referer%3D%26signature%3DrKD0ujW0j2gqi7T9VcqS4eBd3Ws%253D"
onerror="this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';"
alt=""
data-filename="54878545474.webp"
data-origin-width="599"
data-origin-height="788"
data-phocus-index="1"

μ½”λ“œ μ‚¬μš© 방법: μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ΄μš©ν•œ μžλ™ Lazy Loading

HTML λ² λ„ˆ ν”ŒλŸ¬κ·ΈμΈ λ˜λŠ” /BODY μœ„μ— μ½”λ“œ 적용

μ‚¬μš© 방법도 μ•„μ£Ό κ°„λ‹¨ν•©λ‹ˆλ‹€. μ•„λž˜ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό HTML λ² λ„ˆ 좜λ ₯에 λ„£μ–΄μ„œ μ‚¬μš©ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€. ꡳ이 HTML μ½”λ“œκΉŒμ§€ μˆ˜μ •ν•˜μ‹€ ν•„μš”λ„ μ—†μŠ΅λ‹ˆλ‹€. λͺ¨λ“  νŽ˜μ΄μ§€μ˜ img νƒœκ·Έμ— loading="lazy" 속성을 μΆ”κ°€ν•˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€. μ‚¬μ΄λ“œ μ˜μ—­μ΄ μžˆλŠ” ν‹°μŠ€ν† λ¦¬ μŠ€ν‚¨μ€ HTML λ°°λ„ˆ 좜λ ₯을 μ‚¬μš©ν•΄μ„œ κ°„λ‹¨ν•˜κ²Œ μ‚¬μ΄λ“œμ— λ„£μ–΄ 주셔도 되고, λͺ¨λ“  νŽ˜μ΄μ§€μ— 적용 μ‹œμ—λŠ” μ•„λž˜ μ½”λ“œλ₯Ό /BODY μœ„μ— λ„£μ–΄μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.

script
document.addEventListener("DOMContentLoaded", function () {
var images = document.querySelectorAll('img');
images.forEach(function (img) {
img.loading = 'lazy';
});
});
/script

νŠΉμ • 이미지 μ˜ˆμ™Έ 처리 μ½”λ“œ (LCP에 μ€‘μš”ν•œ 이미지 μ œμ™Έ)

그리고 ν˜Ήμ‹œ νŠΉμ • 이미지 (예: 뷰포트 μ΅œμƒλ‹¨μ˜ 둜고 λ˜λŠ” 메인 λ°°λ„ˆλ‘œ, LCP에 μ€‘μš”ν•œ 영ν–₯을 λ―ΈμΉ˜λŠ” 이미지)λŠ” μ§€μ—° λ‘œλ”©μ„ μ μš©ν•˜κ³  μ‹Άμ§€ μ•Šμ„ κ²½μš°λŠ” μ•„λž˜ μ½”λ“œμ— μ΄λ―Έμ§€μ˜ 파일λͺ…을 μˆ˜μ •ν•΄μ£Όμ‹œλ©΄ μ§€μ •λœ μ΄λ―Έμ§€λŠ” νƒœκ·Έκ°€ μ μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ½”λ“œλ₯Ό 같이 λ„£μ–΄μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.

script async="async"
// 이미지 lazy loading μ„€μ • 슀크립트
document.addEventListener("DOMContentLoaded", function () {
var images = document.querySelectorAll('img');
images.forEach(function (img) {
var imageUrl = img.getAttribute('src');
if (imageUrl.includes('λ³€κ²½ν•˜μ§€μ•Šμ„_μ΄λ―Έμ§€νŒŒμΌλͺ….jpg')) {
img.removeAttribute('loading');
} else {
img.setAttribute('loading', 'lazy');
}
});
});
/script

이 방법은 κΈ€ μž‘μ„± μ‹œ λ³„λ„μ˜ μ½”λ”© μž‘μ—… 없이 이미지에 lazy μ½”λ“œλ₯Ό μΆ”κ°€ν•΄μ£ΌλŠ” κ°„λ‹¨ν•œ 방법이며, SEO μ„±λŠ₯ κ°œμ„ μ— ν•„μˆ˜μ μž…λ‹ˆλ‹€.


Q: Lazy Loadingμ΄λž€ 무엇이며, μ›Ή μ„±λŠ₯κ³Ό SEO에 μ™œ ν•„μš”ν• κΉŒμš”?

A: Lazy Loading은 μ›ΉνŽ˜μ΄μ§€μ—μ„œ 이미지λ₯Ό μ‚¬μš©μžκ°€ μ‹€μ œλ‘œ λ³Ό λ•Œλ§Œ λ‘œλ“œν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. μ΄λŠ” 초기 λ‘œλ”© 속도λ₯Ό λΉ λ₯΄κ²Œ ν•˜μ—¬ Core Web Vitals μ§€ν‘œ 쀑 ν•˜λ‚˜μΈ LCP(μ΅œλŒ€ μ½˜ν…μΈ  λ Œλ”λ§ μ‹œκ°„)λ₯Ό κ°œμ„ ν•©λ‹ˆλ‹€. LCP κ°œμ„ μ€ κ²€μƒ‰μ—”μ§„μ˜ νŽ˜μ΄μ§€ 평가에 긍정적인 영ν–₯을 미쳐 λ…ΈμΆœ μˆœμœ„ μƒμŠΉμ— κΈ°μ—¬ν•©λ‹ˆλ‹€.

Q: HTMLμ—μ„œ Lazy Loading을 μ μš©ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν•˜λ‚˜μš”?

A: HTML의 img νƒœκ·Έμ— loading="lazy" 속성을 μΆ”κ°€ν•˜λ©΄ λ©λ‹ˆλ‹€. λΈŒλΌμš°μ €κ°€ 이 속성을 μΈμ‹ν•˜μ—¬ μ§€μ—° λ‘œλ”©μ„ μ²˜λ¦¬ν•˜λ©°, λ³„λ„μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€.

Q: λͺ¨λ“  이미지에 μžλ™μœΌλ‘œ Lazy Loading을 μ μš©ν•˜κ³ , νŠΉμ • μ΄λ―Έμ§€λ§Œ μ œμ™Έν•˜λ €λ©΄?

A: νŠΉμ • 이미지 (예: LCP에 영ν–₯을 μ£ΌλŠ” κ°€μž₯ μ€‘μš”ν•œ 이미지)λ₯Ό μ œμ™Έν•˜κ³  λ‚˜λ¨Έμ§€μ—λ§Œ Lazy 속성을 μ μš©ν•˜λ €λ©΄ μœ„ μ„Ήμ…˜μ— μ œμ‹œλœ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό μ‚¬μš©ν•˜μ„Έμš”. μ½”λ“œλ₯Ό 톡해 λͺ¨λ“  이미지에 속성을 μ μš©ν•˜λ˜, 파일λͺ…을 쑰건문으둜 λ„£μ–΄ ν•΄λ‹Ή μ΄λ―Έμ§€λ§Œ 속성을 μ œκ±°ν•˜λ„λ‘ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.