Structured Data Audit

benihana.com Entity Graph Analysis & Error Report

Prepared by JaredCarrizales.com
108 pages analyzed
108 JSON-LD blocks reviewed
721 entities inventoried
March 14, 2026
14
Total Issues
4
Critical
7
Warnings
3
Notices
IssueSeverityScopeEntity Type
International locations declare addressCountry as United StatesCritical4 isolated pagesRestaurant
São Paulo location uses San Salvador's street addressCritical1 isolated pageRestaurant
Cuisine property contains misspelled valuesCritical2 isolated pagesRestaurant
addressLocality fields contain state abbreviations and extraneous dataCritical3 isolated pagesRestaurant
Homepage Restaurant entity uses CMS-generated nameWarning1 isolated pageRestaurant
Homepage Restaurant has empty PostalAddressWarning1 isolated pageRestaurant
WebSite entity with same @id has conflicting properties across pagesWarningSitewideWebSite
79 ReserveAction entities have no @idWarningLocation pagesReserveAction
Addison location OpeningHoursSpecification missing @typeWarning1 isolated pageRestaurant
Author nodes reference @id with no corresponding entity in the graphWarningBlog pages (15 articles)Article
addressLocality values contain typosWarning2 isolated pagesRestaurant
Duplicate keyword in hibachi vs teppanyaki articleNotice1 isolated pageArticle
servesCuisine array order inconsistent across locationsNotice2 isolated pagesRestaurant
Gift cards page datePublished set to future dateNotice1 isolated pageWebPage
Critical
International locations declare addressCountry as United States
4 isolated pages — Restaurant
What’s Wrong
A parser processing the São Paulo, San Salvador, Panama City, and Aruba location pages encounters "addressCountry": "United States" for restaurant addresses that are physically in Brazil, El Salvador, Panama, and Aruba respectively. Any system building a geographic index — Google’s Local pack, an LLM assembling restaurant facts, or a citation aggregator — reads these four international restaurants as being located in the United States, making them invisible in their actual countries and potentially creating phantom U.S. listings.
"addressCountry": "United States" ← on /locations/sao-paulo/
"addressCountry": "United States" ← on /locations/san-salvador/
"addressCountry": "United States" ← on /locations/panama-city/
"addressCountry": "United States" ← on /locations/palm-beach-aruba/
How to Fix
Update the addressCountry value in the PostalAddress object on each page. Use ISO 3166-1 alpha-2 country codes for maximum parser compatibility:
/locations/sao-paulo/ → "addressCountry": "BR"
/locations/san-salvador/ → "addressCountry": "SV"
/locations/panama-city/ → "addressCountry": "PA"
/locations/palm-beach-aruba/ → "addressCountry": "AW"
Critical
São Paulo location uses San Salvador’s street address
1 isolated page — Restaurant
What’s Wrong
The São Paulo location’s streetAddress is set to "Calle Juan Jose Cañas 77 Avenida Sur" — a Spanish-language address that belongs to the San Salvador location. Meanwhile, the addressLocality contains what appears to be the actual São Paulo address data ("Rua Amauri, 517 – Jrdim Europa"), meaning the address fields are cross-contaminated. A processor reading this entity receives two conflicting geographic signals from the same address block, making the actual location of this restaurant unresolvable.
"streetAddress": "Calle Juan Jose Cañas 77 Avenida Sur"
"addressLocality": "Rua Amauri, 517 – Jrdim Europa"
How to Fix
Correct the São Paulo PostalAddress to use the actual Brazilian address:
"streetAddress": "Rua Amauri, 517"
"addressLocality": "São Paulo"
"addressRegion": "SP"
"addressCountry": "BR"
The neighborhood “Jardim Europa” can be appended to the street address or omitted. Note the current value also contains a typo: “Jrdim” should be “Jardim.”
Critical
Cuisine property contains misspelled values
2 isolated pages — Restaurant
What’s Wrong
The Miami Beach location’s servesCuisine array contains "Japanes" (missing the trailing ‘e’), and the Burlingame location contains "HIbachi" (capital ‘I’). Schema.org servesCuisine values are matched as text strings by processors — a misspelled value is not matched to the correct cuisine category, meaning these locations could be excluded from cuisine-filtered searches or misclassified entirely.
/locations/miami-beach/: "Japanes"
/locations/burlingame/: "HIbachi"
How to Fix
  • /locations/miami-beach/: Change "Japanes" to "Japanese"
  • /locations/burlingame/: Change "HIbachi" to "Hibachi"
Critical
addressLocality fields contain state abbreviations and extraneous data
3 isolated pages — Restaurant
What’s Wrong
Three locations have malformed addressLocality values that merge city and state data into a single field. A parser encountering "Dallas TX" as a locality cannot split it reliably and may treat the entire string as the city name, failing to match it against geographic databases. The Addison location further contradicts itself — the entity name says “Addison” while the locality says “Dallas TX.”
/locations/addison/: "addressLocality": "Dallas TX" (missing addressRegion)
/locations/alpharetta/: "addressLocality": "Alpharetta GA"
/locations/carlsbad/: "addressLocality": "100 Carlsbad CA"
How to Fix
Separate city and state into their correct fields:
/locations/addison/: "addressLocality": "Addison", "addressRegion": "TX"
/locations/alpharetta/: "addressLocality": "Alpharetta", "addressRegion": "GA"
/locations/carlsbad/: "addressLocality": "Carlsbad", "addressRegion": "CA"
Remove any numeric prefixes from locality values. Ensure addressRegion is present as a separate property on each page.
Warning
Homepage Restaurant entity uses CMS-generated name
1 isolated page — Restaurant
What’s Wrong
The homepage declares a Restaurant entity with "name": "Home - Benihana". The “Home -” prefix is a CMS page-title artifact leaking into the schema. Any system using this entity to identify the brand — including Knowledge Panel construction and LLM training corpora — encounters a restaurant whose name starts with “Home,” which is neither the legal entity name nor how customers refer to the brand.
"name": "Home - Benihana"
How to Fix
Change the Restaurant entity’s name to:
"name": "Benihana"
If the CMS auto-generates the name from the page title, override it with a hardcoded value in the SEO plugin’s schema settings.
Warning
Homepage Restaurant has empty PostalAddress
1 isolated page — Restaurant
What’s Wrong
The homepage’s Restaurant entity includes an address block containing only "addressCountry": "US" — no street address, city, state, or postal code. Combined with a missing @id, no geo, and no url, this Restaurant entity is essentially a shell with no verifiable identity. It creates a second, competing Restaurant entity alongside the Organization node that already represents the brand.
"address": {"@type": "PostalAddress", "addressCountry": "US"}
// No @id, no geo, no url
How to Fix
Either remove the homepage Restaurant entity entirely (the Organization entity already represents the brand) or populate it with full HQ address data and an @id. If the homepage Restaurant is intended as a brand-level entity, consider changing its @type to FoodEstablishment with appropriate brand-level properties.
Warning
WebSite entity with same @id has conflicting properties across pages
Sitewide — WebSite
What’s Wrong
The WebSite entity using @id: "https://www.benihana.com/#website" appears in two configurations across the site. On 80 location pages, it includes a publisher reference. On the homepage, it additionally includes a potentialAction with SearchAction. On 10 page-sitemap pages, it omits the publisher entirely. When a system aggregates entity data using @id as the reconciliation key, encountering different property sets forces a merge decision — the system cannot determine which version is authoritative.
How to Fix
Ensure the WebSite entity is identical on every page. The most complete version (with both publisher and potentialAction: SearchAction) should be used everywhere. This is typically controlled by the SEO plugin’s global schema settings (e.g., Yoast or Rank Math).
Warning
79 ReserveAction entities have no @id
All location pages — ReserveAction
What’s Wrong
Every location page includes a ReserveAction entity inside the @graph, but none of the 79 instances declare an @id. Without an identifier, these action entities cannot be referenced by other nodes in the graph and exist as orphaned blocks. The Restaurant entity on each page cannot formally declare that it offers this reservation action — the relationship is implied by proximity within the graph rather than stated through an explicit reference.
How to Fix
Add unique @id values to each ReserveAction and reference them from the Restaurant entity:
"@id": "https://www.benihana.com/locations/chicago/#reserveaction"
Then in the Restaurant entity:
"potentialAction": {"@id": ".../#reserveaction"}
Warning
Addison location OpeningHoursSpecification missing @type
1 isolated page — Restaurant
What’s Wrong
The Addison location’s openingHoursSpecification array contains seven day-of-week entries, but none declare "@type": "OpeningHoursSpecification". Without the type declaration, a strict JSON-LD parser treats these as untyped objects rather than structured Schema.org entities, risking the hours data being ignored entirely.
{"dayOfWeek": "Monday", "opens": "11:00", "closes": "22:00"}
// Missing @type on all 7 entries
How to Fix
Add "@type": "OpeningHoursSpecification" to each entry. Compare against other location pages (e.g., Woodlands, Wheeling) where this is declared correctly:
{"@type": "OpeningHoursSpecification", "dayOfWeek": "Monday", "opens": "11:00", "closes": "22:00"}
Warning
Author nodes reference @id with no corresponding entity in the graph
Blog pages (15 articles) — Article
What’s Wrong
Fifteen articles declare an author with an @id reference (e.g., "@id": ".../#author") and "name": "Fanatic", but none of these author nodes declare a @type. The referenced @id does not resolve to any standalone entity in the graph. A processor following the reference finds nothing, leaving the author identity unresolvable. Two other articles properly use "@type": "Organization", "name": "Benihana Editorial Team", creating an additional inconsistency: 15 articles credit an untyped “Fanatic” while 2 credit a typed Organization.
"author": {"@id": ".../#author", "name": "Fanatic"} // no @type, unresolvable
"author": {"@type": "Organization", "name": "Benihana Editorial Team"} // correct
How to Fix
Decide on a canonical author entity — likely "@type": "Organization", "name": "Benihana" referencing the existing @id: "https://www.benihana.com/#organization" — and apply it consistently across all articles. If “Fanatic” is a real person, declare them as "@type": "Person" with proper identifying properties.
Warning
addressLocality values contain typos
2 isolated pages — Restaurant
What’s Wrong
The Coral Springs location uses "Coral Spring" (missing the trailing ‘s’), and the North Little Rock location uses "N Little Rock" (abbreviated). These values must match the official city names used by USPS and Google Maps for NAP consistency. An aggregator comparing this data against directory listings would flag a mismatch, potentially creating duplicate or orphaned citations.
/locations/coral-springs/: "Coral Spring"
/locations/north-little-rock/: "N Little Rock"
How to Fix
"Coral Spring" → "Coral Springs"
"N Little Rock" → "North Little Rock"
Notice
Duplicate keyword in hibachi vs teppanyaki article
1 isolated page — Article
What’s Wrong
The article’s keywords property on /blog/difference-between-hibachi-and-teppanyaki/ is set to "teppanyaki, hibachi, teppanyaki" — the keyword “teppanyaki” appears twice. While unlikely to cause a parsing failure, it indicates the keywords were set manually without deduplication.
"keywords": "teppanyaki, hibachi, teppanyaki"
How to Fix
Remove the duplicate:
"keywords": "teppanyaki, hibachi"
Notice
servesCuisine array order inconsistent across locations
2 isolated pages — Restaurant
What’s Wrong
Most location pages list cuisines as ["Japanese", "Hibachi", "Teppanyaki"], but the Lombard and Cupertino locations use ["Japanese", "Teppanyaki", "Hibachi"] — swapping the order of the second and third items. While array order is not semantically significant per Schema.org, inconsistency across identical entity types suggests a data entry variation rather than intentional distinction.
How to Fix
Standardize the cuisine array order across all locations to ["Japanese", "Hibachi", "Teppanyaki"] (or ["Japanese", "Hibachi", "Teppanyaki", "Sushi"] where sushi is served).
Notice
Gift cards page datePublished set to future date
1 isolated page — WebPage
What’s Wrong
The Gift Cards page declares "datePublished": "2026-01-01T00:00:09-04:00" and an identical dateModified. This date was originally set as a future scheduling artifact. The identical published and modified timestamps suggest the page was auto-scheduled and never manually updated after publication.
"datePublished": "2026-01-01T00:00:09-04:00"
"dateModified": "2026-01-01T00:00:09-04:00"
How to Fix
Update datePublished to reflect the actual content creation date and set dateModified to the most recent edit. The CMS may need a manual override to prevent scheduling dates from propagating into schema.
Entity Graph Portrait

Benihana’s entity graph presents a structurally sound multi-location restaurant brand with a clear Organization hub, 80 individual Restaurant entities, and supporting content across blog and service pages. The architecture is well-intentioned — each location gets its own Restaurant node with geo, hours, and cuisine data, linked back to a central Organization via the @graph pattern. However, the graph’s reliability is undermined at the edges: four international locations are mis-geocoded to the United States, one location’s address is cross-contaminated with data from another country, and the brand’s homepage Restaurant entity is an empty shell that contradicts the specificity of the location pages. The blog layer introduces a second identity problem — fifteen articles credit an unresolvable “Fanatic” author while two properly attribute content to “Benihana Editorial Team,” splitting the authorship signal. The data that is correct is well-structured; the data that is wrong is wrong in ways that directly compromise entity resolution.

Google (Knowledge Graph & Local)

When Googlebot processes these location pages, it finds well-formed Restaurant entities with address, geo, hours, and cuisine data — the foundation for Local Panel generation. But four international listings claiming "addressCountry": "United States" would likely be filtered out of local results in their actual countries, or worse, create phantom listings in U.S. search. The São Paulo location presents an especially difficult case: its street address belongs to San Salvador while its locality field contains what should be the street address — Google’s address validation pipeline would likely discard this entity entirely. The homepage Restaurant named “Home - Benihana” with an empty address may interfere with Knowledge Panel consolidation, presenting as a distinct restaurant entity rather than a brand identifier.

Large Language Models

An LLM aggregating Benihana location data from this structured markup would have high confidence in most U.S. restaurant locations — the Restaurant entities are consistently structured with verifiable addresses and coordinates. The risk materializes with international locations: a model encountering São Paulo labeled as “United States” with a San Salvador street address has no way to resolve the contradiction, and would likely either omit the location or produce a hedged, inaccurate response. The “Fanatic” author attribution across 15 articles creates a different problem — without a @type or resolvable @id, language models cannot evaluate the authority behind Benihana’s content, reducing the E-E-A-T signal that feeds into citation confidence.

Local Search Aggregators & Data Ecosystems

Citation networks like Yext, Moz Local, and BrightLocal rely on consistent NAP data to build and maintain listings. Benihana’s structured data sends mixed signals: “Coral Spring” vs. “Coral Springs,” “N Little Rock” vs. “North Little Rock,” and “Dallas TX” as an addressLocality for Addison all create matching failures when aggregators reconcile structured data against existing records. For the four international locations, declaring “United States” as the country effectively removes them from non-U.S. citation ecosystems entirely. The consistent phone format across most locations (bare digits with spaces) is parseable but deviates from the E.164 standard that maximizes automated matching.