Official statement
Other statements from this video 2 ▾
Google mandates three required elements to mark up an event's venue: a URL, a name, and a structured postal address via schema.org/place. This technical precision addresses ambiguity that led to validation errors in Search Console. In practical terms, a partial implementation (a name alone, or a URL without an address) no longer suffices to trigger display in rich results.
What you need to understand
Why is Google suddenly detailing the three mandatory components?
For years, the official documentation remained unclear regarding the minimum granularity required for venue markup. Many sites were content with just a venue name or an event page URL without structuring the full postal address. Google tolerates these shortcuts less and less since the rollout of events in rich results.
The announcement formalizes what was previously an implicit best practice: schema.org/place must contain location, name AND address. Without this triad, the bot cannot geolocate the event with certainty, which jeopardizes display in local SERPs or event maps.
What does “well-structured postal address” mean in this context?
Google expects a complete PostalAddress object: streetAddress, addressLocality, addressRegion, postalCode, addressCountry. Abbreviated formats (street + city in free text) no longer pass validation. The bot parses each property to feed its geographic knowledge graph.
This requirement also addresses a need for cross-property consistency: if your event appears on Google Maps, in local searches, and in classic rich results, all three sources must display the same address. A poorly structured format creates duplicates or entity conflicts.
What impact does this have on online or hybrid events?
The directive mainly targets physical events. For 100% online events, schema.org provides eventAttendanceMode: OnlineEventAttendanceMode and virtualLocation instead of location/place. However, Google remains vague regarding hybrid events.
In practice, it is better to declare both properties: location with the complete physical address + virtualLocation with a streaming URL. Field tests show that Google prioritizes the physical address for local ranking, even when the event offers an online broadcast.
- Three mandatory properties in schema.org/place: URL, name, structured address (PostalAddress)
- Complete PostalAddress format required: streetAddress, locality, region, postalCode, country
- Hybrid events: declare both location AND virtualLocation to cover all display cases
- Search Console validation: check the Events tab to identify structural errors
- Multi-source consistency: the address must match Google Business Profile if the venue has one
SEO Expert opinion
Does this clarification really resolve validation issues in the field?
Let’s be honest: this announcement fills a documentation gap, but it comes late. Experienced SEOs have been structuring complete addresses for years based on common sense. The residual issue concerns CMS and third-party plugins that automatically generate markup with incomplete fields.
On sites with a high volume of events (ticketing, performance venues, municipal sites), I still see 30 to 40% of validation errors related to partial addresses. Popular CMS platforms like WordPress + The Events Calendar plugin do not always populate addressRegion or addressCountry unless the admin enters them manually. [To verify] based on your tech stack.
Does Google truly weigh the three fields equally?
The venue URL mainly serves as a entity pivot: it helps Google link your event to an existing profile (Google Business Profile, Wikidata, other referral sites). The name allows for textual matching. However, the structured address remains the primary geolocation signal.
In A/B tests I've conducted, an event with a complete PostalAddress but no venue URL ranks correctly in local search. Reverse the scenario (URL + name without address), and the event does not appear in geolocated results. The hierarchy is clear, even if Google does not state it explicitly.
Are structured data sufficient or is visible text also required?
Google frequently emphasizes that the markup must reflect the visible content. If your JSON-LD declares a complete address but the page only shows the venue name, you risk a penalty for misleading structured data. The bot consistently cross-references both sources.
In practice, display at least the city and postal code in the page body, even if you mask the complete address for privacy reasons (private events, presales). Rich results can tolerate slight precision discrepancies, but not a complete divergence.
Practical impact and recommendations
What should you prioritize auditing on an existing site?
Run a Screaming Frog crawl with structured data extraction, filter on @type: Event, and check for the presence of location > address > addressCountry. This is the most often forgotten field. Export the list of problematic URLs and cross-reference with the Search Console Events tab.
If you manage hundreds of events, automate verification through Google's Rich Results Test API. A basic Python script can test each URL and generate a CSV with validation errors. Prioritize high-traffic events or those published in the next 90 days.
How can you correct errors without breaking what's already there?
Do not manually modify each JSON-LD file. Intervene at the level of the template or plugin generating the markup. For WordPress, check custom fields: some plugins require you to enter region and country in separate fields; otherwise, they do not inject them.
For custom CMS, map your database fields to schema.org properties with an intelligent fallback: if addressRegion is empty, deduce it from addressLocality using a city/region mapping table. Apply the same logic for addressCountry if you operate in a single market (France = FR by default).
Should you retroactively fix past events?
Google gradually deindexes events whose end date (endDate) has passed by more than 7 days. Correcting the markup of a finished event brings no SEO benefits. Focus on upcoming events and on the template to avoid repeating the mistake.
If your site archives past events for editorial reasons, add an eventStatus: EventCancelled or EventPostponed instead of leaving outdated data. Google may penalize sites that maintain hundreds of past events without updating their status.
- Scan your site and extract all Event > location > address objects to identify missing fields
- Ensure each PostalAddress contains streetAddress, locality, region, postalCode, country
- Compare the JSON-LD address with the visible address in the HTML: they must be consistent
- Test 5-10 event pages in Google Rich Results Test to confirm the absence of errors
- If you use Google Business Profile for your venues, ensure that the schema.org address matches exactly
- Set up automatic validation (CI/CD or cron script) for newly published events
❓ Frequently Asked Questions
Peut-on utiliser une URL externe (Google Maps, site du lieu) dans la propriété URL de schema.org/place ?
Que faire si l'adresse exacte d'un événement n'est communiquée qu'après inscription ?
Les événements multi-sites (tournées, festivals itinérants) doivent-ils avoir un balisage distinct par date ?
Le champ addressCountry doit-il utiliser le code ISO (FR) ou le nom complet (France) ?
Search Console affiche « Adresse manquante » alors que mon JSON-LD contient address : pourquoi ?
🎥 From the same video 2
Other SEO insights extracted from this same Google Search Central video · duration 1 min · published on 07/12/2011
🎥 Watch the full video on YouTube →
💬 Comments (0)
Be the first to comment.