Hermes Agent로 안전한 정기 PageSpeed SEO 감사 스킬을 만드는 방법
Hermes Agent는 경계가 분명한 측정을 반복하는 데 적합하며, 운영 웹사이트를 스스로 고치는 데 적합하지 않습니다. 이 가이드는 공개 페이지를 측정하고 원본 JSON과 날짜가 있는 보고서를 보관하는 읽기 전용 PageSpeed 스킬을 만듭니다. 먼저 수동 기준선을 검증한 뒤에만 사람이 정기 실행을 승인합니다.
PageSpeed 점수는 특정 URL을 특정 시점에 측정한 Lighthouse 실험실 결과입니다. Chrome UX Report(CrUX)는 Google이 반환한 경우에만 실제 사용자 필드 데이터입니다. 둘 다 CMS, 저장소 또는 배포 변경 권한이 아닙니다.
이 글을 Hermes에 보내 스킬 설치하기
Read [THIS ARTICLE URL] and install the Hermes skill described there.
Inspect local Hermes configuration and project guidance first. Explain the
destination before writing. Create only:
~/.hermes/skills/pagespeed-seo-baseline/SKILL.md
~/.hermes/skills/pagespeed-seo-baseline/scripts/pagespeed_baseline.py
Copy the complete code blocks from the article. Verify Python syntax and report
the paths. Explain PAGESPEED_API_KEY configuration, but never request or show
its value. Do not run PageSpeed, schedule work, use CMS, hosting or repository
credentials, edit unrelated skills, or change a live site. Stop after checking.
공개 글을 읽을 수 없다면 이 글의SKILL.md와 runner 블록을 같은 대화에 붙여 넣습니다. 스킬은 웹 프로젝트가 아닌~/.hermes/skills/에 둡니다.
완료 조건: 기준선 먼저, 일정은 나중에
| 항목 | 이 워크플로가 만드는 결과 |
|---|---|
| 대상 | 로컬 또는 격리 환경에서 Hermes를 쓰는 SEO 담당자, 개발자, 기술 마케터 |
| 결과 |
|
| 입력 | 공개 URL 하나, 선별 URL 목록, 또는 상한이 있는 sitemap 표본 |
| 전제 | Hermes Agent, Python 3.9+, PageSpeed Insights API 키, 쓰기 가능한 보고서 위치 |
| 완료 | URL과 전략, 원본 결과, 필드 데이터 범위가 기록되고 사이트 변경이 없음 |
릴리스 점검에는 선별 URL 목록을 사용합니다. sitemap 표본은 템플릿 간 패턴을 찾는 용도이지 전체 사이트를 검사했다는 증거가 아닙니다. 첫 경로 세그먼트별로 URL 하나를 선택한 뒤 sitemap 순서로 상한까지 채우며, 고아 페이지, canonical, 색인 가능성은 검증하지 않습니다.
안전한 실행 환경에만 키 설정하기
Google Cloud에서 PageSpeed Insights API를 활성화하고 제한된 키를 만듭니다. 값은 로컬 비밀 저장소나 Hermes 실행 환경에만 두며 스킬, 보고서, 채팅, Git에는 넣지 않습니다.
export PAGESPEED_API_KEY="replace-with-your-key"
처음 감사는 전용 제한 키를 사용하는 로컬 실행이 가장 낮은 위험입니다. Docker, 원격 터미널, 샌드박스에 키를 전달하면 그 안의 코드가 키를 읽을 수 있으므로 의도적으로 결정해야 합니다.
SKILL.md의 안전 계약
---
name: pagespeed-seo-baseline
description: Create a read-only PageSpeed Insights baseline for public URLs or a controlled sitemap sample. Save raw JSON and a dated report. Never edit a site, repository, CMS, hosting configuration, or deployment.
required_environment_variables:
- PAGESPEED_API_KEY
---
# PageSpeed SEO Baseline
## Boundaries
- Read `PAGESPEED_API_KEY` from the runtime environment only. Never print, message, save, or commit it.
- Do not use browser logins, SSH, CMS, hosting, Git write, deployment, or website-editing tools.
- Run both `mobile` and `desktop`; save each successful response under `raw/` before summarizing it.
- Treat Lighthouse as lab data. Treat `loadingExperience` as page-level CrUX and `originLoadingExperience` as origin-level CrUX only when returned.
- For `--sitemap`, disclose sampling and exclusions. Prefer `--urls-file` for important templates.
- Never create or change a schedule before a human reviews one successful report and approves scope, cadence, report path, and delivery destination.
runner는 표준 라이브러리만 사용하고--url, 한 줄당 URL 하나인--urls-file, XML sitemap을 지원해야 합니다. mobile과desktop에서 성능, 접근성, 권장사항, SEO를 요청하고 raw 응답을 먼저 저장합니다.
python3 scripts/pagespeed_baseline.py \
--url "https://www.example.com/" \
--out "$HOME/hermes-pagespeed-reports/homepage-baseline"
report.md, summary.json, 모바일/데스크톱 raw JSON이 만들어져야 합니다. 요청 URL, 최종 URL, 전략, 시간, 비어 있지 않은 JSON을 확인합니다. 403은 API 설정이나 키 제한을, 429 또는 5xx는 같은 범위의 나중 재시도를 뜻합니다.
PageSpeed 데이터를 올바르게 읽기
| 데이터 | 의미 | 주장하면 안 되는 것 |
|---|---|---|
| Lighthouse 점수, LCP, INP, CLS, TBT | 지정된 페이지와 전략의 실험실 측정 | 모든 사용자가 같은 경험을 함 |
|
| 반환된 경우의 페이지 수준 CrUX | 오리진 전체 결과 |
|
| 반환된 경우의 오리진 수준 CrUX | 모든 템플릿이 같음 |
| CrUX 없음 | 이 응답에 적격 필드 데이터 없음 | 방문자가 없음 |
반복되는 기회는 이미지 파이프라인 같은 공유 메커니즘을 조사할 근거일 뿐, Hermes가 자산을 변경하거나 스크립트를 지연시키고 캐시 헤더를 수정할 권한은 아닙니다.
신뢰할 수 있는 보고서 뒤에만 일정 추가하기
검증되지 않은 에이전트 작업을 일정화하면 나쁜 증거만 더 자주 도착합니다. 첫 보고서를 사이트 소유자와 검토하고 URL 범위, 빈도, 보존 기간, 전달 위치를 정합니다.
Hermes는 승인된 수동 범위를 사용하고, 명시적 승인 전에는 일정을 활성화하지 않아야 합니다. 보고서 경로, 명령, 환경 가정, 실패 알림을 먼저 보여 주고report.md와summary.json만 승인된 소유자에게 전달합니다.
검증 체크리스트
- [ ] 스킬은
~/.hermes/skills/pagespeed-seo-baseline/에 있고 이름과 디렉터리가 일치한다. - [ ] API 키는 파일, 채팅, 보고서에 없다.
- [ ] 수동 보고서에는 모바일/데스크톱, raw JSON, 최종 URL, 명확한 범위가 있다.
- [ ] Lighthouse와 페이지/오리진 CrUX를 혼동하지 않는다.
- [ ] 일정은 사람이 검토한 뒤에만 승인된 보고서 위치에 쓴다.
- [ ] 감사 스킬에 CMS, 저장소, 호스팅, 배포 권한이 없다.
FAQ
Hermes가 sitemap의 모든 페이지를 검사할 수 있나요?
URL을 더 처리할 수는 있지만 올바른 시작점은 아닙니다. PageSpeed 요청은 할당량을 사용하고 sitemap에는 다른 템플릿과 낮은 우선순위 페이지가 섞입니다. 템플릿별 한 페이지나 제한된 표본으로 시작해 필요할 때 확장하십시오.
Author: Julian Mercer, Auspia Technical SEO Practitioner. Julian은 SEO 발견부터 검토된 웹사이트 결정까지 명확한 증거 흐름을 남기는 기술 워크플로를 작성합니다.