ContactPage Schema Markup
ContactPage is a simple subtype of WebPage that explicitly tells search engines this page contains contact information for the organization.
Google Search Features
No Google rich result uses ContactPage markup directly. It's still valid schema.org, and it helps search engines understand the page.
When to Use ContactPage
Properties
| Property | Type | Status | Description |
|---|---|---|---|
| name | Text | optional | Page title. |
| url | URL | recommended | Page URL. |
| mainEntity | Organization or Person | optional | The entity whose contact info is on the page. |
JSON-LD Examples
Contact Page
Simple contact page markup.
{
"@context": "https://schema.org",
"@type": "ContactPage",
"name": "Contact Us",
"url": "https://example.com/contact"
} Common Mistakes
Overthinking it — ContactPage is simply a type indicator; the actual contact info goes in Organization or LocalBusiness markup.
Complete Guide to ContactPage Schema Markup
ContactPage is the WebPage subtype for a page whose purpose is getting in touch: a contact form, a support page, the page with the phone number and office address. Google doesn't document a search feature for it. The type labels the page; the contact details belong on the Organization or LocalBusiness the page is about.
Google's Organization documentation lists email, telephone, address and contactPoint among the properties it reads. A ContactPoint describes one way to reach the organization and what it's for: contactType (such as "customer support" or "sales"), telephone in international format with the country code, email, areaServed and availableLanguage. An organization with separate sales and support lines gives each its own ContactPoint.
A business that customers visit is a LocalBusiness rather than a plain Organization. For local business results, Google requires name and address, and recommends telephone, url, geo, openingHoursSpecification and priceRange. A contact page that lists several branches can describe each one as a LocalBusiness with its own address and phone number.
So useful ContactPage markup is short: the page's name and url, and a mainEntity that is the Organization or LocalBusiness, either written out or referred to by the @id the home page uses. Put the ContactPoint entries on that entity, not on the page: telephone and email aren't properties of ContactPage itself, and the Schema Validator reports a property that isn't defined for its object's type.
Keep the details in step with the page. A phone number that appears in the JSON-LD but not on the page, or one nobody answers any more, does more harm than good. Write it the same way everywhere, for example +1-212-555-0142, so every description of the organization agrees.
Related Types
Check Your ContactPage Markup
The generator doesn't have a ContactPage form yet. Paste your markup into the validator to check its types, properties and values, and what Google needs from it.
Open Validator