SEO & GEO Audit
Mountain Magic — preliminary audit for staging.mountain-magic.co.za
This audit was run against staging.mountain-magic.co.za, not the production domain. The site is still in development and a lot will change before launch — content, URLs, images, schema, and indexing settings included.
Findings and suggestions are intended as a developer handoff to make pre-launch SEO/GEO work easier. Re-run the audit on mountain-magic.co.za after go-live and treat this as a working draft, not final sign-off.
Yoast JSON-LD is already output on the homepage, but canonicals and @id values currently reference the staging hostname.
This audit covers 32 URLs from the Yoast sitemap (15 pages, 4 blog posts, plus legacy events, categories, and author archives). The staging site has a solid WordPress + Yoast foundation: homepage title, meta description, canonical, Open Graph, and a Yoast @graph with WebSite and Organization. Gaps for launch: LodgingBusiness schema for a hospitality property, FAQPage on the support page, staging hostnames in canonicals/JSON-LD, missing H1s on several Kadence templates, inconsistent social images on cabin pages, legacy event URLs still in the sitemap, and content polish (e.g. “Nautural” typo). Priorities: swap staging URLs before production, add lodging + FAQ schema, fix H1s and typos, then clean the sitemap. Use the full-site task list for copy-paste suggestions.
Video feedback on the staging site — design, mobile UX, and how this audit fits pre-launch.
Scope: 32 URLs from sitemap_index.xml (page, post, tribe_events, category, tag, author sitemaps).
Site-level: robots.txt and sitemap OK; Yoast WebSite + Organization in JSON-LD graph; LodgingBusiness not present; canonicals use staging hostname.
Pre-launch: Replace staging URLs; add LodgingBusiness + FAQPage schema; fix missing H1s; set per-page og:image on cabins; remove or noindex legacy event/category URLs; fix homepage typo.
Homepage (staging.mountain-magic.co.za).
WordPress + Yoast — highest impact before production launch.
Production hostname swap — Update Yoast canonicals, OG URLs, and JSON-LD @id from staging to mountain-magic.co.za on launch day.
LodgingBusiness schema — Name, geo, 4 cabins, amenities (hot tub, braai, AC), contact. Critical for local and hospitality rich results.
Fix H1 structure — Kadence blocks output headings as styled text without semantic H1 on key pages. Add one H1 per URL matching the page title.
FAQPage on support-faq — Mirror real FAQ content; helps AI engines cite location, capacity, and amenities answers.
Statistics in copy — “6 minutes to Wilderness”, “up to 16 guests across 4 cabins”, “4 self-catering cabins” — concrete numbers AI models extract easily.
Guest review schema — Consider Review or aggregateRating once you have verified Google review data for production.
Cabin name capitalisation — Standardise headings (Sweet Retreat vs SWEET RETREAT vs the nook).
Image alt text — Replace filename-based alts with descriptive cabin and location text.
Social sameAs — Add Facebook and Instagram URLs to Organization schema (links already in footer).
Traditional SEO focuses on how search engines crawl, index, and rank pages for keyword queries. GEO (Generative Engine Optimisation) extends this to AI search — ChatGPT, Perplexity, Google AI Overviews — by optimising for how models extract, interpret, and cite content. Both rely on clear structure (H1s, schema), quality content, and authoritative signals. The same technical and content improvements that help Google often help AI engines too.
Use production URLs when the site launches. Validate after publishing.
{
"@context": "https://schema.org",
"@type": "LodgingBusiness",
"name": "Mountain Magic",
"url": "https://mountain-magic.co.za",
"image": "https://mountain-magic.co.za/wp-content/uploads/2026/06/mountain-magic-logo-final-2.png",
"description": "Self-catering cabin accommodation in Hoekwil on the Garden Route — forest views, hot tubs, and peaceful escapes near Wilderness.",
"telephone": "+27-71-337-9281",
"email": "jess@mountain-magic.co.za",
"address": {
"@type": "PostalAddress",
"addressLocality": "Hoekwil",
"addressRegion": "Western Cape",
"postalCode": "6538",
"addressCountry": "ZA"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "-33.995",
"longitude": "22.580"
},
"amenityFeature": [
{"@type": "LocationFeatureSpecification", "name": "Wood-fired hot tub", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Braai facilities", "value": true},
{"@type": "LocationFeatureSpecification", "name": "Air conditioning", "value": true}
],
"numberOfRooms": 4,
"priceRange": "$$"
}
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Where is Mountain Magic located?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Mountain Magic is in Hoekwil on the Garden Route, about six minutes from Wilderness beach, restaurants, and activities."
}
},
{
"@type": "Question",
"name": "How many guests can Mountain Magic accommodate?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Four self-catering cabins sleep between 2 and 6 guests each. Book multiple cabins for groups of up to 16."
}
},
{
"@type": "Question",
"name": "What amenities do the cabins include?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Each cabin has a private outdoor area with braai facilities, KolKol wood-fired hot tubs, air conditioning, and views of the fynbos and valley."
}
}
]
}
Run on staging now; re-test on production after launch.