기초
먼저 게임의 규칙을 이해하기
<meta> 태그 한 줄을 쓰거나, sitemap을 손보거나, 외부 링크를 하나 사들이기 전에, 먼저 하나의 ‘세계관’을 세워야 합니다. 검색 엔진은 도대체 어떻게 동작하는가? 사용자가 검색할 때 진짜로 원하는 것은 무엇인가? Google은 무엇을 근거로 누가 1위를 차지할지 결정하는가? 이 레이어는 구체적인 실행 방법을 가르치지 않습니다. 오직 이 가장 밑바닥에 있는 몇 가지 개념을 확실하게 짚어주는 역할만 합니다. 이후의 모든 사이트 구축, 콘텐츠, 링크, 기술 최적화는 전부 이 세계관에서 파생되는 결론입니다.
코드를 쓸 줄 아는 사람이라면 사실 타고난 이점이 있습니다. 검색 엔진은 본질적으로 거대한 분산 시스템이기 때문입니다. 크롤러(Crawler)가 있고, 파싱 및 렌더링 파이프라인(Pipeline)이 있고, 저장소(Index)가 있고, 정렬 알고리즘(Ranking)이 있습니다. 검색 엔진을 당신이 연동해야 할 하나의 ‘외부 시스템’이라고 생각하면, 많은 것들이 한순간에 명쾌해집니다.
검색 엔진 동작 원리: 크롤링 → 색인 → 순위
세상에서 가장 큰 도서관을 하나 상상해 보세요. 다만 장서 목록은 전혀 없습니다. 지칠 줄 모르는 사서가 한 명 있는데(바로 Google의 크롤러입니다), 그는 세 가지 일을 합니다.
- 세상을 돌아다니며 찾을 수 있는 모든 책을 한 권씩 들춰봅니다(크롤링 / Crawling);
- 책마다 요약을 만들고 키워드를 등록해서, 거대한 카드 목록에 적어 넣습니다(색인 / Indexing);
- 어떤 독자가 와서 “발효 빵에 대해 다룬 책을 찾고 있어요”라고 물으면, 목록에서 가장 관련성 높고 가장 믿을 만한 책 몇 권을 골라 순서대로 건네줍니다(순위 / Ranking).
SEO 업계 전체는 본질적으로 이 사서가 이 세 단계를 더 매끄럽게 완수하도록 돕는 일입니다. 어느 한 단계라도 막히면, 당신의 페이지는 사용자 앞에 도달하지 못합니다.
크롤링(Crawling): 크롤러가 당신을 어떻게 발견하는가
Google의 크롤러는 Googlebot이라고 부릅니다. 새 페이지를 발견하는 경로는 주로 두 가지입니다.
- 링크를 따라 기어간다: 이미 알고 있는 페이지에서 출발해, 페이지 안의
<a href="...">링크를 따라 끊임없이 이동합니다. 마치 덩굴을 따라 오이를 더듬어 찾듯이 말이죠. 그래서 ‘내부 링크’와 ‘외부 링크’가 SEO에서 이렇게 중요한 것입니다. 어떤 링크도 가리키지 않는 페이지는, 길이 전혀 통하지 않는 외딴섬과 같습니다. - sitemap을 읽는다: 당신은 능동적으로
sitemap.xml을 제출할 수 있습니다. 이는 사서에게 장서 목록을 직접 건네주면서 “여기 이런 페이지들이 있으니 모두 봐주세요”라고 알려주는 것과 같습니다.
또한 웹사이트 루트 디렉터리에 두는 순수 텍스트 파일인 robots.txt로, 크롤러에게 어떤 영역에는 들어오지 말라고 알려줄 수 있습니다. 주의할 점은, 이것이 관장하는 것은 ‘크롤링’이지 ‘색인’이 아니라는 점입니다. 이것이 초보자가 가장 흔히 빠지는 함정입니다(뒤의 색인 부분에서 다시 언급합니다):
# https://yourdomain.com/robots.txt
User-agent: *
Disallow: /admin/ # 后台不要抓
Disallow: /cart/ # 购物车这类临时页不要抓
Sitemap: https://yourdomain.com/sitemap.xml
💡 팁: Google은 사이트마다 대략적인 ‘크롤링 예산(Crawl Budget)‘을 가지고 있습니다. 즉, 당신을 크롤링하는 데 자원을 얼마나 쓸 의향이 있는가입니다. 작은 사이트라면 사실상 신경 쓸 필요가 없습니다. 하지만 수십만 개의 페이지가 있고 매개변수가 잔뜩 붙은 쓸모없는 URL이 넘쳐난다면,
robots.txt와 합리적인 사이트 구조를 능동적으로 활용해 예산을 정말 중요한 페이지로 유도해야 합니다.
색인(Indexing): 크롤링되었다고 수록되는 것은 아니다
크롤링은 그저 페이지를 ‘다운로드’하는 것일 뿐입니다. 이어서 Google은 이 페이지를 **파싱(Parse)하고 렌더링(Render)**해야 합니다. HTML을 읽고, 제목과 본문을 추출하고, JavaScript를 한 번 실행하고, 이 페이지가 도대체 무엇을 말하는지 이해한 다음에야 비로소 이를 색인 데이터베이스에 저장할지 말지 결정합니다.
여기에 개발자에게 특히 중요한 함정이 하나 있습니다. 바로 JavaScript 렌더링입니다. 만약 당신의 페이지가 순수 클라이언트 사이드 렌더링(CSR) 단일 페이지 애플리케이션이라면, 초기 HTML은 거의 비어 있고 본문은 전부 JS가 브라우저에서 실행되어 만들어집니다. Googlebot이 JS를 실행할 수는 있지만, 렌더링은 ‘두 번째로 줄을 서서 지연 처리’되는 방식이라 느리고 완전성도 보장되지 않습니다. 그 결과, 콘텐츠가 한참 뒤에야 수록되거나, 심지어 아예 보이지 않을 수도 있습니다. 이것이 바로 SEO에서 **서버 사이드 렌더링(SSR)이나 정적 생성(SSG)**을 강력히 추천하는 이유입니다. 크롤러가 처음 받아드는 HTML 안에 이미 완전한 콘텐츠가 들어 있도록 하는 것이죠.
페이지가 ‘크롤링은 되었지만 색인되지 않는’ 현상은 매우 흔하며, 원인은 보통 다음과 같습니다.
- 콘텐츠가 너무 빈약하거나, 중복되거나, 저품질로 판정되어 Google이 수록할 가치가 없다고 여긴 경우;
noindex태그에 막힌 경우(아래에 예시가 있습니다);canonical이 다른 페이지를 가리켜서, Google이 이것을 단지 사본으로 여긴 경우;- 렌더링에 실패해, 크롤러가 본 것이 텅 빈 화면인 경우.
순위(Ranking): 수백 개의 신호에서 순서를 골라내다
사용자가 어떤 쿼리를 입력하면, Google은 밀리초 단위로 색인 데이터베이스에서 후보 페이지를 건져낸 다음, 수백 개의 순위 신호로 그것들에 점수를 매겨 정렬합니다. 어떤 단일 요소도 순위를 ‘결정’할 수는 없습니다. 순위는 종합적인 저울질의 결과입니다.
순위 뒤에는 당신이 볼 수 없는 두 단계의 처리가 더 있습니다.
- 쿼리 이해: Google은 당신의 이 문장이 진짜로 무엇을 묻고 싶은지 분석합니다. 동의어를 처리하고, 오타를 교정하며, 당신이 무언가를 사고 싶은지 아니면 지식을 배우고 싶은지를 식별합니다(이것이 바로 다음 절의 ‘검색 의도’입니다).
- 개인화: 당신의 지리적 위치, 언어, 기기, 심지어 검색 기록까지 모두 결과를 미세 조정합니다. 그래서 ‘내 순위’라는 말 자체가 엄밀하지 않습니다. 사람마다, 장소마다 보는 SERP는 완전히 다를 수 있습니다.
🧑💻 개발자 관점: 당신의 페이지가 실제로 수록되었는지 알고 싶다면, 손쉽게 쓸 수 있는 도구가 두 가지 있습니다.
- Google 검색창에
site:yourdomain.com을 입력하면, Google이 해당 도메인의 어떤 페이지들을 수록했는지, 그 개수가 대략 어느 정도인지 감을 잡을 수 있습니다. 개별 페이지를 확인하려면site:yourdomain.com/your-page를 쓰면 됩니다.- Google Search Console에 로그인해서 ‘URL 검사(URL Inspection)’ 도구에 임의의 URL을 붙여넣으면, 이 페이지의 크롤링 상태, 색인 상태, 렌더링된 후의 HTML, 그리고 왜 수록되지 않았는지를 알려줍니다. 이것이 문제 진단의 첫 번째 현장입니다.
‘크롤러 친화적’인 최소한의 색인 가능 HTML은 다음과 같은 모습입니다. 콘텐츠를 HTML 안에 직접 작성하고, 제목의 의미가 명확하며, 본문을 JS 뒤에 숨기지 않았습니다.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>家庭烘焙入门:第一次做酸面包</title>
<meta name="description" content="零基础也能上手的酸面包教程,含发酵时间表与常见翻车点。" />
<link rel="canonical" href="https://yourdomain.com/sourdough-101" />
</head>
<body>
<h1>第一次做酸面包,从养酵种开始</h1>
<p>酸面包不靠商业酵母,全靠你自己养的天然酵种……</p>
</body>
</html>
⚠️ 주의: 어떤 페이지가 색인되는 것을 능동적으로 막고 싶다면
<meta name="robots" content="noindex">를 사용하세요. 단, 전제 조건은 이 페이지가robots.txt로 차단되어 있으면 안 된다는 것입니다. 크롤러가 먼저 페이지를 크롤링할 수 있어야 그 안의noindex지시를 읽을 수 있기 때문입니다. 둘을 함께 쓰면 오히려noindex가 무효화됩니다.
검색 의도(Search Intent)
검색 의도란, 사용자가 그 키워드를 두드릴 때 머릿속에서 진짜로 이루려는 목표를 가리킵니다. 이것이 현대 SEO의 핵심입니다. Google이 순위를 매기는 것은 ‘키워드와 가장 일치하는 페이지’가 아니라 ‘이 의도를 가장 잘 충족하는 페이지’입니다. 콘텐츠를 아무리 잘 써도, 사용자가 묻고 싶어 하는 질문에 엉뚱하게 답한다면 여전히 순위에 오르지 못합니다.
의도는 보통 네 가지로 나뉩니다.
- 정보형(Informational): 무언가를 배우거나 답을 찾고 싶음. 예:
라우터 재설정 방법,https란 무엇인가,react useEffect 사용법. - 탐색형(Navigational): 특정 웹사이트/페이지로 가고 싶음. 예:
github 로그인,유튜브,stripe dashboard. - 상업 조사형(Commercial Investigation): 구매 의향은 있지만 아직 비교하고 알아보는 중. 예:
가장 쓰기 좋은 메모 앱,iphone 15 vs 16,notion 리뷰. - 거래형(Transactional): 곧바로 행동할(사고, 다운로드하고, 가입할) 준비가 됨. 예:
buy airpods pro,notion 가격,vscode 다운로드.
어떤 키워드의 의도를 어떻게 판단할까?
가장 믿을 만한 방법은 감으로 때려잡는 것이 아니라, 직접 Google에서 검색해 보고 실제 SERP(검색 결과 페이지)가 어떤 모습인지 보는 것입니다. Google은 이미 방대한 데이터로 사용자가 무엇을 원하는지 당신을 대신해 검증해 두었고, 결과 페이지가 바로 그 답입니다.
- 화면 가득 블로그 글, 튜토리얼, 위키백과 → 정보형, 당신은 깊이 있는 글 한 편을 써야 합니다.
- 상품 카드 한 줄, 쇼핑 광고, 가격이 등장 → 거래형, 당신은 제품 페이지 / 랜딩 페이지를 만들어야 합니다.
- “최고의 X 추천”, “X 비교 톱10” 같은 순위표가 등장 → 상업 조사형, 당신은 비교 리뷰를 만들어야 합니다.
- 상단이 특정 브랜드 공식 사이트 + 사이트 내 링크 → 탐색형, 기본적으로 해당 브랜드 본인만 차지할 수 있습니다.
💡 팁: 어떤 단어의 SERP가 전부 상품 페이지인데 당신은 애써 과학 상식 같은 긴 글을 한 편 썼다면, 순위에 오를 가능성은 사실상 없습니다. 당신이 내놓은 콘텐츠 형태와 사용자가 원하는 것이 애초에 다른 것이죠. 먼저 SERP를 보고, 그다음 어떤 페이지를 만들지 결정하세요.
| 의도 유형 | 대표 쿼리 | 만들어야 할 페이지 유형 |
|---|---|---|
| 정보형 Informational | SEO란 무엇인가, https 인증서 신청 방법 | 튜토리얼, 가이드, 블로그 장문, FAQ |
| 탐색형 Navigational | github 로그인, stripe 문서 | 브랜드 공식 사이트, 제품 문서 진입점 |
| 상업 조사형 Commercial | 최고의 CDN 서비스, vercel vs netlify | 비교 리뷰, 순위표, 심층 리뷰 |
| 거래형 Transactional | 도메인 구매, notion 팀 버전 가격 | 제품 페이지, 가격 페이지, 가입/구매 랜딩 페이지 |
E-E-A-T(경험, 전문성, 권위, 신뢰성)
E-E-A-T는 Google의 《검색 품질 평가 가이드라인》에 나오는 품질 평가 프레임워크로, 네 글자는 각각 다음을 의미합니다.
- Experience(경험): 콘텐츠 제작자가 직접 겪은 1차 경험이 있는가? 사워도우 빵에 대해 쓴 사람이 정말 구워보긴 했는가? 카메라를 리뷰한 사람이 실제로 손에 쥐고 찍어보긴 했는가? 이것은 Google이 나중에 추가한 첫 번째 E로, ‘여기저기서 베껴 쓰고 정작 자기는 써본 적도 없는’ 콘텐츠에 맞서기 위한 것입니다.
- Expertise(전문성): 작성자가 이 분야를 정말로 잘 아는가? 의학 글은 의사의 손에서 나오는 것이 가장 좋고, 코드 튜토리얼은 실전 경험이 있는 엔지니어에게서 나오는 것이 가장 좋습니다.
- Authoritativeness(권위): 당신(혹은 당신의 웹사이트, 당신의 작성자)이 이 분야에서 공인된 권위 있는 출처인가? 이는 상당 부분 ‘남들이 당신을 어떻게 보는가’로 드러납니다. 예를 들어 얼마나 많은 고품질 웹사이트가 당신을 인용하고 링크하는가 같은 것입니다.
- Trustworthiness(신뢰성): 웹사이트 전체가 신뢰할 만한가? 정보는 정확한가? HTTPS가 적용되어 있는가? 명확한 연락처, 환불 정책, 작성자 서명이 있는가? 이는 네 항목 중 Google이 가장 중요하다고 여기는 항목입니다.
여기에 반드시 짚고 넘어가야 할 흔한 오해가 두 가지 있습니다.
- E-E-A-T는 직접 조정할 수 있는 ‘순위 요소’가 아닙니다. 코드에 한 줄 써서 E-E-A-T를
+10할 방법은 없습니다. 이것은 Google이 알고리즘을 학습시키고 ‘이 페이지 콘텐츠의 품질이 도대체 괜찮은가’를 평가하는 데 쓰는 전체적인 프레임워크입니다. 순위에 영향을 주긴 하지만, 무수히 많은 구체적 신호를 통해 간접적으로 드러납니다. - 주제에 따라 ‘엄격함의 정도’가 다릅니다. 이로 인해 YMYL(Your Money or Your Life), 즉 ‘당신의 돈이나 목숨과 관련된’ 주제 개념을 끌어내야 합니다. 여기에는 의료·건강, 금융·재테크, 법률, 인신 안전 등이 포함됩니다. 이런 콘텐츠는 한번 틀리면 사용자에게 직접 해를 끼치므로, Google은 이들에 대한 E-E-A-T 요구가 훨씬 높습니다. 게임 공략을 쓰다 실수해도 다치는 사람은 없지만, 약 복용량을 잘못 쓴 글 한 편은 사람을 죽게 할 수도 있습니다. 기준이 하늘과 땅 차이일 수밖에 없죠.
🧑💻 실행 체크리스트(E-E-A-T를 눈에 보이고 손에 잡히게):
- 작성자 정보: 글마다 서명을 달고, 작성자 소개, 직함, 관련 경력을 첨부하며, 가능하면 실제 작성자 페이지로 연결합니다.
- 인용 출처: 핵심 데이터와 결론에 출처를 명시하고, 근거 없는 단언이 아니라 권위 있는 원자료로 연결합니다.
- HTTPS: 전체 사이트에 HTTPS를 강제합니다. 이것이 ‘신뢰성’의 합격선이며, 브라우저와 Google 모두 이를 봅니다.
- 소개 페이지 / 연락처 페이지: ‘우리는 누구이고, 어떻게 연락하는가’를 명확히 밝힙니다. 연락처조차 없는 사이트에서 무슨 신뢰를 논하겠습니까.
- 실제 사례와 1차 자료: 직접 찍은 스크린샷, 실측 데이터, 실제 사용 사진은 범용 이미지보다 훨씬 낫습니다.
- 콘텐츠 시의성: 업데이트 날짜를 표시하고, 오래된 콘텐츠를 정기적으로 점검합니다(이 사이트는 글마다 상단에
updated필드가 있는데, 바로 솔선수범하는 셈입니다).
핵심 순위 요소
Google에는 수백 개의 신호가 있지만, 대체로 네 가지 기둥 아래로 귀결됩니다. 이 네 기둥을 이해하면, ‘어디에 힘을 쏟아야 하는가’를 판단하는 프레임워크를 갖게 됩니다.
- 콘텐츠 관련성(Relevance): 당신의 콘텐츠가 사용자의 쿼리 의도에 정말로 답했는가, 그 주제가 가져야 할 깊이를 갖췄는가. 이것이 토대입니다. 콘텐츠가 틀리면 나머지 세 가지가 아무리 좋아도 만회할 수 없습니다.
- 링크와 권위(Authority / Backlinks): 얼마나 많은 고품질 외부 웹사이트가 당신에게 링크하는가. 믿을 만한 웹사이트에서 온 링크 하나하나는 마치 한 표의 ‘투표’처럼, Google에게 “이 친구는 믿을 만하다”고 알려줍니다.
- 사용자 경험(User Experience): 페이지가 빨리 열리는지, 휴대폰에서 쓰기 좋은지, 광고가 어지럽게 튀어나오지 않는지. 그중 정량화할 수 있는 한 묶음의 지표를 Core Web Vitals(핵심 웹 지표)라고 하며, 로딩 속도, 상호작용 응답성, 시각적 안정성을 측정합니다. 이 부분은 두 번째 레이어 《사이트 구축 레이어》에서 어떻게 측정하고 어떻게 최적화하는지 따로 자세히 다룹니다.
- 기술적 건강도(Technical Health): 웹사이트가 매끄럽게 크롤링되고 색인될 수 있는지, HTTPS가 있는지, 모바일 대응이 되는지, 구조화 데이터가 있는지, 깨진 링크와 리디렉션 사슬이 잔뜩 쌓여 있지는 않은지. 이것은 앞의 세 가지가 ‘Google에게 정상적으로 보일 수 있게’ 하는 전제입니다.
| 기둥 | 한마디 설명 |
|---|---|
| 콘텐츠 관련성 | 콘텐츠가 검색 의도를 정확히 적중하고 충분히 깊은가 — 모든 것의 토대 |
| 링크 / 권위 | 고품질 외부 링크는 다른 웹사이트가 당신에게 보내는 ‘신뢰의 표’ |
| 사용자 경험 | 속도, 모바일 친화, Core Web Vitals, 사용자를 짜증 나게 하지 말 것(두 번째 레이어에서 자세히) |
| 기술적 건강도 | 크롤링 가능, 색인 가능, HTTPS, 깨진 링크 없음 — 앞 세 가지가 Google에 보이게 하는 전제 |
💡 팁: 초보자는 시작하자마자 ‘링크’(외부 링크 구매)에 집착하기를 가장 좋아합니다. 하지만 순서는 거꾸로여야 합니다. 먼저 기술적 건강도와 콘텐츠를 탄탄히 다져야 합니다. 그렇지 않으면 끌어온 가중치를 물이 새는 토대 위에 쏟아붓는 셈이라 전부 낭비입니다.
요약
이 레이어의 핵심 비결은 세 문장으로 압축할 수 있습니다.
- 검색 엔진을 당신이 연동해야 할 시스템으로 보라 — 크롤링될 수 있고, 색인될 수 있고, 순위에 오를 수 있다는 것은 차례로 이어지는 세 개의 관문입니다.
- 먼저 의도를 묻고, 그다음 페이지를 만들라 — 사용자가 어떤 형태의 답을 원하는지에 맞춰 그 형태로 내놓으세요. 혼자 떠들지 말고요.
- 품질은 신비한 것이 아니라 실행 가능한 신호다 — E-E-A-T와 네 가지 기둥은 하나하나가 오늘 당장 손댈 수 있는 구체적 행동으로 쪼갤 수 있습니다.
✅ 이 레이어를 떠나기 전에, 정말로 제대로 이해했는지 스스로에게 물어보세요.
- ‘크롤링 → 색인 → 순위’ 세 단계가 각각 무엇을 하는지 내 말로 설명할 수 있다
-
site:와 Search Console로 어떤 페이지가 수록되었는지 확인하는 방법을 안다 - 순수 클라이언트 사이드 렌더링(CSR)이 왜 SEO에 불리한지 이해한다
- 네 가지 검색 의도를 구분할 수 있고, ‘먼저 실제 SERP를 보라’는 판단 방법을 안다
- E-E-A-T가 단일 요소가 아님을 이해하고, YMYL이 왜 더 엄격한지도 안다
- 핵심 순위의 네 가지 기둥을 말할 수 있고, 어떤 순서로 힘을 써야 하는지 안다
이 세계관을 갖췄다면, 이제 직접 손을 댈 차례입니다. 두 번째 레이어 《사이트 구축 레이어》로 들어가, 이 원칙들을 검색 엔진이 정확히 크롤링하고 색인하고 좋은 성과를 낼 수 있는 실제 웹사이트에 적용하기 시작합시다.