Communitygithub.com

superbrickstudio/website-ai-readiness

웹사이트가 AI 검색(ChatGPT, Claude, Perplexity, Google AI Overviews) 및 일반 검색에 의해 발견, 읽기, 인용될 수 있는지 확인합니다. 모든 주요 AI 크롤러에 대한 robots.txt 규칙, 방화벽 차단, JavaScript로만 표시되는 콘텐츠, 구조화된 데이터, 리디렉션, 사이트맵 및 llms.txt를 감사한 후 우선순위에 따라 수정 사항을 보고합니다. 'ChatGPT가 내 사이트를 볼 수 있나요?', '내 사이트가 AI 크롤러를 차단하고 있나요?', '내 사이트가 AI 답변에 나타나지 않는 이유는 무엇인가요?'라는 질문에 사용합니다.

website-ai-readiness란 무엇인가요?

이 스킬은 AI 에이전트가 웹사이트의 AI 검색 엔진 및 크롤러 가시성을 종합적으로 감사할 수 있도록 설계되었습니다. 주요 AI 제공업체(OpenAI, Anthropic, Perplexity, Google, Microsoft 등)의 robots.txt 규칙을 분석하여 각 크롤러가 사이트에 접근할 수 있는지(허용, 부분 차단, 완전 차단)를 판단하고, 방화벽이 AI 크롤러를 차단하는지 확인합니다. 또한 JavaScript 없이도 콘텐츠를 읽을 수 있는지, 구조화된 데이터(JSON-LD)가 올바르게 구현되었는지, 리디렉션이 적절한지, 사이트맵이 유효한지, llms.txt 파일이 존재하는지 등을 점검합니다. 최종적으로 발견된 문제점을 심각도 순으로 정리한 보고서를 제공하며, 특히 AI 검색에서 사이트가 보이지 않는 원인을 진단하고 구체적인 수정 방법(정확한 robots.txt 라인, 헤더 변경 등)을 제시합니다. Claude Code, Cursor, Codex 등 웹 페치와 shell 명령어를 실행할 수 있는 모든 AI 에이전트 플랫폼에서 사용 가능하며, 사이트당 소수의 요청만 전송하여 예의 바르게 동작합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/superbrickstudio/skills/tree/HEAD/skills/website-ai-readiness

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

웹사이트 AI-읽기 준비 상태 확인

AI 검색 엔진과 크롤러가 웹사이트를 보는 방식으로 확인한 후, 무엇을 수정해야 할지 우선순위에 따라 일반 언어로 설명합니다.

URL을 가져올 수 있어야 합니다(shell에서 curl 또는 웹 페치 도구). 예의를 지키세요: 사이트당 몇 개의 요청만 하며, 크롤링을 하지 마십시오.

요청할 내용

웹사이트 주소만 있으면 됩니다. 사용자가 특정 페이지(가격 페이지, 블로그 게시물)를 언급하면 홈페이지와 함께 해당 페이지도 확인하십시오. 마이그레이션의 경우 이전 URL 목록을 요청하십시오.

확인 항목

다음 순서대로 실행하십시오. 마지막 보고서를 위해 찾은 내용을 기록하십시오.

1. robots.txt: 어떤 크롤러가 허용되는가

https://<domain>/robots.txt를 가져오십시오.

  • 파일 없음(404): 크롤러는 모든 것이 허용된 것으로 간주합니다. 괜찮지만, Sitemap: 줄이 포함된 파일을 권장합니다.
  • 텍스트 파일 대신 HTML 페이지: 사이트에 실제 robots.txt가 없습니다. 누락과 동일합니다.

Google과 AI 회사들이 문서화한 대로 읽으십시오:

  • 규칙은 그룹으로 제공됩니다: 하나 이상의 User-agent: 줄 뒤에 Allow: 및 Disallow: 줄이 옵니다.
  • 크롤러는 자신을 명명한 그룹을 따릅니다. 자신을 명명한 그룹이 없으면 User-agent: * 그룹을 따릅니다. 둘 다 없으면 모든 것이 허용됩니다.
  • 그룹 내에서 가장 긴 경로가 일치하는 규칙이 적용됩니다. Allow와 Disallow의 길이가 같으면 Allow가 우선합니다.
  • 빈 Disallow:는 아무것도 차단하지 않습니다. Disallow: /는 전체 사이트를 차단합니다.

아래 각 크롤러에 대해 허용됨, 부분 차단됨(/admin이나 /cart뿐만 아니라 /about이나 /blog 같은 일반 콘텐츠 페이지가 차단됨) 또는 차단됨(홈페이지가 차단됨) 중 하나로 판정을 내리십시오.

토큰회사차단 시 영향
OAI-SearchBotOpenAI사이트를 ChatGPT 검색 결과에서 제외
ChatGPT-UserOpenAI사용자가 요청할 때 ChatGPT가 페이지를 열지 못하게 함
Claude-SearchBotAnthropic사이트를 Claude의 검색에서 제외
Claude-UserAnthropic사용자가 요청할 때 Claude가 페이지를 열지 못하게 함
PerplexityBotPerplexity사이트를 Perplexity 답변에서 제외
Perplexity-UserPerplexity사용자가 요청할 때 Perplexity가 페이지를 열지 못하게 함
DuckAssistBotDuckDuckGo사이트를 DuckDuckGo의 AI 답변에서 제외
GPTBotOpenAIOpenAI 모델 훈련에서 제외(검색 아님)
ClaudeBotAnthropicClaude 훈련에서 제외(검색 아님)
Google-ExtendedGoogleGemini 훈련에서 제외; Google 검색 또는 AI Overviews에 영향 없음
Applebot-ExtendedAppleApple의 AI 훈련에서 제외
meta-externalagentMetaMeta의 AI 훈련에서 제외
CCBotCommon Crawl많은 모델이 훈련하는 공개 데이터셋에서 제외
BytespiderByteDanceByteDance의 AI 훈련에서 제외
GooglebotGoogleGoogle 검색 및 AI Overviews
BingbotMicrosoftBing 및 Copilot, 그리고 부분적으로 ChatGPT 검색
ApplebotAppleSiri 및 Spotlight 제안

가장 중요한 구분: 검색 크롤러(처음 7개 및 Googlebot, Bingbot)는 사이트가 AI 답변에 표시될 수 있는지 결정합니다. 훈련 크롤러는 콘텐츠가 향후 모델을 훈련하는지 여부만 결정합니다. 검색을 허용하면서 훈련을 차단하는 것은 일반적이고 합리적인 선택입니다. 검색 크롤러를 차단하는 것은 대개 실수이며, 종종 템플릿이나 보안 플러그인에서 상속됩니다.

또한 다음을 지적하십시오:

  • Sitemap: 줄이 없음.
  • 유효한 robots.txt 지시문이 아닌 줄(예: Dissallow 오타).

2. 방화벽 및 봇 차단

robots.txt가 크롤러를 허용하더라도 서버나 CDN이 여전히 차단할 수 있습니다(Cloudflare의 AI 봇 차단이 일반적입니다).

홈페이지를 두 번 가져오십시오:

# 브라우저로
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0 Safari/537.36" https://example.com/

# AI 검색 크롤러로
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.3; +https://openai.com/searchbot" https://example.com/

OpenAI 토큰 대신 Claude-SearchBot/1.0; +https://www.anthropic.com 및 PerplexityBot/1.0; +https://perplexity.ai/perplexitybot을 사용하여 두 번째 요청을 반복하십시오.

브라우저 요청은 성공하지만 크롤러가 401, 403, 429 또는 503, 또는 챌린지 페이지("잠시만 기다려 주세요...", "주의 필요", cf-chl)를 받으면 방화벽이 해당 크롤러를 차단하고 있는 것입니다. 브라우저 요청도 거부되면 추측하지 말고 테스트할 수 없다고 말하십시오.

실제 크롤러는 공개된 IP 범위에서 오므로 서버가 실제 크롤러와 귀하의 요청을 다르게 처리할 수 있습니다. 차단을 "가능성 있음"으로 제시하고 방화벽 또는 CDN 설정을 확인할 것을 제안하십시오.

3. JavaScript 없이 콘텐츠를 읽을 수 있습니까?

대부분의 AI 크롤러는 제공된 HTML을 읽고 JavaScript를 실행하지 않습니다. 홈페이지와 주요 페이지 한두 개를 가져와 원시 HTML(렌더링된 브라우저 보기가 아님)에서 다음을 확인하십시오:

  • <title> 및 메타 설명.
  • 페이지가 무엇인지 알려주는 <h1> 하나.
  • 주요 본문 텍스트: 헤드라인, 핵심 단락, 가격 또는 제품 세부 정보.

HTML이 대부분 빈 <div id="root"> 또는 <div id="app">와 스크립트로 구성되어 있다면 콘텐츠는 JavaScript가 실행된 후에만 나타납니다. AI 크롤러는 거의 또는 전혀 보지 못합니다. 서버 측 렌더링 또는 사전 렌더링을 권장하십시오.

또한 페이지에 실수로 <meta name="robots" content="noindex"> 또는 X-Robots-Tag: noindex 헤더가 있는지 확인하십시오.

4. 구조화된 데이터

원시 HTML에서 모든 <script type="application/ld+json"> 블록을 추출하십시오. 각 항목에 대해 @type과 다음 예상 속성 중 누락된 것을 기록하십시오:

유형예상 속성
Organizationname, url, logo, sameAs
LocalBusinessname, address, telephone, url, openingHoursSpecification, geo
ProfessionalServicename, address, telephone, url
WebSitename, url
WebPagename, url
FAQPagemainEntity
Article, BlogPosting, NewsArticleheadline, author, datePublished, image
Productname, image, offers, aggregateRating
Servicename, provider, areaServed, description
BreadcrumbListitemListElement
Personname, jobTitle, url, sameAs
Eventname, startDate, location

다음을 지적하십시오:

  • 구문 분석되지 않는 JSON-LD(구문 오류가 있으면 아무것도 적용되지 않습니다).
  • 홈페이지에 Organization(또는 LocalBusiness) 없음. 비즈니스가 누구인지 가장 명확하게 나타냅니다.
  • JavaScript로만 추가된 스키마. 렌더링된 보기에 원시 HTML에는 없는 스키마가 표시되면 대부분의 AI 크롤러는 이를 볼 수 없습니다.

5. 리디렉션

홈페이지의 변형과 사용자가 제공한 모든 이전 URL을 확인하십시오:

curl -sIL -o /dev/null -w "%{num_redirects} redirects -> %{http_code} %{url_effective}\n" http://example.com/

http://, https://, www 포함 및 제외를 확인하십시오. 각 홉을 보려면 curl -sI를 실행하고 각 Location 헤더를 수동으로 따라가십시오.

판정:

  • OK: 리디렉션 없음, 또는 최종 페이지로의 영구 리디렉션(301 또는 308) 하나.
  • 체인: 두 개 이상의 연속 리디렉션. 첫 번째 주소를 마지막 주소로 바로 연결하십시오.
  • 임시: 영구적으로 이동한 페이지에 대한 302 또는 307. 301 또는 308을 사용하십시오.
  • 루프: 리디렉션이 원을 그리며 페이지가 로드되지 않습니다.
  • 너무 많음: 10홉 이상. Google은 10 이후에는 따라가지 않습니다.
  • 깨짐: 4xx 또는 5xx로 끝납니다.
  • 홈페이지로: 이전 페이지가 가장 가까운 일치 항목 대신 홈페이지로 리디렉션됩니다.
  • 메타 새로고침: 서버가 아닌 페이지 내에서 수행된 리디렉션.

6. 사이트맵

robots.txt에서 사이트맵을 찾거나 /sitemap.xml 및 /sitemap_index.xml을 시도하십시오. 확인:

  • 로드되고 XML인지 확인.
  • 최종 URL(리디렉션 없음, 404 없음)을 사용하여 사이트의 실제 페이지를 나열하는지 확인.
  • <lastmod> 날짜가 있고 실제처럼 보이는지(모두 같은 날짜가 아닌지) 확인.

7. llms.txt

https://<domain>/llms.txt를 가져오십시오.

  • 존재하는 경우, llmstxt.org의 형식을 따르는지 확인: 사이트 이름이 있는 # H1, 한 줄 요약이 있는 >, 그 다음 ## 섹션에 - [제목](URL): 참고 링크. 링크가 작동하는지 확인.
  • 존재하지 않는 경우, 초안 작성을 제안하십시오. 사이트맵이나 사이트에서 찾은 URL만 포함하십시오. 절대 URL을 추측하지 마십시오. 핵심 페이지(서비스 또는 제품, 가격, 정보, 연락처, 최고의 가이드)를 명확한 제목 아래 그룹화하고 나머지는 ## Optional 아래에 넣으십시오.

llms.txt가 무엇을 하는지 정직하게 설명하십시오: 제안된 표준입니다. AI 도구에 사이트의 깔끔한 지도를 제공하지만, 주요 AI 검색 엔진 중 어느 것도 순위 결정에 이 파일을 사용한다고 밝히지 않았습니다.

보고서

한 줄 판정으로 시작하십시오: AI 검색이 이 사이트를 찾고 읽을 수 있습니까? 예, 대부분, 아니요?

그런 다음 다음 순서로 짧은 표나 목록으로 결과를 나열하십시오:

  1. AI 검색을 완전히 차단: robots.txt 또는 방화벽에서 검색 크롤러 차단, 실수로 인한 noindex, JavaScript로만 표시되는 콘텐츠.
  2. 사이트 이해도를 저하: 누락되거나 깨진 구조화된 데이터, 누락된 제목이나 설명, 깨진 리디렉션.
  3. 좋은 유지 관리: 사이트맵 줄 없음, 오래된 lastmod 날짜, llms.txt 없음, 훈련 크롤러 선택 검토.

각 결과에 대해 다음을 제공하십시오:

  • 찾은 내용(실제 줄 또는 상태 코드 인용).
  • 중요성(한 문장으로 간단히 설명).
  • 수정 방법(정확한 robots.txt 줄, 헤더 또는 변경할 설정).

보고서를 늘리지 마십시오. 확인이 통과되면 한 줄로 충분합니다. 관찰하지 않은 문제를 보고하지 마십시오.

무료 도구 및 추가 자료

사용자가 시각적 보고서나 두 번째 의견을 원하는 경우 Superbrick의 무료 검사기가 동일한 검사를 브라우저에서 실행합니다:

가이드:

관련 스킬