← 글 목록

notes

블로그 SEO (Google 공식 기준)

Google 공식 기준의 블로그 SEO 핵심·검색 노출 설정 메모.

같이 보면 좋은 것: Untitled · Notion API 리미트 · 웹훅 · 캐시 최적화 · Search Central 전체


한 줄로 말하면

처음에 SEO 하면 title 글자 수, H1은 몇 개, 키워드를 몇 번… 이런 만점 게임부터 떠올렸다. 문서를 따라가 보니 생각보다 심플하더라.

좋은 글을 쓰고, Google이 그걸 읽을 수 있게 열어 두고, 꼼수(스팸)는 하지 말자.

사이트맵이니 스키마니 CWV는 “점수 채우기”가 아니다. 글을 찾아주고, 이해하고, 클릭하게 돕는 도구일 뿐이다.

AI 검색(AI Overviews / AI Mode)도 마찬가지. Google이 분명히 말한다. 별도 AEO·GEO 해킹이나 llms.txt 같은 특수 파일은 안 쓴다. 평소 SEO 잘하면 그게 AI 검색에도 통한다.

→ AI features · AI 최적화 가이드 · AI 검색에서 잘되는 법


글이 아무리 좋아도, Google이 못 보면 끝

검색에 후보로라도 들어가려면 최소한 이 세 가지는 돼야 한다.

  • Googlebot이 막히지 않을 것
  • 페이지가 정상(HTTP 200)으로 열릴 것
  • 글(텍스트)이 있을 것

그래도 “무조건 노출된다”는 말은 아니다. 입장권이지 우승 트로피는 아니다.

→ 기술 최소 요건

새 글은 링크로 발견된다

Google은 주로 이미 아는 페이지에 걸린 링크로 새 주소를 찾는다. 사이트맵이랑 “우리 글 나왔어요” 홍보는 보조다.

그래서 “글만 올리고 어디에도 안 걸고, 사이트맵만 믿자”는 좀 위험한 생각이다.

사이트맵, 있으면 좋지만 만능은 아님

사이트맵은 “이 URL들 중요해”라고 알려 줘서 크롤을 덜 헤매게 하는 힌트다. 넣었다고 전부 인덱싱되진 않는다.

페이지가 대략 500개 아래고 내부 링크가 잘 이어져 있으면 필수는 아니라고도 한다. 우리처럼 글이 계속 늘면 있는 편이 마음 편하다.

기억해 둘 디테일:

  • 한 파일에 5만 URL 또는 비압축 50MB 넘으면 쪼개기
  • lastmod는 진짜로 본문이 바뀐 날만. 저작권 연도만 바꾼 건 안 친다
  • changefreq / priority? Google이 무시한다. CMS가 채워 넣어도 기대하지 말 것
  • 주소는 절대경로로, UTM 같은 잡파라미터는 빼기

→ 사이트맵 개요 · 만드는 법

robots.txt로 “비밀글” 숨긴다고? 그건 오해

robots.txt는 크롤러에게 오지 말라고 하는 용도다. 검색 결과에서 지워 주는 스위치가 아니다. 막아도 다른 사이트에서 링크가 걸려 있으면 URL만 덩그러니 뜰 수 있다.

진짜로 숨기려면:

  • noindex를 걸거나
  • 비밀번호로 막거나
  • 그냥 지우기

함정: robots로 막아 버리면 그 페이지의 noindex를 읽지도 못한다. 검색에서 빼고 싶으면 일단 들어오게 두고 noindex를 거는 게 맞다.

그리고 CSS·JS를 robots로 막으면 Google이 화면을 사람처럼 못 본다. Search Console URL 검사로 한 번 보면 안다.

→ robots 소개 · robots meta

같은 글, URL만 여러 개일 때 (canonical)

“이게 진짜 주소야”라고 알려 주는 신호 세기는 이렇다.

  • 리다이렉트 (제일 셈)
  • rel="canonical"
  • 사이트맵에 넣기 (약함)

HTTPS를 HTTP보다 좋아한다. 글마다 자기 자신을 가리키는 canonical을 두고, 사이트 안 링크도 그 주소로 맞추자.

블로그에서 자주 나오는 경우:

→ 중복 URL 정리

모바일로 보이는 게 “진짜”다

요즘 Google은 스마트폰으로 본 페이지를 기준으로 인덱싱·순위를 매긴다. PC에만 내용이 많고 모바일은 줄여 두면, 그게 손해로 돌아온다.

본문, 제목, 설명, 스키마, 이미지, alt — 모바일과 PC가 같아야 한다. 탭·아코디언에 넣어도 내용은 그대로여야 하고, 클릭해야 본문이 나오는 구조는 피하자.

→ 모바일 우선 인덱싱 · lazy-load

속도(CWV), 만점 집착은 비효율

목표는 대략 이렇다. LCP 2.5초 안, INP 200ms 미만, CLS 0.1 미만.

순위에도 쓰이긴 하는데, Google이 말하는 “페이지 경험” 점수 하나로 끝나는 건 아니다. 관련 있는 글이 먼저고, 비슷한 글끼리 겨룰 때 경험이 차이를 만든다.

Search Console에 나오는 CWV는 실제 방문자가 느낀 값(필드)이다. Lighthouse 만점이랑 헷갈리면 안 된다. 블로그는 히어로 이미지·웹폰트 같은 템플릿 한 번으로 글 수백 개가 같이 망가지거나 같이 고쳐진다.

→ 페이지 경험 · Core Web Vitals


검색결과에 어떻게 보이냐

파란 제목은 내가 쓴 그대로가 아닐 수 있다

검색에 뜨는 파란 제목(title link)은 Google이 알아서 만든다. <title>, 화면 큰 제목, 헤딩, 링크 텍스트 등을 본다. “내가 쓴 title 그대로 고정해 주세요”도 안 해 준다.

우리가 할 일은 심플하다. 글마다 고유하고 짧고 내용과 맞는 <title>을 쓰고, 화면 주 제목이랑 연도·버전이 안 어긋나게 맞추기. 반쪽짜리 title, 낡은 연도, 같은 문구 반복은 재작성 유발로 문서에 적혀 있다.

→ Title link

설명(description)은 “가끔” 쓰인다

검색 요약(스니펫)은 주로 본문에서 뽑힌다. meta description이 더 그럴듯할 때 가끔 쓴다. “몇 글자여야 한다”는 마법은 없고, 기기 폭에 맞게 잘린다. 카테고리마다 같은 설명 복붙은 의미 없다.

→ 스니펫

H1은 몇 개여야 해? → 그런 규칙 없음

읽기 좋게 단락·소제목으로 나누면 된다. 개수·순서의 마법 숫자는 없다. 접근성에는 순서가 좋지만, 순위용이 아니다.

링크는 진짜 <a href="주소">로

버튼에 onclick만 달아 두거나, #/page 같은 해시 라우팅만 쓰면 Google이 링크를 잘 못 본다. History API로 실제 URL을 쓰고, 화면에 <a href>가 보이면 된다.

앵커는 “여기를 클릭” 대신 어디로 가는지 적자. 중요한 글은 사이트 안에서 한 번은 걸려 있어야 한다.

→ 크롤 가능한 링크

BlogPosting은 치트가 아니라 “오해 방지”

글에 BlogPosting(또는 Article) 마크업을 넣으면 제목·저자·날짜·대표 이미지를 Google이 덜 헷갈리게 본다. 뉴스 Top stories에 필수는 아니다. 필수 필드도 없다 — 해당되는 것만 넣으면 된다.

실무에서 챙기는 것: headline, 저자(이름 + 프로필 URL), 발행·수정일(타임존 있는 ISO), 이미지. 화면에 보이는 내용이랑 마크업이 같아야 한다. 저자 이름에 “작성:”이나 직함 붙이지 말 것.

→ Article / BlogPosting

이미지

CSS 배경 이미지는 인덱싱 안 된다. <img src>로 넣고, alt는 사람이 읽게 쓰기(키워드만 나열하면 스팸). 본문 가까이에 두고, 너무 무겁지 않게.

→ 이미지 SEO

URL이랑 검색어

읽기 쉬운 주소는 좋다. 그렇다고 주소에 키워드만 잔뜩 넣는다고 순위가 오르는 효과는 거의 없다.

독자가 검색할 말은 제목·첫 문단·소제목에 자연스럽게. 동의어를 다 맞출 필요 없고, “몇 자로 써야 한다”는 순위 요인이 아니다.


글쓰기 — 여기가 본체다

공식 문서가 제일 강조하는 건 사람을 위한 글이다. 검색에 뜨려고 만든 글이 아니라, 링크로 들어와도 도움이 되는 글인가.

발행 전에 나 스스로에게 물어보면 된다.

  • 내가 겪은 것, 데이터, 생각이 들어가 있나?
  • 남 글 요약만 한 건 아닌가?
  • 친구한테 추천하고 싶을 정도인가?
  • 누가 썼는지(Who), 어떻게 만들었는지(How), 왜 썼는지(Why)가 보이나?

E-E-A-T(경험·전문성·권위·신뢰) 얘기가 많이 나오는데, 그중 신뢰(Trust)가 제일 중요하다. 그런데 Starter Guide가 딱 자른다. E-E-A-T 자체가 순위 점수는 아니다. 시스템이 “믿을 만한 글처럼 보이는지”를 여러 신호로 볼 뿐이다. 건강·돈·안전 같은 주제에서는 더 세게 본다.

이런 건 경고 신호로 적혀 있다.

  • 검색 유입이 유일한 목적
  • 주제만 넓게 찍어 운 좋은 글 기다리기
  • AI·자동화로 양산
  • 날짜만 바꿔 “새 글”처럼 보이게 하기
  • 글자 수 채우려고 늘리기

스팸 정책에는 생성형 AI로 가치 없는 페이지를 대량으로 만들기가 예시로 나온다. AI를 쓰면 사람이 고치고, 진짜 가치를 더하고, 필요하면 “어떻게 만들었는지”를 밝히는 쪽이 문서 방향이다.

→ 도움이 되는 콘텐츠 · 스팸 정책

홍보는 “관심 있을 사람한테 알리기”다. 링크 사고팔기는 안 된다.


잘 되고 있는지 보려면

중심은 Search Console이다.

  • 내 사이트인지 확인(소유권)
  • 페이지가 인덱싱됐는지 — 오류부터
  • 사이트맵 (있으면)
  • 검색 성과 — 어떤 검색어로, 어떤 글이, 클릭·노출·순위
  • URL 검사 — Google이 본 모습
  • 속도(CWV) / HTTPS
  • (가능하면) AI 검색 노출 리포트

Analytics는 “들어와서 뭐 했는지”다. 클릭 수만 보지 말고 머무름·전환을 보자.

AI Overview에 인용되면 트래픽이 무조건 는다/준다고는 Google도 단정하지 않는다. 사이트마다 다르다.

바꾼 뒤엔 보통 몇 주는 두고 보는 게 좋다. 모든 변경이 순위를 확 바꾸진 않는다.

→ Search Console 시작


이거 믿었는데? → 버려도 됨


우리 블로그(former-force)에 바로 붙이면

Astro 정적 사이트 + Notion CMS 전제다. 사이트 안 /search는 사람용이다. Google은 정적 HTML, 글끼리 걸린 링크, 사이트맵으로 글을 찾는다.

손이 가는 순서 그대로:

  • Search Console — 소유권은 확인됨. 사이트맵 제출·대표 글 URL 검사·며칠 뒤 색인/실적만 보면 된다.
  • 대표 글 title·내부링크·alt·BlogPosting을 맞춘다.
  • “우리만의 경험·데이터” 있는 글만 낸다.
  • 한 달에 한 번 SC랑 CWV 보고, 잘되는·떨어지는 글은 진짜로 고친다.
  • AEO 툴·llms.txt에 시간 쓰지 않는다.

Search Console

코드로 끝나는 게 아니라, 직접 GSC에 붙이는 단계다. 아래 샷은 문서용 통일 규격이다 — 가로 1440 · 패딩 32 · 라운드 16 · 외벽 스트로크 1px #E5E5E5 · 배경 #FAFAFA.

소유권 확인됨 (방법: HTML 파일). 확인용 HTML은 지우면 안 된다.

개요 화면 — 실적·색인 생성 모두 “데이터 처리 중”. 처음엔 이렇게 나오고, 보통 며칠 뒤에 숫자가 채워진다. 사이트맵만 넣었다고 바로 노출되진 않는다.

다음에 보면 좋은 것: 사이트맵이 “성공”인지, 대표 글 URL 검사, 며칠 뒤 색인·실적 리포트.


원문 바로가기 (막힐 때만)

입문: Starter Guide · Essentials · 기술 · 스팸

크롤: 사이트맵 · robots · canonical · 모바일 · 링크

표현: Helpful · Title · Snippet · Article · 이미지 · CWV

측정·AI: Search Console · AI features · AI 최적화