My Tool Studio
SchemaURL-first

Contact Page Schema Generator

Contact page schema labels your contact URL as a ContactPage and, in the recommended mode, links it to an Organization that lists every way to reach you. This generator writes that as JSON-LD: the ContactPage and the Organization sit in an @graph joined by @id, and the organization carries one ContactPoint per department, with phone, email, languages and area served. Paste your contact URL to pre-fill the page details and the first phone and email from tel: and mailto: links. Add the organization's address, main phone and email, opening hours and social profiles, and choose LocalBusiness if customers visit you. Three example buttons load a small business, a SaaS company and a multi-department firm, so you can see a complete contact page schema example. You can also paste existing ContactPage markup to edit it.

Always freeNo sign upRuns in your browser

Output mode

Paste your Contact page URL. We'll read meta tags + tel: / mailto: links and pre-populate the form.
Import existing JSON-LD(paste code or read it from a URL)

Paste ContactPage JSON-LD (an @graph with the Organization works best) to load the page, organization and contact points.

Or load an example:

Page information

Organization & contact points

Contact point 1

Address, hours & profiles

Address

Opening hours

An Organization has no opening hours, so these are written as hoursAvailable on each contact point.

Social profiles (sameAs)

  • Add the page URL.
  • Add the organization name.
  • Add at least one phone number or email.
Output
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ContactPage"
}
</script>
Test in Google Rich Results TestValidate at validator.schema.orgThe test links copy your code first. Paste it into the tester's Code tab.

How to use

01

Auto-fill or load an example

Paste your contact page URL and press Auto-fill from URL, or load the Small business, SaaS company or Multi-department example. Keep Recommended mode unless your organization markup is elsewhere.

02

Add contact points

Fill the organization name, URL and logo. For each department, press Add contact point and set the type, phone with country code, email, languages and area served.

03

Copy and test

Add address, hours and profiles if you like, check the Validation panel, press Copy script and paste the block on your contact page. Use Test in Google Rich Results Test or Validate at validator.schema.org to check it.

Why Contact Page Schema Generator

Three contact page schema examples

The example buttons in the tool load these three setups. Each output is an @graph with a ContactPage and an Organization, linked through the organization @id built from the site's root URL.

Every example uses placeholder names and .example domains, so replace the names, numbers and addresses with your own before publishing. The structure stays the same whether you have one contact point or ten.

ExampleContact pointsWhat stands out in the JSON-LD
Small business (plumber)customer support with phone and email, languages English and Spanish, area USavailableLanguage becomes an array of two languages
SaaS companysales with phone and email; technical support with email onlyA ContactPoint can carry just an email
Multi-department firmsales, customer support, billing and mediaFour ContactPoints; media has no phone

ContactPage, Organization contactPoint or LocalBusiness

Contact details can live in three places, and they work together rather than replacing each other.

A common setup is an Organization with contact points on the homepage, the same organization @id referenced from the ContactPage, and LocalBusiness on each location page if you have premises. Recommended mode writes the first two pieces for the contact page; the Local Business Schema Generator covers the third.

Whichever pieces you use, keep the phone numbers and emails identical in all of them.

MarkupWhat it describesWhere it goes
ContactPageThe contact page as a web pageThe contact URL only
Organization with contactPointHow to reach each departmentHomepage or contact page, one consistent copy
LocalBusinessA place customers visit, with address and hoursHomepage or each location page

Mistakes to avoid

These are the problems seen most often in contact page markup.

Validators check syntax, not accuracy, so they slip through easily. Compare the output with the visible page before you publish, and update the markup whenever a number or email changes.

  • Phone numbers without a country code.
  • Contact points in the markup that are not shown on the page.
  • A second Organization block on the contact page with a different name or logo from the homepage one.
  • ContactPage used on a page that is mainly a sales landing page with a form.
  • Old phone numbers left in the markup after the page was updated.
  • Emails written with a mailto: prefix inside the email property, which should hold only the address.

Common questions

What is a contact page schema example I can start from?
Press one of the three example buttons. Small business gives one support line, SaaS company gives sales and technical support contacts, and Multi-department gives sales, customer support, billing and media. Each loads a complete @graph you can edit.
What does ContactPage schema do for SEO?
It marks the page as your contact page and, through the linked Organization, lists phone numbers and emails in a machine-readable form. Google has no rich result for ContactPage, so do not expect a change in how the listing looks.
What is the difference between Recommended and Page only mode?
Recommended writes an @graph with the ContactPage and an Organization holding your contact points, linked by @id. Page only writes the ContactPage alone. Use Page only when your homepage already publishes Organization markup with the same contact points.
How do I add several departments to ContactPage JSON-LD?
Press Add contact point for each one and choose a contact type such as sales, technical support or billing. Each becomes its own ContactPoint in the organization's contactPoint list.
How does the contact page generator find my phone number?
During auto-fill it takes the first tel: link and the first mailto: link on the page and puts them in contact point 1. A number shown only as plain text is not picked up, so type it in.
Can a ContactPoint list more than one language?
Yes. Type the languages separated by commas, such as English, Spanish. One language is written as text and several as an array in availableLanguage.
Should phone numbers in contact schema include the country code?
Yes. Write numbers in international form such as +44-20-7946-0100, so they are unambiguous for people and machines in any country.
Does ContactPage markup help local SEO?
Only indirectly, by repeating your name, phone and URL consistently. A business with premises should also publish LocalBusiness markup with its address and hours, since ContactPage describes the page rather than the location.
Why put contact schema on the contact page rather than the homepage?
Because ContactPage describes one URL. On the homepage it would label the wrong page. The homepage can carry Organization and WebSite markup, reusing the same organization @id.
How do I add opening hours to ContactPage markup?
Use the Address, hours and profiles card. With LocalBusiness chosen, the hours are written as openingHoursSpecification on the business. With Organization, which has no opening hours of its own, they are written as hoursAvailable on each contact point, so people know when the phone lines are open.

More Schema tools

View all