AEO 대응: 시술 전에 curl로 '현황'을 기록하기 – 30분 감사 및 베이스라인 측정 방법
요약
본 글은 AI 검색 엔진 최적화(AEO) 시술을 적용하기 전 필수적인 '현황 감사 및 베이스라인 측정' 방법을 제시합니다. `curl` 명령어를 활용하여 robots.txt, 구조화 데이터 등을 점검하고, JSON-LD에 업종별 상세 타입을 지정하는 것이 중요함을 강조합니다. 또한, 90일 후 비교를 위한 질문 기반의 베이스라인 측정을 안내합니다.
핵심 포인트
- AEO 시술 전 현황 기록이 필수적이며, 이를 위해 커맨드 라인 감사 과정을 활용해야 합니다.
- robots.txt 점검을 통해 AI 크롤러 차단 여부를 확인하고 최우선으로 수정해야 합니다.
- JSON-LD는 단순히 Organization에 그치지 않고 schema.org의 업종별 상세 타입을 지정하는 것이 좋습니다.
- 90일 후 효과 측정을 위해 고객이 실제로 물어볼 질문 10개를 작성하여 베이스라인을 측정해야 합니다.
AI에게 물어봤을 때 답변에 인용되는 위치로 최적화하는 것, 즉 AEO(Answer Engine Optimization)의 시술 목록 자체는 이미 검색하면 얻을 수 있습니다. robots.txt, 구조화 데이터, sitemap, llms.txt 등이 그것입니다.
하지만 실제로 클라이언트 사이트 2곳에 시술을 적용해 보니 절실히 느낀 것은, 시술보다 먼저 '현황 기록'을 해두지 않으면 90일 후에 효과를 논할 수 있는 수단이 사라진다는 것이었습니다. 시술 전 AI가 자신의 사이트를 어떻게 다루었는지에 대한 데이터는 나중에 다시 가져올 수 없습니다.
이 글은 사이트에 손을 대기 전에 수행하는 감사 및 기록 과정을, 모두 복사-붙여넣기로 작동하는 커맨드로 만든 것입니다.
1. 현황 감사 – curl 4연발 (5분)
대상 사이트를 SITE에 넣고, 위에서부터 순서대로 진행합니다.
SITE="https://example.com"
# ① robots.txt가 AI 크롤러를 차단하고 있지 않은지
curl -s "$SITE/robots.txt" | grep -iE "GPTBot|ClaudeBot|Claude-User|OAI-SearchBot|PerplexityBot|Google-Extended|CCBot|Bytespider"
...
읽는 법:
①이: 입구에서 차단하고 있습니다. 이 이후의 시술은 모두 무용지물이 되므로 최우선으로 수정해야 합니다. 아무것도 반환되지 않으면 '기술 없음 = 기본 허용'입니다. 명시적으로 Disallow 행에 나오는 Allow를 작성하는 방식도 있습니다 (저는 클라이언트 사이트에서는 AI 크롤러를 개별적으로 명시 Allow 했습니다).
②가 0: 구조화 데이터 없음. 후술할 타입 지정으로 진행합니다.
- ③④가 404: 없다는 것을 알았다는 기록이 됩니다. ④의 llms.txt는 아직 대응 엔진이 제한적인 발전 단계의 규격이지만, 배치하는 비용은 거의 제로입니다.
여기서 하나 고백하자면, 저는 대외 자료에 'llms.txt도 정비 완료'라고 쓰다가 만약을 위해 ④를 실행했더니 404였습니다. 넣었던 것은 제 포트폴리오 사이트였고, 클라이언트 사이트에는 넣어두지 않았습니다. 자신이 한 시술이라도 기억이 아닌 실측으로 확인하는 것 – 이 4연발은 타인의 사이트뿐만 아니라 자신이 시술을 완료한 사이트에도 주기적으로 적용해야 한다고 생각합니다.
2. JSON-LD는 '업종의 타입'까지 지정할 것
Organization으로 끝내면, AI가 보기에는 '어떤 조직'에 그칩니다. schema.org의 타입은 업종까지 내려갈 수 있습니다.
<script type="application/ld+json">
{
"@context": "https://schema.org",
...
건설 회사의 경우 GeneralContractor, 디자인 사무실의 경우 ProfessionalService (더 적합한 타입이 있다면 그것으로). 타입 찾는 방법은 schema.org에서 업종명을 검색 → 해당 타입 페이지에서 필수/권장 프로퍼티를 확인하는 것입니다.
검증은 Google의 리치 결과 테스트로도 좋지만, 손안에서는 다음과 같습니다:
curl -s "$SITE/" | python3 -c "
import sys, re, json
html = sys.stdin.read()
...
@type이 Organization 그대로라면 내려갈 여지가 있습니다.
3. baseline – '전'을 기록할 것 (20분)
여기가 본론입니다. 시술을 넣기 전에 반드시 이것을 측정해야 합니다.
절차:
- 자신의 서비스에 대해 고객이 실제로 AI에게 물어볼 법한 질문 10개를 작성합니다 (
90일 후, 동일한 질문과 동일한 엔진으로 재측하여 JSONL을 비교합니다. mentioned의 false→true가 몇 건인지, 경쟁사(competitors)에 변동이 있는지 확인합니다. 이것만으로도 '효과가 있었는지/없었는지'를 측정할 수 있는 상태가 됩니다.
4. 측정 계층을 시술(施策)의 계층에 맞추기
흔히 하는 실수는, 시술은 AI용인데 측정을 Google Search Console에서 해버리는 것입니다. GSC가 측정하는 것은 Google 검색의 클릭이지, AI로부터의 참조는 아닙니다. 계층이 어긋난 수치는 아무리 봐도 답이 되지 않습니다.
AI용 시술(施策) 측정은 두 가지입니다:
- 상위 baseline 재측 (AI 답변 그 자체의 변화)
- GA4에서 AI 유래 트래픽 분리: ChatGPT나 Perplexity로부터의 유입은 리퍼러(referrer)로 구분할 수 있습니다. 탐색 보고서(Exploration report)에서 세션 소스에
chatgpt.com/perplexity.ai등을 포함하는 세그먼트를 만들어 둡니다.
둘 다 '시술과 같은 계층'입니다. 순위나 클릭 수는 별도의 이야기로 두고, 섞지 않고 봅니다.
요약 — 실행할 순서
- curl을 4회 연속으로 실행하여 현황 기록 (5분)
- 예상 질문 10개 × AI 3엔진으로 baseline 측정 및 JSONL + 스크린샷으로 저장 (20분)
- 거기서부터 시술(施策) 적용 (robots.txt / JSON-LD 산업 유형 / sitemap / llms.txt)
- 90일 후, 동일한 조건으로 재측하여 diff 비교
시술 목록은 이제 일반화되었습니다. 차이가 나는 것은, 비교할 수 있는 상태를 먼저 만들었는지 여부입니다. '이전' 데이터는 시술을 시작하는 순간 사라집니다.
토론(Discussion)

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