AI를 위한 웹 크롤러 설정하기

매뉴얼웍스로 만든 문서 주소를 ChatGPT나 제미나이에 알려 주었는데 “페이지는 찾았지만 내용을 읽을 수 없다”는 답을 받은 적이 있으신가요? 그렇다면 웹 크롤러 설정을 확인할 차례입니다.

왜 읽지 못할까요

매뉴얼웍스는 요청의 User-Agent를 기준으로 서로 다른 형식의 화면을 보냅니다.

웹 브라우저로 문서를 볼 때는 웹 뷰어가 적합합니다. 그러나 자바스크립트를 실행하지 않는 수집기가 웹 뷰어를 받으면 본문이 없는 화면만 보게 됩니다. AI가 주소는 찾았지만 내용을 읽지 못하는 주요 원인 중 하나입니다.

수집기에는 두 가지가 있습니다

AI 서비스는 보통 두 가지를 씁니다.

매뉴얼웍스는 User-Agent 이름에 bot, crawl, spider가 들어가면 수집기로 판단합니다. 따라서 이러한 문자열이 들어간 수집기는 별도로 설정하지 않아도 인식하지만, ChatGPT-User, Google-Agent, MistralAI-Index처럼 해당 문자열이 없는 수집기는 사용자 패턴에 추가해야 합니다.

사용자가 AI에 주소를 붙여 넣었을 때 호출되는 이용자 요청 수집기가 현재 문제와 직접 관련이 있습니다.

6.0.23 이하 버전에서 웹 크롤러 패턴 추가하기

매뉴얼웍스 6.0.24 버전부터는 아래 이름을 시스템 패턴으로 기본 제공하므로 따로 추가하지 않아도 됩니다. 6.0.23 이하 버전을 쓰고 있거나 목록에 없는 수집기를 더하려면 다음과 같이 추가합니다.

<관리 |환경설정|웹크롤러=""> 메뉴에서 사용자 패턴에 다음을 추가합니다.

chatgpt-user
google-agent
googleagent-urlcontext
google-gemininotebook
googleother
claude-user
perplexity-user
meta-externalagent
meta-externalfetcher
mistralai-user
mistralai-index
mistralai-training
headlesschrome
google-inspectiontool
google-read-aloud
google-pinpoint
googlemessages
feedfetcher-google

6.0.23 이하 버전에서는 반드시 소문자로 입력합니다. 요청으로 들어온 User-Agent만 소문자로 바꾸고 저장된 패턴은 변환하지 않아, 대문자가 섞여 있으면 일치하지 않습니다. 6.0.24 버전부터는 저장할 때 소문자로 맞추므로 대소문자를 가리지 않습니다.

앞의 열세 줄은 AI 수집기입니다. google-agent는 Google 인프라에서 실행되는 에이전트가 사용자 요청에 따라 웹에 접근할 때, googleagent-urlcontext는 Gemini가 주어진 주소의 내용을 읽을 때 사용합니다. google-gemininotebook은 사용자가 Gemini Notebook에 출처로 입력한 주소를 가져올 때 사용합니다. googleother 한 줄로 GoogleOther-ImageGoogleOther-Video까지 함께 인식합니다.

headlesschrome는 이름을 밝히지 않는 수집기를 잡기 위한 것입니다. Grok이 헤드리스 크롬으로 가져가기 때문에 브라우저 표시로 판단할 수밖에 없습니다. 다만 이 표시는 Puppeteer나 Playwright로 만든 자동화, 감시 도구, 빌드 스크립트에도 똑같이 붙습니다. 사내에서 헤드리스 크롬으로 문서를 갈무리하거나 점검하고 있다면 그 도구도 수집기로 취급되어 정적 HTML을 받고, 「외부 검색 엔진 접근을 막습니다」를 선택한 문서에서는 404를 받습니다.

뒤의 다섯 줄은 AI 수집기는 아니지만 이용자 요청에 따라 페이지를 가져오는 것들입니다. 이름에 bot이 없어 역시 인식되지 않으므로 함께 넣어 두면 좋습니다.

Google-Site-Verification도 같은 부류이지만 넣지 않는 편이 좋습니다. 서치 콘솔 소유 확인을 메타 태그로 하는 경우, 수집기용 정적 HTML에는 해당 태그가 없어 확인에 실패할 수 있습니다.

주요 AI 서비스

서비스

User-Agent

설정 필요

ChatGPT

GPTBot, OAI-SearchBot

아니오

ChatGPT

ChatGPT-User

Google 검색, 제미나이

Googlebot

아니오

Google 에이전트

Google-Agent

제미나이 URL 읽기

GoogleAgent-URLContext

Gemini Notebook

Google-GeminiNotebook

Google 기타 서비스

GoogleOther, GoogleOther-Image, GoogleOther-Video

Claude

ClaudeBot, Claude-SearchBot

아니오

Claude

Claude-User

Perplexity

PerplexityBot

아니오

Perplexity

Perplexity-User

Copilot

bingbot

아니오

Meta AI

meta-externalagent, meta-externalfetcher

Mistral

MistralAI-User, MistralAI-Index, MistralAI-Training

Grok

HeadlessChrome

Apple Intelligence

Applebot

아니오

Amazon

Amazonbot

아니오

ByteDance

Bytespider

아니오

Common Crawl

CCBot

아니오

robots.txt는 따로입니다

Google-ExtendedApplebot-Extended는 이름만 보면 수집기처럼 보이지만 robots.txt에서만 사용하는 제어 토큰입니다. HTTP 요청의 User-Agent에는 나타나지 않으므로 웹 크롤러 패턴에 넣어도 동작하지 않습니다. 수집한 내용을 AI 모델 학습에 사용하는 것을 막거나 허용하려면 robots.txt에서 설정해야 합니다.

매뉴얼웍스는 웹 페이지 기능에서 robots 유형으로 만들어 둔 내용을 /robots.txt로 제공합니다.

패턴에 넣으면 함께 달라지는 것

패턴을 추가하면 다음 세 가지가 함께 달라집니다.

제대로 되었는지 확인하기

웹 크롤러 화면에서 User-Agent 문자열을 넣어 수집기로 인식하는지 바로 확인할 수 있습니다.

서버 밖에서는 다음 명령으로 확인합니다.

curl -A "ChatGPT-User" https://example.com/manual/chapter

본문이 포함된 HTML이 나오면 제대로 설정된 것입니다. 본문 없이 자바스크립트 코드만 나오면 아직 수집기로 인식되지 않은 것입니다.

그래도 읽지 못한다면

수집기 설정을 마쳤는데도 AI가 읽지 못한다면 주소 자체를 살펴봐야 합니다. 외부 AI 서비스의 가져오기 기능은 대체로 다음을 요구합니다.

앞단에 웹 서버를 두고 매뉴얼웍스로 넘기는 구성이 일반적입니다. 로그인 없이 열리는 공개 발행인지도 함께 확인합니다.

마지막으로

수집기 이름은 각 업체가 바꾸기도 하고 새로 생기기도 합니다. 지금 어떤 이름으로 들어오고 있는지는 접근 로그에서 실제 User-Agent를 확인하는 것이 가장 확실합니다.