Cookies & analytics

    We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.

    SwiftSchema Logo

    SwiftSchema

    Intuitive Schema Generation at Your Fingertips

    AboutLearnContact
      Stack

      Apprenticeship Program Stack

      Apprenticeship program pages with EducationalOrganization + Course + Offer context, FAQs, and breadcrumbs.

      Open generatorValidate in Rich Results Test

      When to use this stack

      • Apprenticeship program landing pages
      • Cohort-based trade or tech apprenticeship enrollments
      • Pages outlining program structure, tuition, and eligibility

      What's included

      • Educational Organization
        Open generator

        Anchors the training provider and program sponsor.

      • Defines the apprenticeship curriculum or program track.

      • Represents tuition or stipend terms and enrollment CTA.

      • Frequently Asked Questions
        Open generator

        Answers eligibility, schedule, and placement questions.

      • Breadcrumb
        Open generator

        Provides navigation context for the apprenticeship page.

      Required properties (stack union)

      Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).

      availability
      description
      itemListElement[].name
      logo
      mainEntity[].@type=Question
      mainEntity[].acceptedAnswer.text
      name
      price
      priceCurrency
      provider.@id
      url

      Recommended properties (stack union)

      courseCode
      description
      educationalCredentialAwarded
      eligibleCustomerType
      hasCourseInstance
      itemListElement[].item
      mainEntity[].acceptedAnswer.text
      mainEntity[].author.name
      mainEntity[].name
      priceValidUntil
      sameAs

      Combined JSON-LD

      Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.

      Validate
      [
        {
          "@context": "https://schema.org",
          "@type": "EducationalOrganization",
          "@id": "https://www.example.com/apprenticeship#org",
          "name": "Northwind Apprenticeship Institute",
          "url": "https://www.example.com/apprenticeship",
          "logo": "https://www.example.com/images/apprenticeship-logo.svg",
          "description": "Paid apprenticeship programs for software and IT operations."
        },
        {
          "@context": "https://schema.org",
          "@type": "Course",
          "@id": "https://www.example.com/apprenticeship/software#course",
          "name": "Software Engineering Apprenticeship",
          "description": "A 12-month paid apprenticeship covering full-stack development and mentorship.",
          "provider": { "@id": "https://www.example.com/apprenticeship#org" },
          "url": "https://www.example.com/apprenticeship/software",
          "courseCode": "SEA-101",
          "educationalCredentialAwarded": "Certificate of Apprenticeship"
        },
        {
          "@context": "https://schema.org",
          "@type": "Offer",
          "@id": "https://www.example.com/apprenticeship/software#offer",
          "name": "Apprenticeship Enrollment",
          "description": "No tuition; participants receive a monthly stipend during the program.",
          "price": "0.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://www.example.com/apprenticeship/software/apply"
        },
        {
          "@context": "https://schema.org",
          "@type": "FAQPage",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "Who is eligible to apply?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Applicants must be 18+ and authorized to work in the US. No prior degree required."
              }
            },
            {
              "@type": "Question",
              "name": "Is the program full-time?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes. Apprentices participate 35–40 hours per week with paid project work."
              }
            },
            {
              "@type": "Question",
              "name": "Do you offer job placement?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "We provide placement support and interview prep during the final month."
              }
            }
          ]
        },
        {
          "@context": "https://schema.org",
          "@type": "BreadcrumbList",
          "itemListElement": [
            { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
            { "@type": "ListItem", "position": 2, "name": "Programs", "item": "https://www.example.com/programs" },
            { "@type": "ListItem", "position": 3, "name": "Apprenticeship", "item": "https://www.example.com/apprenticeship" }
          ]
        }
      ]

      Implementation steps

      1. Start from your live product detail page content; ensure titles, prices, and availability match the page.
      2. Embed one JSON-LD script in the head or just before the closing body tag using the combined example as a template.
      3. Fill shipping details for each region you serve and keep them aligned with on-page shipping tables.
      4. Attach your canonical MerchantReturnPolicy URL and keep the policy text in sync with Merchant Center.
      5. Add 3–6 FAQs that address purchase blockers (shipping, returns, compatibility) and keep answers consistent with visible content.
      6. Validate in the Rich Results Test and revalidate after price/availability/policy changes.

      Common errors and fixes

      FAQs

      Should I include multiple cohorts?

      If cohort dates are shown, add CourseInstance entries and link them to the Course with hasCourseInstance.

      How do I show paid stipends?

      Use an Offer with price set to 0 and describe stipend details in the offer description.

      References