GitHub Pages 커스텀 도메인 + 검색 노출 설정 | SEO 기초 — 교사용 가이드
GitHub Pages에 교구 올리는 건 성공했는데, 주소가 username.github.io/repo라서 학생에게 불러주기 어렵지 않으셨나요? 그리고 구글에 검색해도 내 사이트가 안 나오고요.
이 글에서는 커스텀 도메인 연결과 검색 엔진 노출(SEO) 두 가지를 한번에 해결합니다. 내 교구 사이트에 tools.쌤이름.com 같은 짧은 주소를 달고, 구글에서 검색되게 만드는 과정을 처음부터 끝까지 따라 하실 수 있습니다.
📌 한눈에 보기
- 대상: GitHub Pages로 교구를 배포 중인 교사
- 커스텀 도메인: 도메인 구매 → DNS에 CNAME 레코드 추가 → GitHub 설정에서 연결
- SEO 설정: sitemap.xml 추가 + meta 태그 작성 + Google Search Console 등록
- 소요 시간: 약 20~30분 (도메인 구매 제외)
- 비용: 도메인 연 1~2만 원 / SEO 설정은 무료
커스텀 도메인이 왜 필요한가요?
GitHub Pages 기본 주소는 https://username.github.io/repository-name입니다. 작동은 잘 되지만, 실제로 학생에게 이 주소를 불러주거나 칠판에 적으려면 꽤 불편합니다.
❌ 기본 주소
https://kimteacher2024.github.io/social-quiz-collection
길고, 외우기 어렵고, 구두로 전달 불가
✅ 커스텀 도메인
https://tools.김쌤.com
짧고, 기억하기 쉽고, 전문적인 느낌
커스텀 도메인의 장점을 정리하면 이렇습니다.
- 접근성 향상: 짧은 주소를 칠판에 적거나 QR코드로 만들기 쉽습니다.
- 전문성: 학부모, 동료 교사에게 공유할 때 훨씬 신뢰감을 줍니다.
- 브랜딩: "내 교구 사이트"라는 정체성을 가질 수 있습니다.
- SEO: 자체 도메인이 검색 엔진에서 더 잘 인식됩니다.
Step 1. 도메인 구매하기
도메인은 인터넷 주소를 사는 것입니다. .com, .kr, .site 같은 확장자가 붙은 주소를 연 단위로 등록하는 방식입니다.
① 도메인 등록 사이트 선택
국내에서 많이 쓰는 도메인 등록 사이트입니다.
- 가비아(Gabia) — 국내 1위, 한국어 지원,
.kr도메인 저렴 - 호스팅케이알 — 가격이 저렴하고 관리 화면이 직관적
- Namecheap — 해외 서비스,
.com도메인 연 약 $10
② 도메인 이름 정하기
교구용이라면 짧고 기억하기 쉬운 이름이 좋습니다. 예시:
김쌤교구.kr— 이름 기반, 한글도 가능social-tools.com— 과목+용도 조합myedutools.site—.site확장자는 연 2,000원대로 저렴
💡 도메인 선택 팁
.site나 .xyz는 첫해 1,000~2,000원으로 매우 저렴합니다. 교구 테스트용으로 시작하기 좋아요. 다만 갱신 비용은 올라갈 수 있으니, 장기적으로 쓸 거라면 .com이나 .kr이 안정적입니다.
Step 2. DNS에 CNAME 레코드 추가
도메인을 구매했으면, 이제 그 도메인이 GitHub Pages 서버를 가리키도록 설정해야 합니다. 이걸 DNS 설정이라고 하고, 여기서 CNAME 레코드를 추가합니다.
① 도메인 관리 사이트에서 DNS 설정 열기
도메인을 구매한 사이트(가비아, Namecheap 등)에 로그인한 뒤, DNS 관리 또는 네임서버 설정 메뉴를 찾습니다.
② CNAME 레코드 추가
서브도메인(예: www)을 사용하는 경우:
CNAME 레코드 설정값
타입: CNAME
호스트: www
값: username.github.io
TTL: 3600 (또는 기본값)
username 부분을 본인의 GitHub 사용자 이름으로 바꾸세요.
③ Apex 도메인(루트 도메인)을 사용하려면
www 없이 myedutools.site처럼 바로 접속하게 하려면, A 레코드를 GitHub의 IP 주소로 설정합니다.
A 레코드 설정값 (GitHub Pages 공식 IP)
타입: A 호스트: @ 값: 185.199.108.153
타입: A 호스트: @ 값: 185.199.109.153
타입: A 호스트: @ 값: 185.199.110.153
타입: A 호스트: @ 값: 185.199.111.153
4개 모두 추가해야 안정적으로 작동합니다.
⚠️ DNS 반영 시간
DNS 설정을 변경하면 전파되기까지 최대 24~48시간이 걸릴 수 있습니다. 보통은 10분~1시간이면 되지만, "아직 안 되는데?" 싶으면 조금 기다려 보세요.
Step 3. GitHub에서 커스텀 도메인 설정
① 저장소 Settings 열기
GitHub 저장소 페이지에서 Settings 탭 → 왼쪽 메뉴에서 Pages를 클릭합니다.
② Custom domain 입력
"Custom domain" 칸에 구매한 도메인(예: www.myedutools.site)을 입력하고 Save를 누릅니다.
GitHub가 자동으로 DNS를 확인합니다. 성공하면 "DNS check successful" 메시지가 뜹니다.
③ HTTPS 강제 적용
"Enforce HTTPS" 체크박스를 켭니다. 인증서가 자동 발급되어 https://로 안전하게 접속됩니다. 학교 네트워크에서 차단되지 않으려면 반드시 켜야 합니다.
④ CNAME 파일 확인
커스텀 도메인을 설정하면 저장소 루트에 CNAME이라는 파일이 자동 생성됩니다. 이 파일 안에 도메인 주소가 한 줄 적혀 있어요. 이 파일을 삭제하면 안 됩니다.
CNAME 파일 내용 (자동 생성됨)
www.myedutools.site
Step 4. sitemap.xml 추가하기
여기서부터는 검색 엔진 최적화(SEO) 영역입니다. 구글이 내 사이트의 페이지 목록을 쉽게 파악하도록 sitemap.xml을 만들어 올립니다.
sitemap.xml은 "내 사이트에 이런 페이지들이 있어요"라고 검색 엔진에 알려주는 목록 파일입니다.
sitemap.xml 예시
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.myedutools.site/</loc>
<lastmod>2026-06-20</lastmod>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.myedutools.site/quiz-ox.html</loc>
<lastmod>2026-06-18</lastmod>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.myedutools.site/timer.html</loc>
<lastmod>2026-06-15</lastmod>
<priority>0.8</priority>
</url>
</urlset>
내 교구 파일의 URL과 수정 날짜를 넣어서 만들면 됩니다. 새 교구를 추가할 때마다 이 파일에 <url> 블록을 하나 추가하세요.
sitemap.xml 올리기
저장소 최상위(루트)에 sitemap.xml 파일을 올립니다. index.html과 같은 위치에 놓으면 됩니다.
Step 5. robots.txt 추가하기
검색 엔진 크롤러에게 "내 사이트를 크롤링해도 돼요, 그리고 sitemap은 여기에 있어요"라고 알려주는 파일입니다.
robots.txt 예시
User-agent: *
Allow: /
Sitemap: https://www.myedutools.site/sitemap.xml
이것도 저장소 루트에 올립니다. 딱 3줄이면 끝.
Step 6. HTML에 SEO용 meta 태그 넣기
각 HTML 파일의 <head> 안에 메타 태그를 넣으면, 검색 결과에 제목과 설명이 예쁘게 표시됩니다. 카카오톡이나 밴드에 링크를 공유할 때도 미리보기가 뜹니다.
meta 태그 예시
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>통합사회 OX퀴즈 | 김쌤 교구</title>
<meta name="description" content="통합사회 인권 단원 OX퀴즈 교구입니다. 브라우저에서 바로 풀 수 있습니다.">
<meta name="keywords" content="통합사회, OX퀴즈, 인권, 교구, 수업자료">
<meta name="author" content="김쌤">
<!-- Open Graph (카카오톡/밴드 미리보기) -->
<meta property="og:title" content="통합사회 OX퀴즈 | 김쌤 교구">
<meta property="og:description" content="인권 단원 OX퀴즈를 브라우저에서 바로 풀어보세요.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.myedutools.site/quiz-ox.html">
</head>
💡 Open Graph 태그의 효과
og:title과 og:description을 넣으면, 카카오톡에 링크를 붙여넣을 때 제목과 설명이 카드 형태로 예쁘게 뜹니다. 학생들이 "뭔가 제대로 된 사이트다"라고 느끼는 효과가 큽니다.
Step 7. Google Search Console 등록
구글에서 내 사이트가 검색되게 하려면, Google Search Console에 사이트를 등록해야 합니다. 등록하면 구글이 내 사이트를 주기적으로 크롤링하기 시작합니다.
① Search Console 접속
Google Search Console에 접속하고 구글 계정으로 로그인합니다.
② 속성 추가
왼쪽 상단의 속성 선택 드롭다운에서 "속성 추가"를 클릭합니다.
- 도메인 유형: 커스텀 도메인이 있으면 "도메인" 선택 → DNS 인증
- URL 접두어 유형:
https://username.github.io/repo를 그대로 쓰는 경우 "URL 접두어" 선택 → HTML 파일 인증
③ 소유권 인증
URL 접두어 방식이 가장 간단합니다.
- 구글이 제공하는 HTML 인증 파일을 다운로드합니다. (예:
google1234abcd.html) - 이 파일을 저장소 루트에 올립니다.
- Search Console에서 "확인" 버튼을 누르면 인증 완료!
④ Sitemap 제출
Search Console 왼쪽 메뉴에서 "Sitemaps"를 클릭하고, 주소 칸에 sitemap.xml을 입력한 뒤 "제출"합니다.
제출 후 몇 시간~며칠 안에 구글이 sitemap을 읽고 페이지 색인을 시작합니다.
💡 색인에 시간이 걸립니다
Search Console에 등록했다고 바로 검색에 나오진 않습니다. 보통 며칠~2주 정도 걸려요. "URL 검사" 도구로 특정 페이지의 색인 요청을 하면 좀 더 빠르게 처리됩니다.
전체 체크리스트
여기까지 따라 했다면, 아래 항목이 모두 완료되어야 합니다.
| ☐ | 항목 | 확인 방법 |
|---|---|---|
| 1 | 도메인 구매 완료 | 도메인 관리 사이트에서 상태 확인 |
| 2 | DNS 레코드 설정 | CNAME 또는 A 레코드 추가 확인 |
| 3 | GitHub Pages Custom domain 입력 | Settings → Pages → "DNS check successful" |
| 4 | HTTPS 강제 적용 | Enforce HTTPS 체크됨 |
| 5 | sitemap.xml 업로드 | https://내도메인/sitemap.xml 접속 확인 |
| 6 | robots.txt 업로드 | https://내도메인/robots.txt 접속 확인 |
| 7 | meta 태그 추가 | HTML <head>에 title, description, og 태그 |
| 8 | Google Search Console 등록 | 소유권 인증 완료 + sitemap 제출 |
추가 팁
💡 팁 1: 네이버 검색 노출도 하려면
네이버 서치어드바이저에도 등록하세요. 한국 학생과 학부모는 네이버 검색을 많이 씁니다. 등록 방식은 Google Search Console과 거의 동일합니다. HTML 파일 인증 → sitemap 제출.
💡 팁 2: 무료 도메인으로 먼저 연습
Freenom 같은 서비스에서 .tk, .ml 등 무료 도메인을 발급받을 수 있습니다. 유료 도메인 구매 전에 과정을 먼저 연습해 볼 수 있어요. 다만 무료 도메인은 SEO에 불리할 수 있습니다.
💡 팁 3: 커스텀 도메인 없이도 SEO는 됩니다
커스텀 도메인이 없어도 github.io 주소 그대로 Search Console에 등록할 수 있습니다. 도메인 구매가 부담되면 SEO 설정만 먼저 해도 충분합니다.
💡 팁 4: 페이지별로 title과 description을 다르게
모든 페이지의 <title>이 똑같으면 검색 결과에서 구분이 안 됩니다. 교구마다 고유한 제목과 설명을 넣어야 검색 결과에서 어떤 페이지인지 한눈에 알 수 있어요.
⚠️ 주의: 도메인 갱신을 잊지 마세요
도메인은 보통 1년 단위로 등록됩니다. 갱신을 안 하면 도메인이 만료되어 사이트에 접속이 안 돼요. 자동 갱신 설정을 켜두거나, 달력에 갱신 날짜를 메모해 두세요. 학기 중에 갑자기 사이트가 사라지면 곤란하니까요.
이 글이 도움이 되셨다면 댓글로 알려주세요. 도메인 연결 과정에서 막히는 부분이 있으면 질문 남겨 주시면 답변드리겠습니다.
대화 참여하기