{
 "site": "https://www.rgleeson.com",
 "date": "2026-11-04",
 "note": "Competitors are labelled A to D; their identifying details are removed from this file.",
 "scores": {
  "subject": {
   "cats": {
    "ai": {
     "score": 100,
     "items": [
      {
       "label": "Words in the raw HTML: 300 or more, and at least 90% of what a visitor sees",
       "max": 25,
       "pts": 25
      },
      {
       "label": "An AI crawler (GPTBot) is sent the same page as a browser",
       "max": 25,
       "pts": 25
      },
      {
       "label": "robots.txt lets the AI crawlers in",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An llms.txt file",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Structured data that parses",
       "max": 15,
       "pts": 15
      },
      {
       "label": "One main landmark",
       "max": 5,
       "pts": 5
      },
      {
       "label": "A skip link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "seo": {
     "score": 65,
     "items": [
      {
       "label": "Lighthouse SEO score (mobile) × 0.3",
       "max": 30,
       "pts": 30
      },
      {
       "label": "Title 30 to 60 characters",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Description 70 to 160 characters",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Canonical link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Open Graph title, description, image and URL",
       "max": 5,
       "pts": 5
      },
      {
       "label": "One h1",
       "max": 5,
       "pts": 5
      },
      {
       "label": "No skipped heading levels",
       "max": 5,
       "pts": 0
      },
      {
       "label": "A sitemap, declared in robots.txt",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Position for \"web design Dover\": top 3 = 20, top 10 = 12, top 20 = 5",
       "max": 20,
       "pts": 0
      }
     ]
    },
    "speed": {
     "score": 76,
     "items": [
      {
       "label": "Lighthouse performance, mobile × 0.5",
       "max": 50,
       "pts": 41
      },
      {
       "label": "Lighthouse performance, desktop × 0.2",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Main content painted on a phone: 2.5s or less = 15, 4s or less = 7",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Page weight on a phone: under 1 MB = 15, under 2 MB = 7",
       "max": 15,
       "pts": 15
      }
     ]
    },
    "a11y": {
     "score": 99,
     "items": [
      {
       "label": "Lighthouse accessibility score (mobile) × 0.5",
       "max": 50,
       "pts": 49
      },
      {
       "label": "Text failing contrast: 1% or less = 20, 5% or less = 10",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Every image has alt text (empty is fine for decoration)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Header, navigation, main and footer landmarks, plus a skip link",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "design": {
     "score": 78,
     "items": [
      {
       "label": "Expert review: hierarchy, consistency, imagery, distinctiveness (0 to 20) × 2.5",
       "max": 50,
       "pts": 38
      },
      {
       "label": "Two typefaces or fewer (three = 5)",
       "max": 10,
       "pts": 5
      },
      {
       "label": "Type sizes in use: 10 or fewer = 10, 14 or fewer = 5",
       "max": 10,
       "pts": 5
      },
      {
       "label": "Body text 16px or more, line height 1.4 to 1.8",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Line length 45 to 85 characters at desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Layout shift 0.1 or less on phone and desktop",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "convert": {
     "score": 85,
     "items": [
      {
       "label": "A way to get in touch in the first screen on a phone",
       "max": 15,
       "pts": 0
      },
      {
       "label": "A way to get in touch in the first screen on desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "A tap-to-call phone link",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An email link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "An enquiry form on the page",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Prices shown",
       "max": 15,
       "pts": 15
      },
      {
       "label": "Reviews or a client testimonial on the page",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Reading ease (Flesch) 60 or more = 10, 50 or more = 5",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Words on the page: 600 or more = 15, 300 or more = 7",
       "max": 15,
       "pts": 15
      }
     ]
    },
    "trust": {
     "score": 80,
     "items": [
      {
       "label": "HSTS header",
       "max": 10,
       "pts": 10
      },
      {
       "label": "nosniff, referrer policy and frame protection headers",
       "max": 15,
       "pts": 15
      },
      {
       "label": "Content Security Policy",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Business named in structured data",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Rating in structured data (AggregateRating)",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Lighthouse best practices (mobile) × 0.2",
       "max": 20,
       "pts": 20
      },
      {
       "label": "A tap-to-call phone link",
       "max": 15,
       "pts": 15
      }
     ]
    }
   },
   "overall": 84
  },
  "cA": {
   "cats": {
    "ai": {
     "score": 60,
     "items": [
      {
       "label": "Words in the raw HTML: 300 or more, and at least 90% of what a visitor sees",
       "max": 25,
       "pts": 25
      },
      {
       "label": "An AI crawler (GPTBot) is sent the same page as a browser",
       "max": 25,
       "pts": 0
      },
      {
       "label": "robots.txt lets the AI crawlers in",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An llms.txt file",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Structured data that parses",
       "max": 15,
       "pts": 15
      },
      {
       "label": "One main landmark",
       "max": 5,
       "pts": 0
      },
      {
       "label": "A skip link",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "seo": {
     "score": 93,
     "items": [
      {
       "label": "Lighthouse SEO score (mobile) × 0.3",
       "max": 30,
       "pts": 28
      },
      {
       "label": "Title 30 to 60 characters",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Description 70 to 160 characters",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Canonical link",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Open Graph title, description, image and URL",
       "max": 5,
       "pts": 5
      },
      {
       "label": "One h1",
       "max": 5,
       "pts": 5
      },
      {
       "label": "No skipped heading levels",
       "max": 5,
       "pts": 5
      },
      {
       "label": "A sitemap, declared in robots.txt",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Position for \"web design Dover\": top 3 = 20, top 10 = 12, top 20 = 5",
       "max": 20,
       "pts": 20
      }
     ]
    },
    "speed": {
     "score": 67,
     "items": [
      {
       "label": "Lighthouse performance, mobile × 0.5",
       "max": 50,
       "pts": 34
      },
      {
       "label": "Lighthouse performance, desktop × 0.2",
       "max": 20,
       "pts": 18
      },
      {
       "label": "Main content painted on a phone: 2.5s or less = 15, 4s or less = 7",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Page weight on a phone: under 1 MB = 15, under 2 MB = 7",
       "max": 15,
       "pts": 15
      }
     ]
    },
    "a11y": {
     "score": 65,
     "items": [
      {
       "label": "Lighthouse accessibility score (mobile) × 0.5",
       "max": 50,
       "pts": 45
      },
      {
       "label": "Text failing contrast: 1% or less = 20, 5% or less = 10",
       "max": 20,
       "pts": 0
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Every image has alt text (empty is fine for decoration)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Header, navigation, main and footer landmarks, plus a skip link",
       "max": 10,
       "pts": 0
      }
     ]
    },
    "design": {
     "score": 58,
     "items": [
      {
       "label": "Expert review: hierarchy, consistency, imagery, distinctiveness (0 to 20) × 2.5",
       "max": 50,
       "pts": 18
      },
      {
       "label": "Two typefaces or fewer (three = 5)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Type sizes in use: 10 or fewer = 10, 14 or fewer = 5",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Body text 16px or more, line height 1.4 to 1.8",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Line length 45 to 85 characters at desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Layout shift 0.1 or less on phone and desktop",
       "max": 10,
       "pts": 0
      }
     ]
    },
    "convert": {
     "score": 47,
     "items": [
      {
       "label": "A way to get in touch in the first screen on a phone",
       "max": 15,
       "pts": 15
      },
      {
       "label": "A way to get in touch in the first screen on desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "A tap-to-call phone link",
       "max": 10,
       "pts": 0
      },
      {
       "label": "An email link",
       "max": 5,
       "pts": 0
      },
      {
       "label": "An enquiry form on the page",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Prices shown",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Reviews or a client testimonial on the page",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Reading ease (Flesch) 60 or more = 10, 50 or more = 5",
       "max": 10,
       "pts": 5
      },
      {
       "label": "Words on the page: 600 or more = 15, 300 or more = 7",
       "max": 15,
       "pts": 7
      }
     ]
    },
    "trust": {
     "score": 69,
     "items": [
      {
       "label": "HSTS header",
       "max": 10,
       "pts": 10
      },
      {
       "label": "nosniff, referrer policy and frame protection headers",
       "max": 15,
       "pts": 15
      },
      {
       "label": "Content Security Policy",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Business named in structured data",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Rating in structured data (AggregateRating)",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Lighthouse best practices (mobile) × 0.2",
       "max": 20,
       "pts": 19
      },
      {
       "label": "A tap-to-call phone link",
       "max": 15,
       "pts": 0
      }
     ]
    }
   },
   "overall": 68
  },
  "cB": {
   "cats": {
    "ai": {
     "score": 50,
     "items": [
      {
       "label": "Words in the raw HTML: 300 or more, and at least 90% of what a visitor sees",
       "max": 25,
       "pts": 25
      },
      {
       "label": "An AI crawler (GPTBot) is sent the same page as a browser",
       "max": 25,
       "pts": 0
      },
      {
       "label": "robots.txt lets the AI crawlers in",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An llms.txt file",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Structured data that parses",
       "max": 15,
       "pts": 15
      },
      {
       "label": "One main landmark",
       "max": 5,
       "pts": 0
      },
      {
       "label": "A skip link",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 0
      }
     ]
    },
    "seo": {
     "score": 83,
     "items": [
      {
       "label": "Lighthouse SEO score (mobile) × 0.3",
       "max": 30,
       "pts": 26
      },
      {
       "label": "Title 30 to 60 characters",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Description 70 to 160 characters",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Canonical link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Open Graph title, description, image and URL",
       "max": 5,
       "pts": 0
      },
      {
       "label": "One h1",
       "max": 5,
       "pts": 5
      },
      {
       "label": "No skipped heading levels",
       "max": 5,
       "pts": 5
      },
      {
       "label": "A sitemap, declared in robots.txt",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Position for \"web design Dover\": top 3 = 20, top 10 = 12, top 20 = 5",
       "max": 20,
       "pts": 12
      }
     ]
    },
    "speed": {
     "score": 55,
     "items": [
      {
       "label": "Lighthouse performance, mobile × 0.5",
       "max": 50,
       "pts": 31
      },
      {
       "label": "Lighthouse performance, desktop × 0.2",
       "max": 20,
       "pts": 17
      },
      {
       "label": "Main content painted on a phone: 2.5s or less = 15, 4s or less = 7",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Page weight on a phone: under 1 MB = 15, under 2 MB = 7",
       "max": 15,
       "pts": 7
      }
     ]
    },
    "a11y": {
     "score": 38,
     "items": [
      {
       "label": "Lighthouse accessibility score (mobile) × 0.5",
       "max": 50,
       "pts": 38
      },
      {
       "label": "Text failing contrast: 1% or less = 20, 5% or less = 10",
       "max": 20,
       "pts": 0
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Every image has alt text (empty is fine for decoration)",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Header, navigation, main and footer landmarks, plus a skip link",
       "max": 10,
       "pts": 0
      }
     ]
    },
    "design": {
     "score": 55,
     "items": [
      {
       "label": "Expert review: hierarchy, consistency, imagery, distinctiveness (0 to 20) × 2.5",
       "max": 50,
       "pts": 15
      },
      {
       "label": "Two typefaces or fewer (three = 5)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Type sizes in use: 10 or fewer = 10, 14 or fewer = 5",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Body text 16px or more, line height 1.4 to 1.8",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Line length 45 to 85 characters at desktop",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Layout shift 0.1 or less on phone and desktop",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "convert": {
     "score": 75,
     "items": [
      {
       "label": "A way to get in touch in the first screen on a phone",
       "max": 15,
       "pts": 15
      },
      {
       "label": "A way to get in touch in the first screen on desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "A tap-to-call phone link",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An email link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "An enquiry form on the page",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Prices shown",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Reviews or a client testimonial on the page",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Reading ease (Flesch) 60 or more = 10, 50 or more = 5",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Words on the page: 600 or more = 15, 300 or more = 7",
       "max": 15,
       "pts": 15
      }
     ]
    },
    "trust": {
     "score": 34,
     "items": [
      {
       "label": "HSTS header",
       "max": 10,
       "pts": 0
      },
      {
       "label": "nosniff, referrer policy and frame protection headers",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Content Security Policy",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Business named in structured data",
       "max": 20,
       "pts": 0
      },
      {
       "label": "Rating in structured data (AggregateRating)",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Lighthouse best practices (mobile) × 0.2",
       "max": 20,
       "pts": 14
      },
      {
       "label": "A tap-to-call phone link",
       "max": 15,
       "pts": 15
      }
     ]
    }
   },
   "overall": 57
  },
  "cC": {
   "cats": {
    "ai": {
     "score": 85,
     "items": [
      {
       "label": "Words in the raw HTML: 300 or more, and at least 90% of what a visitor sees",
       "max": 25,
       "pts": 25
      },
      {
       "label": "An AI crawler (GPTBot) is sent the same page as a browser",
       "max": 25,
       "pts": 25
      },
      {
       "label": "robots.txt lets the AI crawlers in",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An llms.txt file",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Structured data that parses",
       "max": 15,
       "pts": 15
      },
      {
       "label": "One main landmark",
       "max": 5,
       "pts": 5
      },
      {
       "label": "A skip link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 0
      }
     ]
    },
    "seo": {
     "score": 75,
     "items": [
      {
       "label": "Lighthouse SEO score (mobile) × 0.3",
       "max": 30,
       "pts": 30
      },
      {
       "label": "Title 30 to 60 characters",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Description 70 to 160 characters",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Canonical link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Open Graph title, description, image and URL",
       "max": 5,
       "pts": 5
      },
      {
       "label": "One h1",
       "max": 5,
       "pts": 5
      },
      {
       "label": "No skipped heading levels",
       "max": 5,
       "pts": 5
      },
      {
       "label": "A sitemap, declared in robots.txt",
       "max": 10,
       "pts": 5
      },
      {
       "label": "Position for \"web design Dover\": top 3 = 20, top 10 = 12, top 20 = 5",
       "max": 20,
       "pts": 20
      }
     ]
    },
    "speed": {
     "score": 100,
     "items": [
      {
       "label": "Lighthouse performance, mobile × 0.5",
       "max": 50,
       "pts": 50
      },
      {
       "label": "Lighthouse performance, desktop × 0.2",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Main content painted on a phone: 2.5s or less = 15, 4s or less = 7",
       "max": 15,
       "pts": 15
      },
      {
       "label": "Page weight on a phone: under 1 MB = 15, under 2 MB = 7",
       "max": 15,
       "pts": 15
      }
     ]
    },
    "a11y": {
     "score": 68,
     "items": [
      {
       "label": "Lighthouse accessibility score (mobile) × 0.5",
       "max": 50,
       "pts": 48
      },
      {
       "label": "Text failing contrast: 1% or less = 20, 5% or less = 10",
       "max": 20,
       "pts": 0
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Every image has alt text (empty is fine for decoration)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Header, navigation, main and footer landmarks, plus a skip link",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "design": {
     "score": 73,
     "items": [
      {
       "label": "Expert review: hierarchy, consistency, imagery, distinctiveness (0 to 20) × 2.5",
       "max": 50,
       "pts": 43
      },
      {
       "label": "Two typefaces or fewer (three = 5)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Type sizes in use: 10 or fewer = 10, 14 or fewer = 5",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Body text 16px or more, line height 1.4 to 1.8",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Line length 45 to 85 characters at desktop",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Layout shift 0.1 or less on phone and desktop",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "convert": {
     "score": 90,
     "items": [
      {
       "label": "A way to get in touch in the first screen on a phone",
       "max": 15,
       "pts": 15
      },
      {
       "label": "A way to get in touch in the first screen on desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "A tap-to-call phone link",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An email link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "An enquiry form on the page",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Prices shown",
       "max": 15,
       "pts": 15
      },
      {
       "label": "Reviews or a client testimonial on the page",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Reading ease (Flesch) 60 or more = 10, 50 or more = 5",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Words on the page: 600 or more = 15, 300 or more = 7",
       "max": 15,
       "pts": 15
      }
     ]
    },
    "trust": {
     "score": 79,
     "items": [
      {
       "label": "HSTS header",
       "max": 10,
       "pts": 10
      },
      {
       "label": "nosniff, referrer policy and frame protection headers",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Content Security Policy",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Business named in structured data",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Rating in structured data (AggregateRating)",
       "max": 15,
       "pts": 15
      },
      {
       "label": "Lighthouse best practices (mobile) × 0.2",
       "max": 20,
       "pts": 19
      },
      {
       "label": "A tap-to-call phone link",
       "max": 15,
       "pts": 15
      }
     ]
    }
   },
   "overall": 81
  },
  "cD": {
   "cats": {
    "ai": {
     "score": 60,
     "items": [
      {
       "label": "Words in the raw HTML: 300 or more, and at least 90% of what a visitor sees",
       "max": 25,
       "pts": 25
      },
      {
       "label": "An AI crawler (GPTBot) is sent the same page as a browser",
       "max": 25,
       "pts": 25
      },
      {
       "label": "robots.txt lets the AI crawlers in",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An llms.txt file",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Structured data that parses",
       "max": 15,
       "pts": 0
      },
      {
       "label": "One main landmark",
       "max": 5,
       "pts": 0
      },
      {
       "label": "A skip link",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 0
      }
     ]
    },
    "seo": {
     "score": 90,
     "items": [
      {
       "label": "Lighthouse SEO score (mobile) × 0.3",
       "max": 30,
       "pts": 30
      },
      {
       "label": "Title 30 to 60 characters",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Description 70 to 160 characters",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Canonical link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "Open Graph title, description, image and URL",
       "max": 5,
       "pts": 5
      },
      {
       "label": "One h1",
       "max": 5,
       "pts": 5
      },
      {
       "label": "No skipped heading levels",
       "max": 5,
       "pts": 0
      },
      {
       "label": "A sitemap, declared in robots.txt",
       "max": 10,
       "pts": 5
      },
      {
       "label": "Position for \"web design Dover\": top 3 = 20, top 10 = 12, top 20 = 5",
       "max": 20,
       "pts": 20
      }
     ]
    },
    "speed": {
     "score": 62,
     "items": [
      {
       "label": "Lighthouse performance, mobile × 0.5",
       "max": 50,
       "pts": 36
      },
      {
       "label": "Lighthouse performance, desktop × 0.2",
       "max": 20,
       "pts": 19
      },
      {
       "label": "Main content painted on a phone: 2.5s or less = 15, 4s or less = 7",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Page weight on a phone: under 1 MB = 15, under 2 MB = 7",
       "max": 15,
       "pts": 7
      }
     ]
    },
    "a11y": {
     "score": 70,
     "items": [
      {
       "label": "Lighthouse accessibility score (mobile) × 0.5",
       "max": 50,
       "pts": 40
      },
      {
       "label": "Text failing contrast: 1% or less = 20, 5% or less = 10",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Every control 24px or more on a phone",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Every image has alt text (empty is fine for decoration)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Header, navigation, main and footer landmarks, plus a skip link",
       "max": 10,
       "pts": 0
      }
     ]
    },
    "design": {
     "score": 53,
     "items": [
      {
       "label": "Expert review: hierarchy, consistency, imagery, distinctiveness (0 to 20) × 2.5",
       "max": 50,
       "pts": 18
      },
      {
       "label": "Two typefaces or fewer (three = 5)",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Type sizes in use: 10 or fewer = 10, 14 or fewer = 5",
       "max": 10,
       "pts": 5
      },
      {
       "label": "Body text 16px or more, line height 1.4 to 1.8",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Line length 45 to 85 characters at desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Layout shift 0.1 or less on phone and desktop",
       "max": 10,
       "pts": 10
      }
     ]
    },
    "convert": {
     "score": 42,
     "items": [
      {
       "label": "A way to get in touch in the first screen on a phone",
       "max": 15,
       "pts": 0
      },
      {
       "label": "A way to get in touch in the first screen on desktop",
       "max": 10,
       "pts": 10
      },
      {
       "label": "A tap-to-call phone link",
       "max": 10,
       "pts": 10
      },
      {
       "label": "An email link",
       "max": 5,
       "pts": 5
      },
      {
       "label": "An enquiry form on the page",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Prices shown",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Reviews or a client testimonial on the page",
       "max": 10,
       "pts": 10
      },
      {
       "label": "Reading ease (Flesch) 60 or more = 10, 50 or more = 5",
       "max": 10,
       "pts": 0
      },
      {
       "label": "Words on the page: 600 or more = 15, 300 or more = 7",
       "max": 15,
       "pts": 7
      }
     ]
    },
    "trust": {
     "score": 54,
     "items": [
      {
       "label": "HSTS header",
       "max": 10,
       "pts": 0
      },
      {
       "label": "nosniff, referrer policy and frame protection headers",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Content Security Policy",
       "max": 5,
       "pts": 0
      },
      {
       "label": "Business named in structured data",
       "max": 20,
       "pts": 20
      },
      {
       "label": "Rating in structured data (AggregateRating)",
       "max": 15,
       "pts": 0
      },
      {
       "label": "Lighthouse best practices (mobile) × 0.2",
       "max": 20,
       "pts": 19
      },
      {
       "label": "A tap-to-call phone link",
       "max": 15,
       "pts": 15
      }
     ]
    }
   },
   "overall": 65
  }
 },
 "findings": [
  {
   "id": "F1",
   "area": "Search",
   "when": "Start this week, then ongoing",
   "title": "You're not in the top 20 for \"web design Dover\"",
   "impact": true,
   "many": true,
   "persistent": true,
   "evidence": [
    "Three local searches on 4 November 2026 (\"web design Dover\", \"website designer Dover Kent small business\" and one longer variant): rgleeson.com appears in none of the top 15 to 20 results.",
    "All four competitors in this report appear in all three, in positions 1 to 9; for \"web design Dover\" they hold positions 1 to 4.",
    "The Web Services page is one page out of 32. The home page and 12 case studies are about product design, so most of the site doesn't mention Dover or web design for local businesses."
   ],
   "why": "People looking for a local web designer search for it, and AI assistants build their answers from the same results. A page that isn't in the top 20 isn't seen, however good it is.",
   "fix": "Check Search Console for the impressions Web Services gets for Dover searches, so you start from real numbers. Then: ask your website clients for Google reviews; publish the Action Carpets and Downtogroundworks case studies with their towns named; list the business on the local directories that appear in these results (FreeIndex, Kent Small Business, Business Magnet); and link to Web Services from the home page's first screen.",
   "effort": "Two to four hours to start; reviews and links build over months",
   "severity": "Critical"
  },
  {
   "id": "F2",
   "area": "Search",
   "when": "This week",
   "title": "Your Google listing's name is missing from your site, and another business owns it",
   "impact": true,
   "many": true,
   "persistent": true,
   "evidence": [
    "The Google Business Profile trades as \"RG Web Design\" (from a profile screenshot, 24 September 2026). The name appears 0 times across the 32 pages in the sitemap.",
    "A search for \"RG Web Design Dover\" returns rgwebdesign.co.uk as result 1: a different web design business, based in Sussex. rgleeson.com is not in the top 10.",
    "The structured data calls the business \"Richard Gleeson — Web Design & Build\", and its sameAs links point only to LinkedIn."
   ],
   "why": "Google and AI assistants match a business across sources by its name. Here the listing's name points at someone else's website, and your website never claims it.",
   "fix": "Pick one public name. If it stays RG Web Design, show \"Trading as RG Web Design\" on every page, add it as alternateName in the structured data and add the Google profile to sameAs. If the clash is a problem, rename the listing to match the site.",
   "effort": "An hour, plus the naming decision",
   "severity": "Critical"
  },
  {
   "id": "F3",
   "area": "Performance",
   "when": "This month",
   "title": "Pages take 3.5 to 5.4 seconds to show their main content on a phone",
   "impact": false,
   "many": true,
   "persistent": true,
   "evidence": [
    "Lighthouse, mobile, simulated slow 4G: largest contentful paint 3.5 to 5.4s on all six pages tested. Google's \"good\" line is 2.5s. Competitor C does it in 2.0s.",
    "Before the first paint the browser has to visit five servers: this site, two for Cabinet Grotesk (Fontshare) and two for Inter (Google Fonts).",
    "Third-party files are 53% of the Web Services page's weight and 88% of the AI audit page's: Google Analytics (158 KB, 44% of it unused) and the fonts.",
    "The hero headline fades in word by word and sections start invisible, so the main content isn't counted as painted until the animation runs."
   ],
   "why": "On desktop the same pages score 93 to 99, so this is a phone problem, and most local searches happen on phones. Speed is also one of the signals Google uses to rank pages.",
   "fix": "Self-host the four font files and preload the two used above the fold; show the first screen without the reveal animation; load Analytics after the page has painted, or switch to a lighter tool. Re-run Lighthouse to confirm under 2.5s.",
   "effort": "Half a day",
   "severity": "Serious"
  },
  {
   "id": "F4",
   "area": "Content",
   "when": "This month",
   "title": "There's no rating or review count anywhere on Web Services",
   "impact": false,
   "many": true,
   "persistent": true,
   "evidence": [
    "Web Services shows one client quote (Vancat, \"sales have increased 200%\"), halfway down the page. There's no Google rating, no review count and no AggregateRating in the structured data.",
    "Competitor C puts \"5.0 on Google · 65 reviews\" in its first screen and in its structured data. Competitor A has a \"Top rated reviews\" section of client quotes."
   ],
   "why": "Someone choosing between five web designers looks for proof that other local businesses chose you. Reviews are also one of the things that decides who appears in Google's map results.",
   "fix": "Ask the clients on the Work page for a Google review. Once there are five or more, show the rating and count under the Web Services headline and add AggregateRating to the business's structured data.",
   "effort": "An hour to ask; showing it takes twenty minutes",
   "severity": "Serious"
  },
  {
   "id": "F5",
   "area": "AI and agents",
   "when": "This month",
   "title": "An AI agent can't book a call with you",
   "impact": true,
   "many": false,
   "persistent": true,
   "evidence": [
    "contact.html and websites.html offer enquiry forms only. There's no booking link on any page and no booking action in the structured data. None of the four competitors has one either."
   ],
   "why": "An agent acting for someone will read a contact form but won't fill in a stranger's form unprompted. A booking page with real slots is an action it can take. Few people use agents this way yet, which is why this isn't Critical.",
   "fix": "Turn on bookings in the Google Business Profile, or publish a booking page, and link it from Web Services, Contact and the structured data.",
   "effort": "An hour, plus deciding on available slots",
   "severity": "Serious"
  },
  {
   "id": "F6",
   "area": "Search",
   "when": "This week",
   "title": "Search snippets get cut short",
   "impact": false,
   "many": true,
   "persistent": true,
   "evidence": [
    "15 of 32 meta descriptions are over 160 characters, including Web Services (189); the longest is 293.",
    "7 of the 10 post titles are over 60 characters; the longest is 76."
   ],
   "why": "Google trims long titles and descriptions in results, often mid-sentence, and assistants that quote them do the same.",
   "fix": "Rewrite the 15 descriptions to under 155 characters with the answer first, and shorten the 7 post title tags.",
   "effort": "Two hours",
   "severity": "Serious"
  },
  {
   "id": "F7",
   "area": "AI and agents",
   "when": "This month",
   "title": "Half the pages carry no structured data",
   "impact": false,
   "many": false,
   "persistent": true,
   "evidence": [
    "16 of 32 pages have no JSON-LD: Work, About, Skills, Contact and all 12 case studies. Every block that does exist parses."
   ],
   "why": "The case studies are the evidence behind the services. Without structured data, nothing tells an assistant that each one is work by the same person and business.",
   "fix": "Add ProfilePage to About, ContactPage to Contact, and a CreativeWork to each case study, all pointing to the existing #richard and #business entities.",
   "effort": "Half a day",
   "severity": "Medium"
  },
  {
   "id": "F8",
   "area": "Images",
   "when": "This month",
   "title": "Images are heavier than they need to be",
   "impact": false,
   "many": false,
   "persistent": true,
   "evidence": [
    "152 images, 12.7 MB in total. Five case studies and the Work page carry 1.0 to 2.0 MB of images each; WEC is the heaviest at 1.96 MB.",
    "Journal covers are 2,000px wide and fill a 364px slot on a phone; Lighthouse puts the saving at 86 KB per cover. The covers are also lazy-loaded although they're in the first screen."
   ],
   "why": "Every extra kilobyte is a wait on a phone signal, and a lazy-loaded image in the first screen is fetched late on purpose.",
   "fix": "Serve 800, 1,200 and 2,000px versions with srcset and sizes, and drop loading=\"lazy\" from any image in the first screen.",
   "effort": "Two hours, scripted",
   "severity": "Medium"
  },
  {
   "id": "F9",
   "area": "Accessibility",
   "when": "This week",
   "title": "Footer headings skip a level on every page",
   "impact": false,
   "many": false,
   "persistent": true,
   "evidence": [
    "Every page jumps from the last h2 to the footer's h4 headings (\"Site\" and \"Contact\"). Lighthouse flags heading order on all six pages it tested."
   ],
   "why": "Screen readers and agents use the heading outline to understand a page. A skipped level suggests a missing section.",
   "fix": "Make the footer headings h2, styled as they are now, or plain labels.",
   "effort": "Fifteen minutes",
   "severity": "Medium"
  },
  {
   "id": "F10",
   "area": "Accessibility",
   "when": "This week",
   "title": "Six links are under the 24px tap target",
   "impact": false,
   "many": false,
   "persistent": true,
   "evidence": [
    "The six \"Open on its own\" links on the betCollab case study measure 134 × 21px. Every other control on the site meets 24px or is an inline text link."
   ],
   "why": "Small targets are hard to tap, and an agent working from a screenshot may not register them as controls.",
   "fix": "Add vertical padding so the links are at least 24px tall.",
   "effort": "Ten minutes",
   "severity": "Medium"
  },
  {
   "id": "F11",
   "area": "Security",
   "when": "This month",
   "title": "No Content Security Policy",
   "impact": false,
   "many": false,
   "persistent": true,
   "evidence": [
    "Responses send HSTS, nosniff, a referrer policy and frame protection, but no Content-Security-Policy header. Competitor A sends one."
   ],
   "why": "A policy stops injected scripts running if anything on the page is ever compromised, such as a third-party script.",
   "fix": "Add a CSP in the hosting config that allows this site, the two font services and Google Analytics, in report-only mode for a week first.",
   "effort": "An hour",
   "severity": "Medium"
  },
  {
   "id": "F12",
   "area": "Search",
   "when": "This week",
   "title": "One address takes two redirects",
   "impact": false,
   "many": false,
   "persistent": true,
   "evidence": [
    "http://rgleeson.com redirects to https://rgleeson.com, then to https://www.rgleeson.com (two 308s). The other two variants take one."
   ],
   "why": "Each hop adds a round trip and a chance for a crawler to give up.",
   "fix": "Point the http apex straight at https://www in the hosting settings.",
   "effort": "Ten minutes",
   "severity": "Medium"
  }
 ],
 "benchmark": {
  "ranAt": "2026-11-04T14:08:51.108Z",
  "pages": [
   {
    "id": "subject",
    "url": "https://www.rgleeson.com/websites.html",
    "finalUrl": "https://www.rgleeson.com/websites.html",
    "status": 200,
    "ttfbMs": 263,
    "headers": {
     "hsts": true,
     "csp": false,
     "nosniff": true,
     "referrer": true,
     "frame": true,
     "server": "Vercel"
    },
    "raw": {
     "title": "Web design in Dover, Kent — Richard Gleeson",
     "titleLen": 43,
     "desc": "Professional business websites for service organisations in Dover, Kent and across the UK — a fast, well-designed web presence built with AI, from £400. Shopify online stores available too.",
     "descLen": 189,
     "canonical": "https://www.rgleeson.com/websites.html",
     "lang": "en",
     "viewport": true,
     "og": [
      "og:title",
      "og:description",
      "og:image",
      "og:url"
     ],
     "ldBlocks": 1,
     "ldErrors": 0,
     "ldTypes": [
      "ProfessionalService",
      "PostalAddress",
      "City",
      "AdministrativeArea",
      "Country",
      "Person",
      "OfferCatalog",
      "Offer",
      "Service",
      "PriceSpecification"
     ],
     "rawWords": 971,
     "scripts": 5,
     "generator": null
    },
    "crawler": {
     "gptbotStatus": 200,
     "gptbotWords": 971,
     "browserWords": 971,
     "robots": {
      "GPTBot": "allowed (default)",
      "OAI-SearchBot": "allowed (default)",
      "ClaudeBot": "allowed (default)",
      "PerplexityBot": "allowed (default)",
      "Google-Extended": "allowed (default)",
      "CCBot": "allowed (default)"
     },
     "robotsStatus": 200,
     "sitemapInRobots": true,
     "llms": {
      "bytes": 5126
     },
     "sitemap": {
      "urls": 32
     }
    },
    "rendered": {
     "375": {
      "words": 951,
      "mainWords": 931,
      "height": 10371,
      "textColours": [
       {
        "c": "#5C5C5C",
        "share": 0.609
       },
       {
        "c": "#0F1014",
        "share": 0.208
       },
       {
        "c": "#D0D0D0",
        "share": 0.081
       },
       {
        "c": "#FFFFFF",
        "share": 0.057
       },
       {
        "c": "#1A0DAB",
        "share": 0.008
       },
       {
        "c": "#6A7185",
        "share": 0.006
       },
       {
        "c": "#D04205",
        "share": 0.006
       },
       {
        "c": "#F36435",
        "share": 0.002
       }
      ],
      "fonts": [
       {
        "f": "Inter",
        "share": 0.831
       },
       {
        "f": "Cabinet Grotesk",
        "share": 0.132
       },
       {
        "f": "ui-monospace",
        "share": 0.037
       }
      ],
      "sizes": [
       {
        "px": 12,
        "share": 0.066
       },
       {
        "px": 13,
        "share": 0.079
       },
       {
        "px": 14,
        "share": 0.029
       },
       {
        "px": 15,
        "share": 0.075
       },
       {
        "px": 16,
        "share": 0.425
       },
       {
        "px": 17,
        "share": 0.008
       },
       {
        "px": 18,
        "share": 0.038
       },
       {
        "px": 20,
        "share": 0.15
       },
       {
        "px": 24,
        "share": 0.104
       },
       {
        "px": 30,
        "share": 0.019
       },
       {
        "px": 32,
        "share": 0.001
       },
       {
        "px": 44,
        "share": 0.005
       },
       {
        "px": 52,
        "share": 0.001
       }
      ],
      "distinctSizes": 13,
      "body": {
       "px": 16,
       "lh": 1.6,
       "cpl": 36,
       "samples": 12
      },
      "headings": [
       {
        "level": 1,
        "text": "I design and build websites.",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Start a project",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "What I do",
        "px": 30,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Your business online",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "AI-augmented build",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Online stores, if you need one",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Recent builds",
        "px": 30,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Action Carpets & Flooring",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Down To Groundworks",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Vancat — opens in a new tab",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Olivia's Sales — opens in a new tab",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Designed by a person, sped up by AI",
        "px": 30,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Research before design",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Scored before and after",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Proven design systems",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "A brand kit to keep",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Set up for Google",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Ready for AI search",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "How it works",
        "px": 30,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "1 — A call or an email",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "2 — Audit & research",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "3 — Design",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "4 — Build & launch",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Interested in a new website?",
        "px": 30,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 4,
        "text": "SITE",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       },
       {
        "level": 4,
        "text": "CONTACT",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       }
      ],
      "headingSkips": 1,
      "h1": 1,
      "contrast": {
       "measured": 135,
       "unmeasured": 7,
       "fails": 1,
       "worst": [
        {
         "text": "·",
         "fg": "#D0D0D0",
         "bg": "#FFFFFF",
         "ratio": 1.54,
         "need": 4.5,
         "px": 15
        }
       ]
      },
      "controls": 37,
      "smallTargets": 0,
      "ctaInFirstScreen": [],
      "images": 8,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 1,
      "prices": [
       "£400",
       "£150,",
       "£400,",
       "£150"
      ],
      "reviewsMentioned": true,
      "flesch": 68,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 1,
       "footer": true
      },
      "skipLink": true,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.848
       },
       {
        "c": "#0C0C18",
        "share": 0.083
       },
       {
        "c": "#CC4800",
        "share": 0.04
       },
       {
        "c": "#F0F0F0",
        "share": 0.004
       },
       {
        "c": "#E4E4E4",
        "share": 0.002
       },
       {
        "c": "#909090",
        "share": 0.001
       },
       {
        "c": "#848484",
        "share": 0.001
       },
       {
        "c": "#9C9C9C",
        "share": 0.001
       },
       {
        "c": "#D8D8D8",
        "share": 0.001
       },
       {
        "c": "#787878",
        "share": 0.001
       }
      ]
     },
     "1440": {
      "words": 958,
      "mainWords": 931,
      "height": 5770,
      "textColours": [
       {
        "c": "#5C5C5C",
        "share": 0.604
       },
       {
        "c": "#0F1014",
        "share": 0.211
       },
       {
        "c": "#D0D0D0",
        "share": 0.08
       },
       {
        "c": "#FFFFFF",
        "share": 0.057
       },
       {
        "c": "#1A0DAB",
        "share": 0.008
       },
       {
        "c": "#6A7185",
        "share": 0.006
       },
       {
        "c": "#D04205",
        "share": 0.006
       },
       {
        "c": "#AF3500",
        "share": 0.002
       }
      ],
      "fonts": [
       {
        "f": "Inter",
        "share": 0.832
       },
       {
        "f": "Cabinet Grotesk",
        "share": 0.131
       },
       {
        "f": "ui-monospace",
        "share": 0.037
       }
      ],
      "sizes": [
       {
        "px": 12,
        "share": 0.028
       },
       {
        "px": 13,
        "share": 0.116
       },
       {
        "px": 14,
        "share": 0.029
       },
       {
        "px": 15,
        "share": 0.082
       },
       {
        "px": 16,
        "share": 0.422
       },
       {
        "px": 17,
        "share": 0.008
       },
       {
        "px": 18,
        "share": 0.038
       },
       {
        "px": 20,
        "share": 0.149
       },
       {
        "px": 24,
        "share": 0.08
       },
       {
        "px": 32,
        "share": 0.001
       },
       {
        "px": 36,
        "share": 0.023
       },
       {
        "px": 44,
        "share": 0.019
       },
       {
        "px": 52,
        "share": 0.001
       },
       {
        "px": 80,
        "share": 0.005
       }
      ],
      "distinctSizes": 14,
      "body": {
       "px": 16,
       "lh": 1.6,
       "cpl": 47,
       "samples": 12
      },
      "headings": [
       {
        "level": 1,
        "text": "I design and build websites.",
        "px": 80,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Start a project",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "What I do",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Your business online",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "AI-augmented build",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Online stores, if you need one",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Recent builds",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Action Carpets & Flooring",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Down To Groundworks",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Vancat — opens in a new tab",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Olivia's Sales — opens in a new tab",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Designed by a person, sped up by AI",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Research before design",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Scored before and after",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Proven design systems",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "A brand kit to keep",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Set up for Google",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Ready for AI search",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "How it works",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "1 — A call or an email",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "2 — Audit & research",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "3 — Design",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "4 — Build & launch",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Interested in a new website?",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 4,
        "text": "SITE",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       },
       {
        "level": 4,
        "text": "CONTACT",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       }
      ],
      "headingSkips": 1,
      "h1": 1,
      "contrast": {
       "measured": 141,
       "unmeasured": 7,
       "fails": 1,
       "worst": [
        {
         "text": "·",
         "fg": "#D0D0D0",
         "bg": "#FFFFFF",
         "ratio": 1.54,
         "need": 4.5,
         "px": 15
        }
       ]
      },
      "controls": 42,
      "smallTargets": 0,
      "ctaInFirstScreen": [
       "Contact",
       "Send message"
      ],
      "images": 8,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 1,
      "prices": [
       "£400",
       "£150,",
       "£400,",
       "£150"
      ],
      "reviewsMentioned": true,
      "flesch": 68,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 1,
       "footer": true
      },
      "skipLink": true,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.836
       },
       {
        "c": "#0C0C18",
        "share": 0.087
       },
       {
        "c": "#CC4800",
        "share": 0.053
       },
       {
        "c": "#F0F0F0",
        "share": 0.002
       },
       {
        "c": "#E4E4E4",
        "share": 0.002
       },
       {
        "c": "#909090",
        "share": 0.001
       },
       {
        "c": "#9C9C9C",
        "share": 0.001
       },
       {
        "c": "#242424",
        "share": 0.001
       },
       {
        "c": "#CCCCCC",
        "share": 0.001
       },
       {
        "c": "#848484",
        "share": 0.001
       }
      ]
     }
    }
   },
   {
    "id": "home",
    "url": "https://www.rgleeson.com/",
    "finalUrl": "https://www.rgleeson.com/",
    "status": 200,
    "ttfbMs": 158,
    "headers": {
     "hsts": true,
     "csp": false,
     "nosniff": true,
     "referrer": true,
     "frame": true,
     "server": "Vercel"
    },
    "raw": {
     "title": "Richard Gleeson — UI/UX & Product Designer",
     "titleLen": 42,
     "desc": "Richard Gleeson is a UI/UX and Product Designer with 20+ years' experience creating user-focused, research-led digital products.",
     "descLen": 128,
     "canonical": "https://www.rgleeson.com/",
     "lang": "en",
     "viewport": true,
     "og": [
      "og:title",
      "og:description",
      "og:image",
      "og:url"
     ],
     "ldBlocks": 1,
     "ldErrors": 0,
     "ldTypes": [
      "Person",
      "PostalAddress",
      "Place",
      "WebSite",
      "ProfessionalService",
      "City",
      "AdministrativeArea",
      "Country"
     ],
     "rawWords": 327,
     "scripts": 4,
     "generator": null
    },
    "crawler": {
     "gptbotStatus": 200,
     "gptbotWords": 327,
     "browserWords": 327,
     "robots": {
      "GPTBot": "allowed (default)",
      "OAI-SearchBot": "allowed (default)",
      "ClaudeBot": "allowed (default)",
      "PerplexityBot": "allowed (default)",
      "Google-Extended": "allowed (default)",
      "CCBot": "allowed (default)"
     },
     "robotsStatus": 200,
     "sitemapInRobots": true,
     "llms": {
      "bytes": 5126
     },
     "sitemap": {
      "urls": 32
     }
    },
    "rendered": {
     "375": {
      "words": 230,
      "mainWords": 186,
      "height": 5259,
      "textColours": [
       {
        "c": "#5C5C5C",
        "share": 0.313
       },
       {
        "c": "#FFFFFF",
        "share": 0.277
       },
       {
        "c": "#D0D0D0",
        "share": 0.194
       },
       {
        "c": "#0F1014",
        "share": 0.18
       },
       {
        "c": "#F36435",
        "share": 0.014
       },
       {
        "c": "#D04205",
        "share": 0.014
       },
       {
        "c": "#6A7185",
        "share": 0.008
       },
       {
        "c": "#636466",
        "share": 0.001
       }
      ],
      "fonts": [
       {
        "f": "Inter",
        "share": 0.653
       },
       {
        "f": "Cabinet Grotesk",
        "share": 0.347
       }
      ],
      "sizes": [
       {
        "px": 13,
        "share": 0.074
       },
       {
        "px": 15,
        "share": 0.22
       },
       {
        "px": 16,
        "share": 0.038
       },
       {
        "px": 18,
        "share": 0.127
       },
       {
        "px": 20,
        "share": 0.251
       },
       {
        "px": 24,
        "share": 0.221
       },
       {
        "px": 30,
        "share": 0.029
       },
       {
        "px": 44,
        "share": 0.039
       }
      ],
      "distinctSizes": 8,
      "body": {
       "px": 20,
       "lh": 1.55,
       "cpl": 34,
       "samples": 4
      },
      "headings": [
       {
        "level": 1,
        "text": "Hi! I'm Richard. I create user-focused, AI-augmented design.",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Selected work",
        "px": 30,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "betCollab",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "The Coaches' Voice",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "FSB Technology",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Top Villas",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Fanatics Fantasy MMA",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Looking for design support?",
        "px": 30,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 4,
        "text": "SITE",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       },
       {
        "level": 4,
        "text": "CONTACT",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       }
      ],
      "headingSkips": 1,
      "h1": 1,
      "contrast": {
       "measured": 61,
       "unmeasured": 0,
       "fails": 1,
       "worst": [
        {
         "text": "·",
         "fg": "#636466",
         "bg": "#0F1014",
         "ratio": 3.2,
         "need": 4.5,
         "px": 15
        }
       ]
      },
      "controls": 20,
      "smallTargets": 0,
      "ctaInFirstScreen": [],
      "images": 6,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 0,
      "prices": [],
      "reviewsMentioned": false,
      "flesch": 54,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 1,
       "footer": true
      },
      "skipLink": true,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.636
       },
       {
        "c": "#0C0C18",
        "share": 0.258
       },
       {
        "c": "#CC4800",
        "share": 0.066
       },
       {
        "c": "#F0F0F0",
        "share": 0.002
       },
       {
        "c": "#E4E4E4",
        "share": 0.002
       },
       {
        "c": "#181818",
        "share": 0.002
       },
       {
        "c": "#787878",
        "share": 0.002
       },
       {
        "c": "#D8D8D8",
        "share": 0.001
       },
       {
        "c": "#848484",
        "share": 0.001
       },
       {
        "c": "#909090",
        "share": 0.001
       }
      ]
     },
     "1440": {
      "words": 237,
      "mainWords": 186,
      "height": 4331,
      "textColours": [
       {
        "c": "#5C5C5C",
        "share": 0.304
       },
       {
        "c": "#FFFFFF",
        "share": 0.269
       },
       {
        "c": "#0F1014",
        "share": 0.193
       },
       {
        "c": "#D0D0D0",
        "share": 0.189
       },
       {
        "c": "#D04205",
        "share": 0.022
       },
       {
        "c": "#F36435",
        "share": 0.014
       },
       {
        "c": "#6A7185",
        "share": 0.008
       },
       {
        "c": "#636466",
        "share": 0.001
       }
      ],
      "fonts": [
       {
        "f": "Inter",
        "share": 0.663
       },
       {
        "f": "Cabinet Grotesk",
        "share": 0.337
       }
      ],
      "sizes": [
       {
        "px": 13,
        "share": 0.072
       },
       {
        "px": 15,
        "share": 0.241
       },
       {
        "px": 16,
        "share": 0.037
       },
       {
        "px": 18,
        "share": 0.124
       },
       {
        "px": 20,
        "share": 0.244
       },
       {
        "px": 24,
        "share": 0.072
       },
       {
        "px": 36,
        "share": 0.143
       },
       {
        "px": 44,
        "share": 0.029
       },
       {
        "px": 80,
        "share": 0.038
       }
      ],
      "distinctSizes": 9,
      "body": {
       "px": 20,
       "lh": 1.55,
       "cpl": 75,
       "samples": 4
      },
      "headings": [
       {
        "level": 1,
        "text": "Hi! I'm Richard. I create user-focused, AI-augmented design.",
        "px": 80,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Selected work",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "betCollab",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "The Coaches' Voice",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "FSB Technology",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Top Villas",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 3,
        "text": "Fanatics Fantasy MMA",
        "px": 24,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 2,
        "text": "Looking for design support?",
        "px": 44,
        "weight": "500",
        "font": "Cabinet Grotesk"
       },
       {
        "level": 4,
        "text": "SITE",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       },
       {
        "level": 4,
        "text": "CONTACT",
        "px": 13,
        "weight": "600",
        "font": "Inter"
       }
      ],
      "headingSkips": 1,
      "h1": 1,
      "contrast": {
       "measured": 67,
       "unmeasured": 0,
       "fails": 1,
       "worst": [
        {
         "text": "·",
         "fg": "#636466",
         "bg": "#0F1014",
         "ratio": 3.2,
         "need": 4.5,
         "px": 15
        }
       ]
      },
      "controls": 27,
      "smallTargets": 0,
      "ctaInFirstScreen": [
       "Contact"
      ],
      "images": 6,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 0,
      "prices": [],
      "reviewsMentioned": false,
      "flesch": 54,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 1,
       "footer": true
      },
      "skipLink": true,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.62
       },
       {
        "c": "#0C0C18",
        "share": 0.236
       },
       {
        "c": "#CC4800",
        "share": 0.065
       },
       {
        "c": "#000C0C",
        "share": 0.033
       },
       {
        "c": "#0C0C0C",
        "share": 0.008
       },
       {
        "c": "#000000",
        "share": 0.004
       },
       {
        "c": "#0C1818",
        "share": 0.002
       },
       {
        "c": "#242424",
        "share": 0.002
       },
       {
        "c": "#E4E4E4",
        "share": 0.002
       },
       {
        "c": "#F0F0F0",
        "share": 0.001
       }
      ]
     }
    }
   },
   {
    "id": "cA",
    "url": null,
    "finalUrl": null,
    "status": 200,
    "ttfbMs": 943,
    "headers": {
     "hsts": true,
     "csp": true,
     "nosniff": true,
     "referrer": true,
     "frame": true,
     "server": "hcdn"
    },
    "raw": {
     "title": null,
     "titleLen": 51,
     "desc": null,
     "descLen": 149,
     "canonical": null,
     "lang": "en-gb",
     "viewport": true,
     "og": [
      "og:title",
      "og:description",
      "og:image",
      "og:url"
     ],
     "ldBlocks": 1,
     "ldErrors": 0,
     "ldTypes": [
      "LocalBusiness",
      "PostalAddress",
      "OpeningHoursSpecification"
     ],
     "rawWords": 804,
     "scripts": 10,
     "generator": "Powered by Website Builder Gridbox"
    },
    "crawler": {
     "gptbotStatus": 429,
     "gptbotWords": 0,
     "browserWords": 804,
     "robots": {
      "GPTBot": "allowed (default)",
      "OAI-SearchBot": "allowed (default)",
      "ClaudeBot": "allowed (default)",
      "PerplexityBot": "allowed (default)",
      "Google-Extended": "allowed (default)",
      "CCBot": "allowed (default)"
     },
     "robotsStatus": 200,
     "sitemapInRobots": true,
     "llms": null,
     "sitemap": {
      "urls": 56
     }
    },
    "rendered": {
     "375": {
      "words": 520,
      "mainWords": 522,
      "height": 10728,
      "textColours": [
       {
        "c": "#1B1B1D",
        "share": 0.803
       },
       {
        "c": "#FFFFFF",
        "share": 0.022
       },
       {
        "c": "#A4A4A5",
        "share": 0.009
       }
      ],
      "fonts": [
       {
        "f": "Montserrat",
        "share": 1
       }
      ],
      "sizes": [
       {
        "px": 14,
        "share": 0.009
       },
       {
        "px": 16,
        "share": 0.054
       },
       {
        "px": 17,
        "share": 0.047
       },
       {
        "px": 19,
        "share": 0.699
       },
       {
        "px": 24,
        "share": 0.051
       },
       {
        "px": 25,
        "share": 0.098
       },
       {
        "px": 46,
        "share": 0.029
       },
       {
        "px": 55,
        "share": 0.002
       },
       {
        "px": 58,
        "share": 0.011
       }
      ],
      "distinctSizes": 9,
      "body": {
       "px": 19,
       "lh": 1.6,
       "cpl": 31,
       "samples": 12
      },
      "headings": [
       {
        "level": 1,
        "text": null,
        "px": 55,
        "weight": "700",
        "font": "Montserrat"
       },
       {
        "level": 2,
        "text": null,
        "px": 58,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       }
      ],
      "headingSkips": 0,
      "h1": 1,
      "contrast": {
       "measured": 32,
       "unmeasured": 20,
       "fails": 4,
       "worst": [
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#FFFFFF",
         "ratio": 1,
         "need": 3,
         "px": 19
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#FFFFFF",
         "ratio": 1,
         "need": 3,
         "px": 19
        },
        {
         "text": null,
         "fg": "#A4A4A5",
         "bg": "#FFFFFF",
         "ratio": 2.5,
         "need": 3,
         "px": 24
        },
        {
         "text": null,
         "fg": "#A4A4A5",
         "bg": "#FFFFFF",
         "ratio": 2.5,
         "need": 3,
         "px": 24
        }
       ]
      },
      "controls": 24,
      "smallTargets": 0,
      "ctaInFirstScreen": [
       "Contact Us"
      ],
      "images": 13,
      "imagesNoAlt": 0,
      "tel": false,
      "mailto": false,
      "forms": 0,
      "prices": [],
      "reviewsMentioned": true,
      "flesch": 58,
      "landmarks": {
       "header": true,
       "nav": false,
       "main": 0,
       "footer": true
      },
      "skipLink": false,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.527
       },
       {
        "c": "#3084E4",
        "share": 0.073
       },
       {
        "c": "#6C3CF0",
        "share": 0.071
       },
       {
        "c": "#486CE4",
        "share": 0.026
       },
       {
        "c": "#3C78E4",
        "share": 0.025
       },
       {
        "c": "#6C48F0",
        "share": 0.019
       },
       {
        "c": "#6054F0",
        "share": 0.019
       },
       {
        "c": "#5460F0",
        "share": 0.015
       },
       {
        "c": "#181818",
        "share": 0.011
       },
       {
        "c": "#F0F0F0",
        "share": 0.01
       }
      ]
     },
     "1440": {
      "words": 576,
      "mainWords": 578,
      "height": 7363,
      "textColours": [
       {
        "c": "#1B1B1D",
        "share": 0.807
       },
       {
        "c": "#FFFFFF",
        "share": 0.02
       },
       {
        "c": "#A4A4A5",
        "share": 0.008
       }
      ],
      "fonts": [
       {
        "f": "Montserrat",
        "share": 1
       }
      ],
      "sizes": [
       {
        "px": 14,
        "share": 0.008
       },
       {
        "px": 17,
        "share": 0.09
       },
       {
        "px": 19,
        "share": 0.71
       },
       {
        "px": 24,
        "share": 0.046
       },
       {
        "px": 25,
        "share": 0.094
       },
       {
        "px": 37,
        "share": 0.004
       },
       {
        "px": 46,
        "share": 0.035
       },
       {
        "px": 58,
        "share": 0.01
       },
       {
        "px": 65,
        "share": 0.002
       }
      ],
      "distinctSizes": 9,
      "body": {
       "px": 19,
       "lh": 1.6,
       "cpl": 49,
       "samples": 12
      },
      "headings": [
       {
        "level": 1,
        "text": null,
        "px": 65,
        "weight": "700",
        "font": "Montserrat"
       },
       {
        "level": 2,
        "text": null,
        "px": 58,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 37,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 4,
        "text": null,
        "px": 24,
        "weight": "400",
        "font": "Montserrat"
       },
       {
        "level": 3,
        "text": null,
        "px": 46,
        "weight": "400",
        "font": "Montserrat"
       }
      ],
      "headingSkips": 0,
      "h1": 1,
      "contrast": {
       "measured": 36,
       "unmeasured": 22,
       "fails": 4,
       "worst": [
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#FFFFFF",
         "ratio": 1,
         "need": 3,
         "px": 19
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#FFFFFF",
         "ratio": 1,
         "need": 3,
         "px": 19
        },
        {
         "text": null,
         "fg": "#A4A4A5",
         "bg": "#FFFFFF",
         "ratio": 2.5,
         "need": 3,
         "px": 24
        },
        {
         "text": null,
         "fg": "#A4A4A5",
         "bg": "#FFFFFF",
         "ratio": 2.5,
         "need": 3,
         "px": 24
        }
       ]
      },
      "controls": 23,
      "smallTargets": 0,
      "ctaInFirstScreen": [
       "Contact Us"
      ],
      "images": 14,
      "imagesNoAlt": 0,
      "tel": false,
      "mailto": false,
      "forms": 0,
      "prices": [],
      "reviewsMentioned": true,
      "flesch": 57,
      "landmarks": {
       "header": true,
       "nav": false,
       "main": 0,
       "footer": true
      },
      "skipLink": false,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.461
       },
       {
        "c": "#6C3CF0",
        "share": 0.106
       },
       {
        "c": "#3084E4",
        "share": 0.071
       },
       {
        "c": "#6054F0",
        "share": 0.033
       },
       {
        "c": "#6C48F0",
        "share": 0.033
       },
       {
        "c": "#486CE4",
        "share": 0.032
       },
       {
        "c": "#3C78E4",
        "share": 0.03
       },
       {
        "c": "#5460F0",
        "share": 0.023
       },
       {
        "c": "#7848F0",
        "share": 0.019
       },
       {
        "c": "#B4B4B4",
        "share": 0.017
       }
      ]
     }
    }
   },
   {
    "id": "cB",
    "url": null,
    "finalUrl": null,
    "status": 200,
    "ttfbMs": 2796,
    "headers": {
     "hsts": false,
     "csp": true,
     "nosniff": false,
     "referrer": false,
     "frame": false,
     "server": "nginx"
    },
    "raw": {
     "title": null,
     "titleLen": 41,
     "desc": null,
     "descLen": 114,
     "canonical": null,
     "lang": "en-US",
     "viewport": true,
     "og": [
      "og:title",
      "og:description",
      "og:url"
     ],
     "ldBlocks": 1,
     "ldErrors": 0,
     "ldTypes": [
      "WebPage",
      "ReadAction",
      "BreadcrumbList",
      "ListItem",
      "WebSite",
      "SearchAction",
      "EntryPoint",
      "PropertyValueSpecification"
     ],
     "rawWords": 1127,
     "scripts": 48,
     "generator": "WordPress"
    },
    "crawler": {
     "gptbotStatus": 0,
     "gptbotWords": 0,
     "browserWords": 1127,
     "robots": {
      "GPTBot": "allowed (default)",
      "OAI-SearchBot": "allowed (default)",
      "ClaudeBot": "allowed (default)",
      "PerplexityBot": "allowed (default)",
      "Google-Extended": "allowed (default)",
      "CCBot": "allowed (default)"
     },
     "robotsStatus": 200,
     "sitemapInRobots": true,
     "llms": null,
     "sitemap": {
      "urls": 3
     }
    },
    "rendered": {
     "375": {
      "words": 1066,
      "mainWords": 1073,
      "height": 28633,
      "textColours": [
       {
        "c": "#DF532C",
        "share": 0.62
       },
       {
        "c": "#5B5B5B",
        "share": 0.159
       },
       {
        "c": "#212121",
        "share": 0.03
       },
       {
        "c": "#A3A3A3",
        "share": 0.014
       },
       {
        "c": "#282828",
        "share": 0.012
       },
       {
        "c": "#FFFFFF",
        "share": 0.008
       },
       {
        "c": "#1863DC",
        "share": 0.003
       },
       {
        "c": "#FA6420",
        "share": 0.002
       }
      ],
      "fonts": [
       {
        "f": "Roboto Condensed",
        "share": 0.62
       },
       {
        "f": "Exo",
        "share": 0.373
       },
       {
        "f": "Poppins",
        "share": 0.006
       }
      ],
      "sizes": [
       {
        "px": 14,
        "share": 0.027
       },
       {
        "px": 15,
        "share": 0.62
       },
       {
        "px": 17,
        "share": 0.333
       },
       {
        "px": 18,
        "share": 0.011
       },
       {
        "px": 20,
        "share": 0.006
       },
       {
        "px": 24,
        "share": 0.003
       }
      ],
      "distinctSizes": 6,
      "body": {
       "px": 17,
       "lh": 1.7,
       "cpl": 45,
       "samples": 8
      },
      "headings": [
       {
        "level": 1,
        "text": null,
        "px": 24,
        "weight": "700",
        "font": "Exo"
       },
       {
        "level": 2,
        "text": null,
        "px": 18,
        "weight": "700",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       }
      ],
      "headingSkips": 0,
      "h1": 1,
      "contrast": {
       "measured": 124,
       "unmeasured": 47,
       "fails": 100,
       "worst": [
        {
         "text": null,
         "fg": "#FA6420",
         "bg": "#FFFFFF",
         "ratio": 3.04,
         "need": 4.5,
         "px": 17
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#F56122",
         "ratio": 3.17,
         "need": 4.5,
         "px": 18
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#F56122",
         "ratio": 3.17,
         "need": 4.5,
         "px": 18
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#F56122",
         "ratio": 3.17,
         "need": 4.5,
         "px": 18
        },
        {
         "text": null,
         "fg": "#DF532C",
         "bg": "#FFFFFF",
         "ratio": 3.88,
         "need": 4.5,
         "px": 15
        },
        {
         "text": null,
         "fg": "#DF532C",
         "bg": "#FFFFFF",
         "ratio": 3.88,
         "need": 4.5,
         "px": 15
        }
       ]
      },
      "controls": 241,
      "smallTargets": 82,
      "ctaInFirstScreen": [
       "Let’s Talk"
      ],
      "images": 100,
      "imagesNoAlt": 2,
      "tel": true,
      "mailto": true,
      "forms": 2,
      "prices": [],
      "reviewsMentioned": true,
      "flesch": 15,
      "landmarks": {
       "header": false,
       "nav": false,
       "main": 0,
       "footer": false
      },
      "skipLink": false,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.608
       },
       {
        "c": "#D8D8D8",
        "share": 0.012
       },
       {
        "c": "#000000",
        "share": 0.012
       },
       {
        "c": "#0C0C0C",
        "share": 0.01
       },
       {
        "c": "#E45430",
        "share": 0.008
       },
       {
        "c": "#181818",
        "share": 0.005
       },
       {
        "c": "#F0F0F0",
        "share": 0.005
       },
       {
        "c": "#F06024",
        "share": 0.005
       },
       {
        "c": "#242424",
        "share": 0.005
       },
       {
        "c": "#18180C",
        "share": 0.004
       }
      ]
     },
     "1440": {
      "words": 1078,
      "mainWords": 1085,
      "height": 7516,
      "textColours": [
       {
        "c": "#DF532C",
        "share": 0.615
       },
       {
        "c": "#5B5B5B",
        "share": 0.158
       },
       {
        "c": "#212121",
        "share": 0.03
       },
       {
        "c": "#282828",
        "share": 0.021
       },
       {
        "c": "#A3A3A3",
        "share": 0.014
       },
       {
        "c": "#FFFFFF",
        "share": 0.008
       },
       {
        "c": "#1863DC",
        "share": 0.003
       },
       {
        "c": "#FA6420",
        "share": 0.002
       }
      ],
      "fonts": [
       {
        "f": "Roboto Condensed",
        "share": 0.614
       },
       {
        "f": "Exo",
        "share": 0.38
       },
       {
        "f": "Poppins",
        "share": 0.006
       }
      ],
      "sizes": [
       {
        "px": 14,
        "share": 0.031
       },
       {
        "px": 15,
        "share": 0.614
       },
       {
        "px": 16,
        "share": 0.277
       },
       {
        "px": 17,
        "share": 0.048
       },
       {
        "px": 18,
        "share": 0.011
       },
       {
        "px": 19,
        "share": 0.014
       },
       {
        "px": 20,
        "share": 0.002
       },
       {
        "px": 36,
        "share": 0.002
       }
      ],
      "distinctSizes": 8,
      "body": {
       "px": 16,
       "lh": 1.7,
       "cpl": 106,
       "samples": 8
      },
      "headings": [
       {
        "level": 1,
        "text": null,
        "px": 36,
        "weight": "700",
        "font": "Exo"
       },
       {
        "level": 2,
        "text": null,
        "px": 18,
        "weight": "700",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 19,
        "weight": "700",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       },
       {
        "level": 3,
        "text": null,
        "px": 17,
        "weight": "600",
        "font": "Exo"
       }
      ],
      "headingSkips": 0,
      "h1": 1,
      "contrast": {
       "measured": 131,
       "unmeasured": 47,
       "fails": 101,
       "worst": [
        {
         "text": null,
         "fg": "#FA6420",
         "bg": "#FFFFFF",
         "ratio": 3.04,
         "need": 4.5,
         "px": 16
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#F56122",
         "ratio": 3.17,
         "need": 4.5,
         "px": 18
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#F56122",
         "ratio": 3.17,
         "need": 4.5,
         "px": 18
        },
        {
         "text": null,
         "fg": "#FFFFFF",
         "bg": "#F56122",
         "ratio": 3.17,
         "need": 4.5,
         "px": 18
        },
        {
         "text": null,
         "fg": "#DF532C",
         "bg": "#FFFFFF",
         "ratio": 3.88,
         "need": 4.5,
         "px": 19
        },
        {
         "text": null,
         "fg": "#DF532C",
         "bg": "#FFFFFF",
         "ratio": 3.88,
         "need": 4.5,
         "px": 15
        }
       ]
      },
      "controls": 247,
      "smallTargets": 71,
      "ctaInFirstScreen": [
       "Let’s Talk",
       "Prices",
       "Free Stuff"
      ],
      "images": 100,
      "imagesNoAlt": 2,
      "tel": true,
      "mailto": true,
      "forms": 2,
      "prices": [],
      "reviewsMentioned": true,
      "flesch": 15,
      "landmarks": {
       "header": false,
       "nav": false,
       "main": 0,
       "footer": false
      },
      "skipLink": false,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.559
       },
       {
        "c": "#E4E4E4",
        "share": 0.103
       },
       {
        "c": "#000000",
        "share": 0.022
       },
       {
        "c": "#F0F0F0",
        "share": 0.011
       },
       {
        "c": "#0C0C0C",
        "share": 0.008
       },
       {
        "c": "#F06024",
        "share": 0.006
       },
       {
        "c": "#181818",
        "share": 0.006
       },
       {
        "c": "#D8D8D8",
        "share": 0.005
       },
       {
        "c": "#CCCCCC",
        "share": 0.004
       },
       {
        "c": "#242424",
        "share": 0.004
       }
      ]
     }
    }
   },
   {
    "id": "cC",
    "url": null,
    "finalUrl": null,
    "status": 200,
    "ttfbMs": 645,
    "headers": {
     "hsts": true,
     "csp": false,
     "nosniff": false,
     "referrer": false,
     "frame": false,
     "server": "Netlify"
    },
    "raw": {
     "title": null,
     "titleLen": 61,
     "desc": null,
     "descLen": 164,
     "canonical": null,
     "lang": "en",
     "viewport": true,
     "og": [
      "og:title",
      "og:description",
      "og:image",
      "og:url"
     ],
     "ldBlocks": 1,
     "ldErrors": 0,
     "ldTypes": [
      "Organization",
      "WebSite",
      "LocalBusiness",
      "PostalAddress",
      "Place",
      "AggregateRating",
      "Review",
      "Person",
      "Rating",
      "FAQPage",
      "Question",
      "Answer"
     ],
     "rawWords": 1012,
     "scripts": 7,
     "generator": null
    },
    "crawler": {
     "gptbotStatus": 200,
     "gptbotWords": 1012,
     "browserWords": 1012,
     "robots": {
      "GPTBot": "allowed (default)",
      "OAI-SearchBot": "allowed (default)",
      "ClaudeBot": "allowed (default)",
      "PerplexityBot": "allowed (default)",
      "Google-Extended": "allowed (default)",
      "CCBot": "allowed (default)"
     },
     "robotsStatus": 200,
     "sitemapInRobots": true,
     "llms": null,
     "sitemap": null
    },
    "rendered": {
     "375": {
      "words": 808,
      "mainWords": 737,
      "height": 9360,
      "textColours": [
       {
        "c": "#5A5F6B",
        "share": 0.586
       },
       {
        "c": "#171A22",
        "share": 0.175
       },
       {
        "c": "#A6ABB8",
        "share": 0.07
       },
       {
        "c": "#EB9A1A",
        "share": 0.054
       },
       {
        "c": "#8B91A1",
        "share": 0.026
       },
       {
        "c": "#8F9197",
        "share": 0.025
       },
       {
        "c": "#C9CDD6",
        "share": 0.025
       },
       {
        "c": "#8F5A0F",
        "share": 0.019
       }
      ],
      "fonts": [
       {
        "f": "Archivo",
        "share": 1
       }
      ],
      "sizes": [
       {
        "px": 11,
        "share": 0.059
       },
       {
        "px": 12,
        "share": 0.07
       },
       {
        "px": 13,
        "share": 0.048
       },
       {
        "px": 14,
        "share": 0.075
       },
       {
        "px": 15,
        "share": 0.321
       },
       {
        "px": 16,
        "share": 0.084
       },
       {
        "px": 17,
        "share": 0.218
       },
       {
        "px": 20,
        "share": 0.036
       },
       {
        "px": 21,
        "share": 0.012
       },
       {
        "px": 22,
        "share": 0.029
       },
       {
        "px": 24,
        "share": 0.015
       },
       {
        "px": 26,
        "share": 0.011
       },
       {
        "px": 32,
        "share": 0.009
       },
       {
        "px": 36,
        "share": 0.006
       },
       {
        "px": 48,
        "share": 0.003
       },
       {
        "px": 56,
        "share": 0.004
       }
      ],
      "distinctSizes": 16,
      "body": {
       "px": 16,
       "lh": 1.6,
       "cpl": 47,
       "samples": 12
      },
      "headings": [
       {
        "level": 1,
        "text": null,
        "px": 56,
        "weight": "800",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 12,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 12,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 32,
        "weight": "800",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 21,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 21,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 21,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 12,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 36,
        "weight": "800",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       }
      ],
      "headingSkips": 0,
      "h1": 1,
      "contrast": {
       "measured": 140,
       "unmeasured": 0,
       "fails": 16,
       "worst": [
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 3,
         "px": 56
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 12
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 12
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 12
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 13
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 13
        }
       ]
      },
      "controls": 54,
      "smallTargets": 11,
      "ctaInFirstScreen": [
       "Talk to us →",
       "Call"
      ],
      "images": 6,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 0,
      "prices": [
       "£2k",
       "£6k"
      ],
      "reviewsMentioned": true,
      "flesch": 64,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 1,
       "footer": true
      },
      "skipLink": true,
      "pixels": [
       {
        "c": "#F0FCFC",
        "share": 0.616
       },
       {
        "c": "#181824",
        "share": 0.283
       },
       {
        "c": "#F0F0F0",
        "share": 0.006
       },
       {
        "c": "#F09C18",
        "share": 0.006
       },
       {
        "c": "#F0F0FC",
        "share": 0.005
       },
       {
        "c": "#E4E4E4",
        "share": 0.003
       },
       {
        "c": "#E4E4F0",
        "share": 0.003
       },
       {
        "c": "#90909C",
        "share": 0.003
       },
       {
        "c": "#848490",
        "share": 0.003
       },
       {
        "c": "#787884",
        "share": 0.003
       }
      ]
     },
     "1440": {
      "words": 852,
      "mainWords": 737,
      "height": 5739,
      "textColours": [
       {
        "c": "#5A5F6B",
        "share": 0.561
       },
       {
        "c": "#171A22",
        "share": 0.165
       },
       {
        "c": "#A6ABB8",
        "share": 0.097
       },
       {
        "c": "#EB9A1A",
        "share": 0.053
       },
       {
        "c": "#F2F3F6",
        "share": 0.025
       },
       {
        "c": "#8B91A1",
        "share": 0.024
       },
       {
        "c": "#8F9197",
        "share": 0.024
       },
       {
        "c": "#C9CDD6",
        "share": 0.024
       }
      ],
      "fonts": [
       {
        "f": "Archivo",
        "share": 1
       }
      ],
      "sizes": [
       {
        "px": 11,
        "share": 0.057
       },
       {
        "px": 12,
        "share": 0.072
       },
       {
        "px": 13,
        "share": 0.081
       },
       {
        "px": 14,
        "share": 0.071
       },
       {
        "px": 15,
        "share": 0.302
       },
       {
        "px": 16,
        "share": 0.079
       },
       {
        "px": 17,
        "share": 0.196
       },
       {
        "px": 20,
        "share": 0.057
       },
       {
        "px": 21,
        "share": 0.011
       },
       {
        "px": 32,
        "share": 0.028
       },
       {
        "px": 34,
        "share": 0.014
       },
       {
        "px": 43,
        "share": 0.01
       },
       {
        "px": 48,
        "share": 0.009
       },
       {
        "px": 64,
        "share": 0.006
       },
       {
        "px": 72,
        "share": 0.003
       },
       {
        "px": 108,
        "share": 0.004
       }
      ],
      "distinctSizes": 16,
      "body": {
       "px": 16,
       "lh": 1.6,
       "cpl": 97,
       "samples": 12
      },
      "headings": [
       {
        "level": 1,
        "text": null,
        "px": 108,
        "weight": "800",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 12,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 34,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 34,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 34,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 34,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 12,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 48,
        "weight": "800",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 21,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 21,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 21,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 12,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "700",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 64,
        "weight": "800",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       },
       {
        "level": 2,
        "text": null,
        "px": 11,
        "weight": "500",
        "font": "Archivo"
       }
      ],
      "headingSkips": 0,
      "h1": 1,
      "contrast": {
       "measured": 155,
       "unmeasured": 0,
       "fails": 16,
       "worst": [
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 3,
         "px": 108
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 12
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 12
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 12
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 13
        },
        {
         "text": null,
         "fg": "#EB9A1A",
         "bg": "#F4F7FA",
         "ratio": 2.13,
         "need": 4.5,
         "px": 13
        }
       ]
      },
      "controls": 60,
      "smallTargets": 11,
      "ctaInFirstScreen": [
       "Contact",
       "Talk to us →"
      ],
      "images": 6,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 0,
      "prices": [
       "£2k",
       "£6k"
      ],
      "reviewsMentioned": true,
      "flesch": 64,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 1,
       "footer": true
      },
      "skipLink": true,
      "pixels": [
       {
        "c": "#F0FCFC",
        "share": 0.701
       },
       {
        "c": "#181824",
        "share": 0.244
       },
       {
        "c": "#F09C18",
        "share": 0.005
       },
       {
        "c": "#F0F0F0",
        "share": 0.003
       },
       {
        "c": "#F0F0FC",
        "share": 0.003
       },
       {
        "c": "#D8D8E4",
        "share": 0.002
       },
       {
        "c": "#E4F0F0",
        "share": 0.002
       },
       {
        "c": "#B4B4C0",
        "share": 0.002
       },
       {
        "c": "#E4E4F0",
        "share": 0.002
       },
       {
        "c": "#90909C",
        "share": 0.002
       }
      ]
     }
    }
   },
   {
    "id": "cD",
    "url": null,
    "finalUrl": null,
    "status": 200,
    "ttfbMs": 940,
    "headers": {
     "hsts": false,
     "csp": false,
     "nosniff": false,
     "referrer": false,
     "frame": false,
     "server": "Apache"
    },
    "raw": {
     "title": null,
     "titleLen": 58,
     "desc": null,
     "descLen": 151,
     "canonical": null,
     "lang": "en-GB",
     "viewport": true,
     "og": [
      "og:title",
      "og:description",
      "og:image",
      "og:url"
     ],
     "ldBlocks": 2,
     "ldErrors": 1,
     "ldTypes": [
      "ProfessionalService",
      "Organization",
      "ImageObject",
      "WebSite",
      "SearchAction",
      "WebPage"
     ],
     "rawWords": 613,
     "scripts": 37,
     "generator": "WordPress"
    },
    "crawler": {
     "gptbotStatus": 200,
     "gptbotWords": 613,
     "browserWords": 613,
     "robots": {
      "GPTBot": "allowed (default)",
      "OAI-SearchBot": "allowed (default)",
      "ClaudeBot": "allowed (default)",
      "PerplexityBot": "allowed (default)",
      "Google-Extended": "allowed (default)",
      "CCBot": "allowed (default)"
     },
     "robotsStatus": 200,
     "sitemapInRobots": false,
     "llms": null,
     "sitemap": {
      "urls": 4
     }
    },
    "rendered": {
     "375": {
      "words": 578,
      "mainWords": 579,
      "height": 9997,
      "textColours": [
       {
        "c": "#000000",
        "share": 0.474
       },
       {
        "c": "#3C3A47",
        "share": 0.241
       },
       {
        "c": "#FFFFFF",
        "share": 0.098
       },
       {
        "c": "#B21700",
        "share": 0.05
       },
       {
        "c": "#0E0C19",
        "share": 0.017
       },
       {
        "c": "#22577A",
        "share": 0.009
       },
       {
        "c": "#CECECE",
        "share": 0.009
       },
       {
        "c": "#C4C4C4",
        "share": 0.008
       }
      ],
      "fonts": [
       {
        "f": "Open Sans",
        "share": 0.526
       },
       {
        "f": "Poppins",
        "share": 0.474
       }
      ],
      "sizes": [
       {
        "px": 13,
        "share": 0.022
       },
       {
        "px": 14,
        "share": 0.339
       },
       {
        "px": 15,
        "share": 0.375
       },
       {
        "px": 16,
        "share": 0.164
       },
       {
        "px": 20,
        "share": 0.069
       },
       {
        "px": 24,
        "share": 0.006
       },
       {
        "px": 28,
        "share": 0.019
       },
       {
        "px": 34,
        "share": 0.005
       }
      ],
      "distinctSizes": 8,
      "body": {
       "px": 15,
       "lh": 1.59,
       "cpl": 45,
       "samples": 11
      },
      "headings": [
       {
        "level": 4,
        "text": null,
        "px": 13,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 1,
        "text": null,
        "px": 24,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 34,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 28,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 28,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 4,
        "text": null,
        "px": 13,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Poppins"
       }
      ],
      "headingSkips": 1,
      "h1": 1,
      "contrast": {
       "measured": 48,
       "unmeasured": 6,
       "fails": 0,
       "worst": []
      },
      "controls": 44,
      "smallTargets": 22,
      "ctaInFirstScreen": [],
      "images": 23,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 0,
      "prices": [],
      "reviewsMentioned": true,
      "flesch": 50,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 0,
       "footer": true
      },
      "skipLink": false,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.564
       },
       {
        "c": "#B41800",
        "share": 0.052
       },
       {
        "c": "#000000",
        "share": 0.037
       },
       {
        "c": "#181818",
        "share": 0.022
       },
       {
        "c": "#0C0C0C",
        "share": 0.016
       },
       {
        "c": "#FCFCF0",
        "share": 0.009
       },
       {
        "c": "#F0F0F0",
        "share": 0.009
       },
       {
        "c": "#E4E4E4",
        "share": 0.008
       },
       {
        "c": "#D8D8D8",
        "share": 0.006
       },
       {
        "c": "#242424",
        "share": 0.006
       }
      ]
     },
     "1440": {
      "words": 588,
      "mainWords": 589,
      "height": 5008,
      "textColours": [
       {
        "c": "#000000",
        "share": 0.475
       },
       {
        "c": "#3C3A47",
        "share": 0.237
       },
       {
        "c": "#FFFFFF",
        "share": 0.102
       },
       {
        "c": "#B21700",
        "share": 0.049
       },
       {
        "c": "#0E0C19",
        "share": 0.016
       },
       {
        "c": "#22577A",
        "share": 0.009
       },
       {
        "c": "#CECECE",
        "share": 0.009
       },
       {
        "c": "#C4C4C4",
        "share": 0.008
       }
      ],
      "fonts": [
       {
        "f": "Open Sans",
        "share": 0.534
       },
       {
        "f": "Poppins",
        "share": 0.466
       }
      ],
      "sizes": [
       {
        "px": 13,
        "share": 0.008
       },
       {
        "px": 14,
        "share": 0.032
       },
       {
        "px": 15,
        "share": 0.379
       },
       {
        "px": 16,
        "share": 0.325
       },
       {
        "px": 18,
        "share": 0.064
       },
       {
        "px": 20,
        "share": 0.092
       },
       {
        "px": 24,
        "share": 0.037
       },
       {
        "px": 30,
        "share": 0.019
       },
       {
        "px": 34,
        "share": 0.006
       },
       {
        "px": 36,
        "share": 0.005
       },
       {
        "px": 50,
        "share": 0.027
       },
       {
        "px": 60,
        "share": 0.006
       }
      ],
      "distinctSizes": 12,
      "body": {
       "px": 15,
       "lh": 1.59,
       "cpl": 51,
       "samples": 11
      },
      "headings": [
       {
        "level": 4,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 1,
        "text": null,
        "px": 60,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 50,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 3,
        "text": null,
        "px": 24,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 36,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 30,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 30,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 4,
        "text": null,
        "px": 14,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 50,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 20,
        "weight": "500",
        "font": "Open Sans"
       },
       {
        "level": 2,
        "text": null,
        "px": 50,
        "weight": "500",
        "font": "Poppins"
       },
       {
        "level": 2,
        "text": null,
        "px": 34,
        "weight": "500",
        "font": "Open Sans"
       }
      ],
      "headingSkips": 1,
      "h1": 1,
      "contrast": {
       "measured": 55,
       "unmeasured": 6,
       "fails": 0,
       "worst": []
      },
      "controls": 52,
      "smallTargets": 8,
      "ctaInFirstScreen": [
       "Facebook",
       "Contact Us"
      ],
      "images": 23,
      "imagesNoAlt": 0,
      "tel": true,
      "mailto": true,
      "forms": 0,
      "prices": [],
      "reviewsMentioned": true,
      "flesch": 49,
      "landmarks": {
       "header": true,
       "nav": true,
       "main": 0,
       "footer": true
      },
      "skipLink": false,
      "pixels": [
       {
        "c": "#FCFCFC",
        "share": 0.454
       },
       {
        "c": "#B41800",
        "share": 0.13
       },
       {
        "c": "#000000",
        "share": 0.06
       },
       {
        "c": "#181818",
        "share": 0.02
       },
       {
        "c": "#F0F0F0",
        "share": 0.012
       },
       {
        "c": "#0C0C0C",
        "share": 0.011
       },
       {
        "c": "#D8D8D8",
        "share": 0.011
       },
       {
        "c": "#E4E4E4",
        "share": 0.01
       },
       {
        "c": "#000C0C",
        "share": 0.009
       },
       {
        "c": "#CCCCCC",
        "share": 0.008
       }
      ]
     }
    }
   }
  ]
 },
 "lighthouse": {
  "ranAt": "2026-11-04T13:55:47.869Z",
  "reports": [
   {
    "id": "cA",
    "mode": "desktop",
    "url": null,
    "fetchTime": "2026-11-04T13:53:49.060Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 88,
     "accessibility": 76,
     "best-practices": 100,
     "seo": 92
    },
    "metrics": {
     "fcp": 861.6279999999999,
     "lcp": 946.6279999999999,
     "tbt": 0,
     "cls": 0.21090396189037738,
     "si": 977.1032958962944
    },
    "weightKb": 694,
    "requests": 35,
    "byType": {
     "total": {
      "requests": 35,
      "kb": 694
     },
     "script": {
      "requests": 8,
      "kb": 292
     },
     "image": {
      "requests": 17,
      "kb": 222
     },
     "font": {
      "requests": 4,
      "kb": 114
     },
     "stylesheet": {
      "requests": 2,
      "kb": 38
     },
     "document": {
      "requests": 1,
      "kb": 22
     },
     "other": {
      "requests": 3,
      "kb": 7
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 4,
      "kb": 204
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Initial server response time was short",
      "ms": 76,
      "kb": 0
     },
     {
      "title": "Reduce unused JavaScript",
      "ms": 40,
      "kb": 104
     },
     {
      "title": "Reduce unused CSS",
      "ms": 40,
      "kb": 29
     },
     {
      "title": "Properly size images",
      "ms": 10,
      "kb": 48
     }
    ],
    "failing": {
     "accessibility": [
      "Elements use prohibited ARIA attributes",
      "Background and foreground colors do not have a sufficient contrast ratio.",
      "Links do not have a discernible name",
      "Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).",
      "List items (`<li>`) are not contained within `<ul>`, `<ol>` or `<menu>` parent elements."
     ],
     "best-practices": [],
     "seo": [
      "Links are not crawlable"
     ]
    },
    "warnings": []
   },
   {
    "id": "cA",
    "mode": "mobile",
    "url": null,
    "fetchTime": "2026-11-04T13:53:36.278Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 68,
     "accessibility": 90,
     "best-practices": 96,
     "seo": 92
    },
    "metrics": {
     "fcp": 3635.2919999999995,
     "lcp": 5598.2919999999995,
     "tbt": 89,
     "cls": 0.1013048035450125,
     "si": 3635.2919999999995
    },
    "weightKb": 739,
    "requests": 36,
    "byType": {
     "total": {
      "requests": 36,
      "kb": 739
     },
     "script": {
      "requests": 9,
      "kb": 293
     },
     "image": {
      "requests": 17,
      "kb": 222
     },
     "font": {
      "requests": 4,
      "kb": 157
     },
     "stylesheet": {
      "requests": 2,
      "kb": 38
     },
     "document": {
      "requests": 1,
      "kb": 22
     },
     "other": {
      "requests": 3,
      "kb": 7
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 4,
      "kb": 203
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 450,
      "kb": 104
     },
     {
      "title": "Preconnect to required origins",
      "ms": 339,
      "kb": 0
     },
     {
      "title": "Reduce unused CSS",
      "ms": 150,
      "kb": 27
     },
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 72
     }
    ],
    "failing": {
     "accessibility": [
      "Background and foreground colors do not have a sufficient contrast ratio.",
      "Links do not have a discernible name"
     ],
     "best-practices": [
      "Displays images with incorrect aspect ratio"
     ],
     "seo": [
      "Links are not crawlable"
     ]
    },
    "warnings": []
   },
   {
    "id": "cB",
    "mode": "desktop",
    "url": null,
    "fetchTime": "2026-11-04T13:54:21.564Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 83,
     "accessibility": 83,
     "best-practices": 70,
     "seo": 85
    },
    "metrics": {
     "fcp": 1350.005,
     "lcp": 1760.9820000000002,
     "tbt": 0.5,
     "cls": 0.026803032380045534,
     "si": 2495.5322299151485
    },
    "weightKb": 2463,
    "requests": 141,
    "byType": {
     "total": {
      "requests": 140,
      "kb": 2463
     },
     "image": {
      "requests": 62,
      "kb": 1395
     },
     "script": {
      "requests": 38,
      "kb": 640
     },
     "stylesheet": {
      "requests": 24,
      "kb": 196
     },
     "font": {
      "requests": 8,
      "kb": 185
     },
     "document": {
      "requests": 1,
      "kb": 40
     },
     "other": {
      "requests": 7,
      "kb": 8
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 22,
      "kb": 326
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce initial server response time",
      "ms": 622,
      "kb": 0
     },
     {
      "title": "Properly size images",
      "ms": 260,
      "kb": 366
     },
     {
      "title": "Serve images in next-gen formats",
      "ms": 120,
      "kb": 799
     },
     {
      "title": "Reduce unused JavaScript",
      "ms": 120,
      "kb": 302
     },
     {
      "title": "Reduce unused CSS",
      "ms": 60,
      "kb": 149
     },
     {
      "title": "Efficiently encode images",
      "ms": 0,
      "kb": 376
     }
    ],
    "failing": {
     "accessibility": [
      "Background and foreground colors do not have a sufficient contrast ratio.",
      "Image elements do not have `[alt]` attributes",
      "Form elements do not have associated labels",
      "`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than 5."
     ],
     "best-practices": [
      "Displays images with incorrect aspect ratio",
      "Uses third-party cookies",
      "Browser errors were logged to the console",
      "Issues were logged in the `Issues` panel in Chrome Devtools"
     ],
     "seo": [
      "Links are not crawlable",
      "Image elements do not have `[alt]` attributes"
     ]
    },
    "warnings": []
   },
   {
    "id": "cB",
    "mode": "mobile",
    "url": null,
    "fetchTime": "2026-11-04T13:54:02.026Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 61,
     "accessibility": 76,
     "best-practices": 71,
     "seo": 85
    },
    "metrics": {
     "fcp": 4822.906000000001,
     "lcp": 6933.4439999999995,
     "tbt": 155.5,
     "cls": 0.04481104110080476,
     "si": 5332.405853094791
    },
    "weightKb": 1833,
    "requests": 97,
    "byType": {
     "total": {
      "requests": 96,
      "kb": 1833
     },
     "image": {
      "requests": 18,
      "kb": 757
     },
     "script": {
      "requests": 38,
      "kb": 640
     },
     "stylesheet": {
      "requests": 24,
      "kb": 196
     },
     "font": {
      "requests": 8,
      "kb": 193
     },
     "document": {
      "requests": 1,
      "kb": 40
     },
     "other": {
      "requests": 7,
      "kb": 8
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 22,
      "kb": 334
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Properly size images",
      "ms": 940,
      "kb": 307
     },
     {
      "title": "Reduce initial server response time",
      "ms": 830,
      "kb": 0
     },
     {
      "title": "Reduce unused JavaScript",
      "ms": 790,
      "kb": 302
     },
     {
      "title": "Serve images in next-gen formats",
      "ms": 630,
      "kb": 393
     },
     {
      "title": "Reduce unused CSS",
      "ms": 630,
      "kb": 149
     },
     {
      "title": "Preconnect to required origins",
      "ms": 334,
      "kb": 0
     }
    ],
    "failing": {
     "accessibility": [
      "Background and foreground colors do not have a sufficient contrast ratio.",
      "Image elements do not have `[alt]` attributes",
      "Form elements do not have associated labels",
      "Links rely on color to be distinguishable.",
      "Links do not have a discernible name",
      "`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than 5."
     ],
     "best-practices": [
      "Displays images with incorrect aspect ratio",
      "Uses third-party cookies",
      "Browser errors were logged to the console",
      "Issues were logged in the `Issues` panel in Chrome Devtools"
     ],
     "seo": [
      "Links are not crawlable",
      "Image elements do not have `[alt]` attributes"
     ]
    },
    "warnings": []
   },
   {
    "id": "cC",
    "mode": "desktop",
    "url": null,
    "fetchTime": "2026-11-04T13:54:55.432Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 98,
     "accessibility": 97,
     "best-practices": 96,
     "seo": 100
    },
    "metrics": {
     "fcp": 453.456,
     "lcp": 1024.02,
     "tbt": 0,
     "cls": 0,
     "si": 1034.2805020189396
    },
    "weightKb": 266,
    "requests": 12,
    "byType": {
     "total": {
      "requests": 12,
      "kb": 266
     },
     "image": {
      "requests": 5,
      "kb": 190
     },
     "font": {
      "requests": 1,
      "kb": 34
     },
     "document": {
      "requests": 1,
      "kb": 26
     },
     "other": {
      "requests": 3,
      "kb": 15
     },
     "script": {
      "requests": 2,
      "kb": 1
     },
     "stylesheet": {
      "requests": 0,
      "kb": 0
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 1,
      "kb": 0
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce initial server response time",
      "ms": 516,
      "kb": 0
     },
     {
      "title": "Preconnect to required origins",
      "ms": 125,
      "kb": 0
     },
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 163
     }
    ],
    "failing": {
     "accessibility": [
      "Background and foreground colors do not have a sufficient contrast ratio."
     ],
     "best-practices": [
      "Browser errors were logged to the console"
     ],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "cC",
    "mode": "mobile",
    "url": null,
    "fetchTime": "2026-11-04T13:54:41.897Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 99,
     "accessibility": 96,
     "best-practices": 96,
     "seo": 100
    },
    "metrics": {
     "fcp": 1331.7350000000001,
     "lcp": 1967.597,
     "tbt": 0,
     "cls": 0.03204069772592049,
     "si": 2362.1997339558598
    },
    "weightKb": 266,
    "requests": 12,
    "byType": {
     "total": {
      "requests": 12,
      "kb": 266
     },
     "image": {
      "requests": 5,
      "kb": 190
     },
     "font": {
      "requests": 1,
      "kb": 34
     },
     "document": {
      "requests": 1,
      "kb": 25
     },
     "other": {
      "requests": 3,
      "kb": 15
     },
     "script": {
      "requests": 2,
      "kb": 1
     },
     "stylesheet": {
      "requests": 0,
      "kb": 0
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 1,
      "kb": 0
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce initial server response time",
      "ms": 614,
      "kb": 0
     },
     {
      "title": "Preconnect to required origins",
      "ms": 295,
      "kb": 0
     },
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 127
     }
    ],
    "failing": {
     "accessibility": [
      "Background and foreground colors do not have a sufficient contrast ratio."
     ],
     "best-practices": [
      "Browser errors were logged to the console"
     ],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "cD",
    "mode": "desktop",
    "url": null,
    "fetchTime": "2026-11-04T13:55:23.627Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 96,
     "accessibility": 86,
     "best-practices": 96,
     "seo": 100
    },
    "metrics": {
     "fcp": 672.049,
     "lcp": 1128.58,
     "tbt": 0,
     "cls": 0.052717250313749534,
     "si": 1241.405704137203
    },
    "weightKb": 1630,
    "requests": 55,
    "byType": {
     "total": {
      "requests": 55,
      "kb": 1630
     },
     "image": {
      "requests": 21,
      "kb": 926
     },
     "script": {
      "requests": 18,
      "kb": 341
     },
     "font": {
      "requests": 6,
      "kb": 295
     },
     "document": {
      "requests": 1,
      "kb": 48
     },
     "stylesheet": {
      "requests": 6,
      "kb": 18
     },
     "other": {
      "requests": 3,
      "kb": 2
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 10,
      "kb": 437
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Initial server response time was short",
      "ms": 400,
      "kb": 0
     },
     {
      "title": "Properly size images",
      "ms": 60,
      "kb": 617
     },
     {
      "title": "Serve images in next-gen formats",
      "ms": 60,
      "kb": 302
     },
     {
      "title": "Reduce unused JavaScript",
      "ms": 60,
      "kb": 134
     },
     {
      "title": "Reduce unused CSS",
      "ms": 0,
      "kb": 37
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order",
      "Links do not have a discernible name",
      "`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than 5."
     ],
     "best-practices": [
      "Browser errors were logged to the console"
     ],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "cD",
    "mode": "mobile",
    "url": null,
    "fetchTime": "2026-11-04T13:55:08.100Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 72,
     "accessibility": 79,
     "best-practices": 96,
     "seo": 100
    },
    "metrics": {
     "fcp": 1423.6829999999998,
     "lcp": 7648.230999999997,
     "tbt": 70,
     "cls": 0.05661768111227645,
     "si": 4664.277495806903
    },
    "weightKb": 1458,
    "requests": 44,
    "byType": {
     "total": {
      "requests": 44,
      "kb": 1458
     },
     "image": {
      "requests": 9,
      "kb": 706
     },
     "font": {
      "requests": 7,
      "kb": 344
     },
     "script": {
      "requests": 18,
      "kb": 341
     },
     "document": {
      "requests": 1,
      "kb": 48
     },
     "stylesheet": {
      "requests": 6,
      "kb": 18
     },
     "other": {
      "requests": 3,
      "kb": 2
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 11,
      "kb": 485
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 670,
      "kb": 134
     },
     {
      "title": "Reduce initial server response time",
      "ms": 644,
      "kb": 0
     },
     {
      "title": "Properly size images",
      "ms": 390,
      "kb": 494
     },
     {
      "title": "Serve images in next-gen formats",
      "ms": 340,
      "kb": 293
     },
     {
      "title": "Reduce unused CSS",
      "ms": 0,
      "kb": 38
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order",
      "Links do not have a discernible name",
      "`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than 5."
     ],
     "best-practices": [
      "Browser errors were logged to the console"
     ],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-audit",
    "mode": "desktop",
    "url": "https://www.rgleeson.com/audit.html",
    "fetchTime": "2026-11-04T13:52:13.818Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 93,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 926.3909999999998,
     "lcp": 926.3909999999998,
     "tbt": 0,
     "cls": 0.1290130295070484,
     "si": 929.0450459718526
    },
    "weightKb": 306,
    "requests": 14,
    "byType": {
     "total": {
      "requests": 14,
      "kb": 306
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 4,
      "kb": 109
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "image": {
      "requests": 1,
      "kb": 7
     },
     "document": {
      "requests": 1,
      "kb": 4
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 8,
      "kb": 270
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 0,
      "kb": 70
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-audit",
    "mode": "mobile",
    "url": "https://www.rgleeson.com/audit.html",
    "fetchTime": "2026-11-04T13:52:01.736Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 75,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 3253.5434999999998,
     "lcp": 4826.4805,
     "tbt": 26,
     "cls": 0,
     "si": 3590.394496430863
    },
    "weightKb": 306,
    "requests": 14,
    "byType": {
     "total": {
      "requests": 14,
      "kb": 306
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 4,
      "kb": 109
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "image": {
      "requests": 1,
      "kb": 7
     },
     "document": {
      "requests": 1,
      "kb": 4
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 8,
      "kb": 270
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 880,
      "kb": 71
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-case",
    "mode": "desktop",
    "url": "https://www.rgleeson.com/project-action-carpets.html",
    "fetchTime": "2026-11-04T13:53:01.623Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 99,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 702.4700000000001,
     "lcp": 943.7080000000001,
     "tbt": 0,
     "cls": 0.03387497324008405,
     "si": 702.4700000000001
    },
    "weightKb": 392,
    "requests": 17,
    "byType": {
     "total": {
      "requests": 17,
      "kb": 392
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 5,
      "kb": 125
     },
     "image": {
      "requests": 2,
      "kb": 76
     },
     "stylesheet": {
      "requests": 5,
      "kb": 21
     },
     "document": {
      "requests": 1,
      "kb": 6
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 10,
      "kb": 287
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Properly size images",
      "ms": 20,
      "kb": 36
     },
     {
      "title": "Reduce unused JavaScript",
      "ms": 0,
      "kb": 71
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-case",
    "mode": "mobile",
    "url": "https://www.rgleeson.com/project-action-carpets.html",
    "fetchTime": "2026-11-04T13:52:48.811Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 80,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 3172.235,
     "lcp": 4198.947,
     "tbt": 3.5,
     "cls": 0,
     "si": 3172.235
    },
    "weightKb": 392,
    "requests": 17,
    "byType": {
     "total": {
      "requests": 17,
      "kb": 392
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 5,
      "kb": 125
     },
     "image": {
      "requests": 2,
      "kb": 76
     },
     "stylesheet": {
      "requests": 5,
      "kb": 20
     },
     "document": {
      "requests": 1,
      "kb": 6
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 10,
      "kb": 287
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 520,
      "kb": 70
     },
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 64
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-home",
    "mode": "desktop",
    "url": "https://www.rgleeson.com/",
    "fetchTime": "2026-11-04T13:51:26.633Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 99,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 709.8599999999999,
     "lcp": 826.294,
     "tbt": 0,
     "cls": 0.01201051352771211,
     "si": 969.4216059678494
    },
    "weightKb": 671,
    "requests": 18,
    "byType": {
     "total": {
      "requests": 18,
      "kb": 671
     },
     "image": {
      "requests": 6,
      "kb": 393
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 3,
      "kb": 89
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "document": {
      "requests": 1,
      "kb": 5
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 7,
      "kb": 249
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 110,
      "kb": 71
     },
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 341
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-home",
    "mode": "mobile",
    "url": "https://www.rgleeson.com/",
    "fetchTime": "2026-11-04T13:51:13.884Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 84,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 2956.0440000000003,
     "lcp": 3677.026,
     "tbt": 15.5,
     "cls": 0.04001673898558023,
     "si": 2956.0440000000003
    },
    "weightKb": 671,
    "requests": 18,
    "byType": {
     "total": {
      "requests": 18,
      "kb": 671
     },
     "image": {
      "requests": 6,
      "kb": 393
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 3,
      "kb": 89
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "document": {
      "requests": 1,
      "kb": 5
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 7,
      "kb": 249
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 400,
      "kb": 71
     },
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 331
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-post",
    "mode": "desktop",
    "url": "https://www.rgleeson.com/post-website-invisible-to-ai.html",
    "fetchTime": "2026-11-04T13:53:25.300Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 99,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 547.467,
     "lcp": 915.4769999999999,
     "tbt": 0,
     "cls": 0.0006570293757114089,
     "si": 547.467
    },
    "weightKb": 404,
    "requests": 16,
    "byType": {
     "total": {
      "requests": 16,
      "kb": 404
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 4,
      "kb": 109
     },
     "image": {
      "requests": 2,
      "kb": 100
     },
     "stylesheet": {
      "requests": 5,
      "kb": 23
     },
     "document": {
      "requests": 1,
      "kb": 6
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 8,
      "kb": 270
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 100,
      "kb": 71
     },
     {
      "title": "Properly size images",
      "ms": 50,
      "kb": 68
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-post",
    "mode": "mobile",
    "url": "https://www.rgleeson.com/post-website-invisible-to-ai.html",
    "fetchTime": "2026-11-04T13:53:13.100Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 72,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 3496.337,
     "lcp": 5414.244000000001,
     "tbt": 18,
     "cls": 0,
     "si": 3806.413559985447
    },
    "weightKb": 404,
    "requests": 16,
    "byType": {
     "total": {
      "requests": 16,
      "kb": 404
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 4,
      "kb": 109
     },
     "image": {
      "requests": 2,
      "kb": 100
     },
     "stylesheet": {
      "requests": 5,
      "kb": 23
     },
     "document": {
      "requests": 1,
      "kb": 6
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 8,
      "kb": 270
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 880,
      "kb": 71
     },
     {
      "title": "Properly size images",
      "ms": 530,
      "kb": 91
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-websites",
    "mode": "desktop",
    "url": "https://www.rgleeson.com/websites.html",
    "fetchTime": "2026-11-04T13:51:49.599Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 98,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 789.3969999999999,
     "lcp": 789.3969999999999,
     "tbt": 0,
     "cls": 0.010635916878265185,
     "si": 1135.3616394371745
    },
    "weightKb": 557,
    "requests": 20,
    "byType": {
     "total": {
      "requests": 20,
      "kb": 557
     },
     "image": {
      "requests": 7,
      "kb": 256
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 4,
      "kb": 109
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "document": {
      "requests": 1,
      "kb": 8
     },
     "other": {
      "requests": 2,
      "kb": 1
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 8,
      "kb": 270
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 219
     },
     {
      "title": "Reduce unused JavaScript",
      "ms": 0,
      "kb": 71
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-websites",
    "mode": "mobile",
    "url": "https://www.rgleeson.com/websites.html",
    "fetchTime": "2026-11-04T13:51:38.188Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 81,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 3096.076,
     "lcp": 4044.6450000000004,
     "tbt": 4.5,
     "cls": 0.001401095448273284,
     "si": 3096.076
    },
    "weightKb": 505,
    "requests": 18,
    "byType": {
     "total": {
      "requests": 18,
      "kb": 505
     },
     "image": {
      "requests": 5,
      "kb": 202
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 4,
      "kb": 109
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "document": {
      "requests": 1,
      "kb": 8
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 8,
      "kb": 270
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 500,
      "kb": 71
     },
     {
      "title": "Properly size images",
      "ms": 0,
      "kb": 169
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-work",
    "mode": "desktop",
    "url": "https://www.rgleeson.com/work.html",
    "fetchTime": "2026-11-04T13:52:36.333Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 99,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 582.105,
     "lcp": 939.8444999999999,
     "tbt": 0,
     "cls": 0.01532080203134577,
     "si": 731.2656658840065
    },
    "weightKb": 916,
    "requests": 22,
    "byType": {
     "total": {
      "requests": 22,
      "kb": 916
     },
     "image": {
      "requests": 10,
      "kb": 639
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 3,
      "kb": 89
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "document": {
      "requests": 1,
      "kb": 4
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 7,
      "kb": 249
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Properly size images",
      "ms": 40,
      "kb": 554
     },
     {
      "title": "Reduce unused JavaScript",
      "ms": 0,
      "kb": 71
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   },
   {
    "id": "rg-work",
    "mode": "mobile",
    "url": "https://www.rgleeson.com/work.html",
    "fetchTime": "2026-11-04T13:52:25.280Z",
    "lighthouse": "12.2.1",
    "scores": {
     "performance": 90,
     "accessibility": 98,
     "best-practices": 100,
     "seo": 100
    },
    "metrics": {
     "fcp": 1599.5590000000002,
     "lcp": 3527.0845000000004,
     "tbt": 4,
     "cls": 0.0218313404564104,
     "si": 1599.5590000000002
    },
    "weightKb": 864,
    "requests": 21,
    "byType": {
     "total": {
      "requests": 21,
      "kb": 864
     },
     "image": {
      "requests": 9,
      "kb": 587
     },
     "script": {
      "requests": 2,
      "kb": 163
     },
     "font": {
      "requests": 3,
      "kb": 89
     },
     "stylesheet": {
      "requests": 4,
      "kb": 20
     },
     "document": {
      "requests": 1,
      "kb": 4
     },
     "other": {
      "requests": 2,
      "kb": 3
     },
     "media": {
      "requests": 0,
      "kb": 0
     },
     "third-party": {
      "requests": 7,
      "kb": 249
     }
    },
    "lcpElement": null,
    "opportunities": [
     {
      "title": "Reduce unused JavaScript",
      "ms": 450,
      "kb": 71
     },
     {
      "title": "Properly size images",
      "ms": 240,
      "kb": 493
     }
    ],
    "failing": {
     "accessibility": [
      "Heading elements are not in a sequentially-descending order"
     ],
     "best-practices": [],
     "seo": []
    },
    "warnings": []
   }
  ]
 },
 "links": {
  "site": "https://www.rgleeson.com",
  "ranAt": "2026-11-04T13:53:50.416Z",
  "pages": [
   {
    "url": "https://www.rgleeson.com/",
    "internal": 29,
    "external": 1,
    "images": 6,
    "imagesNoAlt": 0,
    "imageBytes": 401098
   },
   {
    "url": "https://www.rgleeson.com/work.html",
    "internal": 36,
    "external": 5,
    "images": 14,
    "imagesNoAlt": 0,
    "imageBytes": 1130380
   },
   {
    "url": "https://www.rgleeson.com/websites.html",
    "internal": 32,
    "external": 5,
    "images": 8,
    "imagesNoAlt": 0,
    "imageBytes": 262200
   },
   {
    "url": "https://www.rgleeson.com/journal.html",
    "internal": 31,
    "external": 1,
    "images": 1,
    "imagesNoAlt": 0,
    "imageBytes": 6706
   },
   {
    "url": "https://www.rgleeson.com/about.html",
    "internal": 21,
    "external": 1,
    "images": 1,
    "imagesNoAlt": 0,
    "imageBytes": 6706
   },
   {
    "url": "https://www.rgleeson.com/services.html",
    "internal": 21,
    "external": 1,
    "images": 1,
    "imagesNoAlt": 0,
    "imageBytes": 6706
   },
   {
    "url": "https://www.rgleeson.com/audit.html",
    "internal": 26,
    "external": 1,
    "images": 1,
    "imagesNoAlt": 0,
    "imageBytes": 6706
   },
   {
    "url": "https://www.rgleeson.com/design-system.html",
    "internal": 25,
    "external": 1,
    "images": 1,
    "imagesNoAlt": 0,
    "imageBytes": 6706
   },
   {
    "url": "https://www.rgleeson.com/faq.html",
    "internal": 23,
    "external": 1,
    "images": 1,
    "imagesNoAlt": 0,
    "imageBytes": 6706
   },
   {
    "url": "https://www.rgleeson.com/contact.html",
    "internal": 20,
    "external": 2,
    "images": 1,
    "imagesNoAlt": 0,
    "imageBytes": 6706
   },
   {
    "url": "https://www.rgleeson.com/project-action-carpets.html",
    "internal": 25,
    "external": 2,
    "images": 4,
    "imagesNoAlt": 0,
    "imageBytes": 200320
   },
   {
    "url": "https://www.rgleeson.com/project-betcollab.html",
    "internal": 24,
    "external": 10,
    "images": 6,
    "imagesNoAlt": 0,
    "imageBytes": 183490
   },
   {
    "url": "https://www.rgleeson.com/project-coaches-voice.html",
    "internal": 24,
    "external": 1,
    "images": 12,
    "imagesNoAlt": 0,
    "imageBytes": 1029360
   },
   {
    "url": "https://www.rgleeson.com/project-digest.html",
    "internal": 24,
    "external": 1,
    "images": 21,
    "imagesNoAlt": 0,
    "imageBytes": 1636874
   },
   {
    "url": "https://www.rgleeson.com/project-downtogroundworks.html",
    "internal": 25,
    "external": 2,
    "images": 4,
    "imagesNoAlt": 0,
    "imageBytes": 175880
   },
   {
    "url": "https://www.rgleeson.com/project-fanatics.html",
    "internal": 24,
    "external": 1,
    "images": 10,
    "imagesNoAlt": 0,
    "imageBytes": 704368
   },
   {
    "url": "https://www.rgleeson.com/project-fsb.html",
    "internal": 24,
    "external": 1,
    "images": 15,
    "imagesNoAlt": 0,
    "imageBytes": 809136
   },
   {
    "url": "https://www.rgleeson.com/project-ocro.html",
    "internal": 24,
    "external": 1,
    "images": 8,
    "imagesNoAlt": 0,
    "imageBytes": 993422
   },
   {
    "url": "https://www.rgleeson.com/project-reps.html",
    "internal": 24,
    "external": 1,
    "images": 19,
    "imagesNoAlt": 0,
    "imageBytes": 1489924
   },
   {
    "url": "https://www.rgleeson.com/project-top-villas.html",
    "internal": 24,
    "external": 1,
    "images": 12,
    "imagesNoAlt": 0,
    "imageBytes": 1475934
   },
   {
    "url": "https://www.rgleeson.com/project-versus.html",
    "internal": 24,
    "external": 1,
    "images": 6,
    "imagesNoAlt": 0,
    "imageBytes": 211992
   },
   {
    "url": "https://www.rgleeson.com/project-wec.html",
    "internal": 24,
    "external": 1,
    "images": 12,
    "imagesNoAlt": 0,
    "imageBytes": 2005168
   },
   {
    "url": "https://www.rgleeson.com/post-fitting-a-design-system.html",
    "internal": 28,
    "external": 1,
    "images": 11,
    "imagesNoAlt": 0,
    "imageBytes": 546702
   },
   {
    "url": "https://www.rgleeson.com/post-website-invisible-to-ai.html",
    "internal": 27,
    "external": 1,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 101716
   },
   {
    "url": "https://www.rgleeson.com/post-agent-readiness-checklist.html",
    "internal": 30,
    "external": 1,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 122852
   },
   {
    "url": "https://www.rgleeson.com/post-landing-page-prompts.html",
    "internal": 25,
    "external": 1,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 52166
   },
   {
    "url": "https://www.rgleeson.com/post-web-design-trends-2026.html",
    "internal": 25,
    "external": 2,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 117584
   },
   {
    "url": "https://www.rgleeson.com/post-homepage-hero.html",
    "internal": 25,
    "external": 1,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 123152
   },
   {
    "url": "https://www.rgleeson.com/post-ux-beyond-the-interface.html",
    "internal": 25,
    "external": 2,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 101716
   },
   {
    "url": "https://www.rgleeson.com/post-ai-design-workflow.html",
    "internal": 25,
    "external": 2,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 122852
   },
   {
    "url": "https://www.rgleeson.com/post-claude-design.html",
    "internal": 25,
    "external": 2,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 18640
   },
   {
    "url": "https://www.rgleeson.com/post-ux-fundamentals.html",
    "internal": 25,
    "external": 2,
    "images": 2,
    "imagesNoAlt": 0,
    "imageBytes": 138400
   }
  ],
  "totals": {
   "pages": 32,
   "internalLinks": 32,
   "externalLinks": 18,
   "images": 152,
   "imagesNoAlt": 0,
   "imageBytes": 13349330
  },
  "brokenInternal": [],
  "redirectingInternal": [],
  "brokenExternal": [
   {
    "url": "https://webflow.com/blog/web-design-trends-2026",
    "from": [
     "https://www.rgleeson.com/post-web-design-trends-2026.html"
    ],
    "status": 0,
    "error": "UND_ERR_HEADERS_OVERFLOW"
   }
  ],
  "refusedExternal": [],
  "orphans": [],
  "heaviestImages": [
   {
    "url": "https://www.rgleeson.com/assets/images/Homepage.webp",
    "bytes": 404570,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/Article-1.webp",
    "bytes": 328614,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/Digest-Colour@2x.webp",
    "bytes": 303438,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/Reps-Colour-Palettes@2x.webp",
    "bytes": 301388,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/ocro-mobile-2.webp",
    "bytes": 275476,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/News.webp",
    "bytes": 236080,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/Home.webp",
    "bytes": 213764,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/Ocro-Try-us-for-Free-1.webp",
    "bytes": 209438,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/top-villas-listing-scaled.webp",
    "bytes": 207280,
    "pages": 1
   },
   {
    "url": "https://www.rgleeson.com/assets/images/Ocro-Homepage-1.webp",
    "bytes": 173940,
    "pages": 1
   }
  ]
 },
 "search": {
  "ranAt": "2026-11-04",
  "method": "Firecrawl web search API, location set to Dover, England; top 20 organic results recorded (top 10 for the brand query). Not a personal Google search: no history, no map pack, no ads.",
  "queries": [
   {
    "q": "web design Dover",
    "depth": 20,
    "rgleeson": null,
    "positions": {
     "cA": 1,
     "cC": 2,
     "cD": 3,
     "cB": 4
    }
   },
   {
    "q": "website designer Dover Kent small business",
    "depth": 20,
    "rgleeson": null,
    "positions": {
     "cA": 1,
     "cB": 2,
     "cC": 3,
     "cD": 6
    }
   },
   {
    "q": "web design Dover Kent small business website designer",
    "depth": 15,
    "rgleeson": null,
    "positions": {
     "cA": 1,
     "cB": 2,
     "cC": 3,
     "cD": 9
    }
   },
   {
    "q": "RG Web Design Dover",
    "depth": 10,
    "rgleeson": null,
    "positions": {
     "cA": 2,
     "cC": 3,
     "cD": 6,
     "cB": 9
    },
    "note": "Result 1 is rgwebdesign.co.uk, a different business called RG Web Design, based in Sussex."
   },
   {
    "q": "AI readiness website audit UK",
    "depth": 20,
    "rgleeson": null,
    "positions": {}
   }
  ]
 },
 "sitePages": {
  "site": "https://www.rgleeson.com",
  "ranAt": "2026-11-04T10:59:51.456Z",
  "limits": [
   "Bot fetches send each bot's user-agent from this machine, not from the bot's own network, so they show what the server returns to that user-agent, not what a firewall would do to the real crawler.",
   "Accessible names use a simplified version of the browser algorithm.",
   "Tap targets: inline text links inside sentences are exempt, as WCAG 2.5.8 allows."
  ],
  "robots": {
   "status": 200,
   "body": "User-agent: *\nAllow: /\n\nSitemap: https://www.rgleeson.com/sitemap.xml\n",
   "perBot": {
    "GPTBot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "OAI-SearchBot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "ChatGPT-User": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "ClaudeBot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "Claude-SearchBot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "PerplexityBot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "Google-Extended": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "Googlebot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "Bingbot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    },
    "CCBot": {
     "namedGroup": false,
     "blocked": false,
     "rules": [
      "allow: /"
     ]
    }
   },
   "sitemapsDeclared": [
    "https://www.rgleeson.com/sitemap.xml"
   ]
  },
  "llms": {
   "status": 200,
   "type": "text/plain; charset=utf-8",
   "bytes": 5126,
   "startsWithHeading": true,
   "links": [
    {
     "url": "https://www.rgleeson.com/",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/work.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/websites.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/audit.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/services.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/about.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/contact.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/design-system.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/journal.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-betcollab.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-coaches-voice.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-fsb.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-fanatics.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-top-villas.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-action-carpets.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-downtogroundworks.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/project-ocro.html",
     "status": 200
    },
    {
     "url": "https://www.vancatuk.com/",
     "status": 200
    },
    {
     "url": "https://olivias-sales.co.uk/",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-fitting-a-design-system.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-homepage-hero.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-landing-page-prompts.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-web-design-trends-2026.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-ux-beyond-the-interface.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-ai-design-workflow.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-claude-design.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/post-ux-fundamentals.html",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/feed.xml",
     "status": 200
    },
    {
     "url": "https://www.rgleeson.com/sitemap.xml",
     "status": 200
    }
   ]
  },
  "sitemap": {
   "status": 200,
   "count": 32
  },
  "notFound": {
   "status": 404
  },
  "redirects": {
   "http://www.rgleeson.com/": {
    "status": 308,
    "location": "https://www.rgleeson.com/"
   },
   "https://rgleeson.com/": {
    "status": 308,
    "location": "https://www.rgleeson.com/"
   },
   "http://rgleeson.com/": {
    "status": 308,
    "location": "https://rgleeson.com/"
   }
  },
  "pages": [
   {
    "url": "https://www.rgleeson.com/",
    "status": 200,
    "ms": 13,
    "rawWords": 321,
    "sedWords": 561,
    "title": "Richard Gleeson — UI/UX &amp; Product Designer",
    "titleLen": 42,
    "desc": "Richard Gleeson is a UI/UX and Product Designer with 20+ years' experience creating user-focused, research-led digital products.",
    "descLen": 128,
    "canonical": "https://www.rgleeson.com/",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "Person",
       "PostalAddress",
       "Place",
       "WebSite",
       "ProfessionalService",
       "City",
       "AdministrativeArea",
       "Country"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 321
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 321
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 321
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 321
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 321
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 226,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 233,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 29,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/work.html",
    "status": 200,
    "ms": 38,
    "rawWords": 280,
    "sedWords": 305,
    "title": "Work — Richard Gleeson",
    "titleLen": 22,
    "desc": "Selected UI/UX and product design projects by Richard Gleeson — sportsbook platforms, design systems, and product concepts.",
    "descLen": 123,
    "canonical": "https://www.rgleeson.com/work.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 280
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 280
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 280
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 280
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 280
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 261,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 31,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 268,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 36,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/websites.html",
    "status": 200,
    "ms": 14,
    "rawWords": 972,
    "sedWords": 1438,
    "title": "Web design in Dover, Kent — Richard Gleeson",
    "titleLen": 43,
    "desc": "Professional business websites for service organisations in Dover, Kent and across the UK — a fast, well-designed web presence built with AI, from £400. Shopify online stores available too.",
    "descLen": 189,
    "canonical": "https://www.rgleeson.com/websites.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "ProfessionalService",
       "PostalAddress",
       "City",
       "AdministrativeArea",
       "Country",
       "Person",
       "OfferCatalog",
       "Offer",
       "Service",
       "PriceSpecification"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 972
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 972
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 972
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 972
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 972
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 948,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 37,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 955,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 42,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/journal.html",
    "status": 200,
    "ms": 17,
    "rawWords": 597,
    "sedWords": 678,
    "title": "Journal — Richard Gleeson",
    "titleLen": 25,
    "desc": "Notes on design, the web, and what actually holds up once a site is live — written by Richard Gleeson, UI/UX and Product Designer.",
    "descLen": 130,
    "canonical": "https://www.rgleeson.com/journal.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 597
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 597
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 597
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 597
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 597
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 582,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 589,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 29,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/about.html",
    "status": 200,
    "ms": 12,
    "rawWords": 337,
    "sedWords": 363,
    "title": "About — Richard Gleeson",
    "titleLen": 23,
    "desc": "Senior UI/UX/Product Designer with over a decade of experience building scalable design systems, intuitive products, and responsive web solutions.",
    "descLen": 146,
    "canonical": "https://www.rgleeson.com/about.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 337
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 337
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 337
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 337
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 337
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 319,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 14,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 326,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/services.html",
    "status": 200,
    "ms": 14,
    "rawWords": 428,
    "sedWords": 452,
    "title": "Skills — Richard Gleeson",
    "titleLen": 24,
    "desc": "The specialisms Richard Gleeson brings to a team — UI/UX, product design, Figma, design systems, and an AI-augmented workflow that ships real, working software.",
    "descLen": 160,
    "canonical": "https://www.rgleeson.com/services.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 428
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 428
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 428
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 428
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 428
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 413,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 14,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 420,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/audit.html",
    "status": 200,
    "ms": 127,
    "rawWords": 437,
    "sedWords": 587,
    "title": "AI &amp; Agent Readiness Audit — Richard Gleeson",
    "titleLen": 44,
    "desc": "A fixed-price £150 audit of whether AI assistants and search engines can actually read and use your website, against Google's own agent-friendly spec. Written report, prioritised fixes, credited toward a build.",
    "descLen": 210,
    "canonical": "https://www.rgleeson.com/audit.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "Service",
       "Person",
       "City",
       "AdministrativeArea",
       "Country",
       "Offer"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 437
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 437
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 437
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 437
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 437
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 419,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 21,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 426,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 26,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/design-system.html",
    "status": 200,
    "ms": 14,
    "rawWords": 1191,
    "sedWords": 1279,
    "title": "Design system — Richard Gleeson",
    "titleLen": 31,
    "desc": "The design system behind rgleeson.com: where it came from, every colour and contrast pair measured, type, components and rules. Generated from the live stylesheet.",
    "descLen": 163,
    "canonical": "https://www.rgleeson.com/design-system.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "WebPage",
       "Person",
       "Thing"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1191
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1191
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1191
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1191
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1191
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 1176,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 23,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 1183,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 28,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/faq.html",
    "status": 200,
    "ms": 11,
    "rawWords": 480,
    "sedWords": 965,
    "title": "FAQ — Web design in Kent | Richard Gleeson",
    "titleLen": 42,
    "desc": "Common questions about my web design service in Dover, Kent — pricing (from £400), Shopify vs WordPress, timelines, site ownership, and what happens after launch.",
    "descLen": 162,
    "canonical": "https://www.rgleeson.com/faq.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "FAQPage",
       "Question",
       "Answer"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 480
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 480
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 480
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 480
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 480
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 465,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 16,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 472,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 21,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/contact.html",
    "status": 200,
    "ms": 13,
    "rawWords": 125,
    "sedWords": 269,
    "title": "Contact — Richard Gleeson",
    "titleLen": 25,
    "desc": "Get in touch with Richard Gleeson — UI/UX & Product Designer. For design support or roles.",
    "descLen": 90,
    "canonical": "https://www.rgleeson.com/contact.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 125
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 125
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 125
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 125
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 125
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 110,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 20,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 117,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 25,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-action-carpets.html",
    "status": 200,
    "ms": 26,
    "rawWords": 777,
    "sedWords": 820,
    "title": "Action Carpets &amp; Flooring — Richard Gleeson",
    "titleLen": 43,
    "desc": "A fast, modern website designed and built end to end for Action Carpets & Flooring, an East Kent carpet and flooring retailer — SEO and AI-search ready, with a free-quote journey built in.",
    "descLen": 188,
    "canonical": "https://www.rgleeson.com/project-action-carpets.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 777
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 777
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 777
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 777
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 777
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 752,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 759,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-betcollab.html",
    "status": 200,
    "ms": 11,
    "rawWords": 1271,
    "sedWords": 1325,
    "title": "betCollab — Richard Gleeson",
    "titleLen": 27,
    "desc": "betCollab — the UK iGaming design studio I co-founded with Peter Dearsley. A multi-brand sportsbook design system built in Figma and turned into a live, fully-playable product with Claude Code. Play the real components, then restyle them for a different brand.",
    "descLen": 260,
    "canonical": "https://www.rgleeson.com/project-betcollab.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1271
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1271
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1271
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1271
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1271
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 1271,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 39,
      "unnamed": [],
      "small": [
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/bet-slip\" target=\"_blank\" rel=\"noopener\">Open on its own<s",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/bet-builder\" target=\"_blank\" rel=\"noopener\">Open on its ow",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/boosts\" target=\"_blank\" rel=\"noopener\">Open on its own<svg",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/stories\" target=\"_blank\" rel=\"noopener\">Open on its own<sv",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/cash-out\" target=\"_blank\" rel=\"noopener\">Open on its own<s",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/table-games\" target=\"_blank\" rel=\"noopener\">Open on its ow",
        "text": "Open on its own"
       }
      ],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 1254,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 38,
      "unnamed": [],
      "small": [
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/bet-slip\" target=\"_blank\" rel=\"noopener\">Open on its own<s",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/bet-builder\" target=\"_blank\" rel=\"noopener\">Open on its ow",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/boosts\" target=\"_blank\" rel=\"noopener\">Open on its own<svg",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/stories\" target=\"_blank\" rel=\"noopener\">Open on its own<sv",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/cash-out\" target=\"_blank\" rel=\"noopener\">Open on its own<s",
        "text": "Open on its own"
       },
       {
        "w": 134,
        "h": 21,
        "html": "<a href=\"https://demo.betcollab.com/embed/table-games\" target=\"_blank\" rel=\"noopener\">Open on its ow",
        "text": "Open on its own"
       }
      ],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-coaches-voice.html",
    "status": 200,
    "ms": 14,
    "rawWords": 729,
    "sedWords": 757,
    "title": "The Coaches' Voice — Richard Gleeson",
    "titleLen": 36,
    "desc": "The Coaches' Voice — redesign of a content-led football platform plus the first LMS dedicated to sports education. Lead UI/UX Designer.",
    "descLen": 135,
    "canonical": "https://www.rgleeson.com/project-coaches-voice.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 729
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 729
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 729
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 729
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 729
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 710,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 717,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-digest.html",
    "status": 200,
    "ms": 13,
    "rawWords": 574,
    "sedWords": 600,
    "title": "Digest — Richard Gleeson",
    "titleLen": 24,
    "desc": "Digest — a recipe app that helps people discover, plan, and prepare meals tailored to their food intolerances and dietary preferences.",
    "descLen": 134,
    "canonical": "https://www.rgleeson.com/project-digest.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 574
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 574
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 574
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 574
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 574
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 556,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 563,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-downtogroundworks.html",
    "status": 200,
    "ms": 28,
    "rawWords": 971,
    "sedWords": 1012,
    "title": "Down To Groundworks — Richard Gleeson",
    "titleLen": 37,
    "desc": "A new website designed and built end to end for Down To Groundworks, a London and Kent groundworks and civil engineering contractor: their own words and photography, rebuilt as a fast static site ready for search and AI.",
    "descLen": 220,
    "canonical": "https://www.rgleeson.com/project-downtogroundworks.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 971
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 971
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 971
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 971
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 971
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 951,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 958,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-fanatics.html",
    "status": 200,
    "ms": 15,
    "rawWords": 482,
    "sedWords": 513,
    "title": "Fanatics Fantasy MMA — Richard Gleeson",
    "titleLen": 38,
    "desc": "Fanatics Fantasy MMA — a mobile-first fantasy sports app built by and for MMA fans, designed end-to-end across iOS and Android. Lead Product Designer.",
    "descLen": 150,
    "canonical": "https://www.rgleeson.com/project-fanatics.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 482
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 482
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 482
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 482
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 482
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 465,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 472,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-fsb.html",
    "status": 200,
    "ms": 14,
    "rawWords": 506,
    "sedWords": 530,
    "title": "FSB Technology — Richard Gleeson",
    "titleLen": 32,
    "desc": "FSB – Sportsbook & Casino. A comprehensive, variable-driven design system unifying UX across web, native, and retail for white-label betting operators. Senior Product Designer.",
    "descLen": 176,
    "canonical": "https://www.rgleeson.com/project-fsb.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 506
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 506
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 506
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 506
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 506
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 488,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 495,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-ocro.html",
    "status": 200,
    "ms": 38,
    "rawWords": 517,
    "sedWords": 538,
    "title": "Ocro — Richard Gleeson",
    "titleLen": 22,
    "desc": "OCRO — a professional, scalable digital presence and Figma design system for a boutique Conversion Rate Optimization agency. Lead Designer.",
    "descLen": 139,
    "canonical": "https://www.rgleeson.com/project-ocro.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 499,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 506,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-reps.html",
    "status": 200,
    "ms": 61,
    "rawWords": 537,
    "sedWords": 566,
    "title": "Reps — Richard Gleeson",
    "titleLen": 22,
    "desc": "Reps — a mobile app concept that curates the best home workouts and fitness creators into one easy-to-navigate experience.",
    "descLen": 122,
    "canonical": "https://www.rgleeson.com/project-reps.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 537
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 537
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 537
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 537
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 537
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 517,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 524,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-top-villas.html",
    "status": 200,
    "ms": 26,
    "rawWords": 517,
    "sedWords": 547,
    "title": "The Top Villas — Richard Gleeson",
    "titleLen": 32,
    "desc": "The Top Villas — luxury villa rental brand identity and conversion-focused website, designed end-to-end. Lead UI/UX & Brand Designer.",
    "descLen": 133,
    "canonical": "https://www.rgleeson.com/project-top-villas.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 517
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 498,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 505,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-versus.html",
    "status": 200,
    "ms": 98,
    "rawWords": 379,
    "sedWords": 413,
    "title": "Versus — Richard Gleeson",
    "titleLen": 24,
    "desc": "Versus — a daily social pick game for sports fans. No odds, no cash, just bragging rights. Creator & Product Designer.",
    "descLen": 118,
    "canonical": "https://www.rgleeson.com/project-versus.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 379
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 379
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 379
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 379
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 379
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 364,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 371,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/project-wec.html",
    "status": 200,
    "ms": 18,
    "rawWords": 516,
    "sedWords": 556,
    "title": "WEC — Richard Gleeson",
    "titleLen": 21,
    "desc": "FIA World Endurance Championship — a UX/UI redesign creating an engaging, content-rich experience for motorsport fans.",
    "descLen": 118,
    "canonical": "https://www.rgleeson.com/project-wec.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 516
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 516
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 516
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 516
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 516
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 496,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 17,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 503,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 22,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-fitting-a-design-system.html",
    "status": 200,
    "ms": 14,
    "rawWords": 1386,
    "sedWords": 1537,
    "title": "Why my site's coral failed contrast, and how I fixed it — Richard Gleeson",
    "titleLen": 73,
    "desc": "rgleeson.com looked fine, but its coral accent failed contrast on every button and band. I measured every piece of text on 12 pages, tested three palettes and three tweaks, then changed the accent. Failing text went from 102 elements to 10.",
    "descLen": 240,
    "canonical": "https://www.rgleeson.com/post-fitting-a-design-system.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1386
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1386
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1386
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1386
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1386
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 1370,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 23,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 1377,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 28,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-website-invisible-to-ai.html",
    "status": 200,
    "ms": 27,
    "rawWords": 1127,
    "sedWords": 1287,
    "title": "Is your website invisible to ChatGPT? — Richard Gleeson",
    "titleLen": 55,
    "desc": "More and more people ask an AI assistant to recommend a business before they ever touch Google. If your site is built the wrong way, those assistants can't read a single word of it — and nothing will warn you. Here's a 30-second test you can run yourself.",
    "descLen": 255,
    "canonical": "https://www.rgleeson.com/post-website-invisible-to-ai.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1127
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1127
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1127
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1127
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1127
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 1111,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 20,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 1118,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 25,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-agent-readiness-checklist.html",
    "status": 200,
    "ms": 13,
    "rawWords": 1050,
    "sedWords": 1234,
    "title": "I ran Google's agent-readiness checklist on my own site — Richard Gleeson",
    "titleLen": 73,
    "desc": "There's a lot of hand-waving about 'AI-ready' websites. Google has actually published a spec — and unlike most SEO advice, it's a checklist with a real pass/fail. So instead of telling you my site is ready, I ran the checklist against it. Here's how it scored, including the bits I had to fix.",
    "descLen": 293,
    "canonical": "https://www.rgleeson.com/post-agent-readiness-checklist.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1050
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1050
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1050
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1050
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1050
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 1034,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 23,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 1041,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 28,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-landing-page-prompts.html",
    "status": 200,
    "ms": 21,
    "rawWords": 1547,
    "sedWords": 1700,
    "title": "How to prompt AI for a landing page that actually converts — Richard Gleeson",
    "titleLen": 76,
    "desc": "Ask AI for 'a landing page' and you'll get mush. The trick isn't a better model — it's treating the page as a sequence of jobs and prompting each one against a proven structure.",
    "descLen": 177,
    "canonical": "https://www.rgleeson.com/post-landing-page-prompts.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1547
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1547
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1547
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1547
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1547
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 1531,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 18,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 1538,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 23,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-web-design-trends-2026.html",
    "status": 200,
    "ms": 24,
    "rawWords": 949,
    "sedWords": 1091,
    "title": "The 2026 web design trends worth your attention — Richard Gleeson",
    "titleLen": 65,
    "desc": "Most trend lists are a shopping cart of effects. The ones that matter in 2026 share a single thread — craft as the thing that's left when anyone can generate a decent-looking page.",
    "descLen": 180,
    "canonical": "https://www.rgleeson.com/post-web-design-trends-2026.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 949
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 949
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 949
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 949
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 949
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 933,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 940,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-homepage-hero.html",
    "status": 200,
    "ms": 17,
    "rawWords": 703,
    "sedWords": 840,
    "title": "Why your homepage hero is doing too much — Richard Gleeson",
    "titleLen": 58,
    "desc": "Most heroes try to say everything at once and end up saying nothing. Here's how to give the top of your page a single, clear job — and let the rest of the page do the work.",
    "descLen": 172,
    "canonical": "https://www.rgleeson.com/post-homepage-hero.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 703
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 703
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 703
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 703
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 703
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 687,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 18,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 694,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 23,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-ux-beyond-the-interface.html",
    "status": 200,
    "ms": 62,
    "rawWords": 866,
    "sedWords": 994,
    "title": "When the interface stops being the differentiator — Richard Gleeson",
    "titleLen": 67,
    "desc": "Good-looking UI is now cheap and increasingly automated. That's not a threat to design — it's a clarification of where the value was all along.",
    "descLen": 143,
    "canonical": "https://www.rgleeson.com/post-ux-beyond-the-interface.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 866
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 866
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 866
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 866
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 866
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 850,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 857,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-ai-design-workflow.html",
    "status": 200,
    "ms": 41,
    "rawWords": 838,
    "sedWords": 968,
    "title": "Where AI actually earns its place in a design workflow — Richard Gleeson",
    "titleLen": 72,
    "desc": "The useful question isn't whether AI belongs in design. It's which parts of the process it genuinely improves — and which it quietly makes worse.",
    "descLen": 145,
    "canonical": "https://www.rgleeson.com/post-ai-design-workflow.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 838
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 838
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 838
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 838
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 838
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 822,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 829,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-claude-design.html",
    "status": 200,
    "ms": 13,
    "rawWords": 873,
    "sedWords": 1006,
    "title": "Claude Design and the end of rationed exploration — Richard Gleeson",
    "titleLen": 67,
    "desc": "Anthropic's new design tool is being framed as a Figma killer. The more interesting story is what happens when exploring ten directions costs the same as exploring one.",
    "descLen": 168,
    "canonical": "https://www.rgleeson.com/post-claude-design.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 873
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 873
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 873
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 873
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 873
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 857,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 864,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   },
   {
    "url": "https://www.rgleeson.com/post-ux-fundamentals.html",
    "status": 200,
    "ms": 13,
    "rawWords": 1167,
    "sedWords": 1293,
    "title": "Ten UX fundamentals that still win in 2026 — Richard Gleeson",
    "titleLen": 60,
    "desc": "Trends date fast. The principles below have survived every redesign, platform, and hype cycle — because they're about people, not pixels.",
    "descLen": 137,
    "canonical": "https://www.rgleeson.com/post-ux-fundamentals.html",
    "canonicalOk": true,
    "lang": "en",
    "h1": 1,
    "headingSkips": 1,
    "ld": [
     {
      "ok": true,
      "types": [
       "BlogPosting",
       "WebPage",
       "Blog",
       "Person"
      ]
     }
    ],
    "bots": {
     "GPTBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1167
     },
     "OAI-SearchBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1167
     },
     "ClaudeBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1167
     },
     "PerplexityBot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1167
     },
     "Googlebot": {
      "status": 200,
      "sameAsBrowser": true,
      "words": 1167
     }
    },
    "rendered": {
     "mobile": {
      "renderedWords": 1151,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 19,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     },
     "desktop": {
      "renderedWords": 1158,
      "landmarks": {
       "main": 1,
       "nav": 1,
       "header": 1,
       "footer": 1
      },
      "skipLink": true,
      "skipTarget": true,
      "interactive": 24,
      "unnamed": [],
      "small": [],
      "unlabelled": [],
      "divButtons": 0,
      "focus": {
       "visible": true,
       "el": "<a class=\"brand\" href=\"index.html\" aria-label=\"Richard Gleeson home\">\n        <s",
       "outline": "solid 2px rgb(208, 66, 5)"
      }
     }
    }
   }
  ]
 }
}