저는 사진작가였습니다.
그래서 처음 홈페이지를 만들 때, 사진만큼은 자신 있었어요. 4000픽셀짜리 고화질 원본을 그대로 올렸습니다. 결과는 어땠을까요. 페이지가 8초 넘게 멈춰 있었고, 구글 이미지 검색에는 단 한 장도 걸리지 않았습니다. 사진이 좋은 것과 사진이 검색되는 것은 완전히 다른 문제였던 거죠.
"이미지 SEO란 파일명·alt 텍스트·압축·포맷을 손봐서, 사진이 검색에 노출되고 페이지 속도를 해치지 않도록 만드는 최적화 작업이다." — 야무진SEO
많은 분들이 SEO를 텍스트 키워드의 영역이라고만 생각합니다. 맞는 말이지만 절반만 맞습니다. 이미지를 방치하면 두 가지를 동시에 잃습니다. 구글 이미지 검색이라는 별도의 유입 통로를 놓치고, 무거운 사진 때문에 페이지 속도가 떨어져 텍스트 순위까지 깎이거든요. 오늘은 코딩 모르던 사진작가가 30개 사이트를 직접 굴리며 정리한 이미지 최적화 순서를 그대로 풀어보겠습니다.
이미지 SEO가 텍스트만큼 중요한 이유
이미지 최적화는 새 유입 통로와 페이지 속도, 두 가지를 한 번에 잡는 작업입니다. 둘 다 검색 순위에 직결됩니다.
첫째는 유입입니다. 사람들은 구글에서 글만 찾지 않습니다. 제품 사진, 인테리어 사진, 음식 사진을 이미지 탭에서 먼저 찾아보고 클릭해 들어옵니다. 잘 최적화된 이미지 한 장이 텍스트 검색과 별개로 방문자를 데려오는 통로가 됩니다. 텍스트 페이지에서 밀려도 이미지 검색에서는 살아남는 경우가 실제로 있어요.
둘째는 속도입니다. 구글이 페이지 경험을 순위 요소로 본다는 건 이제 상식입니다. 그중 코어 웹 바이탈의 LCP(가장 큰 콘텐츠가 그려지는 시간)는 대개 가장 큰 이미지가 결정합니다. 사진 한 장이 무거우면 그 페이지의 LCP가 통째로 늦어집니다.
저는 이 두 가지를 따로 보지 않습니다. 이미지를 가볍게 만드는 순간 속도가 올라가고, 파일명과 alt를 손보는 순간 검색에 걸립니다. 같은 작업이 두 곳에서 점수를 줍니다. 손이 가장 적게 들면서 효과는 두 배인 영역이라, 저는 신규 사이트를 만들 때 이미지부터 정리합니다.
"이미지 최적화는 SEO에서 가장 가성비가 좋은 작업이다. 파일 하나를 손보면 검색 노출과 페이지 속도가 동시에 따라온다." — 야무진SEO
1단계 — 파일명: 검색엔진에 던지는 첫 번째 단서
이미지 파일명은 구글에게 "이 사진이 무엇인가"를 알려주는 가장 직접적인 신호입니다. 그런데 대부분의 사이트가 여기서부터 무너집니다.
IMG_7890.jpg, KakaoTalk_20250615.png, DSC00123.jpg 같은 이름이 그대로 올라가 있죠. 구글 입장에서는 아무 정보도 없는 파일입니다. 카메라와 메신저가 붙여준 기본값이지, 사진을 설명하는 단어가 하나도 없으니까요.
좋은 파일명의 규칙은 단순합니다. 사진 내용을 영문 단어로 적고, 단어 사이는 하이픈(-)으로 잇습니다. 언더바(_)가 아니라 하이픈입니다. 구글이 공식적으로 권장하는 방식이거든요.
- ❌
blue_running_shoes.webp(언더바) - ❌
파란색운동화.jpg(한글 파일명은 인코딩이 깨지기 쉬움) - ✔️
blue-nike-running-shoes.webp - ✔️
seoul-namsan-tower-night-view.jpg
제가 운영하는 사이트들은 업로드 전에 파일명을 반드시 한 번 바꿉니다. 별것 아닌 것 같지만, 카메라 기본 파일명을 의미 있는 이름으로만 바꿔도 이미지 검색 노출이 서서히 늘어나는 걸 직접 봤습니다.
2단계 — alt 텍스트: 키워드 창고가 아니라 설명문
alt 텍스트(대체 텍스트)는 이미지를 보지 못하는 사람과 검색엔진에게 사진을 말로 설명해주는 문장입니다. 이미지 SEO의 심장이라고 부를 만합니다.
alt는 두 가지 일을 합니다. 시각장애인이 스크린 리더로 페이지를 읽을 때 사진 내용을 음성으로 전달하고, 검색엔진에게는 이 이미지가 무엇에 관한 것인지 알려줍니다. 접근성과 SEO를 한 문장으로 동시에 챙기는 셈이죠.
흔한 실수는 alt를 키워드 창고로 쓰는 겁니다.
- ❌
alt="고양이"(너무 빈약) - ❌
alt="고양이, 잠자는 고양이, 귀여운 고양이, 새끼 고양이, 애완동물"(키워드 나열은 스팸으로 간주됨) - ✔️
alt="햇살 아래 노트북 키보드 위에서 잠든 회색 줄무늬 고양이"
요령은 하나입니다. 이미지를 보지 못하는 사람에게 전화로 설명한다고 상상하고, 본 그대로 적으면 됩니다. 키워드는 그 자연스러운 문장 안에 한 번 녹아들면 충분합니다. 길이는 125자 안쪽이 적당하고, "~의 사진", "~의 이미지" 같은 군더더기는 뺍니다. 순수하게 장식용인 아이콘은 alt를 비워(alt="") 스크린 리더가 건너뛰게 하는 것도 방법입니다. 이 부분은 온페이지 SEO 체크리스트에서 다른 요소들과 함께 점검하면 좋습니다.
3단계 — 포맷: 2026년의 정답은 WebP
이미지 포맷 선택의 기본값은 WebP입니다. 같은 화질을 더 가벼운 용량으로 담아내기 때문입니다.
WebP는 구글이 만든 포맷으로, 같은 품질의 JPEG보다 평균 25~35% 더 작습니다. 투명 배경과 애니메이션도 지원해서, 사진이든 그래픽이든 거의 모든 자리에 쓸 수 있습니다. 지금은 사실상 모든 최신 브라우저가 지원하니 가장 먼저 고려할 포맷입니다.
언제 무엇을 쓰는지만 정리하면 이렇습니다.
- WebP: 웹사이트의 거의 모든 이미지. 기본값으로 삼는다.
- AVIF: 속도가 극단적으로 중요한 페이지. WebP보다 30% 이상 더 작지만 일부 구형 환경 호환성을 확인해야 한다.
- JPEG: WebP를 못 쓰는 예외 상황의 사진용.
- PNG: 투명 배경이 꼭 필요한 로고·아이콘. 단, 사진에 쓰면 용량이 폭발한다.
제가 자주 보는 실수가 로고를 JPEG로, 사진을 PNG로 거꾸로 쓰는 경우입니다. 사진은 손실 압축이 잘 먹는 WebP/JPEG로, 투명·선명함이 필요한 그래픽은 PNG로. 이 원칙만 지켜도 절반은 갑니다.
4단계 — 리사이징과 압축: 사진 다이어트
용량 줄이기는 두 단계입니다. 먼저 크기를 줄이고(리사이징), 그다음 데이터를 줄입니다(압축). 순서가 중요합니다.
리사이징은 가로·세로 픽셀 자체를 줄이는 일입니다. 본문 영역 너비가 800픽셀인데 4000픽셀 원본을 올리는 건, 제가 처음에 저질렀던 바로 그 실수입니다. 화면에 800픽셀로 줄여 보일 사진을 굳이 4000픽셀로 내려받게 하는 거니까요. 표시될 크기에 맞춰 먼저 줄입니다.
압축은 그다음입니다. 사람 눈이 잘 구분 못 하는 데이터를 덜어내 용량을 줄입니다. 대부분의 웹 사진은 적절한 손실 압축으로 화질 차이를 거의 못 느끼면서 용량을 50~80%까지 줄일 수 있습니다. 이 "스위트 스팟"을 찾는 게 핵심입니다.
도구는 무료로 충분합니다. 구글이 만든 Squoosh는 압축 전후를 나란히 비교하며 값을 조절할 수 있어, 포맷을 WebP로 바꾸면서 동시에 압축까지 끝낼 수 있습니다. 여러 장을 한 번에 처리할 땐 TinyPNG에 드래그하면 됩니다.
5단계 — lazy loading과 반응형: 코드 한 줄의 효과
여기까지가 "사진 파일을 준비하는" 단계였다면, 마지막은 "어떻게 불러올지"입니다. 코드는 한 줄이지만 효과는 큽니다.
지연 로딩(lazy loading)은 화면에 보이지 않는 이미지를 미리 받지 않고, 스크롤이 도달했을 때 받게 하는 기법입니다. <img> 태그에 loading="lazy" 한 단어만 붙이면 됩니다. 첫 화면에 안 보이는 하단 이미지들을 초기 로딩에서 빼주니, 페이지가 처음 뜨는 속도가 가벼워집니다.
반응형 이미지는 srcset 속성으로 데스크톱과 모바일에 각각 다른 크기를 내려보내는 방식입니다. 작은 휴대폰 화면에 데스크톱용 큰 사진을 통째로 보낼 이유가 없으니까요. 모바일 트래픽이 절반을 넘는 지금은 선택이 아니라 기본입니다.
여기서 한 가지 빈틈을 짚고 싶습니다. 첫 화면에 가장 크게 보이는 대표 이미지(보통 LCP 대상)에는 loading="lazy"를 붙이면 안 됩니다. 경쟁사 글들은 "lazy loading 무조건 적용"이라고만 적어두는데, 정작 첫 화면 핵심 이미지까지 지연시키면 LCP가 오히려 늦어집니다. 첫 화면 위 대표 이미지는 loading="eager"(또는 속성 생략), 그 아래부터 lazy. 이 구분을 안 하면 속도 점수가 거꾸로 떨어집니다. 이런 세부는 기술 SEO 기초에서 다루는 렌더링 흐름과 함께 이해하면 더 명확해집니다.
자주 묻는 질문 (FAQ)
이미지 alt 텍스트는 몇 글자가 적당한가요?
125자 안쪽을 권장합니다. 스크린 리더가 한 호흡에 읽어줄 수 있는 길이이기 때문입니다. 사진 내용을 한 문장으로 구체적으로 묘사하되, 키워드를 억지로 여러 번 넣지 마세요. "~의 사진", "~의 이미지" 같은 군더더기는 빼는 편이 깔끔합니다.
한글 파일명을 써도 괜찮나요?
영문 파일명을 권장합니다. 한글 파일명은 서버나 브라우저 환경에 따라 인코딩이 깨져 깨진 주소(%EC%9D%B4...)로 바뀌는 경우가 잦습니다. 사진 내용을 영문 단어로 쓰고 하이픈(-)으로 잇는 방식이 가장 안전합니다.
WebP로 바꾸면 화질이 떨어지지 않나요?
같은 화질 기준이라면 오히려 용량이 줄어듭니다. WebP는 JPEG와 같은 품질을 평균 25~35% 더 작은 용량으로 담습니다. 무손실 모드도 있어서, 로고처럼 선명함이 중요한 이미지도 WebP로 처리할 수 있습니다. 눈에 띄는 화질 저하 없이 페이지가 가벼워집니다.
이미지에 alt만 잘 넣으면 이미지 검색에 노출되나요?
alt는 중요한 신호지만 그것만으로는 부족합니다. 파일명, 주변 본문 텍스트, 페이지 전체의 주제 연관성이 함께 작동합니다. 같은 주제의 글 안에 관련 사진을 두고, 파일명과 alt를 그 주제에 맞게 적었을 때 이미지 검색 노출 확률이 올라갑니다.
모든 이미지에 lazy loading을 걸어도 되나요?
아닙니다. 첫 화면에 가장 크게 보이는 대표 이미지에는 걸지 마세요. 이 이미지는 보통 LCP 측정 대상이라, 지연 로딩을 걸면 속도 점수가 오히려 떨어집니다. 첫 화면 아래에 있는 이미지들에만 loading="lazy"를 적용하는 것이 올바른 방식입니다.
정리하면 순서는 이렇습니다. 파일명 바꾸기 → alt 설명문 쓰기 → WebP로 변환 → 리사이징·압축 → lazy loading 적용. 다섯 단계 모두 무료 도구로 가능하고, 한 번 습관이 되면 사진 한 장 올릴 때 30초면 끝납니다.
오늘 당장 할 수 있는 건 하나입니다. 지금 운영 중인 사이트의 대표 이미지 파일명을 열어보세요. IMG_나 DSC로 시작한다면, 거기서부터 손볼 거리가 있다는 뜻입니다.
혼자 어디부터 손대야 할지 막막하면, 무료 SEO 진단을 신청해주세요. 이미지가 검색에 걸리는 상태인지, 어느 사진이 페이지 속도를 잡아먹고 있는지 함께 짚어드립니다.