Uporządkowane dane o kursach (Course i CourseInstance)

Ilustracja pokazująca, jak informacje o kursach mogą wyświetlać się w wyszukiwarce Google

Możesz pomóc użytkownikom znaleźć treść Twoich kursów, informując Google o nich za pomocą uporządkowanych danych informacji o kursach. Gdy podasz bardziej szczegółowe informacje o kursie, np. oceny recenzentów, ceny i szczegóły kursu, będziemy mogli lepiej go zrozumieć i zaprezentować użytkownikom w wynikach z elementami rozszerzonymi zawierających informacje o kursach.

Istnieją 2 funkcje wyników z elementami rozszerzonymi dotyczące kursów, które korzystają z tego samego typu Course schema.org. Jeśli Twoja witryna zawiera informacje o kursach, możesz korzystać z obu tych funkcji. Aby to zrobić, postępuj zgodnie z obiema instrukcjami dotyczącymi ich implementacji:

  • Lista kursów: wynik z elementami rozszerzonymi zawierający listę kursów z tej samej witryny.
  • Informacje o kursach: karuzela zawierająca szczegółowe informacje o kursach pochodzące z różnych stron internetowych.

Dostępność funkcji

Wyniki z elementami rozszerzonymi dotyczące informacji o kursach są dostępne w języku angielskim we wszystkich regionach, w których działa wyszukiwarka Google. Liczymy, że w przyszłości będziemy obsługiwać więcej kursów w języku innym niż angielski.

Dodawanie uporządkowanych danych

Uporządkowane dane to standardowy format udostępniania informacji o stronie i klasyfikowania jej zawartości. Jeśli dopiero zaczynasz, dowiedz się, jak działają uporządkowane dane.

Poniżej omawiamy sposób tworzenia, testowania i udostępniania uporządkowanych danych. Szczegółowe instrukcje dodawania uporządkowanych danych do strony internetowej znajdziesz w ćwiczeniach z programowania poświęconych uporządkowanym danym.

  1. Dodaj wymagane właściwości. Dowiedz się, w którym miejscu na stronie umieścić uporządkowane dane w zależności od używanego formatu.
  2. Przestrzegaj wskazówek.
  3. Zweryfikuj kod za pomocą testu wyników z elementami rozszerzonymi i napraw błędy krytyczne. Rozważ też usunięcie niekrytycznych problemów, które mogą zostać zgłoszone w narzędziu – to może poprawić jakość uporządkowanych danych (ale nie jest to konieczne, aby witryna kwalifikowała się do wyników z elementami rozszerzonymi).
  4. Możesz wdrożyć kilka stron z uporządkowanymi danymi i dzięki narzędziu do sprawdzania adresów URL zobaczyć, jak Google je odczytuje. Upewnij się, że Twoja strona jest dostępna dla Google i nie jest blokowana przez plik robots.txt lub tag noindex ani nie wymaga logowania. Jeśli strona wygląda dobrze, możesz poprosić Google o ponowne zindeksowanie adresów URL.
  5. Aby na bieżąco informować Google o przyszłych zmianach, prześlij mapę witryny. Możesz zautomatyzować ten proces za pomocą interfejsu Search Console Sitemap API.

Przykład

Oto przykład strony z informacjami na temat pojedynczego kursu.


<html>
  <head>
    <title>Introduction to Computer Science and Programming</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@id": "https://www.example.com/advancedCpp",
      "@type": "Course",
      "name": "Learn Advanced C++ Topics",
      "description": "Improve your C++ skills by learning advanced topics.",
      "publisher": {
        "@type": "Organization",
        "name": "CourseWebsite",
        "url": "www.examplecoursewebsite.com"
      },
      "provider": {
        "@type": "Organization",
        "name": "Example University",
        "url": "www.example.com"
      },
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
      ],
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": 4,
        "ratingCount": 1234,
        "reviewCount": 450
      },
      "offers": [{
        "@type": "Offer",
        "category": "Paid",
        "priceCurrency": "EUR",
        "price": 10.99
      }],
      "totalHistoricalEnrollment": 12345,
      "datePublished": "2024-03-21",
      "educationalLevel": "Advanced",
      "about": ["C++ Coding", "Backend Engineering"],
      "teaches": ["Practice and apply systems thinking to plan for change",
                  "Understand how memory allocation works."],
      "financialAidEligible": "Scholarship Available",
      "inLanguage": "en",
      "availableLanguage": ["fr", "es"],
      "syllabusSections": [
        {
          "@type": "Syllabus",
          "name": "Memory Allocation",
          "description": "Learn how memory is allocated when creating C++ variables.",
          "timeRequired": "PT6H"
        },
        {
          "@type": "Syllabus",
          "name": "C++ Pointers",
          "description": "Learn what a C++ pointer is and when they are used.",
          "timeRequired": "PT11H"
        }
      ],
      "review": [
      {
        "@type": "Review",
        "author": {
            "@type": "Person",
            "name": "Lou S."
        },
        "datePublished": "2024-08-31",
        "reviewRating": {
          "@type": "Rating",
          "bestRating": 10,
          "ratingValue": 6
        }
      }],
      "coursePrerequisites": [
        "Basic understanding of C++ up to arrays and functions.",
        "https://www.example.com/beginnerCpp"
      ],
      "educationalCredentialAwarded": [{
        "@type": "EducationalOccupationalCredential",
        "name": "CourseProvider Certificate",
        "url": "www.example.com",
        "credentialCategory": "Certificate",
        // offers only needed if the credential costs extra money.
        "offers": [{
          "@type": "Offer",
          "category": "Paid",
          "price": 5,
          "priceCurrency": "USD"
        }]
      }],
      "video": {
        "@type": "VideoObject",
        "name": "Video name",
        "description": "A video previewing this course.",
        "uploadDate": "2024-03-28T08:00:00+08:00",
        "contentUrl": "www.example.come/mp4",
        "thumbnailUrl": "www.example.com/thumbnailurl.jpg"
      },
      "hasCourseInstance": [
      {
        // Blended, instructor-led course meeting 3 hours per day in July.
        "@type": "CourseInstance",
        "courseMode": "Blended",
        "location": "Example University",
        "courseSchedule": {
          "@type": "Schedule",
          "duration": "PT3H",
          "repeatFrequency": "Daily",
          "repeatCount": 31,
          "startDate": "2024-07-01",
          "endDate": "2024-07-31"
        },
        "instructor": [{
          "@type": "Person",
          "name": "Ira D.",
          "description": "Professor at X-University",
          "image": "http://example.com/person.jpg"
        }]
      },
      {
        // Online self-paced course that takes 2 days to complete.
        "@type": "CourseInstance",
        "courseMode": "Online",
        "courseWorkload": "P2D"
      }],
      // Only required for course programs that link to child courses.
      "hasPart": [{
        "@type": "Course",
        "name": "C++ Algorithms",
        "url": "https://www.example.com/cpp-algorithms",
        "description": "Learn how to code base algorithms in c++.",
        "provider": {
          "@type": "Organization",
          "name": "Example University",
          "url": "www.example.com"
        }
      }, {
        "@type": "Course",
        "name": "C++ Data Structures",
        "url": "https://www.example.com/cpp-data-structures",
        "description": "Learn about core c++ data structures.",
        "provider": {
          "@type": "Organization",
          "name": "Example University",
          "url": "www.example.com"
        }
      }]
    }
    </script>
  </head>
  <body>
  </body>
</html>

Wytyczne

Aby Twój kurs mógł się pojawiać w wyszukiwarce Google jako wynik z elementami rozszerzonymi z informacjami o kursach, musisz przestrzegać tych wytycznych.

Wskazówki dotyczące treści

W wynikach z elementami rozszerzonymi dotyczących kursów można używać tylko treści edukacyjnych zgodnych z tą definicją kursu: seria lub moduł programu nauczania obejmujący wykłady, lekcje lub moduły dotyczące określonego tematu lub określonej dziedziny.

Znaczniki Course muszą znajdować się na stronie internetowej, która oferuje pełny, pojedynczy kurs lub program kursu. Te przykłady nie mogą wyświetlać się w wynikach z elementami rozszerzonymi z informacjami o kursach:

  • strona podsumowania dyplomu akademickiego;
  • samodzielna strona egzaminu;
  • ogólne wydarzenie publiczne, np. „Dzień astronomii”;
  • pojedynczy 2-minutowy film „Jak zrobić kanapkę”.

Definicje typów uporządkowanych danych

Aby treści mogły się wyświetlać w wynikach z elementami rozszerzonymi, musisz w nich stosować wymagane właściwości Course i CourseInstance. Możesz też dodawać do nich właściwości zalecane, aby wzbogacać informacje o treściach i zwiększać w ten sposób komfort użytkowników.

Course

Kurs to pojedynczy moduł programu nauczania, który można ukończyć samodzielnie lub w ramach programu.

Pełną definicję znaczników Course znajdziesz na schema.org/Course.

Właściwości wymagane
name

Text

Pełny tytuł kursu.

"name": "Intro to Statistics"
description

Text

Opis kursu.

  • Długość zalecana: 240 znaków
  • Długość maksymalna: 500 znaków
"description": "This course teaches the basics of statistical thinking."
provider

Organization

Informacje o organizacji, która utworzyła treść kursu.

"provider": {
   "@type": "Organization",
   "name": "Example University",
   "url": "www.exampleuniversity.com"
}
provider.name Text

Imię i nazwisko organizatora zajęć.

offers

Powtarzalność Offer

Informacje o łącznej cenie ukończenia kursu, w tym o opłatach za obsługę. Nie podawaj ceny, która jest dostępna tylko dla niektórych użytkowników (np. 20% zniżki dla nowych użytkowników).

Nie uwzględniaj w tym polu dodatkowych opłat za certyfikaty. Jeśli do uzyskania certyfikatu naliczana jest dodatkowa opłata, dodaj ją do właściwości educationalCredentialAwarded.

"offers": [{
   "@type": "Offer",
   "category": "Paid",
   "priceCurrency": "EUR",
   "price": 10.99
}]
         
offers.category Text

Kategoria cenowa kursu. Użyj jednej z tych wartości:

  • Free: wszystkie wykłady, projekty i testy muszą być dostępne dla wszystkich użytkowników bezpłatnie. Cały kurs można ukończyć bez opłat.
  • Partially Free: ponad połowę kursu można ukończyć bezpłatnie (na przykład wszystkie wykłady są bezpłatne, ale projekty są płatne).
  • Subscription: aby możliwe było ukończenie całego kursu, użytkownik musi być subskrybentem lub aktywnym subskrybentem.
  • Paid: użytkownik musi zapłacić, aby ukończyć kurs.
hasCourseInstance

Powtarzalność CourseInstance

Każdy kurs musi mieć co najmniej 1 wystąpienie kursu z informacjami o ofercie kursu. Wymagane i zalecane właściwości znajdziesz w sekcji CourseInstance.

"hasCourseInstance": [{
   // Onsite, instructor-led class meeting weekly in August 2023
   "@type": "CourseInstance",
   "courseMode": "Onsite",
   "location": "Example University",
   "courseSchedule": {
      "@type": "Schedule",
      "duration": "PT5H",
      "repeatCount": 4,
      "repeatFrequency": "Weekly",
      "startDate": "2023-08-01",
      "endDate": "2023-8-31"
   },
   "instructor": [{
      "@type": "Person",
      "name": "Kai S.",
      "description": "Professor at X-University",
      "image": "http://examplePerson.jpg"
   }]
}]
Właściwości zalecane
about

Powtarzalność Text

Opisuje umiejętności, których użytkownik nabierze w ramach kursu (w stosownych przypadkach).

"about": ["Quantitative Analysis", "Critical Thinking"]
aggregateRating

AggregateRating

Informacje o średniej ocenie kursu uzyskanej na podstawie ocen pozostawionych przez użytkowników, którzy ukończyli kurs (w stosownych przypadkach). Przestrzegaj wytycznych dotyczących fragmentów opinii oraz zapoznaj się z listą wymaganych i zalecanych właściwości AggregateRating.

"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.8,
"ratingCount": 255,
"reviewCount": 189
}
availableLanguage

Powtarzalność Text

Napisy lub inne języki, w których jest dostępny kurs (w stosownych przypadkach). Użyj dwuliterowych kodów z listy kodów ISO 639-1 alfa-2.

"availableLanguage": ["fr", "es", "de"]
coursePrerequisites

Powtarzalność Text

Wszelkie wcześniejsze informacje, które należy znać przed rozpoczęciem (w stosownych przypadkach). Może to być opis wymaganej wstępnie wiedzy lub podanie linku do innego kursu (albo obie te informacje).

"coursePrerequisites": ["Understanding of Algebra concepts like variables and functions",
            "https://www.coursewebsite.abc/algebra"]
datePublished

Date

Data pierwszej publikacji kursu (w stosownych przypadkach). Użyj formatu daty 8601 (RRRR-MM-DD).

"datePublished": "2019-03-21"
educationalCredentialAwarded

Powtarzalność EducationalOccupationalCredential

Informacje o certyfikatach lub danych uwierzytelniających, które użytkownik może uzyskać po ukończeniu kursu (w stosownych przypadkach). Jeśli nagroda jest dodatkowo płatna, podaj cenę dodatkową.

"educationalCredentialAwarded": [{
   "@type": "EducationalOccupationalCredential",
   "name": "CourseProvider Certificate",
   "url": "www.examplecertificate.com",
   "credentialCategory": "Certificate",
   "offers": [{
      "@type": "Offer",
      "category": "Paid",
      "priceCurrency": "USD",
      "price": 5
   }]
}]
educationalCredentialAwarded.credentialCategory Text

Rodzaj nagrody, jaką otrzyma użytkownik (w stosownych przypadkach). Użyj jednej z tych wartości:

  • Certificate: nagroda weryfikująca ukończenie przez użytkownika kursu lub programu.
  • Certification: oficjalne uprawnienia, które wymagają egzaminu lub potwierdzenia, że użytkownik zdobył kompetencje.

educationalCredentialAwarded.name Text

Nazwa nagrody (jeśli dotyczy).

educationalCredentialAwarded.offers.category Text

Typ ceny nagrody (w stosownych przypadkach). Wybierz jedną z tych kategorii:

  • Free: nagroda jest dostępna bez opłat.
  • Subscription: aby otrzymać nagrodę, użytkownik musi być subskrybentem lub aktywnym subskrybentem.
  • Paid: użytkownik musi zapłacić, aby otrzymać nagrodę.
educationalCredentialAwarded.offers.price Number

Cena nagrody wyrażona liczbą (jeśli dotyczy).

educationalCredentialAwarded.offers.priceCurrency Text

Waluta ceny nagrody podana w formacie waluty zgodnym z normą ISO 4217 (3-literowy kod), jeśli ma zastosowanie.

educationalCredentialAwarded.url URL

Link do strony z nagrodami (jeśli istnieje).

educationalLevel

Text

Docelowy poziom wykształcenia po ukończeniu kursu (w stosownych przypadkach). Wybierz jedną z tych wartości:

  • Beginner: zrozumienie treści nie wymaga wcześniejszego doświadczenia
  • Intermediate: niektóre wiadomości mogą być potrzebne do zrozumienia treści
  • Advanced: materiały są przeznaczone dla zaawansowanych uczniów, którzy mają już wiedzę na dany temat
"educationalLevel": "Beginner"
financialAidEligible

Text

Stypendia, specjalne abonamenty lub inne formy pomocy finansowej dla użytkowników, którzy chcą wziąć udział w kursie (w stosownych przypadkach).

"financialAidEligible": "Scholarships available for eligible users."
image

Powtarzalność URL

Adres URL obrazu reprezentatywnego dla kursu (w stosownych przypadkach). Używaj obrazów, które pasują do kursu, a nie logo czy napisów.

Dodatkowe wytyczne dotyczące obrazów:

  • Na każdej stronie musi się znajdować co najmniej jeden obraz (niezależnie od tego, czy są do niego dodane znaczniki). Google wybierze obraz najlepiej pasujący do wyników wyszukiwania pod względem rozdzielczości i współczynnika proporcji.
  • Adresy URL obrazów muszą być dostępne do pobrania i zindeksowania. Aby sprawdzić, czy Google może uzyskać dostęp do Twoich adresów URL, użyj narzędzia do sprawdzania adresów URL.
  • Obrazy muszą symbolizować treści objęte znacznikami.
  • Pliki graficzne muszą być w formacie obsługiwanym przez Grafikę Google.
  • Najlepsze efekty zapewni użycie wielu obrazów o wysokiej rozdzielczości (o iloczynie szerokości i wysokości wynoszącym co najmniej 50 tys. pikseli) i tych formatach obrazu: 16:9, 4:3 i 1:1.

Przykład:

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
inLanguage

Text

Główny język, w którym jest dostępny kurs (w stosownych przypadkach). Użyj dwuliterowych kodów z listy kodów ISO 639-1 alfa-2.

"inLanguage": "en"
offers.price Number

Cena kursu wyrażona liczbą (w stosownych przypadkach). Nie wpisuj w tym polu innych informacji, np. symbolu waluty.

offers.priceCurrency Text

Waluta ceny kursu, podana w formacie waluty ISO 4217 (3-literowy kod), jeśli ma zastosowanie.

provider.url URL

Adres URL strony głównej dostawcy kursu (w stosownych przypadkach).

publisher

Organization

Informacje o organizacji, która publikuje i wyświetla kurs (w stosownych przypadkach).

"publisher": {
   "@type": "Organization",
   "name": "Course Website",
   "url": "www.example.com"
}
publisher.name Text

Nazwa wydawcy kursu (w stosownych przypadkach).

publisher.url URL

Adres URL strony głównej wydawcy kursu (w stosownych przypadkach).

review

Powtarzalność Review

Lista opinii użytkowników o kursie (w stosownych przypadkach). Aby uzyskać więcej informacji, postępuj zgodnie ze wskazówkami dotyczącymi fragmentów opinii.

"review": [{
   "@type": "Review",
   "author": {
      "@type": "Person",
      "name": "Sasha J."
   },
   "datePublished": "2021-09-22",
   "reviewRating": {
      "@type": "Rating",
      "ratingValue": 4
   }
}]
syllabusSections

Powtarzalność Syllabus

Informacje o różnych modułach wchodzących w skład kursu (w stosownych przypadkach).

"syllabusSections": [{
   "@type": "Syllabus",
   "name": "Algebra Review",
   "description": "Review prerequisite Algebra concepts.",
   "timeRequired": "PT2H30M"
}, {
   "@type": "Syllabus",
   "name": "Statistics Terms",
   "description": "Learn the definitions of basic statistics terms.",
   "timeRequired": "PT5H"
}]
syllabusSections.description Text

Opis tematyki modułu (w stosownych przypadkach).

syllabusSections.name Text

Nazwa modułu kursu (w stosownych przypadkach).

syllabusSections.timeRequired Duration

W stosownych przypadkach użyj formatu czasu trwania 8601. Na przykład PT2H30M oznacza, że ukończenie modułu zajmie 2 godziny i 30 minut.

teaches

Powtarzalność Text

Wyniki nauczania lub konkretna wiedza, którą użytkownik zdobędzie w trakcie kursu (w stosownych przypadkach).

"teaches": ["How to use visualization tools and graphs", "Why stats is important"]
totalHistoricalEnrollment

Integer

Łączna liczba użytkowników, którzy zarejestrowali się w trakcie całego kursu (w stosownych przypadkach).

"totalHistoricalEnrollment": 80032
video

VideoObject

Film z zapowiedzią kursu lub jego zwiastun (w stosownych przypadkach). Więcej informacji znajdziesz we wskazówkach dotyczących elementu VideoObject.

"video": {
   "@type": "VideoObject",
   "name": "Video name",
   "description": "A video previewing this course.",
   "uploadDate": "2022-03-28T08:00:00+08:00",
   "contentUrl": "www.videourl.mp4",
   "thumbnailUrl": "www.thumbnailurl.jpg"
}

CourseInstance

Pełną definicję znaczników CourseInstance znajdziesz na schema.org/CourseInstance. Każdy kurs musi mieć co najmniej 1 element CourseInstance z wypełnionymi wymaganymi właściwościami.

Właściwości wymagane
courseMode

Text

Medium, przez które będzie prowadzone szkolenie. Użyj jednej z tych wartości:

  • Online: wszystkie wykłady, projekty i testy można realizować wirtualnie.
  • Onsite: w kursie należy wziąć udział osobiście w lokalizacji fizycznej.
  • Blended: kurs ma komponenty online i stacjonarne.

Jeśli klasa to Onsite lub Blended, dodaj właściwość location.

"courseMode": "Online"

courseSchedule

Schedule

Informacje o tym, ile czasu zajmuje ukończenie kursu przeciętnemu użytkownikowi w zalecanym tempie. Podaj daty rozpoczęcia i zakończenia kursów na stałej osi czasu.

Oto przykład kursu o określonym tempie, który można rozpocząć w dowolnym momencie:

// This course takes 6 weeks to complete.
"courseSchedule": {
   "@type": "Schedule",
   "repeatCount": 6
   "repeatFrequency": "Weekly",
}

Oto przykład kursu o określonym tempie, który należy zrealizować w określonym czasie:

// This course expects 1 hour per day during July 2023
"courseSchedule": {
   "@type": "Schedule",
   "duration": "PT1H",
   "repeatCount": 31
   "repeatFrequency": "Daily",
   "startDate": "2023-07-01",
   "endDate": "2023-07-31"
}
courseSchedule.repeatCount Integer

Wartość liczbowa wskazująca czas trwania kursu, w jednostkach repeatFrequency. Jeśli na przykład repeatFrequency to co miesiąc, a repeatCount to 4, kurs trwa 4 miesiące.

courseSchedule.repeatFrequency Text

Właściwości duration i repeatCount odnoszą się do tego pola. Użyj jednej z tych wartości:

  • Daily: kurs odbywa się codziennie.
  • Weekly: kurs odbywa się co tydzień.
  • Monthly: kurs odbywa się co miesiąc.
  • Yearly: kurs odbywa się co roku.
courseWorkload Text

To pole pokazuje całkowity czas oglądania wszystkich filmów oraz ukończenia wszystkich projektów i egzaminów w ramach kursu. Użyj formatu czasu trwania 8601.

"courseWorkload": "PT22H"
Właściwości zalecane
courseSchedule.duration Duration

Sugerowane tempo określające, ile czasu może prawdopodobnie potrzebować przeciętny użytkownik, w jednostkach repeatFrequency, w formacie czasu trwania 8601 (w stosownych przypadkach). Jeśli na przykład repeatFrequency to co miesiąc, a duration to PT5H, użytkownik powinien spodziewać się przeznaczenia na naukę 5 godzin miesięcznie.

Nie podawaj za pomocą tej właściwości pełnej długości kursu. Zamiast tego użyj właściwości courseWorkload.

courseSchedule.endDate Date

Data zakończenia kursu w formacie daty 8601 (RRRR-MM-DD), jeśli ma zastosowanie.

courseSchedule.startDate Date

Data rozpoczęcia kursu w formacie daty 8601 (RRRR-MM-DD), jeśli ma zastosowanie.

image URL

Adres URL zdjęcia nauczyciela (w stosownych przypadkach).

Dodatkowe wytyczne dotyczące obrazów:

  • Na każdej stronie musi się znajdować co najmniej jeden obraz (niezależnie od tego, czy są do niego dodane znaczniki). Google wybierze obraz najlepiej pasujący do wyników wyszukiwania pod względem rozdzielczości i współczynnika proporcji.
  • Adresy URL obrazów muszą być dostępne do pobrania i zindeksowania. Aby sprawdzić, czy Google może uzyskać dostęp do Twoich adresów URL, użyj narzędzia do sprawdzania adresów URL.
  • Obrazy muszą symbolizować treści objęte znacznikami.
  • Pliki graficzne muszą być w formacie obsługiwanym przez Grafikę Google.
  • Najlepsze efekty zapewni użycie wielu obrazów o wysokiej rozdzielczości (o iloczynie szerokości i wysokości wynoszącym co najmniej 50 tys. pikseli) i tych formatach obrazu: 16:9, 4:3 i 1:1.

Przykład:

"image": [
  "https://example.com/photos/1x1/photo.jpg",
  "https://example.com/photos/4x3/photo.jpg",
  "https://example.com/photos/16x9/photo.jpg"
]
instructor

Powtarzalność Person

Informacje o nauczycielu prowadzącym kurs (w stosownych przypadkach).

"instructor": [{
   "@type": "Person",
   "name": "Dana A.",
   "description": "Professor at X-University",
   "image": "http://examplePerson.jpg"
}]
instructor.description Text

Opis nauczyciela i jego uprawnień (w stosownych przypadkach).

instructor.name Text

Imię i nazwisko nauczyciela (w stosownych przypadkach).

location

Text

Nazwa lub adres placówki stacjonarnej, w której będzie się odbywać szkolenie (w stosownych przypadkach).

"courseMode": "Blended",
"location": "Example High School"

Program kursu

Program kursu to zbiór kursów podrzędnych. Kursy podrzędne muszą być samodzielnymi kursami z odrębnymi adresami URL i stronami docelowymi.

Jeśli Twoja strona internetowa zawiera program kursów, podaj w niej poniższe właściwości wymagane (oprócz innych wymaganych właściwości wymienionych w sekcjach Course i CourseInstance).

Właściwości wymagane
hasPart

Powtarzalność Course

Lista kursów podrzędnych, które są częścią tego programu.

"@context": "https://schema.org/",
"@type": "Course",
"name": "Learning Pathway: Knitting",
"url": "www.example.com/knitprogram"
// Fill the other required Course and CourseInstance properties
"hasPart": [{
   "@type": "Course",
   "name": "Intro to Knitting",
   "url": "www.example.com/knitbasics",
   "description": "Learn the basics of how to knit."
   }, {
   "@type": "Course",
   "name": "Knit a Sweater",
   "url": "www.example.com/knitsweater",
   "description": "Learn to knit an entire sweater."
}]
hasPart.name Text

Pełny tytuł kursu podrzędnego.

hasPart.url URL

Adres URL strony docelowej kursu podrzędnego.

Właściwości zalecane
hasPart.description Text

Krótki opis tematyki kursu podrzędnego (w stosownych przypadkach).

  • Długość zalecana: 240 znaków
  • Długość maksymalna: 500 znaków

Monitorowanie wyników z elementami rozszerzonymi w Search Console

Search Console to narzędzie, które pomaga monitorować skuteczność stron w wyszukiwarce Google. Aby Twoja witryna mogła pojawiać się w wynikach wyszukiwania Google, nie musisz rejestrować jej w Search Console. Jeśli jednak to zrobisz, lepiej zrozumiesz, jak robot Google widzi Twoją witrynę i jak możesz mu ułatwić jej skanowanie. Zalecamy sprawdzenie danych w Search Console w tych przypadkach:

  1. po pierwszym wdrożeniu uporządkowanych danych,
  2. po opublikowaniu nowych szablonów lub zaktualizowaniu kodu,
  3. podczas okresowego analizowania ruchu.

Po pierwszym wdrożeniu uporządkowanych danych

Gdy Google zindeksuje Twoje strony, poszukaj problemów w odpowiednim raporcie o stanie wyników z elementami rozszerzonymi. W idealnej sytuacji powinno się pojawić więcej elementów prawidłowych, a liczba elementów nieprawidłowych nie powinna się zwiększyć. Jeśli zauważysz problemy w uporządkowanych danych:

  1. Napraw nieprawidłowe elementy
  2. Sprawdź opublikowany adres URL, by zobaczyć, czy problem nadal występuje.
  3. Poproś o weryfikację, korzystając z raportu o stanie.

Po opublikowaniu nowych szablonów lub zaktualizowaniu kodu

Po wprowadzeniu istotnych zmian w witrynie monitoruj wzrost liczby nieprawidłowych elementów w uporządkowanych danych.
  • Możesz zauważyć większą liczbę elementów nieprawidłowych, jeśli wprowadzisz nowy szablon, który nie działa, lub jeśli Twoja witryna wykorzystuje istniejący szablon w nowy i nieprawidłowy sposób.
  • Jeśli okaże się, że jest mniej prawidłowych elementów (ale liczba nieprawidłowych elementów się nie zwiększyła), być może na swoich stronach nie umieszczasz już uporządkowanych danych. Użyj narzędzia do sprawdzania adresów URL, by dowiedzieć się, co jest przyczyną problemu.

Okresowe analizowanie ruchu

Analizuj ruch w wyszukiwarce Google za pomocą raportu skuteczności. Zawarte w nim dane pokazują, jak często Twoja strona wyświetla się w wyszukiwarce jako wynik z elementami rozszerzonymi, jak często użytkownicy ją klikają i jaka jest jej średnia pozycja w wynikach wyszukiwania. Możesz też pobrać te wyniki automatycznie za pomocą interfejsu Search Console API.

Rozwiązywanie problemów

Jeśli masz problem z zastosowaniem lub debugowaniem uporządkowanych danych, skorzystaj z tych rozwiązań: