SEO Audit 5 May 2026

Mongolie Grill

mongoliegrill.com
Whistler Village, BC
WordPress with Elementor 3.35.6
Stir-fry restaurant, independent since 1996
Flywheel hosting with Fastly CDN
42
out of 100
Grade D

Audit Summary

Mongolie Grill has been operating in Whistler Village since 1996 and has the foundations of an SEO programme in place. The site is reachable, indexable, returns valid HTTP 200 responses, has HTTPS, a published sitemap, and is hosted on Flywheel with Fastly CDN. Tripadvisor, Yelp, OpenTable, Facebook and Instagram profiles all exist and are linked from the site footer.

The layer of structured data, on-page signals, and analytics that Google and AI engines now use to identify and rank a local restaurant is incomplete or out of date. The homepage H1 reads "Happy Hour" rather than identifying the restaurant. The menu is delivered as image files. The analytics tag is a Universal Analytics property that Google retired in July 2023. There is no Restaurant or Menu schema markup anywhere on the site.

The majority of issues identified can be resolved in under a day. A two-week implementation effort would lift the overall score from 42 to approximately 70.

Technical SEO 52
Weight: 22%
Content Quality & E-E-A-T 42
Weight: 23%
On-Page SEO (SXO) 41
Weight: 20%
Schema / Structured Data 28
Weight: 10%
Performance (CWV) 43
Weight: 10%
AI Search Readiness 34
Weight: 10%
Images & Visual 42
Weight: 5%
Sitemap & Architecture 72
Weight: included in Technical
E-E-A-T Assessment
Experience, Expertise, Authoritativeness, Trustworthiness. Combined score 42/100.
Experience 11 / 20

Original photographs of food and the dining room appear on the homepage. The site contains no first-person content, no kitchen narrative, and no founding history. The thirty-year independent ownership angle is the strongest underused trust signal available to the brand.

Expertise 6 / 25

No named individuals appear anywhere across the twelve indexed pages. The head chef, owner, and front-of-house team are not introduced or credited. Google's Quality Rater Guidelines (September 2025) require demonstrated expertise to be attached to identifiable people. AI engines decline to attribute claims to an unnamed entity.

Authoritativeness 8 / 25

The phrase "Voted Whistler's best!" appears in the meta description without an on-page source. No press citations, awards with dates, Tourism Whistler directory listing, or Wikidata entry currently exist. Five social profiles are linked from the site footer but none are declared in the schema sameAs property.

Trustworthiness 17 / 30

Name, address and phone information is present but appears in three different formats across the site. The /safety/ page references the April 2022 vaccine card mandate that has not been in effect for four years. No privacy policy is published, which is a PIPEDA requirement in Canada. Per-weight pricing on the homepage ($6.80 per 100g) does not match the menu page ($6.40 per 100g).

Restaurant Search in 2026
Why structured data and AI surfacing now matter as much as traditional Google ranking

Current Foundations

The website loads correctly, returns valid HTTP 200 responses, ranks for the brand name in Google, and has a working OpenTable reservations link. Hosting is on Flywheel with Fastly CDN. Tripadvisor, Yelp, OpenTable, Facebook and Instagram profiles all exist and are linked from the site footer. The basic technical foundations are in place: HTTPS is active, a sitemap is published, all sitemap URLs are indexable, and there are no manual Google penalties.

What Has Changed in Restaurant Search

Three changes in restaurant search since this site was last meaningfully updated affect the recommended work below.

First, Google leads almost every "restaurants in [city]" query with a Map Pack. The Google Business Profile, not the website, is the primary surface that potential customers see. Second, AI assistants (ChatGPT, Perplexity, Google AI Overviews, Apple Intelligence) now answer queries such as "best stir fry in Whistler" or "vegan restaurants Whistler" inline, and they require structured data (Restaurant and Menu schema) before they will reliably recommend a specific restaurant. Third, the majority of restaurant searches now happen on mobile, with tourist queries weighted heavily toward fast, scannable answers.

The recommended work falls into two tracks:

•  AI Search Readiness: Restaurant, Menu, and LocalBusiness schema markup; an llms.txt file; a Wikidata entity record; an AggregateRating block populated from live Google or Tripadvisor data; named individuals for E-E-A-T compliance.

•  Google Search Improvements: heading hierarchy fixes; consistent NAP across the site; new pages covering catering, vegan menu, private events, gift cards, and a privacy policy; Core Web Vitals improvements; internal links pointing to the menu page.

The two tracks share most of their underlying work. Schema markup contributes to both Google rich results and AI citation. NAP consistency is read by Google Maps, Apple Intelligence and Bing Places. Adding Restaurant and Menu schema is the single highest-impact item in either column.

Critical & High Issues
Issues blocking or significantly impacting rankings and AI visibility
Homepage H1 reads "Happy Hour" Critical
The H1 element on the homepage reads "Happy Hour". The H1 is the most prominent on-page signal Google uses to determine page topic. It does not identify the restaurant, its cuisine category, its location, or its value proposition. A user arriving from a generic search has no immediate context for the page. The most linked-to URL on the site provides Google with no primary keyword anchor.
How to fix (30 seconds)
In Elementor, edit the homepage. Change the H1 element to: Mongolie Grill | World Famous Stir-Fry in Whistler Village, Since 1996. Demote "Happy Hour" to an H2 or H3 inside its own promotional section.
No Restaurant, LocalBusiness, or Menu schema anywhere on the site Critical
Yoast outputs a generic WebPage and Organization schema stub on every page. The site has no Restaurant, LocalBusiness, Menu, MenuSection, MenuItem, AggregateRating, ReserveAction, openingHoursSpecification, or PostalAddress markup.

All of the underlying information needed to populate this schema is present on the rendered page (the address 4295 Blackcomb Way #201, V0N 1B4; daily hours of 11:30am to late; pricing of $6.40 per 100g; the OpenTable reservations link; the five social profile links). None of it is currently exposed to crawlers in machine-readable form.

For a Whistler restaurant attempting to surface in the local pack, the Map Pack, and AI Overviews, this is the single largest gap identified in the audit.
How to fix (one day)
Use Yoast's Schema API or a plugin such as Schema Pro or Rank Math to add a multi-type ["Restaurant","LocalBusiness","Organization"] entity. Populate address, geo (50.1153798, -122.9546316), telephone, openingHoursSpecification, priceRange, servesCuisine, acceptsReservations, areaServed, foundingDate, sameAs (the five social profiles), and hasMenu. Ready-to-paste JSON-LD blocks are included in the schema sub-report.
/safety/ page still references the April 2022 vaccine card mandate Critical
The /safety/ page has a last-modified date of 22 February 2022 and continues to reference Whistler's vaccine card mandate. That mandate ended in April 2022. Four years of stale content on a public page acts as a trust-signal failure. It implies the site is no longer actively maintained, raises the question of whether other content is also out of date, and confuses tourist visitors making same-day dining decisions.
How to fix (30 seconds)
Recommended option: delete the page, remove the URL from the sitemap, and add a 301 redirect to /find-us/. Alternative: rewrite the page as a current "Food Safety and Allergens" page covering kitchen practices, allergen handling, and dietary accommodations.
Universal Analytics (UA-127048562-1) is still firing Critical
Google retired Universal Analytics on 1 July 2023. The tag UA-127048562-1 is still in the page source, sending data to a property that has been deprecated for nearly three years. There is no GA4 replacement firing. The business has no usable analytics data and cannot measure the impact of any of the work in this report until this is fixed.
How to fix (30 minutes)
Create a GA4 property in Google Analytics. Install Site Kit by Google (free WordPress plugin) or add the gtag snippet via Elementor's custom code. Remove the UA-127048562-1 snippet from header.php, theme code, and any Elementor settings. Verify with the GA4 Realtime view.
Menu page delivered as PNG screenshots, invisible to Google and AI Critical
The /food-bar-menu/ page contains six images with empty alt="" attributes. The actual menu (40+ ingredients, 12 sauces, by-weight pricing) is rendered inside those PNG screenshots and is not present in the page text. Search engines, screen readers, and AI engines therefore cannot read the menu. The most valuable page for restaurant SEO is, from a crawler's perspective, blank.
How to fix (sprint work)
1. Re-deliver the menu as semantic HTML, with headings for sections and lists for items.
2. Add Menu, MenuSection, and MenuItem JSON-LD with name, description, offers.price, suitableForDiet (vegan, gluten-free), and allergen tags.
3. Add internal links from the homepage hero, the header navigation, and the footer. The page currently has zero internal inbound links from any other page on the site.
Menu page is an SEO orphan with zero internal inbound links Critical
/food-bar-menu/ appears in the sitemap but has zero internal links pointing to it from any other page on the site. The most important URL for restaurant search has no internal authority flowing to it. Google sees an isolated page; users have to find it through navigation alone.
How to fix (30 minutes)
Add a primary "View Menu" call-to-action to the homepage hero section. Add the menu to the main header navigation. Link to the menu from the footer of every page. Link from /reservations/ and /find-us/.
/reservations/ page title reads "Follow up on social media" High
The literal page title (the <title> tag, which appears in the SERP and the browser tab) on the reservations page is "Reservations - Follow up on social media". The page itself contains an OpenTable redirect surrounded by social media icons. There is no embedded reservations widget, no party-size guidance, no walk-in policy, no cancellation information, and no phone fallback.

Transactional intent fails. AI engines cannot cite the page when answering "how do I book a table at Mongolie Grill" type queries.
How to fix (one day)
1. Rewrite the title tag to Reservations | Mongolie Grill Whistler.
2. Embed the OpenTable widget directly. OpenTable provides a free embed code.
3. Add a clear policy block: hours, maximum party size for online booking, large-group instructions, cancellation policy, and a dietary-note call-to-action.
4. Add ReserveAction schema linking to the OpenTable URL.
NAP appears in three different formats on the site High
Three different address formats appear on the live site:

Footer: 201 – 4295 Blackcomb way – Whistler (lowercase "way", no postal code)
Contact card: 201 - 4295 Blackcomb Way, Whistler BC (no postal code)
Map iframe URL: 4295 Blackcomb Way #201, Whistler, BC V0N 1B4, Canada

The phone number also appears in three different formats, including one with a malformed leading space inside a tel: URI. Google, AI engines, and citation directories use NAP consistency as a primary local trust signal. This kind of fragmentation actively suppresses local rankings.
How to fix (one hour)
Pick one canonical format and apply it everywhere. Recommended: #201, 4295 Blackcomb Way, Whistler, BC V0N 1B4, with phone +1 604 938 9416 and the matching tel:+16049389416 link. Update the site footer, contact card, schema (once added), Google Business Profile, Yelp, Tripadvisor, OpenTable, Apple Maps, and Bing Places.
No /llms.txt and no AI crawler rules in robots.txt High
/llms.txt returns 404. There is no curated entity summary for AI systems. Combined with the missing Restaurant schema and empty sameAs, AI engines have to reverse-engineer the business from raw crawl data, and most do not. There is also no Wikidata entry for "Mongolie Grill" (verified absent via the Wikidata API), which is a low-cost, high-leverage AI grounding signal.

For tourist queries such as "best stir fry Whistler" or "vegan restaurants Whistler village" answered by ChatGPT, Perplexity, or Google AI Overviews, this represents a missed opportunity in a high-search-volume category.
How to fix (one hour)
1. Publish /llms.txt at the site root containing an entity summary, the founding year (1996), address, phone, hours, OpenTable link, walk-in policy, dietary options, pricing, and links to the menu and other key pages. A draft is included in the GEO sub-report.
2. Add explicit Allow rules in robots.txt for ChatGPT-User, OAI-SearchBot, ClaudeBot, PerplexityBot, Applebot-Extended, CCBot, and Google-Extended.
3. Create a Wikidata Q-ID. Wikipedia notability is not required. Properties: P31 restaurant, P131 Whistler, P571 1996, P625 50.1153798/-122.9546316, P856 https://mongoliegrill.com.
/Find-Us/ (uppercase) returns 200 with no redirect High
https://mongoliegrill.com/Find-Us/ (uppercase F and U) responds with HTTP 200 and serves the same content as /find-us/. This creates a duplicate-content variant. Google has to choose a canonical and may split link equity. Combined with missing security headers (no HSTS, CSP, Permissions-Policy or X-Frame-Options), this points to legacy WordPress URL handling that has not been hardened.
How to fix (10 minutes)
Add a server-side 301 redirect rule that lowercases all path segments. Flywheel supports this via .htaccess or a PHP filter. Add HSTS, Permissions-Policy and X-Frame-Options headers in the same change. Verify with curl -I https://mongoliegrill.com/Find-Us/; the response should be 301.
og:locale set to en_US for a Canadian business High
The Open Graph locale meta tag declares en_US. This signals US English to Facebook, LinkedIn, Apple Intelligence, and other consumers of the OG protocol. The business is in Whistler, British Columbia. The correct locale is en_CA. This is a localisation bug that affects social previews and AI entity disambiguation.
How to fix (30 seconds)
In Yoast SEO, go to Settings > Site Basics > Site Language and select English (Canada). Alternatively, override the og:locale meta tag directly via the Yoast filter wpseo_locale.
No privacy policy published, which is a PIPEDA legal requirement High
No /privacy-policy/ URL exists on the site. Canada's PIPEDA (Personal Information Protection and Electronic Documents Act) requires any commercial organisation that collects personal information, including via a contact form, reservation submission or feedback form, to publish a privacy policy. Mongolie Grill collects all three. Beyond the legal exposure, the absence is also a Trustworthiness signal failure for both Google and AI engines.
How to fix (one day)
Draft a PIPEDA-compliant policy that covers: what personal information is collected (forms, cookies, server logs); why it is collected; how long it is retained; who it is shared with (Workers, OpenTable, GA4); how a visitor can request access or deletion; and contact details for the privacy officer. Publish the document at /privacy-policy/, link to it from the footer of every page, and reference it in the schema publishingPrinciples property.
Hero image not preloaded, fetchpriority on the wrong element High
The Largest Contentful Paint element is slide-1.jpg, a 125 KB JPEG declared as a CSS background-image inside post-2.css. It is not preloaded and not converted to WebP. Meanwhile fetchpriority="high" is applied to the logo, a 13 KB PNG that loads quickly regardless. Estimated mobile Core Web Vitals: LCP 3.8 to 5.5 seconds (Poor); INP 350 to 600ms (Poor); CLS 0.10 to 0.20 (Needs Improvement).

Compounding factors: 27 render-blocking external stylesheets, FontAwesome loaded twice (versions 5.3.1 and 5.15.3), Roboto loaded three different ways (Google Fonts CDN, Elementor cache, plus an unused Robotoslab), and Bootstrap 4.0.0 from a third-party CDN.
How to fix (one afternoon)
1. Convert slide-1.jpg to WebP or AVIF and replace the CSS background-image with a <picture> element so it can be preloaded with fetchpriority="high".
2. Move fetchpriority="high" off the logo.
3. Dequeue duplicate FontAwesome 5.3.1. Elementor already bundles 5.15.3.
4. Drop the third-party Google Fonts Roboto request. The Elementor local cache already serves it.
5. Cut Roboto from 12 weights to 3 (400, 500, 700).
6. Set Elementor's "Internal CSS print method" in the plugin settings. This cuts the external stylesheet count.

Projected score after one afternoon: Performance 60 to 70, LCP 2.6 to 3.4 seconds.
Pricing contradicts itself: $6.80/100g on homepage vs $6.40/100g on menu High
The homepage advertises $6.80 per 100g; the menu page advertises $6.40 per 100g. This is a 6% price discrepancy on the same site, visible to anyone comparing the two pages. It is both a customer trust failure and a Trustworthiness signal failure for E-E-A-T. AI engines decline to cite contradictory pricing. Users tend to assume the higher figure and are annoyed by either.
How to fix (15 minutes)
Confirm the current price with the kitchen, pick the canonical figure, and update both pages and the (forthcoming) Menu schema in the same change.
"Voted Whistler's best!" claim is unsupported on the site Medium
The meta description claims "Voted Whistler's best!" but no source, year, or publication is named anywhere on the site. AI engines (ChatGPT, Perplexity, Google AI Overviews) actively decline to cite unverified superlatives, so the claim works against visibility rather than for it. There is also no AggregateRating in schema to ground the claim.
How to fix (one hour)
Either: (a) name the actual award, for example "Pique Newsmagazine Best Of, 2023", with the source URL on the page and inside an Award schema; or (b) remove the claim entirely and replace it with a live AggregateRating populated from Google, Tripadvisor or Yelp, all of which already hold genuine review data for this restaurant.
Heading hierarchy broken across multiple pages Medium
Homepage: H1 then H5 then H3 then H2, with two empty H3 tags.
/food-bar-menu/: two H1 elements ("MENU" and "SAUCES"). There should be one.
/reservations/, /find-us/, /tell-us/: zero H1 elements. The page has no top-level heading at all.

Google's Helpful Content System uses heading structure as a content-quality signal. Screen readers depend on it for navigation. AI engines extract passages by heading level.
How to fix (one afternoon)
Audit every page in Elementor. Set exactly one H1 per page and demote or promote subsequent headings to maintain a clean H2 to H3 hierarchy. Remove empty heading tags. Test with the WAVE accessibility browser extension.
No named individuals across the twelve indexed pages Medium
Twelve indexed pages and not a single named person: no head chef, no owner, no general manager, no team. Google's Quality Rater Guidelines (September 2025 update) require demonstrated expertise to be attached to identifiable individuals. AI engines decline to attribute claims to a faceless entity. The thirty-year independent ownership story is the strongest unused angle in the audit.
How to fix (one week)
Build an /about/ page that introduces the owner(s) and the head chef. Include each person's name, role, time at the restaurant, professional background, signature dish, and a real photo. Add a Person schema entity with sameAs pointing to LinkedIn, Instagram, or any chef-association profile. Repeat for the head chef. Reference both individuals in the Restaurant schema's employee property.
Sitemap missing high-intent pages (catering, vegan, gift cards, about) Medium
The Yoast XML is clean but URL coverage is thin for a restaurant of this scale. The following candidate URLs were probed and all return 404:

/catering/: corporate and large-group revenue
/private-events/: group dining capture
/order-online/: takeout intent
/gift-cards/: gifting demand
/vegan/ or /vegan-menu/: captures "vegan whistler" tourist intent
/about/: the thirty-year history
/privacy-policy/: PIPEDA legal requirement (covered separately above)

Separately, /food-bar-menu/ and /food-drink/ are near-duplicate pages that cannibalise each other, and /thank-you-for-your-feedback/ should be noindexed and removed from the sitemap.
How to fix (Sprint 3)
Build the missing pages with genuine, substantive content. Avoid thin doorway pages. Consolidate the two menu pages with a 301 redirect from one to the other. Add noindex, nofollow meta to the thank-you page and remove the URL from the Yoast sitemap.
Action Plan
Four sprints to lift the score from 42 to approximately 90
1
Sprint 1: Immediate fixes
Approximately 1 day · Score impact: 42 to 58
Replace homepage H1 with brand and value proposition
"Mongolie Grill | World Famous Stir-Fry in Whistler Village, Since 1996"
30 secHigh impact
Delete or rewrite the /safety/ page
Last touched February 2022, still references the lapsed vaccine card mandate
30 secHigh impact
Migrate analytics from Universal Analytics to GA4
UA-127048562-1 has been deprecated since July 2023
30 minHigh impact
Set og:locale to en_CA
Yoast: Settings > Site Basics > Site Language
30 secMedium impact
301 redirect /Find-Us/ (uppercase) to /find-us/
Lowercase all path segments at the server level
10 minMedium impact
Canonicalise NAP and phone format site-wide
"#201, 4295 Blackcomb Way, Whistler, BC V0N 1B4" with phone tel:+16049389416
1 hourHigh impact
Reconcile menu pricing between homepage and menu page
Homepage states $6.80/100g, menu page states $6.40/100g. Pick one canonical figure.
15 minMedium impact
Noindex thank-you and feedback flow pages
/thank-you-for-your-feedback/ and /submit-feedback/ are thin. Remove from sitemap.
10 minLow impact
2
Sprint 2: Schema and AI surfacing
Approximately 3 days · Score impact: 58 to 70
Add Restaurant and LocalBusiness master schema
Multi-type entity with address, geo (50.1153798, -122.9546316), hours, priceRange, servesCuisine, acceptsReservations, areaServed and foundingDate
3 hoursCritical impact
Add Menu, MenuSection and MenuItem schema to /food-bar-menu/
With prices, descriptions, allergens and suitableForDiet (vegan, gluten-free) tags
4 hoursCritical impact
Add ReserveAction linking to OpenTable
Inside the Restaurant schema and on the /reservations/ page
30 minHigh impact
Populate sameAs cluster with the five existing social profiles
Tripadvisor.ca, Yelp, OpenTable, Facebook, Instagram. All five are already linked in the footer.
15 minHigh impact
Embed live AggregateRating from Google or Tripadvisor
Replaces the unsupported "Voted Whistler's best!" claim with verifiable review data
2 hoursHigh impact
Publish /llms.txt
Curated entity summary, hours, contact information and key links. Full draft is included in the GEO sub-report.
1 hourHigh impact
Add explicit AI crawler rules to robots.txt
Allow ChatGPT-User, OAI-SearchBot, ClaudeBot, PerplexityBot, Applebot-Extended, CCBot, Google-Extended
15 minMedium impact
Create a Wikidata Q-ID for entity grounding
No Wikipedia notability is required. Properties: P31 restaurant, P131 Whistler, P571 1996, P625 coordinates, P856 official site.
1 hourMedium impact
3
Sprint 3: Content and coverage
Approximately 2 weeks · Score impact: 70 to 80
Build /about/ page with the thirty-year history
Owner narrative, head chef bio, named individuals, real photographs, founding 1996
2 daysHigh impact
Publish PIPEDA-compliant /privacy-policy/
Forms, cookies, retention, third parties, contact for privacy officer
1 dayLegal req
Build /vegan/, /catering/, /private-events/ and /gift-cards/
Captures four high-intent revenue streams currently absent from the site
3 daysHigh impact
Rebuild /food-bar-menu/ as semantic HTML
Replace the PNG screenshots. Items, prices, descriptions and allergens become real HTML, paired with Menu schema.
2 daysCritical impact
Rebuild /reservations/ with embedded OpenTable widget
Plus walk-in policy, party-size cap, cancellation rules and a dietary-note call-to-action
1 dayHigh impact
Submit to Tourism Whistler and Whistler Chamber directories
Highest-ROI Whistler-specific citations. Both are authoritative and tourist-intent aligned.
2 hoursHigh impact
Press outreach using the thirty-year independent angle
Pique Newsmagazine, Vancouver Sun, BC Living, Eater Vancouver
3 daysMedium impact
Apple Business Connect, Bing Places and Foursquare
Apple Maps reaches every iPhone tourist; Bing Places feeds Copilot; Foursquare seeds many secondary directories.
2 hoursMedium impact
4
Sprint 4: Performance and rebuild
Approximately 3 to 5 days · Score impact: 80 to 92
Preload hero, convert to WebP, fix fetchpriority
Move slide-1.jpg out of the CSS background; use a <picture> element with WebP/AVIF; preload it with fetchpriority="high"
2 hoursCritical impact
Dequeue duplicate FontAwesome 5.3.1
Elementor already bundles 5.15.3. Drop the older version with wp_dequeue_style.
15 minMedium impact
Drop the third-party Google Fonts request
Elementor's local cache already serves Roboto. This saves two third-party round trips.
15 minMedium impact
Cut Roboto from 12 weights to 3 (400, 500, 700)
Most weights are unused on the site
15 minMedium impact
Add HSTS, Permissions-Policy and X-Frame-Options headers
All three are currently missing from the response
30 minMedium impact
(Optional) Rebuild the homepage without Elementor
Saves approximately 268KB of JavaScript and 110KB of inline CSS, lifting Performance to 90+
3 daysHigh impact
Today
42
Grade D
After Sprint 1
58
+16
After Sprint 2
70
+28
After Sprint 3
80
+38

Summary

Mongolie Grill has thirty years of operating history in Whistler, a real address with an active Google Maps profile, five linked social profiles, and competent hosting. The fundamentals are intact. What is missing is the layer of structured data, current content, named individuals, accurate analytics, and a working reservations flow that Google and AI engines now use to identify and rank a local restaurant.

Sprint 1 alone, which fits inside a single day of work, lifts the score by sixteen points. Sprint 2 adds the schema and AI surfacing that drives the largest visibility gains. By the end of Sprint 3 the site is in genuine shape to compete for tourist intent in the most-searched Canadian dining destination.