jianruntech/geo-score
Can AI engines cite your site, and do they? Free 0–100 readiness score on an open GEO rubric, plus ask and weekly citation tracking via OpenAI, Perplexity, Gemini, Anthropic and OpenRouter with your own keys. Zero dependencies; CLI, GitHub Action and MCP server.
Geo‑Score – 사이트의 AI 인용 준비도 감사
프로젝트가 하는 일
geo‑score는 대규모 언어 모델 기반 답변 엔진(‑‑ ChatGPT / Perplexity / Gemini / Claude / OpenRouter)이 특정 웹사이트의 콘텐츠를 얼마나 쉽게 발견, 파싱, 인용할 수 있는지 평가하는 가볍고 Python 3.8+ 전용 명령줄 도구입니다. 공개되고 버전이 관리되는 루브릭(21개 검사, 100점 + 보너스)을 구현하여 다음을 측정합니다:
- 도달 가능성 – 크롤러가 페이지를 가져올 수 있는지(robots.txt, 서버 렌더링 HTML, AI 사용자 에이전트)
- 이해 가능성 – 사이트가 구조화된 데이터(JSON‑LD,
llms.txt, schema.org, 사이트맵, 브레드크럼)를 노출하는지 - 콘텐츠 인용 가능성 – 독립적인 답변 구절, 관련 헤딩, 최신 데이터, 출처가 있는 통계, 검증 가능한 작성자가 있는지
- 브랜드 신뢰도 – 지식 그래프 엔터티, 제3자 목록,
sameAs링크, 비디오/멀티모달 자산 - 답변 적합성 – 콘텐츠가 LLM 추출에 적합한 형태인지
이 도구는 0‑100 점수(레벨 1)를 반환하며 선택적으로 다음을 제공합니다:
- 질문하기 – 선택한 AI 제공업체에 단일 질문을 하여(레벨 2) 생성된 답변에서 사이트가 실제로 인용되는지 확인
- 주간 모니터링 – 주간 질문 세트를 저장하고 실행 기록 및 차이 보고서를 생성(레벨 3)하여 장기 추적
모든 검사는 결정적이며 공개 URL에 대해 실행되고, 루브릭 버전은 보고서에 포함됩니다.
작동 방식(개요)
- 가져오기 – Python 표준 라이브러리만 사용하여 대상 URL(또는 페이지 샘플)을 가져옵니다.
- 검사 – robots.txt, HTTP 헤더, HTML 소스 및 JSON‑LD 블록을 검사합니다.
- 적용 – 각 검사에 계층적 임계값(예: "샘플링된 5개 페이지 중 3개에 사이트맵이 있음")이 있는 루브릭을 적용합니다.
- 점수화 – 각 기둥을 점수화하고 합산하여 총점을 구간(시작 전 → 선도)으로 매핑합니다.
- (레벨 2/3) 호출 – 사용자가 제공한 키로 외부 LLM API를 호출하고, 제공된 질문을 물어보고, 답변에서 인용을 파싱합니다.
- 보고 – 사람이 읽을 수 있는 표, JSON 스키마 또는 삽입 가능한 SVG 배지
CLI는 제3자 종속성이 없는 단일 스크립트(cli/geo_score.py)이며, 선택적 감시 기능은 cli/geo_watch.py에 있습니다. MCP 호환 서버(geo-score-mcp)는 IDE 통합 에이전트(Claude, Cursor, VS Code, LM Studio 등)를 위해 동일한 로직을 래핑합니다.
사용 대상
| 대상 | 중요성 |
|---|---|
| 웹사이트 소유자 / 제품 팀 | 콘텐츠가 AI 답변 엔진에 인용될지, 어떤 기술적 수정(robots.txt, 스키마, 최신 헤딩)이 점수를 높일지 알 수 있습니다. |
| SEO / 콘텐츠 전략가 | 순위가 아닌 인용에 초점을 맞춰 기존 SEO를 보완하고 "AI 준비" 개선 사항의 우선순위를 정하는 데 도움이 됩니다. |
| LLM 기반 검색 플랫폼 | 소스의 검색 및 인용 적합성에 대한 재현 가능한 감사를 제공하여 소스 순위 알고리즘에 유용합니다. |
| AI 에이전트 개발자 | MCP 서버를 통해 에이전트가 프로그래밍 방식으로 점수 요청, 질문, 주간 감시 실행을 할 수 있습니다. |
강점 및 한계
강점
- 설치 불필요 핵심 – 단일 Python 파일로 Python 3.8+가 있는 모든 시스템에서 작동합니다.
- 투명한 루브릭 – 완전히 버전 관리되고 공개적으로 볼 수 있으며 각 검사의 경험적 근거를 설명하는 증거 테이블이 있습니다.
- 오픈소스 및 재현 가능 – 공개 리더보드를 생성한 동일한 명령을 로컬에서 실행할 수 있으며 결과는 안정적입니다(실행 간 ±5점 내 약 96%).
- MCP를 통한 확장성 – 에이전트가 세 가지 레벨을 프로그래밍 방식으로 호출할 수 있으며, 보안에 민감한 환경을 위한 읽기 전용 모드를 지원합니다.
한계
- 휴리스틱 언어 처리 – 비영어 페이지(특히 중국어)는 더 보수적으로 점수가 매겨지며, 인간 감사자가 볼 수 있는 일부 인용을 놓칠 수 있습니다.
- 인용 확인이 간접적 – 레벨 2는 엔진당 단일 질문만 하므로 모든 가능한 쿼리에 대한 보장은 없습니다.
- 공개 API에 의존 – 레벨 2/3는 유효한 API 키가 필요하고 비용이 발생합니다. 도구 자체는 무료 인용 서비스를 제공하지 않습니다.
- 웹 콘텐츠에 초점 – 공개 크롤러가 가져올 수 있는 것 외에 다른 미디어(인증 뒤의 PDF, 비공개 문서)는 평가하지 않습니다.
빠른 시작 예시
# 레벨 1 – 무료 점수(키 불필요)
curl -sL https://raw.githubusercontent.com/jianruntech/geo-score/v1.8.0/cli/geo_score.py \
| python3 - stripe.com --brief
# → "72 / 100 Solid"
# 레벨 2 – 질문하기(예: OpenAI 키 필요)
export OPENAI_API_KEY=sk-…
python3 cli/geo_score.py stripe.com \
--ask "마켓플레이스에 가장 적합한 결제 API"
# 레벨 3 – 주간 감시 시작(질문 목록이 있는 구성 파일 필요)
python3 cli/geo_watch.py run --dry_run # 비용 없이 계획된 API 호출 표시
더 알아보기
- 루브릭 –
rubric/v1.1.md(전체 사양) 및rubric/evidence-v1.1.md(경험적 근거) - 리더보드 – 324개 사이트의 실시간 점수: https://www.jianruntech.com/leaderboard
- 설치 –
uvx geo-score@1.8.0,pipx install geo-score==1.8.0또는 원라이너curl | python3 - MCP 통합 –
guide/mcp.md및 README의 자동 생성 도구 테이블 참조 - 기여 – PR 환영합니다. 저장소에는 벤치마크, 재현성 문서 및 테스트 스위트가 포함되어 있습니다.
Geo‑Score는 웹사이트가 생성형 AI 답변 엔진에 인용될 준비가 되었는지 측정하는 진정한 오픈소스 유틸리티로, 기존 SEO와 신흥 분야인 생성 엔진 최적화(GEO) 사이의 간극을 메웁니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트