# 탑에듀프렙 SEO 사이트 — satmatheng.topeduprep.uk

원본 단일 HTML 파일(`topeduprepschool.html`)을 **Google Search Console(GSC) SEO 모범 구조**에 맞춰
18개의 개별 URL로 재구성한 정적 사이트입니다. 폴더/파일명은 실제 검색 의도(키워드)에 맞춰
영문 슬러그로 설계했습니다 (`/sat/`, `/math/`, `/campus/apgujeong/` 등).

---

## 1. 폴더 구조

```
/
├── index.html                              홈 (SAT·수학학원·영어학원 종합)
├── about/index.html                        학원 소개
├── sat/index.html                          SAT 학원 (코너스톤 페이지)
├── act/index.html                          ACT 학원
├── ap/index.html                           AP 학원
├── ib/index.html                           IB 디플로마
├── math/index.html                         수학학원
├── english/index.html                      영어학원
├── campus/apgujeong/index.html             압구정 캠퍼스 (지역 SEO)
├── campus/jamsil/index.html                잠실 캠퍼스 (지역 SEO)
├── campus/centum/index.html                센텀 캠퍼스 (지역 SEO)
├── college-admission-guide/index.html      대학별 입시 기준표
├── reviews/index.html                      수강 후기 · 합격 사례
├── contact/index.html                      상담 신청
├── blog/index.html                         블로그 목록
├── blog/sat-act-ap-2026-strategy/index.html
├── blog/ap-exam-score-5-guide/index.html
├── blog/ivy-league-admission-interview/index.html
├── 404.html                                커스텀 404 페이지
├── robots.txt
├── sitemap.xml                             18개 URL 등록
├── manifest.json
└── assets/
    ├── css/style.css                       공용 스타일시트
    ├── js/main.js                          탭/아코디언/모바일 메뉴 공용 스크립트
    └── img/favicon.svg
```

모든 페이지는 **디렉토리 + `index.html`** 방식이라 배포 시 URL이
`https://satmatheng.topeduprep.uk/sat/` 처럼 슬래시로 끝나는 깔끔한 형태가 됩니다
(트레일링 슬래시 통일 → 중복 콘텐츠/캐노니컬 이슈 방지).

`generate_site.py` + `build_0*.py` 스크립트는 사이트를 만든 **소스**입니다.
내용을 수정하려면 이 파이썬 파일들을 고쳐서 `python3 build_01_...py` 순서대로 재실행하면
전체 사이트가 다시 생성됩니다 (실제 배포 폴더에는 필요 없음, 참고용으로만 유지하세요).

---

## 2. 이번 작업에서 적용한 SEO 조치

**키워드/URL 구조**
- 페이지마다 하나의 핵심 키워드 클러스터에 집중 (SAT / ACT / AP / IB / 수학학원 / 영어학원 / 캠퍼스별)
- URL 슬러그를 검색 의도가 드러나는 영문으로 통일 (`/sat/`, `/college-admission-guide/`)
- 홈 → 프로그램 페이지 → 캠퍼스/블로그로 이어지는 **내부링크 실루엣(silo) 구조**

**메타데이터 (페이지별 고유)**
- `<title>` 55~60자 내외, 브랜드명 + 핵심 키워드 + 지역명 조합
- `<meta description>` 120~160자, 페이지마다 다른 문구
- `<link rel="canonical">` 모든 페이지에 자기 자신을 가리키도록 설정
- Open Graph / Twitter Card 태그 전 페이지 적용

**구조화 데이터 (JSON-LD, `@graph` 형식)**
- `EducationalOrganization` (사이트 전체 공통, 3개 캠퍼스 department 포함)
- `BreadcrumbList` (모든 페이지, 탐색 구조를 검색결과에 노출)
- `FAQPage` (SAT/ACT/AP/IB/수학/영어/홈/블로그 — "자주 묻는 질문"이 있는 모든 페이지 → 리치 스니펫 노출 가능)
- `Course` (프로그램 페이지 6개)
- `Article` (블로그 글 3개, `datePublished`/`dateModified` 포함)
- `EducationalOrganization` + `GeoCoordinates` + `OpeningHoursSpecification` (캠퍼스 3개 → 지역 검색/지도 노출용)

**기술적 SEO**
- `robots.txt` + `sitemap.xml` (18개 URL, `lastmod`/`changefreq`/`priority` 포함)
- `404.html` 커스텀 페이지
- `manifest.json`, SVG 파비콘
- 폰트 `preconnect`로 로딩 속도 최적화, CSS/JS 외부 파일 분리(캐싱)
- 시맨틱 HTML5 (`header`, `nav`, `main` 성격의 `section`, `footer`, `aside`), `aria-*` 속성 유지
- 반응형(모바일) 레이아웃 유지

**콘텐츠**
- 원본의 CMS "수정모드/퍼블리시" 기능은 정적 배포용 사이트에는 불필요하여 제거(불필요한 JS 제거 → 속도/SEO 개선)
- 블로그 글 3편 + 대학별 입시 기준표 + 캠퍼스별 페이지로 콘텐츠 총량과 롱테일 키워드 커버리지 확대

---

## 3. `satmatheng.topeduprep.uk` 배포 방법

`topeduprep.uk`의 서브도메인이므로, **DNS + 정적 호스팅**만 있으면 됩니다. 무료 방식 추천 2가지:

### 옵션 A — Cloudflare Pages (권장, 무료·자동 HTTPS)
1. 이 폴더 전체를 GitHub 저장소에 업로드 (또는 Cloudflare Pages 대시보드에서 폴더 직접 드래그 업로드)
2. Cloudflare Pages → "Create a project" → 저장소 연결 (빌드 명령 없음, Output directory: `/`)
3. 배포 완료 후 발급되는 `*.pages.dev` 주소 확인
4. `topeduprep.uk`가 Cloudflare에서 관리 중이라면: DNS 탭 → CNAME 레코드 추가
   - Name: `satmatheng`
   - Target: `<프로젝트명>.pages.dev`
   - Proxy 상태: Proxied (주황 구름)
5. Cloudflare Pages 프로젝트 → Custom domains → `satmatheng.topeduprep.uk` 추가

### 옵션 B — GitHub Pages
1. 저장소 루트에 이 폴더 내용 업로드, `main` 브랜치 Pages 활성화
2. 저장소에 `CNAME` 파일 생성, 내용: `satmatheng.topeduprep.uk`
3. `topeduprep.uk` DNS에 CNAME 레코드 추가: `satmatheng` → `<github계정>.github.io`

> 어떤 방식이든, **URL이 `https://satmatheng.topeduprep.uk/`로 정상 접속되는 것을 먼저 확인한 뒤** 4번으로 진행하세요.

---

## 4. Google Search Console(GSC) 등록 절차

1. https://search.google.com/search-console 접속 → "속성 추가" → URL 접두어 방식으로
   `https://satmatheng.topeduprep.uk/` 입력
2. 소유권 확인: **HTML 태그 방식** 추천 → 발급받은 `<meta name="google-site-verification" ...>` 태그를
   `generate_site.py`의 `page_shell()` 함수 `<head>` 블록에 추가 후 전체 사이트 재생성 및 재배포
   (또는 DNS TXT 레코드 방식도 가능 — Cloudflare/도메인 관리 화면에서 추가)
3. 소유권 확인 완료 후 좌측 메뉴 **Sitemaps** → `sitemap.xml` 제출
   (`https://satmatheng.topeduprep.uk/sitemap.xml`)
4. **URL 검사** 도구로 홈페이지(`/`)와 `/sat/`을 색인 생성 요청 (초반 크롤링 속도를 높여줌)
5. 3~7일 후 **페이지** 리포트에서 색인 상태, **성과** 리포트에서 노출/클릭 확인

**추가 권장 등록**
- 네이버 서치어드바이저(searchadvisor.naver.com) — 한국 검색 트래픽 비중이 크므로 필수
- 네이버/구글 마이비즈니스 또는 지도 등록 시 캠퍼스 3곳 주소를 위 `campus/*` 페이지 URL과 연결

---

## 5. 배포 전 반드시 확인/보완해야 할 것

이 사이트는 **구조와 온페이지 SEO는 완성된 상태**지만, 실제 운영 전 아래 항목은 직접 채워 넣어야
"진짜 콘텐츠"로서 완성도가 올라갑니다:

- [ ] **실제 사진 교체**: 현재는 이모지로 시각 요소를 대체했습니다. 캠퍼스 외/내부, 수업 현장, 강사진 실제 사진을 `assets/img/`에 추가하고 각 페이지 `<img>`로 삽입하면 체류시간·전환율에 도움이 됩니다.
- [ ] **정확한 주소·좌표**: `build_02_campus.py`의 `lat`/`lng` 값은 지역 대표 좌표(예시)입니다. 실제 상세 주소와 정확한 위도/경도로 교체하세요(Google 지도에서 확인 가능).
- [ ] **개인정보 처리방침 / 이용약관 전문**: `about/index.html`에 요약만 있습니다. 법무 검토된 전문을 별도 페이지로 추가하는 것을 권장합니다.
- [ ] **구글 애널리틱스(GA4) / 네이버 프리미엄로그** 스크립트 삽입 — 트래픽 분석용
- [ ] **google-site-verification 메타 태그** 삽입 (위 4번 참고)
- [ ] **실제 후기 데이터로 교체**: `reviews/index.html`의 후기는 예시 문구입니다. 실제 학생/학부모 동의를 받은 후기로 교체하세요.
- [ ] 블로그 글을 주기적으로(월 2~4편) 추가하면 롱테일 키워드 유입이 꾸준히 늘어납니다. `build_04_blog.py`의 `article_page()` 함수를 재사용하면 새 글 추가가 쉽습니다.

---

## 6. 핵심 타깃 키워드 매핑 (참고용)

| 페이지 | 1차 키워드 | 롱테일/지역 키워드 |
|---|---|---|
| `/sat/` | SAT 학원 | 압구정 SAT, 잠실 SAT, 디지털 SAT 학원 |
| `/math/` | 수학학원 | SAT 수학학원, AP Calculus 학원, 압구정 수학학원 |
| `/english/` | 영어학원 | SAT 영어학원, AP English 학원, 에세이 학원 |
| `/act/` | ACT 학원 | ACT Science, ACT vs SAT |
| `/ap/` | AP 학원 | AP 5점, AP 과목 선택 |
| `/ib/` | IB 학원 | IB 디플로마, IB 수학 |
| `/campus/apgujeong/` | 압구정 유학원 | 압구정 SAT 학원 |
| `/campus/jamsil/` | 잠실 유학원 | 잠실 SAT 학원 |
| `/campus/centum/` | 센텀 유학원 | 부산 SAT 학원 |
| `/college-admission-guide/` | 미국대학 입시 기준 | 아이비리그 SAT 점수 |

이 표는 `<title>`/`<meta description>`/`<h1>`에 이미 반영되어 있습니다. 추가로
Google Keyword Planner나 네이버 검색광고의 키워드도구로 월간 검색량을 확인해
콘텐츠(특히 블로그)를 확장하는 것을 권장합니다.
