Shubidumdu

Posts

Projects

Sketchbook

2024-04-29

  • Web

SEO 기본 가이드

들어가기

아무리 노력하고 애써서 멋진 사이트를 만들어냈다고 한들, 아무도 찾아올 수 없다면 그건 참 슬픈 일입니다. 보다 더 많은 이용자들이 콘텐츠를 탐색하고, 저희가 만든 멋진 사이트들을 방문하도록 하기 위해서, SEO는 보다 깊게 이해해야 할 대상입니다.

What’s SEO?

SEO는 Search Engine Optimization의 약자로, 검색 엔진이 콘텐츠를 이해하고 사용자가 사이트를 찾아 검색 엔진을 거쳐 사이트를 방문할지 여부를 결정할 수 있게 돕는 것을 의미합니다.

더 쉽게 말해, 구글의 검색 결과로서 내가 구축한 사이트가 적절하게 노출되도록 최적화를 시키는 과정을 의미합니다.

구글 검색의 동작 방식

구글의 검색 엔진은 크게 3단계로 동작하는데, 모든 페이지들이 각 단계를 거친다는 의미는 아닙니다.

alt text

  1. 크로울링 (Crawling) : 자동화된 프로그램을 통해 인터넷에서 검색한 페이지 내 텍스트/이미지/동영상을 다운로드합니다.

  2. 인덱싱 (Indexing) : 해당 텍스트/이미지/동영상 파일을 분석하여 대규모 DB인 Google Index에 정보를 저장합니다.

  3. 검색 결과 전달 : 이용자가 구글에 검색을 했을 때, 이용자 쿼리와 관련된 정보를 전달합니다.

개발자의 입장에서 구글 검색 엔진의 동작 자체를 제어할 방법은 없습니다. 따라서 저희가 할 수 있는 것은 그저 웹 사이트를 게시하고, 구글 검색이 내 웹페이지들을 더 잘 탐색할 수 있도록 사이트를 최적화를 하는 것입니다.

최소 기술 요구사항

사실, 구글 검색 결과에 페이지가 표시되게 하기 위한 최소한의 기술 요구사항은, 아래가 전부입니다. 페이지가 아래의 요구사항을 충족하기만 한다면, Google 검색의 인덱싱 대상이 될 수 있습니다.

  1. robots.txt 등으로 Googlebot이 차단되지 않음
  2. 페이지가 작동함, (= HTTP 200)
  3. 페이지에 인덱싱 가능한 콘텐츠가 있음

이 중, 인덱싱 가능한 콘텐츠란, 아래의 두 조건을 충족시키는 콘텐츠를 의미합니다.

스팸 정책의 경우 Google의 자동화 시스템 및 필요한 경우 직접적인 조치를 통해 정책 위반 콘텐츠 및 행동을 감지하게 됩니다. Google 정책을 위반하는 사이트는 검색 결과 순위가 낮아지거나, 아예 표시되지 않을 수 있습니다.

SEO 가이드

alt text

Google의 랭킹 알고리즘은 수년을 거쳐 발전해왔습니다. 그렇기 때문에, 일일이 짚어가기 어려울 정도로 많은 요인들에 의해 구글의 검색 순위가 결졍됩니다. 더불어, Google 내부적으로도 검색 엔진은 계속 개선되기 때문에, 당장의 검색 순위가 높다고 해서 이 후에도 지속적으로 높은 순위를 보장한다고 말할 수 없습니다.

다만 Google에 의해 제안되는, 웹 콘텐츠의 노출을 위해 권장되는 가이드는 아래와 같습니다.

이미 수집되었는지 확안하기

먼저 site: 키워드로 Google에 검색을 시도하여, 내 콘텐츠가 이미 수집 및 노출이 되고 있는지를 확인합니다. 만약 이미 이것이 이루어지고 있다면, 사실 아무런 조치도 취할 필요가 없습니다.

alt text

사이트가 표시되지 않는 상황이라면, 사이트가 기술적인 요구사항을 충족시키고 있는지 확인해야 하며, 사이트에 이에 대한 조치가 반영되더라도 실질적으로 Google 검색 엔진에 반영되기까지는 긴 시간이 필요할 수 있기 때문에 여유를 가져야 합니다.

링크

재미있게도, Google은 이미 크롤링이 이루어진 페이지에 포함된 링크를 통해 자연스레 페이지를 찾아나갑니다. 대부분의 경우 이는 내 페이지로 향하는 링크를 보유한 다른 웹사이트가 되며, 이는 다시 말해 사이트 홍보를 통해 이용자들이 내 콘텐츠를 발견하도록 유도하는 행위 자체가 구글 검색 엔진의 노출 순위에도 영향을 미친다는 것을 의미합니다.

거꾸로 말해 사이트 내에서 각각의 페이지에 대한 링크 배치가 제대로 이루어지지 않은 상황이라면, 콘텐츠 수집이 제대로 이루어지지 않을 수 있습니다. 아래와 같은 경우에는 사이트맵(sitemap.xml)의 제공을 고려해볼 수 있습니다

  • 사이트 크기가 너무 큰 경우: 일반적으로 대규모 사이트에서는 모든 페이지가 서로 긴밀한 연결을 갖도록 하는게 어려워 이 경우 페이지 발견이 어려울 수 있습니다.
  • 사이트가 격리된 형태인 경우: 크롤러는 한 페이지에서 다른 페이지로 연결되는 링크를 따라 이동하며 크롤링을 진행하기 때문에, 연결된 페이지 자체가 없으면 페이지 탐색이 어렵습니다.
  • 사이트 내 콘텐츠의 변경 및 추가가 잦은 경우: 가령 뉴스와 같이 콘텐츠의 변경과 수정이 자주 일어나는 경우, 콘텐츠의 발견에 사이트맵이 도움이 됩니다.

alt text

유의해야 할 것은, 사이트맵을 사용하는 것이 모든 페이지가 Google이 크롤링 및 인덱싱되도록 해준다는 것을 의미하는게 아니라는 점입니다. 말 그대로 도움을 준다는 의미에서 사이트맵은 의미를 갖습니다.

논리적인 사이트 구성

사이트를 새로 설정하게 된다면, 논리적으로 구성하는 편이 좋습니다. 이 경우 검색엔진과 사용자가 해당 페이지가 사이트의 어떤 부분에 해당하는지에 대해 이해하는데 도움이 될 수 있기 때문입니다.

의미를 담은 URL을 사용하기

URL의 일부는 브레드크럼(breadcrumb)의 형태로 검색 결과로 표시됩니다. 따라서 사용자가 해당 페이지가 본인에게 유용할지에 대한 판단을 하도록 해줍니다.

alt text

구글은 URL에 있는 단어에 기반해서 브레드크럼을 자동으로 학습합니다. 이 부분을 제어하고 싶다면, Structured data를 직접 전달하여 경로에 영향을 줄 수도 있습니다.

가능하다면 URL은 실제로 의미있는 단어를 기반으로 구성하는 것이 좋습니다. 예를 들어서

https://www.example.com/pets/cats.html

임의의 식별자들로 구성된 URL은 사용자에게 제대로 된 의미를 전달하기 힘듭니다.

https://www.example.com/2/6772756D707920636174

디렉토리에 기반하여 유사한 페이지들을 그룹화하기

사이트에 수많은 URL이 존재하는 경우, 콘텐츠의 구성하는 방식이 Google이 사이트를 크롤링/인덱싱하는 방식에 영향을 미칠 수 있습니다. 특히, 디렉토리를 사용해 유사한 주제를 그룹화하면, 각각의 디렉토리 내 URL이 얼마나 잦은 변경이 이루어지는지 Google이 파악하는데 도움이 될 수 있습니다.

예를 들어, 아래와 같은 형태입니다.

https://www.example.com/policies/return-policy.html
https://www.example.com/promotions/new-promos.html

policies 디렉토리 내의 콘텐츠는 거의 변경되지 않지만, promotions 디렉토리의 콘텐츠는 자주 변경될 가능성이 높습니다.

Google은 이를 학습하여 각각의 디렉토리를 다른 빈도로 크롤링할 수 있습니다.

중복 콘텐츠 줄이기

일부 웹사이트는 동일한 콘텐츠를 다른 URL에 중복되게 표시합니다. 이 경우 검색 엔진은 콘텐츠 별로 하나의 단일 URL을 선택하여 이를 표시하는데, 이걸 Canonical URL이라고 합니다.

중복 콘텐츠 자체는 Google의 스팸 정책에 포함되는 것은 아닙니다. 하지만 이용자 경험에 나쁘고, 의도한 페이지가 아닌 쪽의 중복 콘텐츠 페이지가 검색 결과에 노출될 수 있습니다. 기본적으로 중복 콘텐츠에 대한 대표 URL에 대한 표준화는 검색 엔진 측에서 자동으로 이루어지지만, 이를 제어하고 싶다면 직접 Canonical URL에 대해 명시할 수도 있습니다.

<html>
<head>
<title>Explore the world of dresses</title>
<link rel="canonical" href="https://example.com/dresses/green-dresses" />
<!-- other elements -->
</head>
<!-- rest of the HTML -->

사이트를 유용하고 흥미롭게 만들기

사실 구글에서 제안하는 가이드에서 가장 중점적으로 강조되는 것은, 매력적이고 유용한 콘텐츠를 제공하는 것이며, 이 때에 그 어떤 제안보다도 가장 큰 영향을 미칠 것이라고 이야기하고 있습니다.

이는 추상적인 개념이라 저마다 다른 의미를 가질 수 있는데, 일반적으로 다음과 같은 공통된 속성을 지닙니다.

  • 텍스트가 읽기 쉽고 잘 정리되어 있음: 콘텐츠를 자연스럽게 작성하고, 맞춤법 및 문법 오류가 없는지, 흐름이 매끄러운지 확인합니다. 긴 콘텐츠는 몇개의 단락과 섹션으로 나누고, 사용자가 페이지를 탐색하기에 도움이 되는 제목을 부여합니다.
  • 고유한 콘텐츠: 새 콘텐츠를 작성할 때에는 다른 이의 콘텐츠를 복제해선 안 됩니다. 이는 스팸 정책에 위배되기 때문에 검색 순위에 부정적인 영향을 미칩니다.
  • 최신 콘텐츠: 이전에 게시된 콘텐츠도 확인하고 필요에 따라 업데이트하거나, 더 이상 유효하지 않은 경우 삭제해야 합니다.
  • 도움이 되고, 신뢰할 수 있으며, 사용자을 우선시하는 콘텐츠: 사용자들이 유용하고 신뢰할 수 있는 콘텐츠를 작성해야 합니다. 전문가 또는 경험이 풍부한 내용을 담은 출처를 제공하면 콘텐츠의 전문성을 드높이는데 도움이 될 수 있습니다.

독자의 검색어 예상하기

일반적으로 사용자가 해당 콘텐츠를 찾기 위해 검색할 수 있는 단어에 대해 생각해봐야 합니다. 해당 주제에 대해 더 깊은 지식을 갖춘 사용자는 더 전문적인 지식을 기반으로 키워드를 검색할 것입니다. 이러한 검색 행동의 차이를 예상하고 특정 독자를 타깃으로 콘텐츠를 작성하면 검색 결과 상 사이트의 성과에 긍정적인 영향을 미칠 수 있습니다.

그렇다고 모든 변수를 예상할 수 없다며 걱정할 필요는 없습니다. Google의 자체적인 언어 검색 시스템은 정교하기 때문에, 해당 콘텐츠에 어떤 키워드나 단어를 명시적으로 사용하지 않더라도 어떤 검색어와 어떻게 연관되어 있는지에 대해 검색 엔진은 이해할 수 있습니다.

어수선한 광고 제거

광고 역시 인터넷 콘텐츠의 일부이지만, 지나치게 산만하거나 사용자가 콘텐츠를 읽기 어렵게 해서는 안됩니다. 이로 인해 사용자가 웹사이트 사용 자체를 어렵게 느끼고, 이 경우 검색 순위에도 역시 부정적인 영향을 미치게 됩니다.

관련된 리소스 링크

링크는 사용자와 검색 엔진을 사이트의 다른 부분 또는 다른 사이트의 관련 페이지로 연결할 수 있는 좋은 방법입니다. 실제로 Google이 매일 발견하게 되는 새로운 페이지의 대부분은 링크에 의해 생성되기 때문에, 이는 고려해야 할 중요한 리소스입니다.

alt text

이 때, 링크가 적용될 텍스트(=Anchor text) 역시 고려 대상이 됩니다. 적절한 앵커 텍스트의 설정은 이용자와 검색 엔진이 모두 해당 페이지가 담고 있을 내용을 유추하는데에 도움을 줍니다.

alt text

만약, 내 사이트와 관련 없는 외부 사이트에 대한 링크를 걸고 싶지만, 해당 콘텐츠를 신뢰하기는 어렵다고 생각 될 떄에는 nofollow rel 속성을 사용해야 합니다. 만약 링크로 연결된 사이트가 스팸 정책을 위배하거나 하여 부정적인 검색 결과를 얻게되는 경우, 해당 링크를 적용한 내 사이트의 콘텐츠 역시 영향을 받을 수 있기 때문입니다.

<a rel="nofollow" href="https://cheese.example.com/Appenzeller_cheese">Appenzeller</a>

특히 사이트에서 이용자가 직접 콘텐츠를 생성할 수 있도록 허용하는 경우, 사용자가 게시하는 모든 링크에 해당 속성을 추가하는 것이 권장됩니다. 링크된 사이트와의 맹목적인 연결을 막고, 악성 이용자가 내 웹사이트를 악용하여 검색 순위에 부정적인 영향을 끼치는 경우도 막을 수 있습니다.

검색 결과에 어떻게 보일지 신경쓰기

일반적인 Google 검색 결과는 사용자가 검색 결과를 보고 해당 사이트를 방문할지 결정하는 데에 영향을 줄 수 있는 몇가지 시각적 요소로 구성됩니다. 이 섹션에서는 시각적으로 더 중요한 title 링크와 snippet에 초점을 맞춰보겠습니다.

alt text

title은 검색 결과의 헤드라인 부분에 해당하며, Google은 이 제목 링크를 주로 <title> 태그 내부의 단어와 페이지의 다른 heading 태그들을 포함하여 생성합니다.

alt text

snippet은 검색 결과의 타이틀 아래에 배치되는 설명을 의미합니다.

alt text

스니펫은 해당 페이지의 실제 콘텐츠 내에서 수집되기 때문에, 콘텐츠를 통해 이 스니펫을 제어할 수 있습니다. 가끔 meta 설명 태그의 내용에서 이 스니펫을 가져오는 경우도 있는데, 이는 일반적으로 페이지에 대한 간결한 한 두가지 문장으로 페이지를 요약한 경우입니다. 좋은 설명 meta 태그는 짧고, 특정 페이지에 고유하며, 페이지의 가장 관련성 높은 요점만을 포함한 것입니다.

<meta name="description" content="A description of the page">

이러한 메타 태그는 꼭 어떤 문장이어야 할 필요는 없습니다. 페이지 콘텐츠와 가장 관련성 높은 정보를 제공하는 것이 좋고, 특히나 페이지 내 주요 내용이 여기저기 흩어져 있는 경우, 메타 설명 태그를 통해 이를 한데 모을 수 있습니다.

<meta name="description" content="Written by A.N. Author, Illustrated by V. Gogh, Price: $17.99, Length: 784 pages">

이미지 추가 및 최적화

많은 이용자들은 검색에서 시각 정보를 많이 활용하며, 웹사이트를 처음 발견하게 되는 경로가 될 수 있습니다. 그렇기 때문에 검색 엔진과 이용자가 어떤 이미지에 대해 명확하게 이해할 수 있도록 돕는 것이 필요합니다.

고품질 이미지를 관련된 텍스트 근처에 배치하기

이미지는 고품질을 사용하되, 해당 이미지와 관련된 텍스트 근처에 배치되는 것이 좋습니다. 이를 통해 Google이 해당 이미지가 사용된 맥락에 대해 더 쉽게 파악할 수 있게 됩니다.

이미지에는 alt 텍스트를 추가하기

alt 텍스트는 짧지만, 검색 엔진이 페이지의 콘텐츠와 이미지 사이의 긴밀한 연관성을 설명하는데 도움을 줍니다. 그렇기 때문에 좋은 alt 텍스트를 작성하는 것은 상당히 중요합니다.

<img
  src="maine-coon-nap-800w.jpg"
  alt="A watercolor illustration of a maine coon napping leisurely in front of a fireplace">

동영상 최적화

웹사이트에 주로 개별 동영상에 대한 페이지가 포함된 경우, Google 동영상 검색 결과를 통해 사용자가 사이트를 발견할 수도 있습니다. 이 때는 아래와 같은 베스트 프랙티스를 제안할 수 있습니다.

  • 고품질 동영상 콘텐츠를 제작하고, 해당 동영상 근처에 비디오를 위치시킵니다. 동영상 페이지는 독립적인(standalone) 페이지인 것이 좋습니다.
  • 동영상에 대한 제목 및 설명 텍스트를 작성합니다.

alt text

웹사이트 홍보

콘텐츠를 효과적으로 홍보하면 같은 주제에 관심이 있는 사용자 및 검색 엔진이 더 빨리 콘텐츠를 발견하도록 할 수 있습니다. 여기엔 다양한 방법이 있습니다.

  • SNS 홍보
  • 커뮤니티 참여
  • 오프라인 및 온라인 광고
  • 입소문 등 그 외..

다만, 너무 과도한 홍보는 오히려 사이트에 대한 부정적인 인식을 주며, 일부 경우에는 검색 결과 조작에 대한 스팸 정책을 위반한 것으로 간주될 수 있습니다.

의외로 SEO에서 중점을 두지 말아야 할 것들

SEO가 발전함에 따라, 이에 대한 아이디어도 진화해왔습니다. 과거에는 SEO 모범 사례 내지는 최우선 검색 순위로 간주되었던 것이 시간이 지남에 따라서 검색 엔진이 발전하며 더 이상 적절하거나 효과적이지 않은 방법이 될 수 있습니다.

여기서는 몇 가지 주요한 오해에 대해 한번 살펴보고자 합니다.

keywords 메타 태그

<meta name=”keywords” content="keyword1, keyword2, ...″ />

키워드 메타 태그는 구글 검색에서 전혀 활용되지 않습니다. 다만 다른 종류의 메타 태그는 여전히 검색 엔진에서 활용되고 있습니다.

키워드 스터핑 (Keyword stuffing)

키워드 스터핑이란 동일한 단어를 지나치게 반복적으로 사용하는 것으로, 이는 구글 스팸 정책에 위배되는 사항이기 때문에, 오히려 검색 결과에 나쁜 영향을 미칩니다! 아래와 같은 예시를 들어볼 수 있습니다.

Unlimited app store credit. There are so many sites that claim to offer app store credit for $0 but they're all fake and always mess up with users looking for unlimited app store credits. You can get limitless credits for app store right here on this website. Visit our unlimited app store credit page and get it today!

도메인 네임 또는 URL 경로 상 키워드

사이트 이름을 정할 때에는 비즈니스에 가장 적합한 이름을 고르는 것이 좋습니다. 검색 순위에 있어서는 도메인 이름과 URL 경로 자체는 breadcrumb로서 표시되는 것 이외에는 거의 영향을 미치지 않습니다.

그리고, TLD(ex. com, .io)의 경우, 특정 국가 사용자들을 타게팅하고자 하는 경우에만 검색 엔진에서 중요하게 여겨집니다. 이를테면, 스위스 사용자들을 대상으로 하는 웹사이트를 제공하고자 하는 경우, .ch 도메인을 사용하는 쪽이 비즈니스와 SEO 관점에서 모두 합리적입니다. 그 외의 경우에 TLD는 크게 상관이 없습니다.

콘텐츠 길이

콘텐츠 길이 자체는 순위에 영향을 미치지 않습니다. 한편, 콘텐츠에 포함되는 단어 자체를 반복되지 않도록 다양하게 사용할 경우 더 많은 키워드를 사용하기 때문에 검색에 표시될 가능성이 좀 더 높습니다.

서브 도메인 vs. 서브 디렉토리

blog.example.com // 서브 도메인
example.com/blog // 서브 디렉토리

이 역시 비즈니스 관점에서 더 적합한 방법을 선택해야 합니다. 서브 디렉토리로 다룰 경우 관리가 더 쉬울 수 있지만, 주제에 따라 서브도메인으로 다루는 쪽이 더 이해하기 쉬운 경우도 있습니다.

PageRank

페이지 랭크는 Google 검색 엔진에서 링크에 기반해 순위를 매기는 기본 알고리즘 중 하나입니다. 페이지 랭크 자체가 아무런 영향을 끼치지 않는 것은 아니지만, Google 검색 상에는 훨씬 더 많은 내용들이 고려되기 때문에 상대적으로 집중도가 덜 합니다.

중복 콘텐츠에 대한 페널티

여러 URL을 통해서 똑같은 콘텐츠를 제공하는 부분이 있어도 걱정할 필요는 없습니다. 다소 비효율적이긴 하지만, 따로 조치를 취할 정도는 아닙니다. 하지만, 다른 이의 콘텐츠를 복제하여 게시하는 것은 엄연히 다른 문제입니다.

Heading 태그의 수/순서

Heading을 의미론적으로 순서대로 작성하면 스크린 리더 입장에서는 좋겠지만, Google 검색 엔진 관점에서 보면 순서가 어긋나더라도 상관없습니다. 일반적으로 웹 상의 수많은 페이지들은 유효한 형태의 HTML이 아닙니다. 그렇기 때문에 구글 검색은 HTML 사양에 숨겨진 시맨틱 상의 의미에 의존하는 경우가 거의 없습니다.

또한, 특정 페이지에 Heading 태그를 많이 사용할 경우 이점이 있는 것도 아닙니다. 오히려, 너무 많은 Heading 태그에 대해서 부정적으로 인식할 수 있습니다.

E-E-A-T (Experience-Expertise-Authoritativeness-Trustworthiness)

Google은 콘텐츠에 있어 EEAT라고 불리는 각 요소를 측정하고 파악합니다. 사실 EEAT는 그 자체가 특정 순위 요소로 사용되는 것은 아닙니다. 하지만 Google 입장에서 특정 웹사이트의 콘텐츠가 높은 품질을 지니고 있는지에 대한 측정의 용도로 활용합니다. Google은 이를 기반으로 주기적으로 검색 품질에 대해 측정하여 검색 엔진을 개선해나갑니다.

마치며

사실은 생각보다 가벼운 내용이라 생각하고 접근했으나, 생각보다 SEO 상에는 훨씬 더 많은 내용들이 고려되고, 또 적용되어야 한다는 점을 새로 알게 된 것 같습니다. 이를 정리하며 알게 된 것이지만, 해외에는 국내와 다르게 "SEO 스페셜리스트"라는 별도의 포지션이 존재한다고 합니다. 뭔가 신기하네요. 제가 본 포스트로 다룬 내용은 SEO의 기본적인 가이드에 가까운 것이었고, 더 깊게 살펴봐야 할 내용은 훨씬 더 많은 것 같습니다. 결론적으로 Google의 입장에서는 실제로 이용자들에게 유용하고, 흥미로운 콘텐츠 자체를 만드는 것이 제일 SEO를 잘 수행할 수 있는 방법이라고 강조하는 부분이 제법 흥미로웠던 같습니다. 특히나 제가 갖고있던 오해도 많았다는 점을 알게 된 포스팅이었습니다.

참조