Technical SEO Tutorial

How to Connect Schema.org hasMap with Google CID

Google uses separate indexes for web search crawling and Google Maps profiles. Adding your verified Google CID into your website's Schema.org hasMap property forms an explicit bridge that unites these entities in the Knowledge Graph.

What is the hasMap Schema Property?

According to official Schema.org specifications, the hasMap property provides a URL to a map showing the physical location of an item (such as a Place, LocalBusiness, Restaurant, or MedicalBusiness).

While many webmasters mistakenly paste an iframe embed code or a generic Google Maps search URL, Google's documentation prefers a direct, canonical URL pointing unambiguously to the target map entity.

The Recommended hasMap URL Format:

https://maps.google.com/?cid=YOUR_DECIMAL_CID

Why Generic Maps URLs Hurt Your Local Ranking

When Google's crawler analyzes a schema containing a generic query like google.com/maps/search/dentist+chicago, it cannot determine with certainty which business profile represents the true entity.

By using the permanent CID link, you explicitly state:

  • "This website belongs precisely to Google Maps entity #11401689387182079980."
  • "All citations, reviews, and structured data on this domain belong to that exact map listing."

Complete Copy-Paste JSON-LD Example

Below is an enterprise-grade LocalBusiness JSON-LD template. Paste this inside the <head> section of your website:

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "LocalBusiness", "@id": "https://yourwebsite.com/#localbusiness", "name": "Your Business Name", "image": "https://yourwebsite.com/images/storefront.jpg", "url": "https://yourwebsite.com", "telephone": "+1-555-234-5678", "priceRange": "$$", "address": { "@type": "PostalAddress", "streetAddress": "123 Main Street", "addressLocality": "New York", "addressRegion": "NY", "postalCode": "10001", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 40.7128, "longitude": -74.0060 }, "hasMap": "https://maps.google.com/?cid=11401689387182079980", "sameAs": [ "https://facebook.com/yourbusiness", "https://instagram.com/yourbusiness", "https://linkedin.com/company/yourbusiness" ], "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "09:00", "closes": "18:00" } ] } </script>

Validation & Verification Steps

After deploying your updated markup, verify the implementation with these two free Google testing tools:

  1. Schema.org Validator (validator.schema.org): Checks for syntax errors and validates that your hasMap URL is a valid absolute URI.
  2. Google Rich Results Test (search.google.com/test/rich-results): Ensures your LocalBusiness snippet qualifies for enhanced Google SERP features and Knowledge Panel integration.