Template · 12 schemas · ~16 pages

Canadian Schema Starter Pack

Copy-paste JSON-LD templates for the 12 schemas that drive 80% of rich result eligibility for Canadian businesses — Organization, LocalBusiness, Service, Article, FAQPage, Product, BreadcrumbList, and more.

Author: Martin Vassilev · Updated 2026-04-25 · Reviewed by the Toronto SEO Editorial Board

Validate your schema

How to use this pack

  1. Copy the schema you need into the <head> of the relevant page, wrapped in <script type="application/ld+json">.
  2. Replace placeholder values (URLs, names, addresses, prices) with your real data.
  3. Validate every published schema with our schema validator and Google's Rich Results Test.
  4. Maintain stable @id values site-wide so Person, Organization, and Service entities consolidate.

Editorial note: never emit Review or AggregateRating for reviewers who don't exist. That pattern is a manual-action risk and editorially dishonest. Tie review schema to verifiable third-party sources only — see template #9.

1. Organization

When to use

Site-wide. Either injected via the <head> on every page or rendered as a single source-of-truth on the homepage. Establishes the canonical Org @id all other schema can reference.

Notes

Use a stable @id (your domain + #organization). Match the legal name. logo and image should resolve to a real, public 600×600+ PNG.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://yourbrand.ca/#organization",
  "name": "Your Brand Inc.",
  "url": "https://yourbrand.ca",
  "logo": {
    "@type": "ImageObject",
    "url": "https://yourbrand.ca/logo.png",
    "width": 600,
    "height": 600
  },
  "sameAs": [
    "https://www.linkedin.com/company/yourbrand",
    "https://x.com/yourbrand",
    "https://www.facebook.com/yourbrand"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-416-555-0100",
    "contactType": "customer service",
    "areaServed": "CA",
    "availableLanguage": ["English", "French"]
  }
}

2. LocalBusiness (or specific subtype)

When to use

Every business with a physical location or service area in Canada. Use the most specific subtype that fits (Dentist, Plumber, ProfessionalService) instead of generic LocalBusiness when possible.

Notes

Replace with most-specific @type. priceRange should be in dollar signs ($, $$, $$$, $$$$). Include geo coordinates from your verified GBP.

{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "@id": "https://yourbrand.ca/#localbusiness",
  "name": "Your Brand Dental",
  "image": "https://yourbrand.ca/clinic.jpg",
  "url": "https://yourbrand.ca",
  "telephone": "+1-416-555-0100",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Yonge Street, Suite 400",
    "addressLocality": "Toronto",
    "addressRegion": "ON",
    "postalCode": "M5C 2N8",
    "addressCountry": "CA"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 43.6532,
    "longitude": -79.3832
  },
  "areaServed": ["Toronto", "North York", "Scarborough", "Etobicoke"],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
    "opens": "09:00",
    "closes": "18:00"
  }],
  "sameAs": ["https://g.page/your-verified-gbp"]
}

3. Service

When to use

Every dedicated service page on a service-business or professional-services site.

Notes

areaServed should match where you genuinely deliver. provider should @id-reference your Organization or LocalBusiness node.

{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Cosmetic Dentistry",
  "serviceType": "Cosmetic Dentistry",
  "provider": { "@id": "https://yourbrand.ca/#localbusiness" },
  "areaServed": [
    { "@type": "City", "name": "Toronto" },
    { "@type": "City", "name": "North York" }
  ],
  "description": "Veneers, whitening, bonding, and smile makeovers from a board-certified Toronto cosmetic dentist.",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "CAD",
    "price": "From 800",
    "availability": "https://schema.org/InStock"
  }
}

4. Article (with author + reviewer)

When to use

Every long-form blog post, guide, case study, or research article. The author and reviewer @ids should be stable and consistent across every article.

Notes

datePublished and dateModified must be ISO-8601. Author should be a Person @id, not an Organization, for E-E-A-T.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "@id": "https://yourbrand.ca/blog/post-slug/#article",
  "headline": "Your Article Headline (Verbatim)",
  "description": "150-character description of the article.",
  "url": "https://yourbrand.ca/blog/post-slug/",
  "image": ["https://yourbrand.ca/og.jpg"],
  "datePublished": "2026-04-25",
  "dateModified": "2026-04-25",
  "wordCount": 1850,
  "author": {
    "@type": "Person",
    "@id": "https://yourbrand.ca/team#author-slug",
    "name": "Author Full Name",
    "url": "https://yourbrand.ca/team/"
  },
  "reviewedBy": {
    "@type": "Person",
    "@id": "https://yourbrand.ca/team#reviewer-slug",
    "name": "Reviewer Full Name"
  },
  "publisher": { "@id": "https://yourbrand.ca/#organization" },
  "mainEntityOfPage": "https://yourbrand.ca/blog/post-slug/"
}

5. FAQPage

When to use

Any page that genuinely contains 3+ user-asked questions with substantive answers. Don't fabricate FAQs to qualify — Google demotes synthetic FAQ markup.

Notes

Question text should match what's visibly on the page. Answer text should be the substantive answer, ~50–300 words.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does SEO take to work in Canada?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most Canadian businesses see meaningful Map Pack movement within 60–90 days, and material organic traffic gains in 4–6 months. Highly competitive verticals — Toronto dentists, real estate, personal injury law — often need 6–9 months."
      }
    },
    {
      "@type": "Question",
      "name": "How much does SEO cost in Canada?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Local SEO retainers in Canada typically range from C$1,500 to C$5,000 per month. Mid-market and enterprise programmes range from C$5,000 to C$15,000 per month."
      }
    }
  ]
}

6. Product / Offer

When to use

Every product page on a Canadian ecommerce site. Always include priceCurrency CAD and itemCondition.

Notes

shippingDetails should reflect your real Canadian shipping policy. hasMerchantReturnPolicy is increasingly important for shopping graph eligibility.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Product Name",
  "image": ["https://yourbrand.ca/product.jpg"],
  "description": "Product description.",
  "sku": "SKU-12345",
  "brand": { "@type": "Brand", "name": "Your Brand" },
  "offers": {
    "@type": "Offer",
    "url": "https://yourbrand.ca/products/product-slug/",
    "priceCurrency": "CAD",
    "price": "129.00",
    "priceValidUntil": "2026-12-31",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "CA"
      }
    }
  }
}

8. Person (author / team member)

When to use

On every team / author bio page. Used as the @id reference for Article schema authorship.

Notes

alumniOf and hasCredential are E-E-A-T-relevant — use them when verifiable. sameAs should include LinkedIn and any verified profiles.

{
  "@context": "https://schema.org",
  "@type": "Person",
  "@id": "https://yourbrand.ca/team#author-slug",
  "name": "Author Full Name",
  "jobTitle": "Founder & Lead Strategist",
  "url": "https://yourbrand.ca/team/author-slug/",
  "image": "https://yourbrand.ca/team/author.jpg",
  "email": "author@yourbrand.ca",
  "sameAs": [
    "https://www.linkedin.com/in/author-slug",
    "https://x.com/author"
  ],
  "worksFor": { "@id": "https://yourbrand.ca/#organization" },
  "knowsAbout": ["Search Engine Optimization", "Answer Engine Optimization"],
  "alumniOf": [{ "@type": "EducationalOrganization", "name": "University of Toronto" }],
  "hasCredential": [
    { "@type": "EducationalOccupationalCredential", "name": "Google Analytics Certified" }
  ]
}

9. Review / AggregateRating (verifiable only)

When to use

Only when you have verifiable third-party reviews (Google Business Profile, Trustpilot). Never fabricate reviewers or quotes.

Notes

itemReviewed should @id-reference your Org or LocalBusiness. url should deep-link to the actual public reviews page.

{
  "@context": "https://schema.org",
  "@type": "AggregateRating",
  "itemReviewed": { "@id": "https://yourbrand.ca/#organization" },
  "ratingValue": 5.0,
  "bestRating": 5,
  "worstRating": 1,
  "reviewCount": 24,
  "url": "https://g.page/r/your-verified-gbp"
}

10. HowTo (procedural pages only)

When to use

Pages that genuinely teach a step-by-step procedure (audit, install, configure). Never apply to non-procedural content — that's structured-data spam.

Notes

Each step should have a name and text. supply, tool, and totalTime are optional but improve rich result eligibility.

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to Do X in Canada",
  "totalTime": "PT2H",
  "tool": [{ "@type": "HowToTool", "name": "Required tool" }],
  "step": [
    { "@type": "HowToStep", "name": "Step 1 name", "text": "Step 1 detailed instructions." },
    { "@type": "HowToStep", "name": "Step 2 name", "text": "Step 2 detailed instructions." }
  ]
}

11. VideoObject

When to use

Every embedded video on your site. Required for video carousel SERP eligibility.

Notes

duration must be ISO-8601 (PT1M30S). thumbnailUrl should be a high-quality 1280×720+ image.

{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Video title",
  "description": "Video description.",
  "thumbnailUrl": ["https://yourbrand.ca/video-thumb.jpg"],
  "uploadDate": "2026-04-25",
  "duration": "PT4M30S",
  "contentUrl": "https://yourbrand.ca/videos/video.mp4",
  "embedUrl": "https://www.youtube.com/embed/VIDEO_ID"
}

12. SoftwareApplication (SaaS)

When to use

SaaS marketing sites. Drives software-graph eligibility and AI engine product mentions.

Notes

operatingSystem and applicationCategory should be specific. offers.priceCurrency CAD when targeting Canadian buyers.

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Your SaaS",
  "operatingSystem": "Web, iOS, Android",
  "applicationCategory": "BusinessApplication",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "CAD",
    "price": "49.00"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "124"
  }
}