Opens in a new tabSkip to content
Agent LighthouseAgent Lighthouse

    Searches the text of every published page. The evidence sources themselves are not in this index — search all of them on the trusted sources page.

    GitHub ↗
    Browse checks and page contents
    structured-data/service-schema

    Service schema

    What it checks

    Reports whether existing Service markup includes name and provider. It accepts the legacy ProfessionalService shape for compatibility. It does not ask a site to adopt either type.

    The check runs on every page type. Only existing markup enters its population. A services URL or navigation link does not establish a markup obligation. No matching node means notApplicable.

    Why it matters

    The fields describe a service and its provider in a shared vocabulary. No reviewed source documents an agent outcome that requires this pair. The finding is descriptive and does not affect the score.

    Evidence

    Grade: C — a live vocabulary with adoption, but no documented consumer requirement for this audit’s name/provider pair.

    • Schema.org Service (verified 2026-10-21; schema-service) defines the vocabulary and reports adoption across 1M–10M domains. This is adoption evidence, not proof of agent consumption.
    • Google’s service-site guidance (verified 2026-10-21; google-service-site-office-hours) recommends LocalBusiness for the service business in its example.
    • Google’s supported features and Product guidance (verified 2026-10-21; google-search-gallery, google-product-structured-data) do not establish a generic Service requirement. Product/Offer evidence cannot justify this separate check’s grade.
    • ProfessionalService (verified 2026-10-21; schema-professional-service) is a deprecated LocalBusiness type. It is not another name for Service.

    Limits

    The review establishes no scored consumer path. It does not prove that no consumer exists anywhere. name and provider are coverage conventions, not mandatory Schema.org properties. ProfessionalService is a LocalBusiness subtype with no provider property, so it is asked for name only; a node typed as both is treated as a Service. The check keeps its existing truthy-value and best-covered-node tests; it is not schema validation.

    How it scores

    No score weight. Missing markup is notApplicable. An existing node with both fields passes. Otherwise the finding warns about the missing fields. The most complete node decides the verdict across readable sampled pages.

    Example finding

    A published Service node names Consulting but has no provider. The report notes the missing provider at weight 0. A page with no Service markup gets no finding, even when its URL is /services.

    Sources