본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 24. 12:40

GEO: ChatGPT와 같은 AI가 당신의 사이트를 인용하게 만드는 방법

요약

AI 답변에 웹사이트가 인용되도록 하는 생성형 엔진 최적화(GEO)의 개념과 기술적 구현 방법을 다룹니다. 크롤러 접근성 확보를 위해 robots.txt 설정 및 User-Agent 관리의 중요성을 강조합니다.

핵심 포인트

  • GEO는 언어 모델이 콘텐츠를 인용하도록 최적화하는 엔지니어링 영역임
  • GPTBot(학습용)과 OAI-SearchBot(검색/인용용)을 구분하여 설정해야 함
  • Cloudflare나 WAF 등 보안 계층에서 AI 봇을 차단하지 않도록 주의 필요
  • 전통적 SEO와 달리 AI 모델의 인덱싱 신호와 렌더링 최적화가 핵심임

클릭하기도 전에 이미 답변이 제공된다면, 당신의 최고의 Google 순위는 가치가 없습니다. 바로 지금 그런 일이 일어나고 있습니다. 사용자들은 ChatGPT, Claude 또는 Perplexity에 질문을 던지고, 세 개 혹은 네 개의 인용 출처가 포함된 완성된 답변을 받습니다. 만약 당신이 그 인용 목록에 포함되지 않는다면, 그 순간 당신은 존재하지 않는 것이나 다름없습니다. 순위도, 클릭도, 두 번째 기회도 없습니다.

이 문제를 다루는 분야를 **생성형 엔진 최적화 (Generative Engine Optimization, GEO)**라고 부릅니다. 그리고 마케팅 업계의 소란스러운 주장과는 달리, 이는 상당 부분 엔지니어링 문제입니다. 크롤러 접근성 (Crawler access), 렌더링 (Rendering), 구조화된 데이터 (Structured data). 이는 콘텐츠 팀이 아니라 개발자가 결정하는 사항들입니다.

클릭에 최적화된 SEO. 인용에 최적화된 GEO.

그 차이는 단순히 외관상의 차이가 아닙니다. 전통적인 SEO는 누군가 클릭할 수 있도록 당신이 1위에 오르기를 원합니다. 반면 GEO는 언어 모델 (Language Model)이 출처 표기를 포함하여 당신의 문단을 답변에 그대로 가져가기를 원합니다. 클릭은 이제 보너스일 뿐입니다.

이에 따라 신호(Signals)를 위한 기술 스택 (Tech-stack)도 달라집니다:

측면전통적인 SEOGEO / AI 가시성
목표Google Top-10ChatGPT, Claude, Perplexity에서의 인용
...

레버(Hebel)들은 서로 겹칩니다. 깨끗한 HTML, 빠른 응답 시간, 유효한 마크업 (Markup)은 둘 다에 도움이 됩니다. 하지만 봇 (Bots), 인덱싱 신호 (Index signals), 그리고 성공 측정 방식은 독립적입니다. GEO를 단순히 "새로운 이름의 SEO"라고 치부하는 사람은 바로 문제가 발생하는 지점들을 놓치게 됩니다.

1단계: 일단 봇을 들여보내라

콘텐츠 품질을 고민하기 전에, 아주 기본적인 질문부터 해결하십시오. 크롤러 (Crawler)가 통과할 수 있는가? 놀랍게도 답변은 "아니오"인 경우가 많으며, 브라우저에서는 페이지가 문제없이 로드되기 때문에 아무도 이를 알아차리지 못합니다.

중요한 세 가지 유저 에이전트 (User-Agents)는 GPTBot, ClaudeBot, 그리고 PerplexityBot입니다. 이들을 허용하는 robots.txt는 다음과 같은 형태를 띱니다:

User-agent: GPTBot
Allow: /

...

많은 사람들이 실수하는 세부 사항 중 하나는 GPTBotOAI-SearchBot서로 다르다는 점입니다. GPTBot은 학습 데이터 (Training data)를 제공하며, OAI-SearchBot은 ChatGPT 검색에서의 인용 (Citations)을 담당합니다. 개인정보 보호를 위해 학습을 제외하고 싶은 경우, OpenAI의 모든 것을 일괄적으로 차단해서는 안 됩니다. 그렇지 않으면 실수로 가시성 (Visibility)을 스스로 끊어버리게 됩니다. 학습은 제외하되, 검색은 허용하세요:

User-agent: GPTBot
Disallow: /

...

하지만 가장 고약한 사례는 robots.txt가 아니라 그 앞단에 있는 계층입니다. Cloudflare Bot Fight Mode, ModSecurity 규칙, nginx User-Agent 필터, 또는 지나치게 의욕적인 Shopware 플러그인은 알 수 없는 User-Agent를 일괄적으로 스크레이퍼 (Scraper)로 간주하여 거부합니다. 브라우저는 이를 전혀 알 수 없지만, AI 봇은 403 에러나 캡차 (Captcha) 페이지를 받게 됩니다. 의심스러울 때는 직접 다음과 같이 확인해 보세요:

curl -A "GPTBot" -I https://deine-domain.de

여기서 깨끗한 200 응답이 돌아오지 않는다면, 콘텐츠를 한 줄도 건드리기 전에 이미 첫 번째 문제에 직면한 것입니다. 주의하세요: Cloudflare 기본 설정은 업데이트 시 초기화되는 경향이 있으므로, 주요 릴리스가 있을 때마다 다시 테스트해야 합니다.

2단계: JavaScript 약속이 아닌 텍스트를 제공하라

이 지점부터 현대적인 프론트엔드 (Frontends)에게는 까다로운 상황이 전개됩니다. 많은 AI 크롤러 (Crawler)들은 JavaScript를 렌더링(Rendering)하지 않습니다. 순수 클라이언트 사이드 React 앱 (Client-Side-React-App)의 초기 HTML에는 종종 빈 <div id="root">만 들어있으며, 봇은 바로 이것을 읽습니다. 당신의 멋진 콘텐츠는 봇에게 존재하지 않는 것이나 다름없습니다.

해결책은 비밀이 아니며, 단지 절제력이 필요할 뿐입니다: 서버 사이드 렌더링 (Server-Side Rendering, SSR) 또는 정적 생성 (Static Generation)을 사용하여 주요 콘텐츠가 제공되는 HTML에 이미 포함되어 있도록 해야 합니다. Next.js에서는 인덱싱 가능한 콘텐츠를 위해 순수 클라이언트 페칭 (Client-Fetching)을 지양해야 함을 의미합니다:

// 서버 컴포넌트 (Server Component) – 콘텐츠가 초기 HTML에 포함되어 JS 없이도 읽을 수 있음
export default async function ProductPage({ params }) {
  const product = await getProduct(params.id);
...

요약하자면: 콘텐츠가 하이드레이션 (Hydration) 단계 이후에야 DOM에 나타난다면, 상당수의 AI 크롤러(Crawler)에게는 보이지 않는 상태가 됩니다. GEO에서 SSR (Server-Side Rendering)은 단순한 성능 향상 옵션이 아니라 필수 조건입니다.

3단계: 당신의 엔티티 (Entity)를 고유하게 만들기

언어 모델 (Language Model)은 명확하게 식별할 수 있는 정보를 더 선호하며 인용합니다. 구조화된 데이터 (Structured Data)는 이를 위한 가장 강력한 신호입니다. 이는 단순한 SEO 장식이 아니라, _당신이 누구인지_에 대한 기계 판독 가능한 선언입니다. 최소한의 요구 사항은 Organization 스키마를 사용하여 sameAs 링크를 통해 브랜드를 이미 알려진 프로필들과 연결하는 것입니다:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
...

sameAs 링크가 핵심적인 기술입니다. 이 링크는 모델이 이미 신뢰하고 있는 소스들에 당신의 엔티티를 고정시킵니다. 또한 페이지 유형에 따라 FAQPage (질의응답 형식에 유용), Product + Offer (쇼핑몰), Article + Author (블로그) 등을 활용하는 것이 가치가 있으며, 이를 하나의 @graph로 묶어 제공하는 것이 가장 좋습니다.

4단계: llms.txt – 적은 노력으로 얻는 확실한 기회

llms.txt는 공식 표준은 아니며 제안된 컨벤션 (llmstxt.org)입니다. 핵심 아이디어는 /llms.txt 경로에 마크다운 (Markdown) 파일을 두어 AI 시스템에게 당신의 가장 중요한 콘텐츠 목록을 큐레이션하여 제공하는 것입니다. 개념적으로는 LLM을 위한 sitemap.xml과 같습니다.

# Beispiel GmbH 예시

> 이커머스, 소프트웨어 및 AI 컨설팅을 제공하는 디지털 에이전시.
...

솔직히 말해서, 아직 모든 크롤러가 이 파일을 읽는 것은 아니지만, 일부 리서치 에이전트 (Research Agents)들은 이미 이를 수행하고 있습니다. 노력은 최소화되면서 리스크는 제로에 가깝습니다. 이는 비용 대비 효율(Cost-Benefit)을 길게 논할 필요가 없는 몇 안 되는 GEO 조치 중 하나입니다.

그렇다면 콘텐츠는? 인용될 수 있도록 작성하세요

기술은 접근 경로를 만들어내지만, 결국 인용되는 것은 텍스트 구절입니다. 그리고 모델들은 명확한 선호도를 가지고 있습니다: 짧고 독립적인 단락, 명확한 정의, 숫자, 리스트, 그리고 깔끔한 헤딩 계층 구조(Heading Hierarchy)입니다. GEO라는 개념의 배경이 된 Princeton 연구(KDD 2024)에 따르면, 인용(Citations), 통계(Statistics), 그리고 구체적인 출처 표기(Source Attribution)는 AI 답변에 등장할 확률을 최대 30~40%까지 높여줍니다.

실질적인 내용이 없는 광고성 줄글은 이와 정반대입니다. 질문에 대해 두 개의 명확한 문장으로 답하는 단락은 인용되지만, "혁신적이고 총체적인 솔루션"으로 가득 찬 단락은 건너뛰어집니다.

현재 당신의 상태는 어떠한가요?

GEO의 불쾌한 점은 이러한 문제 대부분이 브라우저에서 사이트를 볼 때는 보이지 않는다는 것입니다. robots.txt는 소리 없이 차단하고 있고, WAF(Web Application Firewall)는 봇에게 당신과는 다른 응답을 보내고 있으며, JSON-LD에는 필수 필드가 누락되어 있을 수 있습니다. 따라서 최적화를 시작하기 전에 봇(Bot)의 관점에서 현황을 점검해 보는 것이 가치가 있습니다.

이를 위해 저희 nextlevels는 무료 AI 가시성 체크 도구를 구축했습니다. 이 도구는 주요 AI 크롤러(Crawler)를 시뮬레이션하고, robots.txt, llms.txt, 사이트맵(Sitemap)을 읽으며, 제공되는 HTML의 SSR(Server-Side Rendering) 및 구조화된 데이터(Structured Data)를 검사하고, WAF 레벨의 봇 차단기를 식별합니다. 이메일 입력 없이 30초 이내에 결과를 확인할 수 있으며, 모든 개별 진단 결과는 curl을 통해 직접 확인할 수 있는 로우 데이터(Raw Data)와 함께 제공됩니다. 이것이 바로 개발자들에게 이 도구가 유용한 이유입니다. 단순히 믿어야 하는 점수가 아니라, 추적 가능한 체크리스트를 제공하기 때문입니다.

결론

GEO는 콘텐츠 팀에만 맡겨둘 수 있는 새로운 마케팅 버즈워드 (Marketing-Buzzword)가 아닙니다. AI 답변에서의 가시성 (Visibility)이 생기느냐 사라지느냐를 결정짓는 지점은 바로 코드에 있습니다: robots.txt, 렌더링 전략 (Render-Strategie), 스키마 마크업 (Schema-Markup), WAF 설정 (WAF-Konfiguration)에 달려 있습니다. 우리 개발자들에게 좋은 소식은 이 모든 것들이 검증 가능하고 수정 가능하다는 점입니다. 추측이나 블랙박스 알고리즘 (Black-Box-Algorithmus)이 아닙니다. 가장 사소한 질문부터 시작하세요: 봇 (Bot)이 제대로 들어올 수 있습니까? 그 위에 나머지 것들을 구축하면 됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0