import type { ParsedRouteParams } from './dataHelper' import { getShortRegionName } from './dataHelper' export function generateSeoMeta(parsed: ParsedRouteParams, siteName = '티처브릿지', siteDomain = 'https://soohyun.store') { const { sido, sigungu, dong, shortRegionName, grade, subjectName, targetTerm, fullKeyword } = parsed const regionTitle = shortRegionName || getShortRegionName(sido, dong) // 학부모 검색 최적화: [지역] [과목]과외 전문 매칭 | [학년] 1:1 방문 맞춤 수업 (공백 포함 30~35자 내외 말줄임 방지) const pageTitle = `${regionTitle} ${subjectName}과외 전문 매칭 | ${grade} 1:1 방문 맞춤 수업` // 고의도 검색 및 전환 최적화 메타 디스크립션 (과외 비용 시세 + 학교 기출 분석 + 100% 신원 검증 + 무료 시범수업) const pageDescription = `${regionTitle} ${grade} ${subjectName}과외 전문 매칭. 과외 비용 및 시세 비교부터 무료 시범수업 신청까지. ${dong} 인근 학교별 기출 족보 완벽 분석, 서술형 감점 방지, 검증된 1:1 전문 선생님 100% 매칭.` // 표준 Canonical URL const canonicalUrl = `${siteDomain}/${encodeURIComponent(dong)}-${encodeURIComponent(grade)}-${encodeURIComponent(subjectName)}` const jsonLd = { '@context': 'https://schema.org', '@graph': [ { '@type': 'EducationalOrganization', 'name': siteName, 'url': siteDomain, 'description': pageDescription, 'areaServed': { '@type': 'AdministrativeArea', 'name': `${sido} ${sigungu} ${dong}` } }, { '@type': 'Course', 'name': `${dong} ${grade} ${subjectName} 1:1 맞춤 과외`, 'description': `${dong} 인근 학교 내신 출제 경향 분석 및 ${subjectName} 1등급 도약 커리큘럼`, 'provider': { '@type': 'Organization', 'name': siteName } }, { '@type': 'BreadcrumbList', 'itemListElement': [ { '@type': 'ListItem', 'position': 1, 'name': '홈', 'item': siteDomain }, { '@type': 'ListItem', 'position': 2, 'name': sido, 'item': `${siteDomain}/${encodeURIComponent(sido)}` }, { '@type': 'ListItem', 'position': 3, 'name': sigungu, 'item': `${siteDomain}/${encodeURIComponent(sigungu)}` }, { '@type': 'ListItem', 'position': 4, 'name': `${dong} ${subjectName}`, 'item': canonicalUrl } ] } ] } return { title: pageTitle, meta: [ { name: 'naver-site-verification', content: 'dfb36e971115b72176e1c1e37c6ca27a95e855e3' }, { name: 'google-site-verification', content: 'DvXzTXFe_DBt8nrIiI7SwWYgOENNAWNW5op79syf5pM' }, { name: 'description', content: pageDescription }, { name: 'keywords', content: `${dong}과외, ${dong}${subjectName}과외, ${dong}${grade}과외, ${sigungu}과외, ${dong}학원, ${dong}내신대비, ${subjectName}1:1과외` }, { property: 'og:type', content: 'website' }, { property: 'og:title', content: pageTitle }, { property: 'og:description', content: pageDescription }, { property: 'og:url', content: canonicalUrl }, { property: 'og:site_name', content: siteName }, { property: 'og:image', content: `${siteDomain}/img/og-preview.png` }, { name: 'twitter:card', content: 'summary_large_image' }, { name: 'twitter:title', content: pageTitle }, { name: 'twitter:description', content: pageDescription } ], link: [ { rel: 'canonical', href: canonicalUrl } ], script: [ { type: 'application/ld+json', children: JSON.stringify(jsonLd) } ] } }