Joe's Coffee
https://joescoffee.co.uk
Visibility Gaps
7 ISSUES FOUNDSchema.org markup error
The LocalBusiness schema is nested inside a <div> with display:none, so crawlers and AI fetchers skip it. Service area and opening hours are invisible.
DETECTED BY: SEARCHGPT ENGINEInconsistent NAP citations
Your phone number varies across 14 directory sources (Yell, Google Business, Tripadvisor). This causes Perplexity and Gemini to hallucinate.
DETECTED BY: PERPLEXITYSunday hours contradict Google Business Profile
Your site says 'Closed Sundays' but GBP lists 9-3pm. ChatGPT defaults to GBP, sending users to a closed shop.
DETECTED BY: OPENAI GPT-5robots.txt blocks GPTBot and PerplexityBot
Your robots.txt has 'Disallow: /' for GPTBot and PerplexityBot. ChatGPT and Perplexity cannot index any of your pages.
DETECTED BY: CRAWL ANALYSISReviews not surfaced to AI
You have 412 four-and-five-star reviews on Google, but no Review schema on your site. AI assistants cite competitors' reviews instead.
DETECTED BY: GOOGLE GEMINIMenu locked behind a PDF
Your menu is a downloadable PDF. AI models do not extract it, so users asking 'does Joe's have oat milk?' get 'unknown'.
DETECTED BY: OPENAI GPT-5Confused with 'Joe's Cafe' in Bath
Three of four models conflate you with a similarly named cafe 12 miles away. Add disambiguation in your About page and Wikipedia entry.
DETECTED BY: GOOGLE GEMINIThe fixes in this report are technical and should be implemented by a qualified web developer or agency. We do not take responsibility for any damage to your website if changes are made without professional assistance.
Paste this into your site <head>
Paste inside your <head> as a <script type="application/ld+json"> block on every page. This fixes the Sunday-hours contradiction, exposes your 412 reviews to AI, and disambiguates you from 'Joe's Cafe' in Bath via the geo + sameAs fields.
{
"@context": "https://schema.org",
"@type": "CafeOrCoffeeShop",
"name": "Joe's Coffee",
"image": "https://joescoffee.co.uk/storefront.jpg",
"url": "https://joescoffee.co.uk",
"telephone": "+44-117-555-0142",
"priceRange": "££",
"servesCuisine": ["Coffee", "Brunch", "Pastries"],
"address": {
"@type": "PostalAddress",
"streetAddress": "42 Park Street",
"addressLocality": "Bristol",
"postalCode": "BS1 5JG",
"addressCountry": "GB"
},
"geo": { "@type": "GeoCoordinates", "latitude": 51.4554, "longitude": -2.6035 },
"openingHoursSpecification": [
{ "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "07:00", "closes": "18:00" },
{ "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "08:00", "closes": "18:00" },
{ "@type": "OpeningHoursSpecification", "dayOfWeek": "Sunday", "opens": "09:00", "closes": "15:00" }
],
"aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.7", "reviewCount": "412" },
"sameAs": [
"https://www.google.com/maps/place/Joes-Coffee-Bristol",
"https://www.instagram.com/joescoffeebristol"
]
}How you stack up
You sit fourth of five comparable Bristol independents in AI visibility. Shipping the schema and robots.txt fixes below will move you to second within a normal recrawl cycle (~14 days).
Complete LocalBusiness schema, blog posts answering 'best flat white Bristol', cited by Perplexity and Gemini.
Good GBP signals but no Review schema. ChatGPT mentions them but cannot quote ratings.
Multi-location markup is clean, but their menu is also PDF-only — same gap as you.
No structured data at all. You will overtake them in 2-3 weeks once your fixes ship.
Step-by-step resolutions
Fix the LocalBusiness schema
- Remove the wrapping <div style="display:none"> around your current JSON-LD block.
- Replace the contents with the Schema.org markup above.
- Validate with Google's Rich Results Test (search.google.com/test/rich-results).
- Deploy and request a recrawl in Google Search Console.
Unblock GPTBot and PerplexityBot
- Open /robots.txt at your site root.
- Delete the 'User-agent: GPTBot' and 'User-agent: PerplexityBot' Disallow blocks.
- Add 'User-agent: GPTBot\nAllow: /' and the same for PerplexityBot, ClaudeBot, Google-Extended.
- Save, redeploy, and verify at yourdomain.com/robots.txt.
Resolve the Sunday hours mismatch
- Decide the true Sunday hours (we recommend matching GBP: 9-3pm).
- Update the openingHoursSpecification in the JSON-LD above.
- Edit the human-readable hours in your site footer to match.
- Confirm Google Business Profile shows the same hours.
Replace the PDF menu with HTML
- Build a /menu page with each item as <h3> + price + short description.
- Add Menu and MenuItem schema (template included in your delivery email).
- Keep the PDF as a download for accessibility, but link to the HTML page first.
Surface your 412 Google reviews
- Embed the aggregateRating block (already in the JSON-LD above).
- Add a /reviews page that quotes 6-10 recent reviews with Review schema each.
- Link to the page from your homepage hero.
Get this for your own site
Free scan in 30 seconds. £15 one-time to unlock the full Pro Report you just saw.