Sample report · Independent café · Bristol

Joe's Coffee

https://joescoffee.co.uk

Demo · what £15 unlocks

Visibility Gaps

7 ISSUES FOUND

Schema.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 ENGINE

Inconsistent NAP citations

Your phone number varies across 14 directory sources (Yell, Google Business, Tripadvisor). This causes Perplexity and Gemini to hallucinate.

DETECTED BY: PERPLEXITY

Sunday 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-5

robots.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 ANALYSIS

Reviews 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 GEMINI

Menu 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-5

Confused 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 GEMINI

The 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.

Schema.org markup

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"
  ]
}
Competitor comparison

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).

Small St Espresso
https://smallstreetespresso.co.uk

Complete LocalBusiness schema, blog posts answering 'best flat white Bristol', cited by Perplexity and Gemini.

strong
Playground Coffee
https://playgroundcoffee.co.uk

Good GBP signals but no Review schema. ChatGPT mentions them but cannot quote ratings.

moderate
Spicer + Cole
https://spicerandcole.co.uk

Multi-location markup is clean, but their menu is also PDF-only — same gap as you.

moderate
Full Court Press
https://fcp.coffee

No structured data at all. You will overtake them in 2-3 weeks once your fixes ship.

weak
Fix guide

Step-by-step resolutions

Fix the LocalBusiness schema

  1. Remove the wrapping <div style="display:none"> around your current JSON-LD block.
  2. Replace the contents with the Schema.org markup above.
  3. Validate with Google's Rich Results Test (search.google.com/test/rich-results).
  4. Deploy and request a recrawl in Google Search Console.

Unblock GPTBot and PerplexityBot

  1. Open /robots.txt at your site root.
  2. Delete the 'User-agent: GPTBot' and 'User-agent: PerplexityBot' Disallow blocks.
  3. Add 'User-agent: GPTBot\nAllow: /' and the same for PerplexityBot, ClaudeBot, Google-Extended.
  4. Save, redeploy, and verify at yourdomain.com/robots.txt.

Resolve the Sunday hours mismatch

  1. Decide the true Sunday hours (we recommend matching GBP: 9-3pm).
  2. Update the openingHoursSpecification in the JSON-LD above.
  3. Edit the human-readable hours in your site footer to match.
  4. Confirm Google Business Profile shows the same hours.

Replace the PDF menu with HTML

  1. Build a /menu page with each item as <h3> + price + short description.
  2. Add Menu and MenuItem schema (template included in your delivery email).
  3. Keep the PDF as a download for accessibility, but link to the HTML page first.

Surface your 412 Google reviews

  1. Embed the aggregateRating block (already in the JSON-LD above).
  2. Add a /reviews page that quotes 6-10 recent reviews with Review schema each.
  3. Link to the page from your homepage hero.
Your turn

Get this for your own site

Free scan in 30 seconds. £15 one-time to unlock the full Pro Report you just saw.

Scan my site