SOYOYU
업종 · 교육extends CreativeWork, LearningResource

Course

학습 과정·강좌의 표준 타입. 온오프 강의·MOOC·기업 교육·학원 수업 모두 적용 가능한 교육 콘텐츠 마크업.

XEO 효과 4가지

리치 결과

●●●●○높음

Google에 Courses 리치 결과 노출 (제공자·평점·강의 모드). 교육 플랫폼·MOOC 경쟁에서 차별화.

AI 인용

●●●●○높음

AI의 ~ 배우려면 어떤 강좌 답변에서 직접 인용. teaches·educationalLevel이 매칭 정확도를 결정.

사용 빈도

●●○○○낮음

교육 업종에 한정. 그러나 교육 사이트라면 거의 필수.

구현 난이도

●●●○○중간

Course + CourseInstance 계층 + Offer + Organization 결합이 필요. 강좌 운영 시스템과 동기화하면 자동화 가능.

이럴 때 쓴다

  • 학원·교육 플랫폼·기업 교육의 강좌 상세 페이지
  • MOOC·온라인 강의 (인프런·클래스101·유데미식)
  • 자격증·자기계발 강좌
  • 개별 회차는 Course가 아닌 CourseInstance 사용
온라인 강좌 + 기수
{
  "@context": "https://schema.org",
  "@type": "Course",
  "@id": "https://example.com/courses/seo-101#course",
  "name": "SEO 입문 30일",
  "description": "키워드 리서치부터 schema.org 마크업까지 30일에 완성하는 SEO 입문 과정.",
  "provider": { "@id": "https://example.com/#org" },
  "educationalLevel": "Beginner",
  "teaches": ["키워드 리서치", "온페이지 SEO", "구조화 데이터"],
  "timeRequired": "PT30H",
  "inLanguage": "ko-KR",
  "educationalCredentialAwarded": "수료증",
  "hasCourseInstance": [{
    "@type": "CourseInstance",
    "courseMode": "Online",
    "startDate": "2026-06-01",
    "endDate": "2026-06-30",
    "instructor": {
      "@type": "Person",
      "name": "예제 강사",
      "jobTitle": "SEO 컨설턴트"
    },
    "offers": {
      "@type": "Offer",
      "price": "199000",
      "priceCurrency": "KRW",
      "availability": "https://schema.org/InStock"
    }
  }]
}

같은 강좌의 여러 기수는 hasCourseInstance 배열로 — 강좌는 하나, 인스턴스는 여럿.

자주 보는 안티패턴

  • provider 누락 — 강좌 제공자 entity 없으면 신뢰도 약화
  • hasCourseInstance 미사용 — 일정·장소·등록 인원 정보 못 표시
  • educationalCredentialAwarded 누락 — 수료증·자격증 정보 없음
  • 비용을 Course가 아닌 별도 Offer로만 표시
  • 같은 강좌의 여러 기수를 별개 Course로 (CourseInstance로 묶어야 함)
기수별 별개 Course
// 6월 기수, 7월 기수, 8월 기수를 각각 별도 Course로
{ "@type": "Course", "name": "SEO 입문 30일 (6월 기수)" }
{ "@type": "Course", "name": "SEO 입문 30일 (7월 기수)" }

Course entity가 분열되어 누적 리뷰·신호가 흩어짐. 한 Course + hasCourseInstance 배열이 정답.

필수 필드

  • nameText강좌명
  • descriptionText강좌 설명
  • providerOrganization|Person강좌 제공자 entity
  • hasCourseInstanceCourseInstance[]개별 회차 (기수·일정·장소·강사)
  • courseCodeText강좌 코드 (학번·과목 코드)
  • educationalLevelText입문·중급·고급 또는 학년
  • educationalCredentialAwardedText|EducationalOccupationalCredential수료증·자격증
  • offersOffer수강료
  • timeRequiredDuration총 학습 시간 (ISO 8601 PT20H)
  • aboutThing강좌 주제 entity
  • teachesText|DefinedTerm[]학습 결과 (얻는 스킬)
  • inLanguageText강의 언어 (ko-KR 등)

해설

교육·강좌 사이트에서 Course 마크업이 곧 SERP의 차별화다. 같은 키워드로 검색해도 Course 마크업이 있는 페이지는 수료증·강의 시간·강사·수강료가 한눈에 보이고, 없는 페이지는 제목과 메타 디스크립션뿐.

리치 결과 관점에서 주의해야 할 구분이 있다. Google의 Course List 리치 결과(검색 결과의 강좌 카루셀)는 여러 Course를 묶은 ItemList 페이지에만 적용된다. 단일 Course 상세 페이지에 Course 마크업을 다는 것만으로는 그 자체로 별도 SERP 카드가 생기지 않는다. 단일 Course 마크업의 가치는 AI 인용·entity 등록·플랫폼 카테고리 매칭에 있고, 카루셀 노출을 원하면 Course list 페이지를 별도로 만들고 ItemList + Course 결합해야 한다.

AI 인용 관점에서 "SEO 배우려면 어떤 강좌?"·"한국어로 들을 수 있는 데이터 사이언스 코스"에 ChatGPT·Perplexity가 답할 때 — Course의 teaches·educationalLevel·inLanguage직접 필터링 기준으로 쓴다. teaches"키워드 리서치"·"온페이지 SEO" 같은 실제 학습 결과를 명시하면 — 해당 스킬을 배우려는 사용자의 답변에 매칭된다.

가장 흔한 함정: 기수별로 별개 Course를 만드는 것. SEO 입문 30일 (6월 기수)·SEO 입문 30일 (7월 기수)가 각각 별도 Course면 — 같은 강좌의 누적 평점·수강생·신뢰도흩어진다. Course는 하나, 각 기수는 hasCourseInstance 배열의 CourseInstance. 강좌 entity의 신호가 집중된다.

CourseInstance언제·어디서·누가 가르치는지. courseModeOnline/Onsite/Blended를 명시, instructor로 강사 Person을 연결, offers로 수강료. 같은 강좌의 다른 기수가 다른 강사라면 — 각 인스턴스의 instructor가 다르게 들어간다. 강사가 누구냐를 보는 사용자에게 매칭이 정확해진다.

educationalCredentialAwarded는 자격증·수료증이 있는 강좌의 강력한 차별화. 수료증·자격증 응시 자격 같은 텍스트도 가능하지만 — 공식 자격증을 발급한다면 EducationalOccupationalCredential 객체로 등록. 자격증 entity가 schema.org에 인식되어, 자격증 검색에서 매칭된다.

이 카드는 교육 업종 심화 시리즈의 진입점. EducationalOrganization·School·College·University 같은 교육기관 타입과 Course·CourseInstance·EducationEvent·EducationalOccupationalCredential의 결합 패턴은 별도 시리즈에서 다룬다.