가설이 아닌 사실 기반의 로컬 SEO 진단. Local SEO auditing, grounded in canonical Business Profile data.

OurSEO Agent는 디지털 마케팅 컨설턴트를 위한 사내용 명령줄(CLI) 도구입니다. 가맹점 웹사이트를 새로 크롤링하고, Google 비즈니스 프로필의 정식 데이터를 공식 API로 조회한 뒤, 두 출처 간의 차이를 보고합니다 — NAP 불일치, 누락된 스키마, 방치된 리뷰 응답, 성과 지표 변동.

Python 3.10+ 사내용 도구 읽기 전용 설계 macOS · Linux 1,500+ 테스트 케이스

OurSEO Agent의 기능

여러 가맹점을 담당하는 SEO 컨설턴트를 위해 설계되었습니다. 모든 진단은 두 가지 진실의 출처에 기반합니다: 실시간 크롤링한 웹사이트, 그리고 Google API로 직접 조회한 정식 비즈니스 프로필 데이터. 에이전트는 두 데이터를 비교하고 어디에서 어긋나고 있는지 보고합니다.

로컬 SEO 진단

NAP 일관성 점검, LocalBusiness JSON-LD 적용 여부, 비즈니스 프로필 백링크 확인, 연락처 페이지 점검 — 모두 가맹점의 정식 비즈니스 프로필 필드와 교차 대조합니다.

성과 리포트

일별 노출 수, 모바일·데스크톱 비중, 웹사이트 클릭, 길찾기 요청, 통화 클릭. 클라이언트별 CSV·Excel·Notion 산출물로 집계합니다.

리뷰 모니터링

매장별 리뷰 증가 추이, 평균 별점, 응답률. 단일 매장 도구로는 보이지 않는 체인 단위의 응답 디시플린 격차를 드러냅니다.

다중 클라이언트 워크플로우

각 가맹점 관계는 독립적인 OAuth 리프레시 토큰을 가진 명명된 프로필입니다. 호출 한도, 저장 경로, 종료 절차가 모두 분리됩니다.

Google 비즈니스 프로필 권한이 필요한 이유

OurSEO Agent는 클라이언트 계약이 요구할 때에만, 정확히 하나의 OAuth 권한을 요청합니다:

권한 (Scope)용도
https://www.googleapis.com/auth/business.manage 비즈니스 프로필 계정, 매장, 일별 성과 지표, 리뷰에 대한 읽기 전용 접근. 동의를 부여한 가맹점의 로컬 SEO 진단 및 성과 리포트 생성을 위해 사용됩니다.

읽기 우선(Read-first) 설계. 현재 출시된 OurSEO Agent는 비즈니스 프로필 정보를 편집하거나, 게시물을 등록하거나, 리뷰에 답글을 작성하지 않습니다. 향후 쓰기 기능이 확장될 경우 반드시 본 페이지 및 개인정보 처리방침 업데이트로 사전 고지하며, 신규 권한이 필요한 경우 기존 사용자에게 동의를 다시 요청합니다.

이 외의 Google 권한은 일절 요청하지 않습니다 — Gmail, Drive, Calendar, YouTube, Photos 등 어떤 권한도 사용하지 않습니다.

사용 흐름

  1. 컨설턴트가 작업 환경에서 our collect gbp auth start --profile <client> 명령을 실행하면 Google 동의 URL이 출력됩니다.
  2. 가맹점 담당자가 해당 URL에 접속하여 비즈니스 프로필 마스터 계정으로 로그인하고 business.manage 권한을 승인합니다.
  3. Google이 인증 코드를 반환하면, our collect gbp auth callback 명령으로 리프레시 토큰을 교환합니다. 토큰은 ~/.config/secrets/ourseo/tokens/<profile>.json 경로에 파일 권한 0600으로 로컬 저장됩니다.
  4. 이후 정기 진단은 동일 환경에서 실행됩니다: our audit local <url> --gbp-profile <client>. 결과는 컨설턴트가 지정한 클라이언트별 디렉터리에 기록됩니다.
  5. 가맹점은 언제든 myaccount.google.com/permissions에서 권한을 회수할 수 있습니다.

OurSEO Agent에는 백엔드 서버가 없습니다. 토큰은 컨설턴트의 작업 환경을 떠나지 않습니다. 클라우드 서비스, 텔레메트리, 호스팅 데이터베이스를 운영하지 않습니다. 에이전트는 로컬 CLI이며, 발생하는 네트워크 호출은 모두 TLS로 보호된 Google 공식 API 엔드포인트로의 요청뿐입니다.

컨설턴트가 보는 화면

OAuth 동의 흐름

~/Project/our-seo-agent — zsh
$ our collect gbp auth start --profile shilla
Open this URL and grant Google Business Profile access:

https://accounts.google.com/o/oauth2/auth?response_type=code
  &client_id=824058888552-…apps.googleusercontent.com
  &redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Foauth2callback
  &scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbusiness.manage
  &state=shilla&code_challenge=…&code_challenge_method=S256
  &access_type=offline&prompt=consent

After approval, run:
  our collect gbp auth callback --profile shilla --code AUTH_CODE

로컬 SEO 진단 결과

~/Project/our-seo-agent — zsh
$ our audit local https://www.example-merchant.com/ --gbp-profile example
Running local audit on https://www.example-merchant.com/
Loaded GBP evidence from locations/1234… (example)

Local Audit Results

Issues Found: 3
  MISSING_GBP_LINK: No Google Business Profile link found.
  MISSING_LOCAL_SCHEMA: No LocalBusiness schema markup found.
  MISSING_CONTACT_PAGE: No contact page found.

Recommendations:
  • Use Google Business Profile as the canonical source for NAP and hours.
  • Add LocalBusiness schema markup to your homepage and contact page.
  • Create a dedicated contact page with full address and phone.

최근 30일 성과 지표

~/Project/our-seo-agent — zsh
$ our collect gbp performance --profile example --location locations/1234… \
    --start 2026-03-28 --end 2026-04-27 --metric WEBSITE_CLICKS

WEBSITE_CLICKS  total: 2,455   daily avg: 79
2026-04-10  ████████████████████████████████  128  (peak)
2026-04-02  ██████████████████████████        105
2026-04-16  █████████████████████████████     104
2026-04-13  █████████████████████████         101
… 26 more days …

체인 단위 리뷰 요약

~/Project/our-seo-agent — zsh
$ our collect gbp reviews --profile example --account accounts/… \
    --location locations/… --page-size 50

Total reviews: 7,477   Average rating: 4.6 ★
Reply rate (last 50): 0.0 %
Most recent: 2026-04-26T13:18:24Z

(체인 전체의 리뷰 응답 격차를 클라이언트의 경쟁사보다 먼저
 발견하는 것 — 그것이 진단의 가치입니다.)

2026-04-27 실제 진단 실행 화면. 가맹점 식별자는 비식별 처리됨.

개인정보 처리 요약

OurSEO Agent는 컨설턴트의 작업 환경에서 전적으로 실행됩니다. 호스팅 백엔드, 분석 도구, 텔레메트리가 없습니다. 에이전트는 단 하나의 OAuth 권한 — business.manage — 만 요청하며, 동의를 부여한 가맹점의 로컬 SEO 진단과 성과 리포트 생성에 한해 읽기 전용으로 사용합니다. OAuth 리프레시 토큰은 파일 권한 0600으로 로컬에만 저장되며, 작업 환경 밖으로 전송되지 않습니다.

Google 사용자 데이터의 사용은 Google API Services User Data Policy 및 그 Limited Use 요건을 따릅니다. 가맹점은 언제든 myaccount.google.com/permissions에서 접근 권한을 회수할 수 있습니다.

전체 개인정보 처리방침 보기 →