# TOP EDU PREP — Sitemap & GSC 최적화 가이드

## 받은 파일

```
topeduprep.uk/sitemap.xml          → 메인 도메인용 (즉시 사용 가능)
topeduprep.uk/robots.txt           → 메인 도메인용 (즉시 사용 가능)
study.topeduprep.uk/generate_sitemap.py  → study 폴더에서 실행하면 2,299개 sitemap.xml 자동 생성
study.topeduprep.uk/robots.txt     → study 도메인용 (즉시 사용 가능)
```

book.topeduprep.uk은 아직 비공개라 sitemap을 만들지 않았습니다. 배포되면 알려주세요 —
study용 스크립트를 그대로 재사용해서 5분 안에 만들어드릴 수 있습니다.

---

## 1) topeduprep.uk (메인 사이트)

`#about`, `#programs` 같은 앵커로 이동하는 원페이지 사이트라서 sitemap에는
**루트 URL 1개만** 넣었습니다. Google은 `#fragment`를 별도 페이지로 색인하지 않으므로
이게 정석입니다. 콘텐츠를 수정할 때마다 `<lastmod>` 날짜만 갱신해주세요.

→ `topeduprep.uk/sitemap.xml`, `topeduprep.uk/robots.txt`를 도메인 루트(`/`)에 업로드.

## 2) study.topeduprep.uk (학습지 2,299개)

이건 사람이 손으로 만들면 무조건 누락/오타가 생기는 규모라서,
**실제 파일을 스캔해서 자동 생성하는 스크립트**로 드렸습니다.

### 사용법
```bash
# study.topeduprep.uk 루트 폴더(act/, sat/, ap/ 등이 있는 곳)에 복사 후
python3 generate_sitemap.py
```
→ 같은 폴더에 `sitemap.xml`이 생기고, 콘솔에 카테고리별 개수가 출력되어
실제 페이지 수(전체 2,299개)와 맞는지 바로 검증할 수 있습니다.

### 배포 자동화 (추천)
Wrangler로 배포하신다고 들었는데, `wrangler.toml`이 있는 빌드 스크립트에
`python3 generate_sitemap.py && wrangler pages deploy ...` 순서로 넣으면
새 학습지를 추가할 때마다 sitemap이 자동으로 최신 상태를 유지합니다.

### ⚠️ 진짜 중요한 GSC 이슈: 중복/유사 콘텐츠
스캔 중에 본 내용 기준으로, 같은 주제의 거의 동일한 변형본이 굉장히 많습니다.
예: `al1.html`, `al1-2.html` ... `al1-26.html` (Algebra 1 & Geometry, 26개 변형),
`ap_calculus_quiz.html` ~ `ap_calculus_quiz-14.html` 등.

이건 sitemap을 아무리 잘 만들어도 GSC의 **"중복 콘텐츠, Google에서 선택한 표준 페이지가 다름"**
경고로 이어질 가능성이 높습니다 — Google이 26개 중 1개만 대표로 색인하고 나머지는
"크롤링됨 - 색인되지 않음" 상태로 빠질 수 있어요. 제출한 sitemap이 무시되는 가장 흔한 원인입니다.

**대응 옵션 (택1 또는 혼합):**
1. 각 변형본에 `<link rel="canonical">`을 가장 대표적인 1개 페이지로 지정 (변형본은 색인에서 제외되지만 메인은 신뢰도↑)
2. 변형본들을 진짜 다른 난이도/문제로 차별화하고 title·description을 명확히 다르게 작성
3. 트래픽 가치가 낮은 변형본은 `noindex` 처리하고 sitemap에서도 제외 (스크립트의 `EXCLUDE_FILES`에 추가)

원하시면 1번(canonical 자동 삽입) 스크립트도 만들어드릴 수 있어요 — 폴더 스캔해서
같은 prefix(`al1-*`)끼리 묶고 가장 짧은 파일명을 canonical로 지정하는 방식입니다.

## 3) GSC(Google Search Console) 등록 방법

가장 효율적인 방법은 **도메인 속성(Domain Property)**으로 한 번에 등록하는 것입니다:

1. GSC → 속성 추가 → "도메인" 선택 → `topeduprep.uk` 입력
2. DNS 제공업체(가비아/Cloudflare 등)에서 TXT 레코드 1개 추가해서 소유권 확인
3. 이렇게 하면 `topeduprep.uk`, `study.topeduprep.uk`, `book.topeduprep.uk`,
   `www.topeduprep.uk` 등 모든 서브도메인이 **자동으로 한 속성에 포함**됩니다
   (URL 접두어 속성으로 따로따로 등록하는 것보다 관리가 훨씬 편함)
4. 등록 후 "Sitemaps" 메뉴에서 아래 2개를 각각 제출:
   - `https://topeduprep.uk/sitemap.xml`
   - `https://study.topeduprep.uk/sitemap.xml`
   (book.topeduprep.uk 배포되면 `https://book.topeduprep.uk/sitemap.xml` 추가 제출)

Naver 서치어드바이저도 동일한 sitemap.xml을 그대로 제출하시면 됩니다
(사이트 소유 확인은 별도 메타태그 또는 HTML 파일 방식).
