SEO와 AIEO 완전 가이드
SEO와 AIEO 완전 가이드
웹사이트를 운영하면서 "검색엔진 최적화는 했는데, 요즘 ChatGPT나 Claude 같은 AI한테는 내 사이트가 잘 보이는 걸까?" 하고 궁금해하신 적 있으신가요. 저도 블로그를 운영하면서 같은 고민을 했습니다.
2026년 현재, Gartner는 전통적인 검색 트래픽이 AI 챗봇과 가상 에이전트로 인해 25%까지 줄어들 것으로 전망하고 있고, ChatGPT의 월간 이용자는 8억 8천만 명을 넘어섰습니다. Google AI Overview는 전체 검색의 약 55%에서 나타나고 있고요. 검색엔진만 신경 쓰던 시대는 분명히 지나가고 있습니다.
이 글에서는 여전히 중요한 SEO 기본기부터, 새롭게 부상하는 AIEO(AI Engine Optimization)의 개념과 실전 적용법까지 한 번에 정리해 보겠습니다. 실제로 이 블로그에 적용한 사례도 함께 공유합니다.
SEO는 여전히 중요합니다
AI 시대가 왔다고 해서 SEO가 쓸모없어진 건 아닙니다. 오히려 SEO의 기본기가 탄탄해야 AI 최적화도 제대로 작동합니다. 2026년에도 변하지 않은 핵심 요소들을 짚어 보겠습니다.
메타태그는 여전히 기본 중의 기본입니다. <title>과 <meta name="description">은 검색 결과에서 사용자가 가장 먼저 보는 요소입니다. 여기에 Open Graph 태그(og:title, og:description, og:image)와 Twitter Card 태그를 함께 설정하면, SNS 공유 시에도 풍부한 미리보기가 제공됩니다. AI 모델이 페이지를 분석할 때도 이 메타 정보를 먼저 읽어 들이기 때문에, 정확하고 간결한 메타태그 작성은 SEO와 AIEO 양쪽 모두에 효과적입니다.
sitemap.xml과 robots.txt는 여러분의 사이트 지도이자 출입 규칙입니다. sitemap.xml은 검색엔진(그리고 AI 크롤러)에게 "우리 사이트에는 이런 페이지들이 있어요"라고 안내하는 역할을 합니다. robots.txt는 "이 경로는 크롤링해도 되고, 저 경로는 하지 마세요"라고 규칙을 정하는 파일입니다. 이 두 파일이 없으면, 크롤러들은 사이트를 비효율적으로 돌아다니거나 중요한 페이지를 놓칠 수 있습니다.
canonical URL은 중복 콘텐츠 문제를 방지합니다. 같은 글이 여러 URL로 접근 가능하다면, <link rel="canonical">을 통해 대표 URL을 명시해야 합니다. 검색엔진은 물론, AI 모델도 같은 내용을 여러 번 수집하면 혼란을 겪습니다.
JSON-LD 구조화 데이터는 이제 선택이 아니라 필수입니다. Google은 JSON-LD를 Microdata나 RDFa보다 권장하고 있습니다. 2024년 Google Search Central 연구에 따르면, 유효한 구조화 데이터가 있는 페이지는 AI Overview 패널에 나타날 확률이 27% 더 높았습니다. BlogPosting, WebSite, Organization 같은 스키마 타입을 적용하면, 검색엔진과 AI 모두에게 "이 페이지는 블로그 글이고, 이 사람이 썼고, 이 날짜에 발행되었습니다"라는 명확한 맥락을 제공할 수 있습니다.
이 모든 것은 2026년에도 달라지지 않았습니다. 하지만 한 가지가 추가되었습니다. 이제는 검색엔진만 신경 쓰면 안 되고, AI 엔진도 함께 고려해야 합니다.
AIEO란 무엇인가요?
AIEO는 AI Engine Optimization의 약자입니다. ChatGPT, Claude, Gemini, Perplexity 같은 AI 모델이 여러분의 웹 콘텐츠를 잘 이해하고, 자신의 응답에 인용할 수 있도록 최적화하는 것을 말합니다. AEO(Answer Engine Optimization)나 GEO(Generative Engine Optimization)라는 용어로도 불리지만, 핵심 개념은 동일합니다.
기존 SEO와 AIEO의 차이를 간단히 정리하면 이렇습니다.
구분 |
SEO (검색엔진 최적화) |
AIEO (AI 엔진 최적화) |
|---|---|---|
대상 |
Google, Bing 등 검색엔진 |
ChatGPT, Claude, Gemini 등 AI 모델 |
핵심 로직 |
링크 구조, 키워드 빈도, 백링크 |
의미 해석, 문맥 이해, 사실 밀도 |
성과 지표 |
검색 순위, 클릭률(CTR) |
AI 응답에서의 인용 여부 |
콘텐츠 평가 |
페이지 단위 |
섹션(청크) 단위 |
신뢰도 판단 |
PageRank, 도메인 권위 |
E-E-A-T 신호, 인라인 출처, 엔티티 일관성 |
AI 모델은 웹 콘텐츠를 검색엔진과는 근본적으로 다르게 소비합니다. 검색엔진은 키워드 매칭과 링크 그래프를 중심으로 페이지를 평가하지만, AI 모델은 RAG(Retrieval-Augmented Generation) 과정에서 관련 정보를 검색한 뒤, 핵심 사실과 문맥적 관계를 파악하여 하나의 일관된 응답으로 합성합니다.
여기서 중요한 점이 있습니다. AI 크롤러 대부분은 JavaScript를 실행하지 않습니다. 검색엔진(특히 Google)은 JavaScript를 렌더링해서 콘텐츠를 읽을 수 있지만, AI 크롤러들은 대부분 원시 HTML만 봅니다. 따라서 구조화 데이터(JSON-LD)나 핵심 콘텐츠가 클라이언트 사이드 스크립트로만 생성된다면, AI에게는 보이지 않을 수 있습니다. 서버 사이드 렌더링이 중요한 이유가 여기에 있습니다.
AIEO의 핵심은 결국 이 질문으로 귀결됩니다. "AI가 내 사이트에서 신뢰할 수 있는 답을 가져갈 수 있는가?" 이 질문에 "예"라고 답할 수 있도록 콘텐츠를 구조화하고, 사실을 명확히 하고, 출처를 밝히는 것. 그것이 AIEO입니다.
llms.txt - AI를 위한 robots.txt
robots.txt가 검색엔진 크롤러에게 "어디를 크롤링해도 되고, 어디는 안 되는지"를 알려주는 파일이라면, llms.txt는 AI 모델에게 "우리 사이트의 구조와 핵심 콘텐츠가 어디에 있는지"를 안내하는 파일입니다.
llms.txt는 2024년 Answer.AI의 Jeremy Howard가 제안한 오픈 표준 컨벤션입니다. 웹사이트의 루트 경로(/llms.txt)에 마크다운 형식으로 작성하며, AI 모델이 사이트를 효율적으로 탐색할 수 있도록 돕습니다. SE Ranking의 30만 도메인 분석 결과에 따르면, llms.txt의 도입률은 약 10.13%에 달합니다. 아직 OpenAI, Google, Anthropic이 공식적으로 이 파일을 크롤링에 활용한다고 발표하지는 않았지만, 도입률이 빠르게 증가하고 있다는 점은 주목할 만합니다.
llms.txt의 형식은 이렇습니다.
유일한 필수 항목은 H1으로 작성하는 프로젝트 또는 사이트 이름입니다. 나머지는 선택 사항이지만, 아래 구조를 따르는 것이 권장됩니다.
<!-- -->
# 사이트 이름
> 사이트에 대한 간단한 요약. AI가 파일의 나머지 부분을
> 이해하는 데 필요한 핵심 정보를 여기에 적습니다.
사이트에 대한 추가 설명이나 AI가 알아야 할 맥락 정보를
자유 형식으로 작성합니다.
<!-- -->
## 주요 콘텐츠
- [페이지 제목](https://example.com/page1): 이 페이지에 대한 설명
- [다른 페이지](https://example.com/page2): 이 페이지에 대한 설명
<!-- -->
## 카테고리별 안내
- [기술 블로그](https://example.com/tech): 기술 관련 글 모음
- [튜토리얼](https://example.com/tutorials): 실습 가이드 모음
<!-- -->
## Optional
- [사이트맵](https://example.com/sitemap.xml)
- [RSS 피드](https://example.com/rss.xml)
각 항목은 [이름](URL): 설명 형식의 마크다운 링크로 작성합니다. ## Optional 섹션은 특별한 의미를 가지고 있어서, AI가 컨텍스트를 줄여야 할 때 이 섹션의 URL은 건너뛸 수 있습니다.
robots.txt와의 차이를 정리하면 다음과 같습니다.
구분 |
robots.txt |
llms.txt |
|---|---|---|
목적 |
크롤링 허용/차단 규칙 |
사이트 구조와 콘텐츠 안내 |
대상 |
검색엔진 크롤러 |
AI 모델, LLM 에이전트 |
형식 |
자체 규칙 문법 |
마크다운 |
성격 |
"하지 마세요" (제한) |
"여기를 보세요" (안내) |
위치 |
/robots.txt |
/llms.txt |
두 파일은 상호 보완적입니다. robots.txt로 크롤링 규칙을 정하고, llms.txt로 AI에게 사이트의 전체 그림을 보여주는 것이죠.
AI 크롤러 관리하기
2026년 현재, 주요 AI 기업들은 각각 고유한 크롤러를 운영하고 있습니다. 그리고 중요한 변화가 있습니다. 대부분의 기업이 학습용 크롤러와 검색용 크롤러를 분리하고 있다는 점입니다.
주요 AI 크롤러 현황은 다음과 같습니다.
- GPTBot (OpenAI): 모델 학습을 위한 크롤러입니다. 2026년 3월 기준 Cloudflare 분석에서 가장 많이 차단되는 AI 크롤러로, 전체의 약 13.8%가 robots.txt에서 GPTBot을 언급하고 있습니다.
- ChatGPT-User (OpenAI): ChatGPT가 실시간으로 웹을 검색할 때 사용하는 크롤러입니다. GPTBot과는 별개로 동작합니다.
- ClaudeBot (Anthropic): Claude 모델 학습을 위한 크롤러입니다. 약 11.5%의 사이트가 이를 robots.txt에서 다루고 있습니다. Anthropic은 최근 더 세분화된 제어를 가능하게 하는 방향으로 업데이트했습니다.
- Claude-Web (Anthropic): Claude가 실시간 검색 시 사용하는 크롤러입니다.
- Google-Extended: Google이 AI 모델 학습(Gemini 등)에 사이트 콘텐츠를 사용하는 것을 제어하는 크롤러 토큰입니다. 약 10.7%의 사이트가 이를 관리하고 있습니다.
- CCBot (Common Crawl): 오픈소스 웹 크롤링 프로젝트로, 많은 AI 모델의 학습 데이터 소스로 활용됩니다. 약 11.2%가 차단하고 있습니다.
- PerplexityBot: Perplexity AI의 실시간 검색 크롤러입니다.
robots.txt에서 이들을 관리하는 방법은 이렇습니다.
<!-- -->
# 학습용 크롤러 - 차단 (내 콘텐츠를 학습 데이터로 쓰는 것은 거부)
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
<!-- -->
# 검색용 크롤러 - 허용 (AI 검색 결과에 인용되고 싶다면)
User-agent: ChatGPT-User
Allow: /
User-agent: Claude-Web
Allow: /
User-agent: PerplexityBot
Allow: /
여기서 전략적 판단이 필요합니다. 학습용 크롤러를 차단하면 내 콘텐츠가 모델의 학습 데이터에 포함되는 것을 막을 수 있습니다. 저작권이 걱정된다면 합리적인 선택이죠. 하지만 검색용 크롤러마저 차단하면, AI 검색 결과에서 내 사이트가 인용될 기회를 완전히 잃게 됩니다.
2026년의 권장 전략은 이렇습니다. 학습용 크롤러(GPTBot, Google-Extended, CCBot)는 필요에 따라 차단하되, 검색용 크롤러(ChatGPT-User, Claude-Web, PerplexityBot)는 허용하세요. 이렇게 하면 AI 모델의 실시간 검색에서 여러분의 콘텐츠가 인용될 수 있으면서도, 학습 데이터로 무단 사용되는 것은 방지할 수 있습니다. 2026년 현재 robots.txt에서 최소 10~15개의 user-agent를 관리해야 주요 AI 크롤러를 빠짐없이 다룰 수 있다는 점도 참고하세요.
실전 체크리스트
이제 구체적으로 무엇을 점검해야 하는지, 항목별로 정리해 보겠습니다.
HTML 마크업
- 시맨틱 태그를 사용하세요.
<article>,<section>,<nav>,<header>,<footer>,<main>등 의미를 가진 태그로 문서를 구조화해야 합니다. AI 모델은<div>덩어리보다 시맨틱 태그가 있는 문서를 훨씬 잘 이해합니다. - 깨끗한 마크업을 유지하세요. 불필요한 중첩, 빈 태그, 인라인 스타일을 최소화합니다.
- 제목 태그(
<h1>~<h6>)의 위계를 지키세요. AI 모델은 섹션(청크) 단위로 콘텐츠를 파싱합니다. 각 섹션이 하나의 독립적인 개념을 다루고, 제목이 그 내용을 정확히 반영해야 합니다. 이것을 시맨틱 청킹(Semantic Chunking)이라고 합니다.
메타 정보
- Open Graph 태그:
og:title,og:description,og:image,og:url,og:type,og:locale - Twitter Card 태그:
twitter:card,twitter:title,twitter:description,twitter:image,twitter:site - JSON-LD 구조화 데이터:
BlogPosting(블로그 글),WebSite(사이트 전체),Organization(조직 정보),BreadcrumbList(경로 탐색),FAQPage(FAQ) 등을 필요에 따라 조합하세요. 세 가지 이상의 스키마 타입을 적용한 페이지는 LLM에 인용될 확률이 13% 더 높다는 연구 결과가 있습니다.
필수 파일
sitemap.xml: 사이트의 모든 공개 페이지를 목록으로 제공합니다.robots.txt: 크롤링 규칙을 정의합니다. AI 크롤러별 허용/차단을 명시하세요.llms.txt: 사이트 구조와 핵심 콘텐츠를 AI에게 안내합니다.RSS/Atom 피드: 콘텐츠 업데이트를 구독 가능한 형태로 제공합니다. AI 에이전트가 최신 콘텐츠를 발견하는 데 도움이 됩니다.
콘텐츠 품질
- 명확한 H 구조로 글을 나누세요. H2로 큰 주제를, H3로 세부 항목을 정리합니다.
- 문단을 짧게 유지하세요. 한 문단에 하나의 핵심 내용만 담는 것이 좋습니다.
- 팩트 기반으로 작성하세요. AI 모델은 인라인 출처(연구 결과, 공식 데이터, 통계)가 있는 콘텐츠를 더 신뢰합니다. 주장에는 근거를 붙이세요.
- 콘텐츠를 정기적으로 업데이트하세요. 콘텐츠를 갱신하지 않으면 매달 약 1.8%의 AI 커버리지가 줄어든다는 분석이 있습니다. 월간 업데이트를 하는 브랜드는 그렇지 않은 브랜드보다 약 23% 더 높은 AI 커버리지를 보입니다.
- E-E-A-T 신호를 강화하세요. 경험(Experience), 전문성(Expertise), 권위(Authoritativeness), 신뢰성(Trustworthiness)는 AI 모델이 "누구의 답변을 표면에 올릴 것인가"를 결정할 때 활용하는 프레임워크입니다.
이미지
- 모든 이미지에
alt텍스트를 작성하세요. 이미지의 내용을 정확히 설명하는 대체 텍스트는 접근성뿐 아니라 AI의 이미지 맥락 이해에도 도움이 됩니다. - OG 이미지 fallback을 설정하세요. 글에 대표 이미지가 없을 때를 대비해 기본 이미지를 지정해 두면, SNS 공유나 AI의 미리보기에서 빈 썸네일이 나오는 것을 방지할 수 있습니다.
성능
dns-prefetch를 활용하세요. 외부 리소스(폰트, CDN 등)에 대한 DNS 조회를 미리 수행하면 로딩 속도가 개선됩니다.- 빠른 로딩 속도를 유지하세요. AI 크롤러도 타임아웃이 있습니다. 느린 사이트는 크롤링이 제대로 되지 않을 수 있습니다.
이 블로그에 적용한 사례
이론만으로는 부족하니, 이 블로그에 실제로 적용한 것들을 공유합니다.
HTML 이스케이핑 처리 (SkunkHtml.fs)
블로그의 정적 사이트 생성기에서 escHtml과 escJson 함수를 사용해 HTML과 JSON 내 특수 문자를 안전하게 이스케이핑합니다. 이는 JSON-LD 구조화 데이터에 글 제목이나 요약을 삽입할 때 특히 중요합니다. 이스케이핑이 되지 않으면 JSON-LD가 깨져서 검색엔진과 AI 모두 데이터를 파싱할 수 없게 됩니다.
Open Graph와 Twitter Card 태그
모든 페이지에 og:locale을 ko_KR로 설정하고, twitter:site를 블로그 계정으로 지정했습니다. 이렇게 하면 한국어 콘텐츠임을 명확히 알릴 수 있고, SNS 공유 시 적절한 미리보기가 생성됩니다.
홈페이지 JSON-LD
홈페이지에 WebSite와 Organization 스키마를 JSON-LD로 삽입했습니다. AI 모델이 사이트에 처음 방문했을 때 "이 사이트는 무엇이고, 누가 운영하는가"를 바로 파악할 수 있게 됩니다. 각 블로그 글에는 BlogPosting 스키마를 적용해 작성자, 발행일, 제목, 요약 정보를 구조화했습니다.
robots.txt에 AI 크롤러 명시
robots.txt에 GPTBot, ClaudeBot, Google-Extended, CCBot 등 주요 AI 크롤러를 명시적으로 나열하고, 각각에 대한 허용/차단 규칙을 설정했습니다. 학습용 크롤러는 제한하되, 검색용 크롤러에게는 콘텐츠를 열어두는 전략을 택했습니다.
llms.txt 작성
사이트 루트에 llms.txt를 배치하고, 블로그의 주요 카테고리와 대표 콘텐츠를 마크다운 링크로 정리했습니다. 사이트 요약을 blockquote로 작성하고, 카테고리별로 섹션을 나누어 AI가 사이트의 전체 구조를 한눈에 파악할 수 있게 했습니다.
기본 이미지 fallback
글에 대표 이미지가 지정되지 않은 경우, notion_avatar.png를 기본 OG 이미지로 사용하도록 설정했습니다. 이렇게 하면 어떤 글이든 SNS 공유나 AI의 미리보기에서 빈 이미지가 나오지 않습니다.
SEO와 AIEO는 별개의 것이 아닙니다. 좋은 SEO 기본기 위에 AI가 이해하기 쉬운 구조와 명확한 사실, 그리고 llms.txt 같은 새로운 표준을 더하는 것. 그것이 2026년의 웹 최적화입니다. 검색엔진에서 순위를 높이는 것만큼, AI의 응답에서 인용되는 것도 중요한 시대가 되었습니다. 두 마리 토끼를 모두 잡으려면, 결국 콘텐츠의 품질과 구조가 제일이라는 사실은 변하지 않습니다.