GEO: AI 답변 엔진을 위한 SEO
AI 개요, ChatGPT, Perplexity에 인용되는 법 — 고전 SEO 위에 얹는 새로운 계층.
20년 동안 거래는 단순했습니다. 1페이지에 랭크되면 클릭을 차지한다. 검색은 10개의 파란 링크 목록이었고, SEO는 그 목록을 기어오르는 기술이었습니다. 그 거래가 지금 실시간으로 다시 쓰이고 있습니다.
오늘 구글을 열고 “JWT 서명 키를 어떻게 교체하나요” 같은 쿼리를 입력하면 흔히 AI 개요(AI Overview) 가 돌아옵니다 — 여러 출처를 엮어 만든, 페이지 상단의 종합된 한 단락에 작은 인용 칩이 옆에 붙어 있죠. 같은 질문을 ChatGPT(브라우징 켠 상태), Perplexity, 또는 Gemini 에 물으면 각주가 달린 직접적인 산문 답변을 받습니다. 어느 경우든 사용자는 당신의 사이트를 방문하지 않고도 답을 얻습니다. 파란 링크는 여전히 존재하지만, 기계의 요약 아래로 강등되었습니다.
이것이 검색(retrieval)(여기 페이지들이 있으니 당신이 가서 읽으세요)에서 종합(synthesis)(여기 답이 있고, 출처는 각주에)으로의 전환입니다. 이 새로운 표면을 위해 최적화하는 분야에는 몇 가지 이름이 있습니다 — GEO(Generative Engine Optimization, 생성형 엔진 최적화)와 AEO(Answer Engine Optimization, 답변 엔진 최적화)가 가장 흔합니다. 둘은 같은 목표를 가리킵니다. 단순히 랭크되는 것이 아니라, 모델이 인용하고 링크하는 출처가 되는 것.
이미 제대로 된 SEO를 하는 사람에게 좋은 소식: GEO는 새로운 종교가 아닙니다. 당신이 이미 아는 기초 위에 얹는 추가 계층일 뿐입니다. 나쁜 소식: 고전적인 SERP에서는 멀쩡하게 랭크되는 많은 페이지가 답변 엔진에는 거의 보이지 않습니다. 사람 스키머와 크롤러를 위해 쓰였지, 언어 모델의 추출을 위해 쓰이지 않았기 때문입니다. 이 가이드는 그 격차를 메우는 것에 관한 것입니다.
AI 답변 엔진이 출처를 고르는 방법
최적화에 앞서 파이프라인을 이해하세요. 답변 엔진은 쿼리 시점에 “웹을 읽는” 것이 아닙니다. 대략 네 단계로 작동하며, 각 단계는 당신이 통과해야 할 필터입니다.
| 단계 | 무슨 일이 일어나는가 | 당신에게 의미하는 바 |
|---|---|---|
| 1. 코퍼스(Corpus) | 모델은 색인/크롤링된 콘텐츠를 끌어옵니다 — AI 개요는 구글 색인, ChatGPT는 Bing 색인 + 실시간 페치, Perplexity는 자체 크롤. | 색인되지 않았거나(또는 크롤 불가) 인용될 수 없습니다. 끝. |
| 2. 검색(Retrieval) | 주어진 쿼리에 대해 엔진은 후보 구절 집합을 검색합니다. 보통 기반 검색 색인 + 벡터 유사도를 통해서요. | 고전적 관련성 신호가 여전히 진입을 좌우합니다. 랭킹은 입장료입니다. |
| 3. 종합(Synthesis) | LLM이 후보 구절을 읽고 답변을 구성하며, 명확하고 자기완결적이며 교차 검증된 문장을 선호합니다. | 추출 가능하고 모호하지 않은 문장이 끌려 들어갑니다. 막연하고 변죽을 울리는 산문은 건너뛰어집니다. |
| 4. 귀속(Attribution) | 엔진은 생성된 주장을 가장 직접적으로 뒷받침하는 구절을 가진 출처에 인용을 붙입니다. | 사실을 깔끔하게 진술한 페이지가 링크를 얻습니다 — 반드시 1위에 랭크된 페이지가 아니라요. |
여기서 몸에 새겨둘 만한 몇 가지 패턴이 나옵니다.
- 엔진은 이미 닿을 수 있는 것을 인용합니다. 답변 엔진은 압도적으로 이미 색인되고 크롤 가능한 콘텐츠에서 출처를 가져옵니다. 별도의 “GEO 색인”은 없습니다 — 당신의 고전적 기술 SEO가 곧 GEO의 토대입니다.
- 엔진은 명확하게 진술된, 추출 가능한 사실을 선호합니다. 답변을 조립하는 모델은 최소한의 재작성으로 들어 올릴 수 있는 문장을 좋아합니다: “GPTBot은 robots.txt 지시를 준수한다.” 모델은 “크롤러 예절에 관해 말하자면, 고려할 만한 여러 사항이 있는데…” 같은 문장은 그냥 지나칩니다.
- 엔진은 합의와 교차 검증에 보상합니다. 다섯 곳의 평판 좋은 출처가 같은 사실을 진술하고 당신이 그중 하나라면, 당신은 모델의 확신을 강화하고 인용된 대표가 될 확률을 높입니다. 비주류이지만 옳은 콘텐츠는 교차 검증이 없어 노출되기가 더 어렵습니다.
- 엔진은 인식 가능하고 잘 정의된 엔티티에 기댑니다. 모델은 엔티티(사람, 제품, 라이브러리, 개념)를 두고 추론합니다. 엔티티를 정밀하게 명명하고 권위 있는 참조에 연결한 콘텐츠는 근거를 대고 귀속시키기가 더 쉽습니다.
🧑💻 개발자 관점: 종합 단계를 당신이 직접 만들 법한 RAG 파이프라인처럼 생각하세요. 문서를 청크로 나누고, 임베딩하고, 상위 k개 구절을 검색해 프롬프트에 채워 넣습니다. 이제 당신의 페이지가 그 청크 중 하나라고 상상해 보세요. 주변 2,000단어의 맥락 없이 당신의 청크만으로 모델이 사용자의 질문에 답할 수 있을까요? 그럴 수 없다면 추출되지 않습니다. 어떤 단일 섹션이든 맥락에서 뜯겨 나와도 살아남도록 쓰세요.
추출을 위한 글쓰기
고전 SEO 카피라이팅은 훑어보는 사람과 키워드를 따지는 크롤러를 위해 최적화합니다. 추출 최적화 글쓰기는 세 번째 독자를 더합니다. 깨끗하고 정확하며 자기완결적인 답을 들어 올려야 하는 모델이죠. 세 독자를 한꺼번에 위해 쓰는 방법은 다음과 같습니다.
질문 형태의 제목을 쓰고, 곧바로 답하세요. 실제 쿼리는 질문입니다. 이를 H2/H3에 반영하고, 제목 바로 아래 첫 문장에 답을 놓으세요 — 세 단락 아래가 아니라.
## Does GPTBot respect robots.txt?
Yes. GPTBot, OpenAI's web crawler, obeys robots.txt rules. To block it,
add a `User-agent: GPTBot` group with `Disallow: /` to your robots.txt.
After that one-line answer, expand with nuance, edge cases, and examples.
이 “답 먼저, 부연은 나중에” 형태(때로 역피라미드라 불립니다)는 모델에게 상단의 자기완결적 구절을 주고, 훑어보는 사람에게는 스크롤 없이 핵심을 줍니다.
원자적 사실 문장을 쓰세요. 사실 문장은 한 가지를 진술하고, 그 주어를 명시적으로 명명하며, 문장 밖을 가리키는 대명사를 피합니다. 비교해 보세요.
| 약함 (추출 불가) | 강함 (추출 가능) |
|---|---|
| “몇 년 전쯤 출시됐고 이제 꽤 널리 쓰입니다." | "Astro 1.0은 2022년 8월에 출시되었고 10만 개가 넘는 웹사이트에서 사용됩니다." |
| "당신이 차단해야 할 것들이 몇 개 있습니다." | "가장 흔한 AI 크롤러 세 가지는 GPTBot, PerplexityBot, Google-Extended입니다." |
| "이것은 일반적으로 모범 사례로 여겨집니다." | "대부분의 AI 크롤러는 JavaScript를 실행하지 않으므로 서버 사이드 렌더링이 권장됩니다.” |
강한 버전은 한 글자도 안 바꾸고 인용해도 고립된 상태에서 여전히 말이 됩니다. 그게 게임의 전부입니다.
구조로 앞장서세요: 목록, 표, 단계. 모델은 항목 간 경계가 명시적이기 때문에 구조화된 데이터에 달라붙습니다. 비교 표, 번호 매긴 절차, 정의 목록은 같은 정보를 산문에 묻은 것보다 훨씬 “들어 올리기 쉽습니다”. 표로 표현할 수 있다면, 표로 하세요.
엔티티를 정밀하고 일관되게 명명하세요. *“그 설정”*이 아니라 *“robots.txt의 Disallow 지시”*라고 말하세요. 정식 제품명, 버전 번호, 날짜를 사용하세요. 근거 대기에 도움이 되는 곳에서는 구조화 데이터로 엔티티를 강화하세요 — Article, FAQPage, HowTo, Organization 스키마는 당신의 페이지가 무엇에 관한 것이고 누가 그 뒤에 서 있는지를 엔진에게 기계가 읽을 수 있는 형태로 확인시켜 줍니다. 우리의 스키마 생성기가 이를 골격으로 잡아줄 수 있습니다.
상단 근처에 짧고 직설적인 요약을 더하세요. 페이지의 핵심 질문에 직접 답하는 2~3문장의 TL;DR은 모델에게 미리 청크된 구절을 집어가게 해주고 — 사람에게는 머무를 이유를 줍니다.
💡 팁:
FAQPage스키마와 페이지 내 Q&A를 같은 단일 진실 소스에서 작성하세요. 실제 질문은 Search Console의 쿼리 보고서, People Also Ask, AI 개요 후속 질문에서 뽑아내세요. 실제 사용자가 답변 엔진에 입력하는 정확한 표현을 역설계하는 것입니다.
llms.txt와 크롤 가능성
가장 큰 GEO 실수는 눈에 보이지 않습니다: 당신의 콘텐츠는 브라우저에서는 멀쩡히 렌더링되지만, JavaScript를 실행하지 않는 크롤러에게는 비어 있습니다.
대부분의 AI 크롤러는 JS를 실행하지 않습니다. GPTBot, PerplexityBot, 그리고 고전적인 색인 봇들은 당신의 HTML을 페치해 응답 본문 안에 있는 것을 읽습니다. 콘텐츠가 SPA에 의해 클라이언트 사이드에서 하이드레이션된다면, 봇은 빈 <div id="root">를 보고 떠납니다. 그래서 SSR/SSG가 이깁니다 — 그리고 이 사이트를 구동하는 것 같은 정적 프레임워크(기본적으로 완전히 렌더링된 HTML을 내보내는 Astro)가 구조적으로 GEO에 잘 맞는 이유입니다. 크롤러가 실제로 무엇을 보는지 확인하세요.
# What a JS-less crawler sees — should contain your real content, not an empty shell
curl -sA "GPTBot" https://example.com/your-page/ | grep -i "your headline text"
# Compare raw HTML size vs. a rendered DOM. A huge gap means content is JS-injected.
curl -s https://example.com/your-page/ | wc -c
curl 출력에 실제 본문이 없다면, 아무리 영리한 글쓰기도 소용없습니다 — 렌더링부터 고치세요. SSR/SSG 결정은 빌드를 보세요.
llms.txt는 부상하는 관례이지, 랭킹 신호가 아닙니다. 2024년에 제안된 llms.txt는 도메인 루트에 두는 Markdown 파일로, LLM에게 가장 중요한 콘텐츠를 큐레이션한 깨끗한 지도를 제공합니다 — 크롤러가 아니라 언어 모델을 위해 쓴 sitemap.xml이라고 생각하세요. 최소 형태는 다음과 같습니다.
# Your Site Name
> One-line description of what this site is and who it's for.
## Docs
- [Getting started](https://example.com/docs/start): Install and first build.
- [API reference](https://example.com/docs/api): Full endpoint list.
## Guides
- [GEO for AI search](https://example.com/en/guides/geo-ai-search/): This guide.
이에 대해서는 분명히 직시하세요: 2026년 중반 기준으로, llms.txt가 랭킹이나 인용을 위해 구글, OpenAI, Perplexity에 의해 소비된다는 것은 확인되지 않았습니다. 발행 비용이 거의 들지 않고 향후 도구에 도움이 될 수 있지만, 지렛대가 아니라 우선순위 낮은 있으면 좋은 것으로 취급하세요. 진짜 일은 깨끗한 HTML과 추출 가능한 콘텐츠입니다.
AI 크롤러를 허용할지 의도적으로 결정하세요. AI 접근은 robots.txt에서 user-agent별로 제어합니다. 알아둘 주요 봇:
| User-agent | 운영 주체 | 허용 시 일어나는 일 |
|---|---|---|
GPTBot | OpenAI | 당신의 콘텐츠가 ChatGPT 답변/훈련에 사용되게 합니다. |
OAI-SearchBot | OpenAI | ChatGPT 검색 결과와 인용을 구동합니다. |
PerplexityBot | Perplexity | Perplexity가 당신의 페이지를 색인하고 인용하게 합니다. |
Google-Extended | Gemini/Vertex 훈련 옵트인. AI 개요나 검색에는 영향을 주지 않습니다. | |
ClaudeBot | Anthropic | Claude를 위한 크롤링. |
# robots.txt — example: allow AI citation crawlers, opt out of training-only
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Google-Extended
Disallow: /
⚠️ 주의:
Google-Extended를 차단해도 구글 검색이나 AI 개요에서 빠지는 것이 아닙니다 — 그것들은 표준Googlebot으로 돌아갑니다. 현재 AI 개요만 따로 옵트아웃하는 방법은Googlebot을 통째로 차단하는 것 외에는 없으며, 그러면 색인에서 제외됩니다. 트레이드오프를 알고 선택하세요. 우리의 robots & sitemap 도구가 이 규칙들을 조립하고 검증하는 데 도움을 줍니다.
AI 트래픽 측정
볼 수 없는 것은 관리할 수 없고, AI 표면은 의도적으로 흐릿합니다. 오늘 실제로 측정할 수 있는 것은 다음과 같습니다.
Google Search Console — AI 개요의 흔적을 살피세요. 구글은 깔끔한 “AI 개요” 필터를 주지 않지만, 신호는 간접적으로 드러납니다.
- 노출 증가, CTR 감소. 당신의 페이지가 AI 개요 안에 인용되면 노출은 쌓이지만 사용자는 흔히 클릭 없이 답을 얻습니다. 정보성 쿼리에서 노출 상승 / CTR 하락 패턴은 전형적인 GEO 지문입니다.
- 질문 쿼리에서의 순위 변동성. AI 개요는 “1위”가 무엇을 의미하는지조차 재배치합니다. 정보성 쿼리와 거래성 쿼리를 따로 추적해서 노이즈가 거래성 성과를 가리지 않게 하세요.
리퍼럴 트래픽 — 분석 도구에서 답변 엔진을 찾으세요. 사용자가 AI 답변에서 실제로 클릭해 넘어오면 리퍼럴로 나타납니다. 이 호스트명들을 살피세요.
chatgpt.com # clicks from ChatGPT citations
perplexity.ai # clicks from Perplexity answers
gemini.google.com # clicks from Gemini
copilot.microsoft.com
GA4에서는 Session source가 이 호스트들과 일치하도록 필터링한 탐색 보고서를 만들거나, 원시 이벤트를 쿼리하세요.
-- GA4 BigQuery export: sessions referred by AI answer engines
SELECT
traffic_source.source AS source,
COUNT(DISTINCT user_pseudo_id) AS users,
COUNT(*) AS events
FROM `your_project.analytics_XXXXXX.events_*`
WHERE REGEXP_CONTAINS(
traffic_source.source,
r'chatgpt\.com|perplexity\.ai|gemini\.google\.com|copilot\.microsoft\.com')
GROUP BY source
ORDER BY users DESC;
엔진을 직접 점검하세요. 저기술이지만 효과적입니다: 주기적으로 목표 질문을 ChatGPT, Perplexity, 구글에 물어보고, 당신이 인용되는지, 어떤 경쟁사가 인용되는지, 모델이 어떤 표현을 썼는지 기록하세요. 쿼리 → 인용됨? → 경쟁사 인용 → 메모 형식의 추적 시트를 유지하세요. 이 정성적 감사는 어떤 대시보드도 잡지 못하는 것을 잡아냅니다. 측정 배관을 설치하는 법은 분석을 보세요.
💡 팁: 최적화를 시작하기 전에 리퍼럴 계측을 해두어 기준선을 확보하세요. AI 리퍼럴 양은 대부분의 사이트에서 여전히 작습니다 — 한 자릿수 퍼센트 — 하지만 의도가 강하고 성장 중입니다. 지금 측정해 두면 변곡점이 올 때 알아볼 수 있습니다.
GEO와 고전 SEO
GEO를 SEO를 쓸모없게 만드는 후계자로 취급하고 싶을 수 있습니다. 그렇지 않습니다. GEO는 대체가 아니라 덧붙이는 계층이며 — 그 아래 계층은 당신이 이미 실천하는 바로 그 SEO입니다.
답변 엔진 파이프라인의 모든 단계가 무엇에 의존하는지 생각해 보세요.
- 코퍼스에 들어가기는 색인 가능성을 요구합니다 — robots, sitemap, canonical 태그, 크롤 예산. 순수 기술 SEO입니다.
- 검색을 통과하기는 주제 관련성과 권위를 요구합니다 — 고전적 랭킹을 얻는 바로 그 신호들입니다.
- 종합되고 인용되기는 신뢰와 교차 검증을 요구합니다 — 이는 E-E-A-T, 링크, 그리고 믿을 만한 엔티티이며, 좋은 SEO가 늘 쌓아온 것들입니다.
다시 말해, 답변 엔진은 크롤할 수 없는 페이지를 인용할 수 없고, 권위가 없는 페이지는 검색하지 않으며, 실적이 없는 페이지는 신뢰하지 않습니다. 약한 SEO는 구조적으로 약한 GEO를 낳습니다. 작업 순서는 그대로입니다.
- 기술 건전성이 먼저. 크롤 가능하고, 빠르며, 서버 렌더링된 HTML. 이게 없으면 그 아래 단계는 무엇도 작동하지 않습니다.
- 진정으로 유용한 콘텐츠가 둘째. 독창적이고, 정확하며, 잘 구조화된 — 출처가 될 자격을 얻는 콘텐츠.
- 추출 다듬기가 셋째. 질문 제목, 원자적 사실, 표, 요약 — 랭크 가능한 페이지를 인용 가능한 페이지로 바꾸는 GEO 특유의 계층.
GEO가 바꾸는 것은 성공의 정의입니다. 승리는 더 이상 “1위에 랭크되고 클릭을 차지한다”만이 아닙니다. “모델이 인용하는 문장이 되고, 각주에 당신의 이름이 붙는다”이기도 합니다. 때로는 더 적은 클릭이지만 더 큰 영향력을 뜻합니다 — 아무도 방문하지 않아도 당신의 브랜드가 답이 되는 것이죠. 목표와 측정을 그에 맞게 조정하되, 토대는 허물지 마세요. 토대가 바로 새 계층을 가능하게 합니다.
핵심 요점
- ✅ GEO는 SEO 위에 얹는 계층이지 대체물이 아니다 — 답변 엔진은 이미 크롤하고, 검색하고, 신뢰할 수 있는 콘텐츠만 인용할 수 있으므로 기술 건전성과 양질의 콘텐츠가 여전히 토대다.
- ✅ 추출을 위해 써라: 답을 먼저 두는 문장이 달린 질문 형태의 제목, 원자적이고 자기완결적인 사실, 모델이 한 글자도 안 바꾸고 들어 올릴 수 있는 구조화된 표/목록.
- ✅ 서버 사이드로 렌더링하라 — 대부분의 AI 크롤러는 JavaScript를 실행하지 않으므로
curl -A "GPTBot"로 실제 콘텐츠가 원시 HTML에 있는지 확인하라; Astro 같은 SSG/SSR 프레임워크가 유리하다. - ✅ robots.txt를 의도적으로 설정하라 —
GPTBot,OAI-SearchBot,PerplexityBot,Google-Extended에 대해 — 그리고Google-Extended를 차단해도 AI 개요에서 빠지는 것은 아님을 기억하라. - ✅
llms.txt는 선택 사항으로 취급하라 — 발행은 저렴하지만 아직 확인된 랭킹이나 인용 신호가 아니다; 노력은 깨끗한 HTML과 명확한 사실에 쏟아라. - ✅ 새로운 표면을 측정하라: GSC에서 노출 상승 / CTR 하락 지문을 살피고, GA4에서
chatgpt.com과perplexity.ai리퍼럴을 추적하며, 인용을 손으로 직접 점검하라.