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을 두고, 사이트 안 링크도 그 주소로 맞추자.
블로그에서 자주 나오는 경우:
모바일로 보이는 게 “진짜”다
요즘 Google은 스마트폰으로 본 페이지를 기준으로 인덱싱·순위를 매긴다. PC에만 내용이 많고 모바일은 줄여 두면, 그게 손해로 돌아온다.
본문, 제목, 설명, 스키마, 이미지, alt — 모바일과 PC가 같아야 한다. 탭·아코디언에 넣어도 내용은 그대로여야 하고, 클릭해야 본문이 나오는 구조는 피하자.
→ 모바일 우선 인덱싱 · lazy-load
속도(CWV), 만점 집착은 비효율
목표는 대략 이렇다. LCP 2.5초 안, INP 200ms 미만, CLS 0.1 미만.
순위에도 쓰이긴 하는데, Google이 말하는 “페이지 경험” 점수 하나로 끝나는 건 아니다. 관련 있는 글이 먼저고, 비슷한 글끼리 겨룰 때 경험이 차이를 만든다.
Search Console에 나오는 CWV는 실제 방문자가 느낀 값(필드)이다. Lighthouse 만점이랑 헷갈리면 안 된다. 블로그는 히어로 이미지·웹폰트 같은 템플릿 한 번으로 글 수백 개가 같이 망가지거나 같이 고쳐진다.
검색결과에 어떻게 보이냐
파란 제목은 내가 쓴 그대로가 아닐 수 있다
검색에 뜨는 파란 제목(title link)은 Google이 알아서 만든다. <title>, 화면 큰 제목, 헤딩, 링크 텍스트 등을 본다. “내가 쓴 title 그대로 고정해 주세요”도 안 해 준다.
우리가 할 일은 심플하다. 글마다 고유하고 짧고 내용과 맞는 <title>을 쓰고, 화면 주 제목이랑 연도·버전이 안 어긋나게 맞추기. 반쪽짜리 title, 낡은 연도, 같은 문구 반복은 재작성 유발로 문서에 적혀 있다.
설명(description)은 “가끔” 쓰인다
검색 요약(스니펫)은 주로 본문에서 뽑힌다. meta description이 더 그럴듯할 때 가끔 쓴다. “몇 글자여야 한다”는 마법은 없고, 기기 폭에 맞게 잘린다. 카테고리마다 같은 설명 복붙은 의미 없다.
→ 스니펫
H1은 몇 개여야 해? → 그런 규칙 없음
읽기 좋게 단락·소제목으로 나누면 된다. 개수·순서의 마법 숫자는 없다. 접근성에는 순서가 좋지만, 순위용이 아니다.
링크는 진짜 <a href="주소">로
버튼에 onclick만 달아 두거나, #/page 같은 해시 라우팅만 쓰면 Google이 링크를 잘 못 본다. History API로 실제 URL을 쓰고, 화면에 <a href>가 보이면 된다.
앵커는 “여기를 클릭” 대신 어디로 가는지 적자. 중요한 글은 사이트 안에서 한 번은 걸려 있어야 한다.
BlogPosting은 치트가 아니라 “오해 방지”
글에 BlogPosting(또는 Article) 마크업을 넣으면 제목·저자·날짜·대표 이미지를 Google이 덜 헷갈리게 본다. 뉴스 Top stories에 필수는 아니다. 필수 필드도 없다 — 해당되는 것만 넣으면 된다.
실무에서 챙기는 것: headline, 저자(이름 + 프로필 URL), 발행·수정일(타임존 있는 ISO), 이미지. 화면에 보이는 내용이랑 마크업이 같아야 한다. 저자 이름에 “작성:”이나 직함 붙이지 말 것.
이미지
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도 단정하지 않는다. 사이트마다 다르다.
바꾼 뒤엔 보통 몇 주는 두고 보는 게 좋다. 모든 변경이 순위를 확 바꾸진 않는다.
이거 믿었는데? → 버려도 됨
우리 블로그(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 최적화