Haneul Hagwon · 하늘학원
Exam-prep academy, 9 campuses · Seoul
Nine campuses, two search engines: a Seoul hagwon's technical overhaul
- Mobile LCP
- 6.4s → 1.7s
- Indexed campus pages
- 2 → 9
- Organic sessions
- +97%
2026학년도 검색 성적 답안지
Search visibility answer sheet
Campus pages indexed · N = Naver, G = Google
Beautiful campus pages that no search engine could read.
Image-heavy campus pages rendered text as images, invisible to both Naver and Google, and mobile pages took over 6 seconds.
Haneul Hagwon runs nine exam-prep campuses across Seoul. Every one had a designed page — but the designer exported each as a single image: fees, subjects, timetables, even the address. Parents searching “대치동 수학학원” on Naver or Google found competitors, because to Yeti and Googlebot those pages were blank. Only Daechi and Mok-dong, which had a few lines of HTML, were indexed at all.
0 words
612 words + Course schema
Twelve questions on the answer sheet. Each row fills as it is fixed.
A dual-engine crawl — once as Googlebot, once as Naver's Yeti — plus CrUX field data and a page-by-page content review. Every finding below was closed, verified in both engines and measured.
- 01
이미지 텍스트Technical
Course copy, fees and timetables on 7 of 9 campus pages were baked into JPEG banners: 0 crawlable words.
Fix: Rebuilt as live HTML text over CSS backgrounds; banners kept as decorative images with empty alt.
- 02
네이버 미등록Technical
Site never verified in Naver Search Advisor; no sitemap or RSS submitted to Yeti, Naver's crawler.
Fix: Verified the domain, submitted sitemap.xml and RSS, and requested collection for every campus URL.
- 03
robots.txtTechnical
A legacy wildcard rule disallowed /campus/ for every crawler except Googlebot.
Fix: Replaced with an explicit allow-list for Yeti and Googlebot; blocked only /admin/ and search results.
- 04
LCP 6.4초Technical
Hero carousel of five 2.8 MB PNGs, loaded eagerly on mobile: LCP 6.4s at p75.
Fix: Single AVIF hero at 92 KB with fetchpriority=high; the carousel became a static grid below the fold.
- 05
한글 웹폰트Technical
Three full Hangul web-font files (2.1 MB) blocked rendering on every page.
Fix: Subset to the 2,350 KS X 1001 syllables in use, WOFF2, font-display: swap — 186 KB total.
- 06
CLS 0.31Technical
A late-loading timetable embed and chat widget shifted the page by 0.31.
Fix: Reserved fixed slots for both; the chat widget loads on interaction only. CLS 0.02.
- 07
중복 URLTechnical
Campuses lived at ?campus=3 query URLs with no canonical, producing 40+ duplicates.
Fix: Clean /campus/daechi style paths, 301s from every old parameter, self-canonicals.
- 08
주소 이미지Local
Addresses and phone numbers existed only inside map screenshots.
Fix: Text NAP block per campus matching each Naver Place and Google Business Profile listing.
- 09
구조화 데이터Local
No structured data anywhere on the site.
Fix: EducationalOrganization + LocalBusiness per campus, Course for each programme, BreadcrumbList sitewide.
- 10
PDF 시간표Content
Term timetables were scanned PDFs, so 'CSAT maths evening class Daechi' matched nothing.
Fix: HTML timetables with course, level, day and time as indexable text, updated each term.
- 11
제목 태그Content
All 214 pages shared the title tag '하늘학원'.
Fix: Templated titles: subject + campus + 학원, e.g. '대치 수학학원 | 하늘학원'.
- 12
블로그 중복Content
Naver Blog posts copied site pages word for word, so Naver chose the blog as the original.
Fix: Blog posts rewritten as study tips that link to the canonical campus page.
12문항 중 12문항 해결 · 12 of 12 findings closed
Four answers, worked in full.
Built on our Signal plan (technical seo): fix how both engines crawl, render and understand the site before writing a single new page.
문제 1. 색인
[3점]Naver & Google indexing
Korea has two search engines that matter, and they crawl differently. We treated Yeti and Googlebot as two separate examiners.
- Naver Search Advisor + Google Search Console verified
- Sitemap and RSS feeds submitted to both
- robots.txt allow-list, collection requests per campus URL
문제 2. 속도
[3점]Core Web Vitals
Parents search between classes on phones. A 6.4-second campus page lost them before the timetable appeared.
- One 92 KB AVIF hero with fetchpriority=high
- Hangul font subset from 2.1 MB to 186 KB
- Reserved slots for embeds; chat loads on tap
문제 3. 지점
[2점]Location pages
Nine campuses, nine genuinely different pages: route from the nearest subway exit, parking, subjects and teachers by level.
- Live HTML copy replacing image banners
- Text NAP matched to Naver Place and Google Business Profile
- Clean /campus/<name> URLs with 301s
문제 4. 구조화
[2점]Structured data
Markup tells both engines that each page is a real educational organisation at a real address, offering real courses.
- EducationalOrganization + LocalBusiness per campus
- Course schema for 31 programmes
- Validated in Rich Results Test and Search Advisor
6 months, run like exam periods.
One focus per month. Select a period to see the work and where the numbers stood at its end.
Month 1 of 6 · 1교시
Crawl both engines
- A.Full crawl as Googlebot and as Yeti
- B.Naver Search Advisor verification, sitemap + RSS
- C.robots.txt rewrite
- Sessions
- 4,410
- Bookings
- 40
- Mobile LCP
- 4.8s
- Campuses indexed
- 3/9
Jamsil indexed by both engines
The sheet goes through the scanner.
Six months after the first crawl, measured against the month before work began.
Organic consultation bookings per month (modelled).
Line = 2.5s “good” threshold
Modelled scenario for a fictional business — not a client result. Rankings and traffic are never guaranteed; see our Terms.
Rankings, both engines
Eight campus-and-subject queries parents actually type. Switch engines to compare: Naver weights its own Place listings and blogs; Google leans harder on page speed and schema.
| Query | Before | After | Top 10 |
|---|---|---|---|
| 대치동 수학학원Daechi maths academy | 50+ | 3 | |
| 목동 영어학원Mok-dong English academy | 27 | 4 | |
| 수능 대비 학원CSAT prep academy | 50+ | 9 | |
| 잠실 국어학원Jamsil Korean academy | 50+ | 2 | |
| 중계동 과학학원Junggye science academy | 50+ | 5 | |
| 마포 수능 학원Mapo CSAT academy | 50+ | 6 | |
| 여의도 영어학원Yeouido English academy | 50+ | 4 | |
| 서초 수학 내신Seocho school-exam maths | 41 | 8 |
Modelled positions, mobile, Seoul. “50+” means not in the top 50. The filled bubble marks the month-6 position.
다음 시험 준비
Get a plan like this
If search engines can't read your pages, nothing else you do in SEO counts. Signal starts with exactly that.