트래픽을 쓸더 담는 검색엔진 최적화 책의 두번째 시간입니다. 해당 글은 SEO 공부하기 Part.1의 후속 내용입니다.
참고하면 좋을 것 같아요!
(괜히 두 개로 나누었나 싶은 생각도 있습니다 😅)
레귤러 스니펫은 전통적으로 구글 검색엔진이 보여주던 방식입니다. 반면, 리치 스니펫은 이미지, 평점, 가격 등 다양한 정보를 함께 보여주는 방식입니다.
레귤러 스니펫이나 리치 스니펫이 검색 결과 페이지의 가장 상단에 박스 형태로 표시되면 이를 피처드 스니펫이라 부릅니다. 대표적인 예가 '답변 박스'입니다. 요즘은 “구글의 Search Labs | AI 개요”에서 만들어내는 것 같네요.
스키마 마크업은 "이 데이터는 주소다" 또는 "이 데이터는 이름이다"라는 정의를 통해 검색엔진이 데이터를 이해하도록 돕습니다.
아래 3가지 스키마 마크업을 소개해드리겠습니다.
JSON-LD는 JSON 형식을 사용하여 링크된 데이터를 인코딩하는 방법입니다.
{
"@context": "https://json-ld.org/contexts/person.jsonld",
"@id": "http://dbpedia.org/resource/John_Lennon",
"name": "John Lennon",
"born": "1940-10-09",
"spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
}
Microdata는 HTML 콘텐츠 내 구조화된 데이터를 중첩하는데 사용되는 개방형 커뮤니티 HTML 사양입니다.
<div itemscope itemtype="https://schema.org/SoftwareApplication">
<span itemprop="name">Angry Birds</span> - REQUIRES
<span itemprop="operatingSystem">ANDROID</span><br />
<link
itemprop="applicationCategory"
href="https://schema.org/SoftwareApplication" />
<div
itemprop="aggregateRating"
itemscope
itemtype="https://schema.org/AggregateRating">
RATING:
<span itemprop="ratingValue">4.6</span> (
<span itemprop="ratingCount">8864</span> ratings )
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
Price: $<span itemprop="price">1.00</span>
<meta itemprop="priceCurrency" content="USD" />
</div>
</div>
RDFa는 웹 문서 내 풍부한 메타데이터를 포함하기 위해 HTML, XHTML 및 다양한 XML 기반 문서 유형의 속성 수준으로 확장하여 추가하는 방식입니다.
<span vocab="http://schema.org/" typeof="TechArticle">
<a property="url" href="http://www.w3.org/TR/rdfa-primer/">
<span property="name">RDFa 1.1 Primer</span></a>.
</span>
스키마 마크업을 제대로 활용하면 검색엔진이 콘텐츠의 구조를 명확히 이해해, 리치 스니펫과 같은 부가 기능을 통해 사용자에게 더 나은 검색 경험을 제공합니다.
오프페이지 SEO는 보유한 웹사이트 외부에서 이루어지는 최적화 작업을 의미합니다.
그중 가장 중요한 요소는 링크 빌딩으로, 다른 웹사이트로부터의 링크를 확보하는 것입니다.
다만, 비윤리적 방식(스팸 링크, 대량 링크 구축)을 사용하면 검색엔진으로부터 패널티를 받을 수 있습니다.
백링크는 오프페이지 SEO의 핵심 요소입니다.
A 사이트가 B 사이트를 언급하며 B 사이트로 연결해주는 링크를 포함할 경우, B 사이트는 A 사이트로부터 백링크를 얻었다고 표현합니다.
백링크는 웹사이트 신뢰도를 높이고, 더 많은 트래픽을 유도하며, 검색 순위를 향상시킵니다.
<a href="http://www.website.com" rel="nofollow">Text</a>
<a href="http://www.website.com" rel="sponsored">Text</a>
<a href="http://www.website.com" rel="ugc">Text</a>
이미지 대체 텍스트(alt 속성)는 검색엔진 크롤러가 이미지를 이해하도록 돕는 핵심 요소입니다.
이미지 최적화에서 문맥과 관련성은 매우 중요합니다.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://example.com/sample1.html</loc>
<image:image>
<image:loc>https://example.com/image.jpg</image:loc>
</image:image>
</url>
</urlset>
반응형 이미지는 다양한 기기에 최적화된 크기를 제공합니다.
<img
srcset="
heart-small-480px.jpg 480w,
heart-medium-700px.jpg 700w,
heart-large-1000px.jpg 1000w
"
sizes="
(max-width: 480px) 480px,
(max-width: 700px) 700px,
1000px
"
src="heart-large-1000px.jpg"
alt="하트"
/> <!-- srcset이 설정되었다면 src 속성은 무시됨 -->
AMP는 모바일 페이지 로딩 속도를 극대화하여 사용자 경험을 개선합니다.
빠른 로딩은 검색 엔진 순위와 사용자 유지율 향상에 기여합니다.
사이트맵은 검색 엔진이 페이지 구조를 이해하고 색인화하도록 돕습니다.
정기적으로 업데이트하거나 자동으로 관리되도록 설정하면 SEO 작업의 효율성이 높아집니다.
국가별 고유 도메인을 사용하는 것이 가장 효과적이며, HTML의 <hreflang>
태그를 사용해 각 페이지의 언어와 타겟 국가를 명확히 설정할 수 있습니다.
<head>
<title>한국어 페이지 제목</title>
<meta name="description" content="한국어 페이지에 대한 설명글입니다.">
<link rel="canonical" href="https://example.com/ko">
<link rel="alternate" href="https://example.com/ko" hreflang="ko">
<link rel="alternate" href="https://example.com/en" hreflang="en">
// ...이하 생략...
SEO는 검색엔진과 사용자가 콘텐츠를 잘 이해하고 신뢰할 수 있도록 돕는 과정이며, 스키마 마크업, 백링크, 링크 빌딩 전략, 다국어 웹 사이트 최적화, 이미지 최적화 등 세부적인 작업이 SEO를 잘 이행할 수 있을 겁니다.
저는 SEO 최적화를 통해서 최상단에 올려본 경험이 있고 잘한다고 생각했습니다. 그런데 그저 next.js와 lighthouse가 해주는 기술적 해결방안으로 한 것이지 어떤게 부분 때문인지는 잘 이해하지 못했습니다. 그저 "SSR을 사용해서 사전 렌더링을 통해 html을 생성하니 구글 봇이 잘 읽나봐" 하고 끝냈던 것 같습니다. 그랬던 저에게 네이버 웹툰 개발자분께서 의문을 제기해주셨고, 궁금증이 생겨서 2~3일만에 줄 치면서 다 읽었네요. 신기하고 프론트엔드 개발자라면 한번 생각해보면 좋은 주제였던 것 같습니다.
Part.1이랑 분리 안하는게 나을 것 같은데 아쉬움이 남긴하네요. 이제는 분리할 때도 신경을 써야할 것 같습니다.
읽어주신 분들 감사드립니다.