# Full Audit

![][image1]

# **Full SEO Audit for www.michaelvereb.com**

***Domain:** [www.michaelvereb.com](https://www.michaelvereb.com)*

***Date:** September 18, 2026*

***Audited by:** [Michael Vereb](https://www.michaelvereb.com/)*

***Inspection baseline:** Complete 64-point technical checkpoint audit archive across all pillars.*

&nbsp;

---

&nbsp;

## Audit Issues

The following section contains in-depth diagnostic evidence, architectural context, standard references, and step-by-step fixes for all **64 checkpoints** evaluated by the audit engine.

&nbsp;

### Table of Contents

[Indexing & Webmaster Tools](#indexing-&-webmaster-tools)

[Legal & Privacy Foundations](#legal-&-privacy-foundations)

[Edge Security & Server Hygiene](#edge-security-&-server-hygiene)

[SEO, Meta & Structured Data](#seo,-meta-&-structured-data)

[Accessibility & UX Quality](#accessibility-&-ux-quality)

[Conversion & Testing Pipelines](#conversion-&-testing-pipelines)

[Performance & Asset Weight](#performance-&-asset-weight)

[AI Agent Readiness](#ai-agent-readiness)

[Platform & Ecommerce Health](#platform-&-ecommerce-health)

[Webmaster & Analytics](#webmaster-&-analytics)

[Off-Page & Authority](#off-page-&-authority)

[Technical Foundation](#technical-foundation)

[Performance & Core Web Vitals](#performance-&-core-web-vitals)

&nbsp;

&nbsp;

### Indexing & Webmaster Tools {#indexing-&-webmaster-tools}

#### Sitemap & Google Search Console Verification (P1-1)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** Sitemap Protocol 0.9 & Google Search Essentials  
* **Diagnostic Findings & Evidence:** Sitemap active (/sitemap.xml) and Google Search Console verified (DNS TXT: google-site-verification=n45AxTExMaSmuSCApguDh3REKc59ewJV9Qwyw6nK8tA).  
* **Architectural Context & Why It Matters:** XML sitemaps give search engine crawlers an authoritative index of canonical URLs and last-modified dates. Missing sitemaps force crawlers to discover pages via shallow HTML traversal, delaying indexation of newly launched products, blogs, and collection updates.  
* **Impact on Conversion & Search:** Ensures 100% of commercial URLs are crawled efficiently and accelerates indexing of new content from weeks to hours.  
* **Fix:**

```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.michaelvereb.com/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
</urlset>
```

&nbsp;

#### Bing Webmaster Tools (BWT) Integration (P1-2)

* **Status:** Warning | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** Microsoft Bing Webmaster Tools & Copilot Ground Truth Indexing  
* **Diagnostic Findings & Evidence:** No Bing Webmaster Tools verification (`<meta name="msvalidate.01">`, /BingSiteAuth.xml, or DNS TXT) detected.  
* **Architectural Context & Why It Matters:** Microsoft Copilot, Yahoo Search, and DuckDuckGo rely directly on Bing Webmaster Tools for web indexation and factual grounding. Sites not synced with BWT experience indexing delays across Microsoft ecosystem devices and missing citations in Copilot chat answers.  
* **Impact on Conversion & Search:** Captures 15-20% desktop search market share and guarantees verified presence in Microsoft Copilot answer feeds.  
* **Fix:**

**Action Steps:**
1. Navigate to [Bing Webmaster Tools](https://www.bing.com/webmasters) and sign in.
2. Select **Import from Google Search Console** using the same Google account.
3. Authorize the import to sync your verified domains, sitemaps, and URL verification automatically.
4. Enable weekly auto-sync so all future GSC updates flow into Bing without manual intervention.

&nbsp;

#### IndexNow Protocol Active (P1-3)

* **Status:** Fail | **Priority:** Low | **Difficulty:** Easy  
* **Specification & Standard:** IndexNow Protocol Specification (Bing, Yandex, Naver, Seznam)  
* **Diagnostic Findings & Evidence:** No IndexNow key file hosted in public root; real-time push indexing disabled.  
* **Architectural Context & Why It Matters:** Traditional search engines crawl websites on periodic intervals ranging from days to months. The IndexNow protocol lets publishers push instant HTTP notifications whenever content is created, updated, or deleted, bypassing crawler latency entirely.  
* **Impact on Conversion & Search:** Reduces index latency from days to minutes for new blog posts, price changes, and new product releases.  
* **Fix:**

```bash
# 1. Generate a 32-character hexadecimal key and host at /public/{key}.txt
# Example: https://www.michaelvereb.com/4a8f9c1e2b3d4e5f.txt containing "4a8f9c1e2b3d4e5f"

# 2. Ping IndexNow API on publication or deploy:
curl -X POST "https://api.indexnow.org/indexnow" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
       "host": "www.michaelvereb.com",
       "key": "4a8f9c1e2b3d4e5f",
       "keyLocation": "https://www.michaelvereb.com/4a8f9c1e2b3d4e5f.txt",
       "urlList": ["https://www.michaelvereb.com/"]
     }'
```

&nbsp;

#### Google Preferred Sources Integration (P1-4)

* **Status:** Fail | **Priority:** Low | **Difficulty:** Easy  
* **Specification & Standard:** Google Publisher Center & Preferred Sources API (AI Overviews & Discover)  
* **Diagnostic Findings & Evidence:** Publisher embed button not detected for AI Overviews and Discover priority.  
* **Architectural Context & Why It Matters:** Google allows visitors to explicitly designate your brand as a preferred source. This preference boosts ranking signals in Google AI Overviews, Chrome Discover mobile feeds, and Google Top Stories for branded and regional queries.  
* **Impact on Conversion & Search:** Directly amplifies brand CTR in personalized Google feeds and strengthens entity authority across AI Overviews.  
* **Fix:**

```html
<!-- Google Preferred Sources Embed (Place in footer or above main footer) -->
<script async src="https://news.google.com/swg/js/v1/publisher.js"></script>
<div style="display: flex; justify-content: center; margin: 1.5rem 0;">
  <div google-add-preferred-source-btn data-theme="dark" data-lang="en"></div>
</div>
```

&nbsp;

### Legal & Privacy Foundations {#legal-&-privacy-foundations}

#### Dedicated Privacy Policy Route & Footer Link (P2-1)

* **Status:** Fail | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** PIPEDA / GDPR / CCPA Legal Compliance & Google Merchant Center Rules  
* **Diagnostic Findings & Evidence:** Route /privacy returns HTTP 404 (Not Found). Missing legal compliance route.  
* **Architectural Context & Why It Matters:** A dedicated privacy policy is legally mandatory across Canada (PIPEDA/Bill 64), the United States (CCPA), and Europe (GDPR). Google Merchant Center, Meta Ads, and Stripe actively verify the existence of a working /privacy URL; returning HTTP 404 leads to merchant suspension and crawler quality penalties.  
* **Impact on Conversion & Search:** Eliminates legal compliance exposure and satisfies strict approval prerequisites for Google Shopping and Stripe billing.  
* **Fix:**

**Action Steps:**
1. In Shopify Admin, navigate to **Online Store → Pages**.
2. Click **Add page**, set Title to `Privacy Policy`, and ensure the URL handle is `/privacy` or `/pages/privacy`.
3. Add required statutory clauses: customer data collected, third-party processors (Shopify, Stripe, analytics), cookie usage, and owner contact email.
4. Navigate to **Online Store → Navigation → Footer menu** and add the Privacy Policy link.
5. In **Shopify Settings → Policies**, ensure the Privacy Policy field is also populated for native checkout links.

&nbsp;

#### Dedicated Terms of Service Route & Footer Link (P2-2)

* **Status:** Fail | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Commercial Contract Law & E-Commerce Consumer Protection Standards  
* **Diagnostic Findings & Evidence:** Route /terms returns HTTP 404 (Not Found). Missing contractual foundation.  
* **Architectural Context & Why It Matters:** Terms of Service establish enforceable commercial rules regarding purchase transactions, order cancellations, delivery liabilities, return windows, and dispute resolution. Missing terms leave the business legally unprotected in consumer dispute proceedings and payment gateway audits.  
* **Impact on Conversion & Search:** Protects against fraudulent chargebacks, defines return/refund boundaries, and fulfills payment merchant standards.  
* **Fix:**

**Action Steps:**
1. In Shopify Admin, navigate to **Online Store → Pages**.
2. Click **Add page**, set Title to `Terms of Service`, and set URL handle to `/terms` or `/pages/terms`.
3. Include standard commercial terms: product purchase conditions, shipping and delivery timeframes, perishable goods return policies (e.g. roasted coffee), limitation of liability, and jurisdiction (British Columbia, Canada).
4. Navigate to **Online Store → Navigation → Footer menu** and link the Terms of Service page.
5. In **Shopify Settings → Policies**, verify Terms of Service is also filled out for checkout integration.

&nbsp;

#### Zero-CLS Cookie & Consent Architecture (P2-3)

* **Status:** Pass | **Priority:** Low | **Difficulty:** Medium  
* **Specification & Standard:** W3C Core Web Vitals (Zero CLS) & Privacy ePrivacy Directive  
* **Diagnostic Findings & Evidence:** Zero client-side blocking cookie banners; fast cookieless delivery.  
* **Architectural Context & Why It Matters:** Heavy third-party JavaScript cookie banners inject blocking overlays and cause substantial Cumulative Layout Shift (CLS), degrading mobile user experience and delaying page interactions. Cookieless or lightweight server-side consent architectures preserve sub-second render speeds.  
* **Impact on Conversion & Search:** Prevents 10-15% initial bounce rates and eliminates layout shifts that lower Google Core Web Vitals scores.  
* **Fix:**

**Action Steps:**
1. Utilize lightweight, cookieless edge telemetry (such as Cloudflare Zaraz) to measure traffic without invasive tracking cookies.
2. If explicit consent banners are legally required for EU visitors, configure geo-targeted rules so banners are only served where mandated.
3. Ensure any consent modal is positioned as a fixed overlay that reserves space without shifting underlying DOM elements (CLS = 0).

&nbsp;

### Edge Security & Server Hygiene {#edge-security-&-server-hygiene}

#### Zero Frontend Secrets Exposed (P3-1)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** OWASP Top 10 — Sensitive Data Exposure & Secret Management  
* **Diagnostic Findings & Evidence:** No private API keys, tokens, or administrative endpoints exposed in client HTML.  
* **Architectural Context & Why It Matters:** Exposing private API keys, database credentials, or secret webhook tokens in client-side HTML or bundled JavaScript lets malicious actors impersonate your business, drain paid API quotas, or compromise customer data.  
* **Impact on Conversion & Search:** Prevents automated bot scraping of API credentials and protects third-party account quotas.  
* **Fix:**

**Action Steps:**
1. Never hardcode private API tokens, private app passwords, or database credentials into theme files or front-end scripts.
2. Route all privileged operations (payment webhooks, CRM sync, mail dispatch) through authenticated backend endpoints or Cloudflare Workers.
3. Restrict all public front-end tokens (such as Mapbox public tokens or Shopify Storefront access tokens) to domain-specific referrers.

&nbsp;

#### Force HTTPS & Strict HSTS Header Active (P3-2)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** W3C Security Headers & RFC 6797 HTTP Strict Transport Security (HSTS)  
* **Diagnostic Findings & Evidence:** Strict-Transport-Security active (max-age=31536000; includeSubDomains).  
* **Architectural Context & Why It Matters:** HSTS instructs modern web browsers to strictly communicate over HTTPS, automatically upgrading insecure HTTP requests before network transmission occurs. This prevents man-in-the-middle protocol downgrade attacks and cookie interception.  
* **Impact on Conversion & Search:** Guarantees end-to-end encrypted visitor traffic and fulfills Google HTTPS ranking signal requirements.  
* **Fix:**

```http
# Security Headers configuration (Cloudflare Transform Rules or Server Configuration):
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
```

&nbsp;

#### Edge WAF & Security Headers (nosniff, frame-options) (P3-3)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Hard  
* **Specification & Standard:** RFC 9110 HTTP Semantics & OWASP Secure Headers Project  
* **Diagnostic Findings & Evidence:** X-Content-Type-Options: nosniff; X-Frame-Options: DENY.  
* **Architectural Context & Why It Matters:** Security response headers like `X-Content-Type-Options: nosniff` and `X-Frame-Options` protect visitors from MIME-sniffing exploits, malicious script execution disguised as images, and UI clickjacking attacks inside hidden iframes.  
* **Impact on Conversion & Search:** Eliminates clickjacking vulnerabilities and defends visitor sessions from cross-origin script injection.  
* **Fix:**

```http
# Add to Cloudflare Transform Rules (Modify Response Headers):
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Cross-Origin-Opener-Policy: same-origin
```

&nbsp;

#### Email Spoofing Defense (DMARC, SPF, DKIM) (P3-4)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** RFC 7489 (DMARC), RFC 7208 (SPF), RFC 6376 (DKIM)  
* **Diagnostic Findings & Evidence:** Domain email authentication and DNS records verified.  
* **Architectural Context & Why It Matters:** Major email providers (Google, Yahoo, Microsoft) reject or quarantine incoming emails from custom domains that lack proper SPF, DKIM, and DMARC authentication. Without these records, order confirmation emails and password resets go straight to spam folders.  
* **Impact on Conversion & Search:** Guarantees near 100% inbox placement for transactional e-commerce emails and stops spammers from spoofing your domain name.  
* **Fix:**

```bash
# Add these authoritative TXT records to your DNS provider (e.g. Cloudflare / Namecheap):

# 1. SPF Record:
Type: TXT | Name: @ | Value: "v=spf1 include:shops.shopify.com include:_spf.google.com ~all"

# 2. DMARC Record:
Type: TXT | Name: _dmarc | Value: "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@www.michaelvereb.com; pct=100; sp=quarantine"
```

&nbsp;

#### RFC 9116 security.txt Published (P3-5)

* **Status:** Pass | **Priority:** Low | **Difficulty:** Easy  
* **Specification & Standard:** RFC 9116 — A File Format to Aid in Security Vulnerability Disclosure  
* **Diagnostic Findings & Evidence:** Published and active at /.well-known/security.txt.  
* **Architectural Context & Why It Matters:** RFC 9116 establishes a standardized, machine-readable location (`/.well-known/security.txt`) where white-hat security researchers and automated security crawlers can discover your security contact before vulnerabilities are publicly disclosed.  
* **Impact on Conversion & Search:** Provides a coordinated vulnerability disclosure channel and demonstrates enterprise security maturity.  
* **Fix:**

```http
# Host at /public/.well-known/security.txt:
Contact: mailto:security@www.michaelvereb.com
Expires: 2027-12-31T23:59:59.000Z
Preferred-Languages: en
Canonical: https://www.michaelvereb.com/.well-known/security.txt
Policy: https://www.michaelvereb.com/privacy
```

&nbsp;

### SEO, Meta & Structured Data {#seo,-meta-&-structured-data}

#### Absolute Self-Referencing Canonical Tag (P4-1)

* **Status:** Fail | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** RFC 6596 Canonical Link Standard & Google Search Central Guidelines  
* **Diagnostic Findings & Evidence:** Homepage is missing `<link rel="canonical" href="https://www.michaelvereb.com" />` in `<head>`.  
* **Architectural Context & Why It Matters:** When web pages are accessible via multiple URL variations (with/without trailing slashes, tracking parameters, or HTTP/HTTPS variants), search engines divide ranking signals across duplicates. A self-referencing canonical tag tells Google exactly which URL is the single authoritative source.  
* **Impact on Conversion & Search:** Consolidates PageRank authority and eliminates algorithmic duplicate content penalties.  
* **Fix:**

```html
<!-- Place in document <head> on every page: -->
<link rel="canonical" href="https://www.michaelvereb.com/">
```

&nbsp;

#### Apex to WWW 301 Permanent Redirection (P4-2)

* **Status:** Pass | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** RFC 9110 HTTP Redirection & Host Canonicalization Standard  
* **Diagnostic Findings & Evidence:** Apex domain redirects seamlessly to www via single-hop HTTP 301.  
* **Architectural Context & Why It Matters:** Allowing both naked (apex) and www subdomains to resolve separately splits brand domain authority in half and creates crawl budget fragmentation. A single-hop HTTP 301 permanent redirect consolidates all incoming links and traffic to one authoritative canonical host.  
* **Impact on Conversion & Search:** Consolidates 100% of backlinks and citation signals onto your primary domain.  
* **Fix:**

**Action Steps:**
1. In Shopify Admin, navigate to **Settings → Domains**.
2. Select your primary canonical domain (e.g. `https://michaelvereb.com` or `https://www.michaelvereb.com`).
3. Ensure **Redirect all traffic to this domain** is enabled.
4. Verify that secondary domain variants perform a single 301 permanent redirect to your primary canonical host.

&nbsp;

#### Title Tag Character Length & Standard Delimiter (P4-3)

* **Status:** Warning | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Google Title Tag Optimization Standards (<60 characters / 580px limit)  
* **Diagnostic Findings & Evidence:** Current title length is 65 characters (exceeds 60-char desktop cutoff): "Michael Vereb ― Canadian SEO-focused Website Designer & Developer". Uses non-standard horizontal bar (―).  
* **Architectural Context & Why It Matters:** Title tags that exceed 60 characters or ~580 pixels are truncated with an ellipsis (...) in Google search results, obscuring brand messaging and lowering click-through rates. Non-standard delimiters (like long horizontal bars ―) can render as broken symbols in older user agents.  
* **Impact on Conversion & Search:** Prevents title truncation in search results and increases organic SERP click-through rates by 15-25%.  
* **Fix:**

**Action Steps:**
1. In Shopify Admin, navigate to **Online Store → Preferences**.
2. Edit the **Homepage title** to keep length between 50 and 60 characters.
3. Use a standard vertical pipe (`|`) or hyphen delimiter instead of em-dashes or horizontal bars.
4. Recommended formula: `Brand Name | Primary Service & Region` (e.g., `Craft 42 Roasters | Specialty Coffee Roasters Kelowna`).

&nbsp;

#### Meta Description Length & Commercial Value (P4-4)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** SERP Snippet Standards (Optimal Window: 140–155 characters)  
* **Diagnostic Findings & Evidence:** Length is 145 chars: "Michael Vereb builds fast websites that convert. Partner with a Canadian expert in web design, custom development, and technical AI SEO strategy.". Within optimal 140–155 char window.  
* **Architectural Context & Why It Matters:** The meta description serves as organic advertising copy beneath your title in Google search results. Missing, truncated, or vague meta descriptions cause Google to generate unpredictable snippet copy pulled from random header or footer text.  
* **Impact on Conversion & Search:** Directly influences search result click-through rate (CTR) and reinforces primary brand value propositions.  
* **Fix:**

```html
<!-- High-converting homepage meta description (145 characters): -->
<meta name="description" content="Shop freshly roasted specialty coffee beans in Kelowna, BC. Explore single-origin coffees, espresso blends, and premium brewing gear at Craft 42.">
```

&nbsp;

#### Strict Single H1 Tag Hierarchy (P4-5)

* **Status:** Pass | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** HTML5 Heading Outline Algorithm & WCAG 2.1 SC 1.3.1 Info and Relationships  
* **Diagnostic Findings & Evidence:** Found 1 H1 tag: "Michael Vereb Websites that convert, products people use". Followed by 11 H2 sections.  
* **Architectural Context & Why It Matters:** Every web page should have exactly one `<h1>` that states the page primary topic. Having multiple `<h1>` tags or missing an `<h1>` altogether confuses screen reader outlines and dilutes topical focus for search engine crawlers.  
* **Impact on Conversion & Search:** Establishes clear topical relevance for keyword rankings and ensures screen reader accessibility.  
* **Fix:**

**Action Steps:**
1. In Shopify Theme Editor, open the **Hero Banner** or main section.
2. Verify the primary headline is wrapped in a single semantic `<h1>` tag containing your core business offering and location.
3. Ensure all supporting sections on the page use `<h2>` tags, and nested subsections use `<h3>`.
4. Avoid using `<h1>` tags on logo images, utility banners, or announcement bars.

&nbsp;

#### RFC 8259 Structured Data & Strict Single-Pass Escaping (P4-6)

* **Status:** Pass | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** RFC 8259 JSON & Schema.org Graph Specification (Strict Single-Pass Escaping)  
* **Diagnostic Findings & Evidence:** Detected 10 unique schema type(s): [WebSite, WebPage, Organization, ImageObject, ContactPoint, PostalAddress, Person, Country, EducationalOrganization, EducationalOccupationalCredential]. RFC 8259 strict parsing: Clean UTF-8, zero HTML entities.  
* **Architectural Context & Why It Matters:** Google strictly enforces RFC 8259 Section 7 standard JSON formatting for structured data and no longer applies double-unescaping to HTML entities (like `&amp;` or `&#10004;`). Invalid escaping causes Googlebot to reject structured data entirely, removing rich result snippets.  
* **Impact on Conversion & Search:** Unlocks Google Rich Results, star ratings, and Knowledge Graph entity verification across search engines.  
* **Fix:**

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.michaelvereb.com/#organization",
      "name": "Craft 42 Roasters",
      "url": "https://www.michaelvereb.com/",
      "logo": "https://www.michaelvereb.com/cdn/shop/files/logo.png"
    },
    {
      "@type": "WebSite",
      "@id": "https://www.michaelvereb.com/#website",
      "url": "https://www.michaelvereb.com/",
      "name": "Craft 42 Roasters",
      "publisher": { "@id": "https://www.michaelvereb.com/#organization" }
    }
  ]
}
```

&nbsp;

#### FAQ & Conversational Search Schema (FAQPage / HowTo) (P4-7)

* **Status:** Warning | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Schema.org FAQPage Specification & Google People Also Ask (PAA) Guidelines  
* **Diagnostic Findings & Evidence:** Missing FAQPage or HowTo structured data. Site misses out on Google People Also Ask (PAA) rich snippets and question-answering AI citations.  
* **Architectural Context & Why It Matters:** Adding structured FAQ schema allows search engines to feature your answers directly in expandable "People Also Ask" SERP accordions. It also provides verified question-and-answer pairs directly to conversational AI search engines like Perplexity, ChatGPT Search, and Gemini.  
* **Impact on Conversion & Search:** Expands vertical SERP real estate and captures conversational voice/AI query citations.  
* **Fix:**

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Where does Craft 42 roast its coffee beans?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "All Craft 42 coffee is freshly roasted in small batches right in Kelowna, British Columbia."
      }
    },
    {
      "@type": "Question",
      "name": "Do you offer free shipping on Canadian coffee orders?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, Craft 42 provides fast shipping across British Columbia and all Canadian provinces."
      }
    }
  ]
}
```

&nbsp;

#### Knowledge Graph Entity Disambiguation (Organization & Person) (P4-8)

* **Status:** Pass | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** Google Knowledge Graph Entity Disambiguation & Schema.org sameAs Standards  
* **Diagnostic Findings & Evidence:** Core entity graph verified: [WebSite, WebPage, Organization, Person]. Establishes entity consensus across LLMs.  
* **Architectural Context & Why It Matters:** Search engines and frontier LLMs use Knowledge Graph entities to understand what your brand is, who owns it, and where it operates. Declaring authoritative `sameAs` social and registry links connects your website to verified external identity nodes.  
* **Impact on Conversion & Search:** Strengthens entity confidence in Google Knowledge Panels and ensures consistent brand citations across LLM models.  
* **Fix:**

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://www.michaelvereb.com/#organization",
  "name": "Craft 42 Roasters",
  "url": "https://www.michaelvereb.com/",
  "sameAs": [
    "https://www.instagram.com/craft42roasters",
    "https://www.facebook.com/craft42roasters"
  ]
}
```

&nbsp;

#### Open Graph & X (Twitter) Social Protocol Cards (P4-9)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** The Open Graph Protocol & X (Twitter) Developer Card Specifications  
* **Diagnostic Findings & Evidence:** Open Graph and Twitter cards fully configured. Image validated as WebP/JPG (https://og.michaelvereb.com/https%3A%2F%2Fwww.michaelvereb.c...).  
* **Architectural Context & Why It Matters:** Social platforms (Facebook, X/Twitter, LinkedIn, Slack, iMessage) strictly reject SVG image files for link preview cards because they require raster formats (WebP, JPG, or PNG) at exactly 1200×630 pixels. Supplying an SVG or omitting dimensions results in broken preview cards with zero visual appeal.  
* **Impact on Conversion & Search:** Prevents broken link previews on social platforms and increases social sharing click-through rates by over 70%.  
* **Fix:**

```html
<!-- Place in document <head>: -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.michaelvereb.com/">
<meta property="og:title" content="Craft 42 Roasters | Specialty Coffee Roasters in Kelowna">
<meta property="og:description" content="Discover freshly roasted specialty coffee beans, tastings, and equipment in Kelowna, BC.">
<meta property="og:image" content="https://www.michaelvereb.com/images/og-share.webp">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">

<!-- Twitter Card: -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Craft 42 Roasters | Specialty Coffee Roasters in Kelowna">
<meta name="twitter:description" content="Discover freshly roasted specialty coffee beans, tastings, and equipment in Kelowna, BC.">
<meta name="twitter:image" content="https://www.michaelvereb.com/images/og-share.webp">
```

&nbsp;

#### Language Declaration & International Hreflang Tags (P4-10)

* **Status:** Pass | **Priority:** Low | **Difficulty:** Medium  
* **Specification & Standard:** W3C HTML Language Declarations & Google Multi-Regional Guidelines  
* **Diagnostic Findings & Evidence:** Single-region document with valid HTML lang="en". No multi-regional hreflang alternate tags detected.  
* **Architectural Context & Why It Matters:** Declaring a valid `lang` attribute on the `<html>` root tag allows screen readers to select correct pronunciation libraries and helps translation engines parse document semantics accurately.  
* **Impact on Conversion & Search:** Ensures correct assistive speech pronunciation and prevents unwanted browser translation prompts.  
* **Fix:**

```html
<!-- In layout template (e.g. theme.liquid or index.html): -->
<!DOCTYPE html>
<html lang="en">
```

&nbsp;

#### Complete Headings Hierarchy Depth (H1–H6 Breakdown) (P4-11)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** HTML5 Sectioning Elements & Headings Outline Architecture  
* **Diagnostic Findings & Evidence:** Heading structure inventory: H1: 1, H2: 11, H3: 23, H4: 0, H5: 0, H6: 0. Logical descending outline maintained.  
* **Architectural Context & Why It Matters:** A structured heading hierarchy (H1 → H2 → H3) acts as a functional table of contents for crawlers and assistive technology. Skipping levels (e.g. H1 directly to H4) degrades topical scannability and accessibility compliance.  
* **Impact on Conversion & Search:** Provides a clean document outline for Google topic-clustering algorithms and assistive screen readers.  
* **Fix:**

**Action Steps:**
1. Structure each page with a single primary topic in `<h1>`.
2. Group major commercial sections (e.g. "Featured Roasts", "Our Story", "Brew Guides") under semantic `<h2>` tags.
3. Use `<h3>` tags for individual product card titles or subsection headers.
4. Never use heading tags purely for font sizing—use CSS utility classes for visual scale instead.

&nbsp;

#### Link Graph Distribution (Internal vs External & Nofollow) (P4-12)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Google Search Central — Internal Link Architecture & Descriptive Anchors  
* **Diagnostic Findings & Evidence:** Link graph: 57 total links (34 unique URLs). Internal: 37 links; External: 20 links; Nofollow: 0.  
* **Architectural Context & Why It Matters:** Internal links distribute link equity (PageRank) across your site and contextualize target pages. Using generic anchor text (like "click here" or "learn more") fails to pass keyword relevance signals to target landing pages.  
* **Impact on Conversion & Search:** Boosts deep-page organic rankings by funneling PageRank authority to high-margin collection and product pages.  
* **Fix:**

**Action Steps:**
1. Replace generic anchor text (like "Read More", "Click Here") with descriptive, keyword-rich phrases (e.g. "Explore our Kelowna Coffee Club", "View Single-Origin Roasts").
2. Ensure high-priority commercial collections are linked directly from primary navigation and body copy, not buried 3+ clicks deep.
3. Audit external outbound links and apply `rel="noopener noreferrer"` to all `target="_blank"` links.

&nbsp;

### Accessibility & UX Quality {#accessibility-&-ux-quality}

#### Image Alt Text on All Graphics (P5-1)

* **Status:** Warning | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** WCAG 2.1 Success Criterion 1.1.1 (Non-text Content — Level A)  
* **Diagnostic Findings & Evidence:** All 42 image tags contain valid alt attributes (11 missing).  
* **Architectural Context & Why It Matters:** Visually impaired users relying on screen readers cannot perceive images without descriptive alternative text (`alt` attributes). Search engines and AI vision crawlers also depend on alt text to understand graphic content for Google Image search indexation.  
* **Impact on Conversion & Search:** Prevents ADA/accessibility compliance liability and unlocks recurring organic traffic from Google Image search.  
* **Fix:**

```html
<!-- Informative product image: -->
<img src="/cdn/shop/files/craft-42-espresso-blend.webp" alt="Craft 42 freshly roasted espresso beans in a 300g bag" width="600" height="600">

<!-- Decorative graphic or background pattern: -->
<img src="/assets/divider-line.svg" alt="" role="presentation">
```

&nbsp;

#### Mobile Viewport & Touch Optimization (P5-2)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** WCAG 2.1 SC 1.4.10 (Reflow) & Mobile Viewport Standardization  
* **Diagnostic Findings & Evidence:** Mobile viewport declared, responsive fluid layout, zero horizontal overflow.  
* **Architectural Context & Why It Matters:** Over 65% of e-commerce coffee transactions originate on smartphones. Websites with fixed-width containers or unconfigured viewport tags trigger horizontal scrolling and broken checkouts, devastating mobile conversion rates.  
* **Impact on Conversion & Search:** Ensures fluid responsiveness across all device viewports and eliminates mobile bounce friction.  
* **Fix:**

```html
<!-- In document <head>: -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
```

&nbsp;

#### Text Readability & Sentence Length (WCAG 2.2 / Agent Readability) (P5-3)

* **Status:** Warning | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** WCAG 2.2 SC 3.1.5 (Reading Level) & AI RAG Passage Retrieval Standards  
* **Diagnostic Findings & Evidence:** Average sentence length: 14.4 words (target: 10–22 words across 576 words). Found 5 sentence(s) exceeding 25 words (potential walls of text for readers and chunking retrievers).  
* **Architectural Context & Why It Matters:** Run-on sentences exceeding 25 words increase cognitive load for mobile shoppers and cause chunking fragmentation in AI search retrieval (RAG) models. Punchy, concise sentences improve human comprehension and increase answer extraction accuracy by AI search bots.  
* **Impact on Conversion & Search:** Improves on-page readability scores, decreases bounce rates, and maximizes passage retrieval in Google AI Overviews.  
* **Fix:**

**Action Steps:**
1. Review homepage hero copy, product descriptions, and story sections.
2. Break sentences longer than 25 words into two self-contained, punchy statements.
3. Aim for an average sentence length of 12 to 18 words.
4. Use bulleted feature lists rather than dense narrative paragraphs for product specifications and brew guides.

&nbsp;

#### Keyboard Focus Rings & Outline Preservation (WCAG 2.2 AA) (P5-4)

* **Status:** Warning | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** WCAG 2.2 AA SC 2.4.7 (Focus Visible) & SC 2.4.11 (Focus Not Obscured)  
* **Diagnostic Findings & Evidence:** Styles suppress default focus outline (outline: none / outline: 0) without explicit :focus-visible styling. Keyboard navigators lose visual indicator.  
* **Architectural Context & Why It Matters:** Keyboard-only navigators rely on visual focus rings to identify which interactive button or input is currently selected. Suppressing focus outlines with CSS (`outline: none`) without providing a high-contrast replacement renders the website completely unusable for keyboard users.  
* **Impact on Conversion & Search:** Guarantees WCAG 2.2 AA accessibility compliance and protects against digital accessibility lawsuits.  
* **Fix:**

```html
/* Preserve accessible keyboard focus rings in global CSS: */
:focus-visible {
  outline: 2px solid #fa5d19;
  outline-offset: 2px;
}

/* Never use outline: none without providing an accessible :focus-visible replacement. */
```

&nbsp;

#### Viewport Zoom Preservation (Zero User-Scalable Blocking) (P5-5)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** WCAG 2.1 SC 1.4.4 (Resize Text up to 200%) & Apple iOS Safari Standards  
* **Diagnostic Findings & Evidence:** Viewport zoom preserved; users can scale text up to 200% without clipping.  
* **Architectural Context & Why It Matters:** Disabling pinch-to-zoom using `maximum-scale=1` or `user-scalable=no` in the viewport meta tag blocks visually impaired users from enlarging text. Modern iOS Safari ignores this tag, while Android browsers penalize accessibility scores.  
* **Impact on Conversion & Search:** Allows visually impaired customers to comfortably zoom product details and ingredient labels.  
* **Fix:**

**Action Steps:**
1. Open your main layout template (e.g. `layout/theme.liquid`).
2. Inspect the `<meta name="viewport">` tag in `<head>`.
3. Remove `maximum-scale=1` and `user-scalable=no` if present.
4. Ensure the tag reads simply: `<meta name="viewport" content="width=device-width, initial-scale=1.0">`.

&nbsp;

#### Semantic Interactive Controls (Zero Fake Clickable Divs) (P5-6)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** W3C ARIA 1.2 & WCAG 2.1 SC 4.1.2 (Name, Role, Value)  
* **Diagnostic Findings & Evidence:** All interactive controls use semantic `<button>` or `<a>` tags with natural keyboard and screen reader support.  
* **Architectural Context & Why It Matters:** Attaching JavaScript click handlers to non-semantic `<div>` or `<span>` elements creates inaccessible controls that cannot be focused via the Tab key or triggered by screen readers using the Enter or Space keys.  
* **Impact on Conversion & Search:** Ensures interactive controls work seamlessly across assistive devices, screen readers, and automated AI agents.  
* **Fix:**

```html
<!-- Accessible button control: -->
<button type="button" class="btn-cart" aria-label="Add whole bean coffee to cart">
  Add to Cart
</button>

<!-- If an anchor or div must be used, include explicit ARIA role and tabindex: -->
<div role="button" tabindex="0" aria-label="Open filter menu" onclick="openMenu()" onkeydown="handleKey(event)">
  Filters
</div>
```

&nbsp;

#### Skip-to-Content Keyboard Navigation Link (P5-7)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** WCAG 2.1 SC 2.4.1 (Bypass Blocks — Level A)  
* **Diagnostic Findings & Evidence:** Skip-to-content link present, allowing keyboard and assistive users to bypass header navigation.  
* **Architectural Context & Why It Matters:** A skip-to-content link allows keyboard and screen reader users to bypass repetitive header navigation menus on every page load, jumping directly to the primary page content with a single keystroke.  
* **Impact on Conversion & Search:** Saves keyboard navigators dozens of repetitive keystrokes per page and satisfies Level A compliance.  
* **Fix:**

```html
<!-- Add immediately after <body> opening tag: -->
<a href="#main" class="skip-to-content-link">Skip to main content</a>

<!-- Add to global CSS: -->
<style>
.skip-to-content-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  background: #000;
  color: #fff;
  padding: 0.5rem 1rem;
  z-index: 9999;
  text-decoration: none;
  border-radius: 4px;
}
.skip-to-content-link:focus {
  top: 1rem;
}
</style>

<!-- Ensure your main content container has id="main": -->
<main id="main">
```

&nbsp;

### Conversion & Testing Pipelines {#conversion-&-testing-pipelines}

#### High-Converting On-Domain Contact Funnel (P6-1)

* **Status:** Warning | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** Conversion Rate Optimization (CRO) & Funnel Leakage Prevention  
* **Diagnostic Findings & Evidence:** Route /contact issues a 301 redirect off-site to LinkedIn, creating conversion leakage for visitors without active LinkedIn sessions.  
* **Architectural Context & Why It Matters:** Redirecting contact and inquiry links off-site (e.g. to third-party social networks or LinkedIn) breaks the purchasing flow and abandons prospective clients who do not have active sessions or accounts on those external services.  
* **Impact on Conversion & Search:** Captures 100% of inbound customer inquiries directly inside your primary CRM or order intake inbox.  
* **Fix:**

**Action Steps:**
1. Create a dedicated on-domain contact page at `/contact` or `/pages/contact`.
2. Include a simple contact form (Name, Email, Subject, Message) plus your direct phone number, email address, and café operating hours.
3. Route submissions directly to your primary business email or customer support inbox.

&nbsp;

#### Zero Placeholder / Unfinished Content (P6-2)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** Google Search Quality Rater Guidelines — High E-E-A-T Standards  
* **Diagnostic Findings & Evidence:** High-fidelity customer testimonials, verified case studies, and real portfolio pieces.  
* **Architectural Context & Why It Matters:** Publishing unfinished placeholder copy (such as "Lorem Ipsum", "Demo Product", or default theme templates) severely damages brand credibility and triggers Google quality rater penalties for low-effort content.  
* **Impact on Conversion & Search:** Builds immediate buyer trust and prevents search engine indexing of draft or dummy theme pages.  
* **Fix:**

**Action Steps:**
1. Audit all published Shopify pages and collections.
2. Delete or set to Draft any default template demo pages (e.g. "About Us Demo", "Sample Collection").
3. Ensure every live product features accurate tasting notes, origin details, roast profiles, and high-resolution photography.

&nbsp;

#### Action-Oriented vs Passive Networking CTA Copy (P6-3)

* **Status:** Warning | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** Direct-Response E-Commerce & Call-to-Action Architecture  
* **Diagnostic Findings & Evidence:** Primary CTA uses passive networking phrasing ("Let’s connect.") instead of explicit action-oriented copy.  
* **Architectural Context & Why It Matters:** Vague, passive conversion prompts (such as "Learn More", "Explore", or "Let’s Connect") create decision fatigue. Clear, action-oriented call-to-action copy stating the exact benefit dramatically increases conversion rates.  
* **Impact on Conversion & Search:** Increases click-through and add-to-cart conversion rates by 20-30%.  
* **Fix:**

**Action Steps:**
1. Replace passive hero buttons with high-intent action copy: `Join the Coffee Club`, `Shop Fresh Roasts`, or `Book a Tasting`.
2. Ensure the primary CTA stands out with high visual contrast against background imagery.
3. Position the primary conversion button above the fold so mobile visitors can act immediately without scrolling.

&nbsp;

#### Quantifiable Outcome Proof & Metric Specificity (P6-4)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** Social Proof Specificity & Conversion Rate Optimization Standards  
* **Diagnostic Findings & Evidence:** Found 2 verified outcome metrics ([$5, 253+]).  
* **Architectural Context & Why It Matters:** Generic marketing claims (like "highest quality beans" or "best coffee in town") lack credibility. Specific, quantified proof points—such as orders shipped, five-star review counts, or exact cupping scores—provide empirical justification that overcomes customer hesitation.  
* **Impact on Conversion & Search:** Builds instant buyer credibility and overcomes checkout skepticism.  
* **Fix:**

**Action Steps:**
1. Highlight verifiable metrics on your homepage: e.g. "Over 10,000 bags roasted", "4.9/5 stars from 300+ Okanagan coffee lovers", "Freshly roasted within 48 hours of shipping".
2. Add cupping scores and direct-trade farm altitudes to individual coffee product descriptions.
3. Display customer satisfaction and secure checkout guarantee badges directly on the cart and product pages.

&nbsp;

#### Explicit ICP & Target Audience Declaration (P6-5)

* **Status:** Warning | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** Ideal Customer Profile (ICP) & Value Proposition Architecture  
* **Diagnostic Findings & Evidence:** Target audience is not explicitly called out in hero headings or meta description. Qualifying your customer type and purpose in above-the-fold copy increases relevance signals for both humans and search engines.  
* **Architectural Context & Why It Matters:** Visitors form an opinion about your website within 3 seconds. Failing to explicitly state who you are, what you produce, and who you serve forces visitors to guess, resulting in high immediate bounce rates.  
* **Impact on Conversion & Search:** Qualifies inbound visitors instantly and aligns search intent with commercial offerings.  
* **Fix:**

**Action Steps:**
1. Formulate a clear 1-sentence value proposition in the homepage hero: `[What you do] + [Who you serve] + [Where / differentiator]`.
2. Example for Craft 42: "Artisan small-batch specialty coffee, roasted fresh weekly in Kelowna for coffee lovers across Canada."
3. Place this statement prominently in the primary H1 or subheadline directly above the primary CTA button.

&nbsp;

#### TypeSafe Jev: Qualitative Value Prop & Marketing Buzzwords (P6-6)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Easy  
* **Specification & Standard:** Web Engineering & Search Architecture Standard  
* **Diagnostic Findings & Evidence:** TypeSafe Jev qualitative evaluation (typesafe/jev (calibrated)): Value Prop Clarity 1.8/2 (Crystal Clear), Buzzword Fluff score 0.2/2 (Concrete & Punchy), ICP definition 28% (Generic Audience). CTA assessed as "Passive Browse CTA".  
* **Architectural Context & Why It Matters:** This checkpoint evaluates technical and structural compliance for TypeSafe Jev: Qualitative Value Prop & Marketing Buzzwords. Adhering to this standard ensures reliable browser parsing, accessible navigation, and optimal search crawler indexing.  
* **Impact on Conversion & Search:** Improves overall site health, user retention, and organic search visibility.  
* **Fix:**

**Action Steps:**
1. Review the diagnostic finding for TypeSafe Jev: Qualitative Value Prop & Marketing Buzzwords.
2. Clarify target audience explicitly in hero headline, eliminate corporate buzzword filler, and strengthen action verbs on primary CTAs.

&nbsp;

#### Live Stripe / Payment Gateway End-to-End Test (U5)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Payment Gateway Sandbox & Order Webhook Verification  
* **Diagnostic Findings & Evidence:** Requires executing a test transaction to verify payment processing, provincial tax calculation, and order routing.  
* **Architectural Context & Why It Matters:** Verifying end-to-end payment processing, tax calculation for Canadian provinces, and order webhook delivery ensures customer credit cards are processed securely without silent drop-offs or unfulfilled orders.  
* **Impact on Conversion & Search:** Guarantees frictionless checkout and verifies automated order routing to fulfillment.  
* **Fix:**

**Action Steps:**
1. Execute an end-to-end test checkout transaction on the live store to verify payment processing.
2. Confirm tax calculation across Canadian provinces (PST/GST/HST) and automated email receipt generation.
3. Confirm that the test order routes correctly into your Shopify Admin order fulfillment queue.

&nbsp;

#### Contact Form Email / Webhook Delivery Verification (U6)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Transactional Email Deliverability & CRM Routing Standards  
* **Diagnostic Findings & Evidence:** Requires test inquiry submission to verify arrival in business inbox without spam rejection or SMTP failure.  
* **Architectural Context & Why It Matters:** Customer inquiries submitted through contact forms must reach your support team without being blocked by spam filters or dropped due to unconfigured SMTP routing.  
* **Impact on Conversion & Search:** Prevents lost wholesale inquiries and ensures prompt customer response times.  
* **Fix:**

**Action Steps:**
1. Submit a test message through the live website contact form.
2. Confirm instant receipt in your primary business email inbox and verify SPF/DKIM authentication passes.
3. Verify that the customer receives an automated confirmation auto-reply confirming receipt.

&nbsp;

### Performance & Asset Weight {#performance-&-asset-weight}

#### Modern WebP/AVIF Media Formats (P7-1)

* **Status:** Warning | **Priority:** Low | **Difficulty:** Easy  
* **Specification & Standard:** Google Core Web Vitals (Largest Contentful Paint) & Next-Gen Media Formats  
* **Diagnostic Findings & Evidence:** 5 of 42 images use legacy PNG/JPG formats instead of modern WebP.  
* **Architectural Context & Why It Matters:** Legacy image formats like uncompressed PNG and JPEG generate bloated payloads that slow down mobile load times. Modern formats like WebP and AVIF provide superior lossless and lossy compression, reducing file size by 30-70% without visible loss in quality.  
* **Impact on Conversion & Search:** Accelerates page load speeds by 1.5-3 seconds and lowers bandwidth consumption on mobile networks.  
* **Fix:**

**Action Steps:**
1. When uploading images to Shopify, upload high-resolution files; Shopify natively serves WebP formats automatically when requested by modern browsers.
2. In custom theme code, ensure image tags use the `| image_url: width: ...` Liquid filter to generate responsive srcset widths rather than serving full 4000px originals.
3. Convert static hero graphics and banner illustrations to compressed WebP format (target <150KB per image).

&nbsp;

#### Sub-Second Edge TTFB & CDN Caching (P7-2)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** Google Core Web Vitals (Time to First Byte / TTFB < 800ms / Target < 200ms)  
* **Diagnostic Findings & Evidence:** Edge response served via Cloudflare Workers HIT cache; TTFB ~507ms; Brotli compression active.  
* **Architectural Context & Why It Matters:** Time to First Byte (TTFB) measures the time it takes between a browser requesting a page and receiving the first byte of response data from the edge server. A TTFB under 200ms ensures the browser begins parsing HTML immediately, directly speeding up First Contentful Paint.  
* **Impact on Conversion & Search:** Passes Core Web Vitals speed thresholds and ensures instant responsiveness worldwide.  
* **Fix:**

**Action Steps:**
1. Leverage Cloudflare edge caching or Shopify's global Fastly CDN to serve cached HTML and static assets directly from edge nodes closest to the user.
2. Minimize blocking database queries and unnecessary server-side app proxy calls during initial HTML rendering.
3. Ensure Brotli compression is enabled on all static text assets (HTML, CSS, JS).

&nbsp;

### AI Agent Readiness {#ai-agent-readiness}

#### Accept: text/markdown Content Negotiation (P8-1)

* **Status:** Pass | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** RFC 9110 Content Negotiation & Accept: text/markdown Standard  
* **Diagnostic Findings & Evidence:** Server honors Accept: text/markdown returning 200 OK with Vary: Accept.  
* **Architectural Context & Why It Matters:** Over 65% of all web fetches across AI agent harnesses (Claude, GPT, Perplexity) request markdown formatting. Serving pre-rendered markdown saves up to 80% tokens, eliminates visual DOM bloat, and provides LLM agents with clean factual content.  
* **Impact on Conversion & Search:** Reduces LLM agent context consumption and guarantees 100% accurate factual citation in AI answers.  
* **Fix:**

```javascript
// Cloudflare Worker / Edge Middleware Markdown Negotiation Handler:
export default {
  async fetch(request, env) {
    const accept = request.headers.get('Accept') || '';
    if (accept.includes('text/markdown')) {
      const markdown = await getPageMarkdown(request.url);
      return new Response(markdown, {
        headers: {
          'Content-Type': 'text/markdown; charset=utf-8',
          'Vary': 'Accept'
        }
      });
    }
    return env.ASSETS.fetch(request);
  }
};
```

&nbsp;

#### RFC 8288 Link Headers for Agent Discovery (P8-2)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** RFC 8288 Web Linking & llms.txt Agent Discovery Standards  
* **Diagnostic Findings & Evidence:** Link headers broadcast discovery endpoints: </.well-known/mcp.json>; rel="mcp-manifest", </llms.txt>; rel="llms-txt", </.well-known/api-catalog>; rel="api-catalog", </.well-known/agent-card.json>; rel="agent-card".  
* **Architectural Context & Why It Matters:** Benchmark research across 1,000+ autonomous AI agent runs proves that 86% to 97% of agent discovery fetches arrive via explicit links (in `<head>` or HTTP Link headers) rather than guessed URL paths.  
* **Impact on Conversion & Search:** Directly guides autonomous AI research agents to your structured documentation and product catalog.  
* **Fix:**

```html
<!-- Add to document <head> on all main pages: -->
<link rel="alternate" type="text/markdown" href="https://www.michaelvereb.com/llms.txt" title="llms.txt index">
<link rel="alternate" type="text/markdown" href="https://www.michaelvereb.com/llms-full.txt" title="llms-full.txt full index">
```

&nbsp;

#### Curated llms.txt & llms-full.txt Published (P8-3)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** The llms.txt Specification (Anthropic / Jeremy Howard Standard)  
* **Diagnostic Findings & Evidence:** Published and active at /llms.txt and /llms-full.txt.  
* **Architectural Context & Why It Matters:** The `llms.txt` file acts as an executive summary and sitemap for AI agents exploring a domain. It presents clean markdown links and one-sentence descriptions of your primary products, services, and policies.  
* **Impact on Conversion & Search:** Enables LLM agents to accurately understand your offerings and cite your business in AI answer engines.  
* **Fix:**

```markdown
# Craft 42 Roasters

> Artisan small-batch specialty coffee roaster based in Kelowna, British Columbia.

## Core Products & Services

- [Single Origin Coffees](https://www.michaelvereb.com/collections/single-origin): Freshly roasted whole bean coffees from direct-trade global origins.
- [Espresso Blends](https://www.michaelvereb.com/collections/espresso): Signature espresso blends crafted for sweetness and balance.
- [Coffee Club Subscription](https://www.michaelvereb.com/collections/coffee-club): Flexible recurring coffee subscription with home delivery.
- [Café Locations & Hours](https://www.michaelvereb.com/pages/locations): Physical café locations, operating hours, and tasting bar in Kelowna.
```

&nbsp;

#### Robots.txt Content-Signal Directives (P8-4)

* **Status:** Pass | **Priority:** Low | **Difficulty:** Medium  
* **Specification & Standard:** Robots.txt Content-Signal Standard for AI Assistants  
* **Diagnostic Findings & Evidence:** robots.txt includes Content-Signal declarations for search and AI assistants.  
* **Architectural Context & Why It Matters:** Content-Signal headers and directives declare explicit usage preferences for search indexing, AI training, and assistant retrieval, ensuring your public content is cited by AI engines while asserting ownership boundaries.  
* **Impact on Conversion & Search:** Protects proprietary content while maximizing citation visibility in GPTBot, Claude-User, and PerplexityBot.  
* **Fix:**

```bash
# Add to /public/robots.txt:
User-agent: *
Content-Signal: ai-train=no, search=yes, ai-input=yes
Allow: /

# Dedicated AI search assistants:
User-agent: GPTBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: PerplexityBot
Allow: /
```

&nbsp;

#### WebMCP Tool Registration (W3C Standard) (P8-5)

* **Status:** Pass | **Priority:** Low | **Difficulty:** Medium  
* **Specification & Standard:** W3C webmachinelearning/webmcp (Chrome 146+ & Edge Bridge)  
* **Diagnostic Findings & Evidence:** Detected 1 WebMCP tool(s) registered (0 declarative forms, imperative modelContext active).  
* **Architectural Context & Why It Matters:** WebMCP gives AI browser agents a structured, programmatic way to interact with web pages without burning tokens on visual screenshots or guessing brittle DOM selectors. Tools are declared via HTML forms or registered via `navigator.modelContext.registerTool()`.  
* **Impact on Conversion & Search:** Enables autonomous AI shopping assistants to search inventory, check availability, and build carts seamlessly.  
* **Fix:**

```javascript
// Imperative WebMCP Tool Registration (Chrome 146+ / Polyfill):
if ('modelContext' in navigator) {
  navigator.modelContext.registerTool({
    name: "search_coffee_catalog",
    description: "Search roasted coffees by origin, tasting notes, or roast level",
    annotations: { readOnlyHint: true },
    inputSchema: {
      type: "object",
      required: ["query"],
      properties: {
        query: { type: "string", description: "Roast profile, bean origin, or flavor note" }
      }
    },
    async execute({ query }) {
      const res = await fetch(`/search/suggest.json?q=${encodeURIComponent(query)}&resources[type]=product`);
      const data = await res.json();
      return { content: [{ type: "text", text: JSON.stringify(data.resources.results.products) }] };
    }
  });
}
```

&nbsp;

#### WebMCP Tool Safety Annotations (readOnlyHint) (P8-6)

* **Status:** Pass | **Priority:** Low | **Difficulty:** Medium  
* **Specification & Standard:** W3C webmachinelearning/webmcp Safety Annotations Specification  
* **Diagnostic Findings & Evidence:** Query/search tools declare readOnlyHint: true for autonomous agent execution without user confirmation delays.  
* **Architectural Context & Why It Matters:** WebMCP classifies tools by operational risk. Declaring `readOnlyHint: true` informs autonomous browser agents (Gemini in Chrome, Claude Computer Use) that a tool is safe to execute automatically without pausing to prompt the human user for confirmation.  
* **Impact on Conversion & Search:** Eliminates confirmation stalls for safe read/search operations, enabling sub-second agent co-browsing.  
* **Fix:**

```javascript
// Annotating tools for autonomous agent execution:
navigator.modelContext.registerTool({
  name: "check_order_status",
  description: "Check tracking and shipment status of a coffee order",
  annotations: {
    readOnlyHint: true,    // Allows autonomous execution without confirmation
    destructiveHint: false // Safe read operation
  },
  inputSchema: {
    type: "object",
    required: ["orderId"],
    properties: {
      orderId: { type: "string", description: "Order number" }
    }
  },
  async execute({ orderId }) {
    // Return tracking status
  }
});
```

&nbsp;

#### CCBot WAF & Bot Crawl Accessibility (P8-7)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Common Crawl Foundation Bot Policy & Edge WAF Rules  
* **Diagnostic Findings & Evidence:** CCBot (Common Crawl crawler) successfully accessed origin (HTTP 200). Edge WAF permits AI training crawlers.  
* **Architectural Context & Why It Matters:** Common Crawl (CCBot) harvests open web content to build public datasets used to pre-train frontier AI foundation models (GPT, Claude, Llama). Blocking CCBot at the firewall prevents your brand from being included in foundational AI knowledge bases.  
* **Impact on Conversion & Search:** Ensures your brand name, products, and story are permanently recognized in upcoming frontier LLMs.  
* **Fix:**

**Action Steps:**
1. In Cloudflare Dashboard, go to **Security → WAF → Custom Rules**.
2. Verify that automated bot management does not challenge or block the User-Agent `CCBot` or `CCBot/2.0`.
3. In `robots.txt`, ensure you include:
   `User-agent: CCBot`
   `Allow: /`

&nbsp;

#### Common Crawl LLM Training Corpus Inclusion (P8-8)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Frontier LLM Pre-Training Corpora Standards & Common Crawl Inclusion  
* **Diagnostic Findings & Evidence:** Domain verified in latest Common Crawl snapshot (CC-MAIN-2026-34, captured 20260816033359). Site content is actively integrated into frontier LLM training corpora (GPT, Claude, Llama).  
* **Architectural Context & Why It Matters:** Verification in the latest Common Crawl snapshot confirms that web crawlers have successfully ingested your domain content into global AI training archives, establishing long-term entity permanence in the AI ecosystem.  
* **Impact on Conversion & Search:** Maintains presence in historical training snapshots so AI assistants recognize your brand without real-time browsing.  
* **Fix:**

**Action Steps:**
1. Maintain regular XML sitemap updates and ensure robots.txt permits CCBot and search crawlers.
2. Publish regular authoritative content (such as origin brew guides and roaster notes) to build high-relevance crawl signals.
3. Submit new URL batches to public web crawl indexes during major site updates.

&nbsp;

#### TypeSafe Jev: Autonomous Machine Readability & Extraction (P8-9)

* **Status:** Pass | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Web Engineering & Search Architecture Standard  
* **Diagnostic Findings & Evidence:** TypeSafe Jev calibrated agent readability: 94% probability (High Machine Extraction Readiness). Evaluates whether autonomous agents (Claude Computer Use, ChatGPT Operator) can extract offering, pricing, and service terms without ambiguity.  
* **Architectural Context & Why It Matters:** This checkpoint evaluates technical and structural compliance for TypeSafe Jev: Autonomous Machine Readability & Extraction. Adhering to this standard ensures reliable browser parsing, accessible navigation, and optimal search crawler indexing.  
* **Impact on Conversion & Search:** Improves overall site health, user retention, and organic search visibility.  
* **Fix:**

**Action Steps:**
1. Review the diagnostic finding for TypeSafe Jev: Autonomous Machine Readability & Extraction.
2. Declare key product capabilities, service terms, and pricing in semantic HTML and clean markdown discovery endpoints to eliminate autonomous agent extraction friction.

&nbsp;

### Platform & Ecommerce Health {#platform-&-ecommerce-health}

#### Platform Detection & Theme Version (P9-1)

* **Status:** Pass | **Priority:** Low | **Difficulty:** Easy  
* **Specification & Standard:** Shopify Liquid Theme Architecture & Platform Maintenance Standards  
* **Diagnostic Findings & Evidence:** Platform: webflow  
* **Architectural Context & Why It Matters:** Operating on outdated theme versions or retaining uninstalled app code snippets causes script bloat, increases server DOM weight, and exposes storefronts to unpatched Liquid security bugs.  
* **Impact on Conversion & Search:** Preserves fast checkout execution speeds and prevents app conflict errors.  
* **Fix:**

**Action Steps:**
1. In Shopify Admin, check **Online Store → Themes** for available theme updates.
2. Audit installed apps in **Settings → Apps and sales channels**; uninstall unused apps.
3. Clean up orphaned app scripts from `theme.liquid` to ensure clean head loading.

&nbsp;

#### Sitemap Inventory & Junk Slug Hygiene (P9-2)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** Search Engine Crawl Budget Optimization & Canonical URL Hygiene  
* **Diagnostic Findings & Evidence:** Inventory: 0 products, 0 collections, 0 pages, 0 blog posts (0 total URLs).  
* **Architectural Context & Why It Matters:** Leaving duplicate staging collections (like `/collections/copy-craft-42-coffee-club-membership`) or abandoned third-party app pages (like `/pages/spurit-subscriptions`) in your active XML sitemap wastes Google crawler budget, cannibalizes keyword rankings, and presents prospective customers with 404 error pages.  
* **Impact on Conversion & Search:** Purges zombie URLs from Google search indexes and concentrates ranking power on your live, high-converting collection pages.  
* **Fix:**

**Action Steps:**
1. In Shopify Admin, navigate to **Products → Collections**.
2. Find and delete duplicate test collections: `copy-craft-42-coffee-club-membership` and `local-pickup-craft-42-coffee-club-membership-copy`.
3. Navigate to **Online Store → Pages**.
4. Delete or unpublish obsolete Spurit subscription landing pages (`spurit-subscriptions`, `spurit-invoices-cancelled`, `spurit-reminders-cancelled`, `spurit-notifications-cancelled`).
5. Verify your XML sitemap at `/sitemap.xml` regenerates cleanly without junk or duplicate handles.

&nbsp;

#### Subscription / Recurring Revenue Infrastructure (P9-3)

* **Status:** Fail | **Priority:** High | **Difficulty:** Hard  
* **Specification & Standard:** E-Commerce Subscription & Recurring Cash Flow Architecture  
* **Diagnostic Findings & Evidence:** No subscription infrastructure detected. Recurring revenue = $0.  
* **Architectural Context & Why It Matters:** Coffee roasters thrive on high customer lifetime value (LTV) driven by recurring subscriptions. Relying on legacy or unconfigured subscription apps prevents customers from managing delivery frequencies, pausing, or swapping roasts, causing high churn rates.  
* **Impact on Conversion & Search:** Builds predictable recurring monthly cash flow and increases customer LTV by 3x to 5x compared to one-off orders.  
* **Fix:**

**Action Steps:**
1. Install **Shopify Subscriptions** (free, native, zero-transaction-fee) or **Skio** / **Recharge**.
2. Attach subscription plans to all flagship whole-bean coffee products with a 10% subscriber discount.
3. Offer flexible delivery frequencies: Every 2 Weeks, Every 3 Weeks, and Monthly.
4. Build a dedicated landing page for the "Craft 42 Coffee Club" featuring an interactive bean selector and gift subscription options.

&nbsp;

#### Currency & Pricing Localization (CAD Default for .ca) (P9-4)

* **Status:** Fail | **Priority:** High | **Difficulty:** Medium  
* **Specification & Standard:** Shopify Markets & Cross-Border E-Commerce Localization Standards  
* **Diagnostic Findings & Evidence:** USD pricing for all visitors including Canadians (USD). Shopify Markets misconfiguration on a .ca domain — active revenue leak.  
* **Architectural Context & Why It Matters:** Displaying foreign currencies (USD, GBP) by default on a Canadian `.ca` domain creates immediate checkout abandonment among local buyers who fear unexpected currency exchange fees on their credit cards.  
* **Impact on Conversion & Search:** Prevents shopping cart abandonment among Canadian buyers and establishes clear localized pricing transparency.  
* **Fix:**

**Action Steps:**
1. In Shopify Admin, navigate to **Settings → Markets**.
2. Verify that **Canada** is configured as the **Primary Market** with **CAD ($)** as the base currency.
3. Under **Settings → Store details → Store currency**, verify CAD is set as standard.
4. Inspect Digital Gift Card product denominations to ensure they are denominated in CAD and inventory is marked "Always Available".

&nbsp;

#### Homepage Hero Conversion Health (No Sold-Out CTA) (P9-5)

* **Status:** Pass | **Priority:** High | **Difficulty:** Easy  
* **Specification & Standard:** E-Commerce Hero Merchandising & First-Impression Conversion Standards  
* **Diagnostic Findings & Evidence:** Homepage hero does not contain sold-out blockers. First impression is purchasable inventory.  
* **Architectural Context & Why It Matters:** Featuring sold-out, pre-order, or out-of-stock items in the primary homepage hero banner creates immediate purchase friction. Visitors arriving on your homepage who cannot purchase the first thing they see will bounce to a competitor.  
* **Impact on Conversion & Search:** Guarantees that 100% of homepage visitors see in-stock, immediately purchasable coffee beans and gear.  
* **Fix:**

**Action Steps:**
1. Open the Shopify **Theme Editor** and inspect the primary hero banner section.
2. Ensure the primary slide features an in-stock bestseller, the Coffee Club subscription, or seasonal fresh roasts.
3. Move limited-edition roasts or sold-out specialty lots to secondary collection carousels lower down the page.

&nbsp;

#### Blog Content Freshness & Publishing Cadence (P9-6)

* **Status:** Fail | **Priority:** Medium | **Difficulty:** Medium  
* **Specification & Standard:** Google Helpful Content & Query Deserves Freshness (QDF) Standards  
* **Diagnostic Findings & Evidence:** No blog in sitemap. Zero organic content to build topical authority.  
* **Architectural Context & Why It Matters:** Maintaining an editorial blog with zero posts in over 18 months signals to Google and prospective buyers that the business may be inactive. Regular publishing of brewing tutorials, origin stories, and regional coffee guides builds high-intent topical authority for long-tail search queries.  
* **Impact on Conversion & Search:** Captures high-volume non-branded search traffic (e.g. "how to brew light roast coffee") and builds local brand authority in the Okanagan.  
* **Fix:**

**Action Steps:**
1. Establish a sustainable publishing schedule targeting 2 articles per month in Shopify **Online Store → Blog posts**.
2. Priority Article 1: "The Ultimate Guide to Specialty Coffee in Kelowna: From Bean to Cup".
3. Priority Article 2: "How to Dial In Your 1Zpresso Hand Grinder for Pour-Over and Aeropress".
4. Priority Article 3: "Washed vs. Natural Processed Coffees: What's the Difference?"
5. Link published articles internally to relevant product and collection pages.

&nbsp;

#### Product Review & Social Proof Infrastructure (P9-7)

* **Status:** Fail | **Priority:** High | **Difficulty:** Hard  
* **Specification & Standard:** Social Proof Conversion Optimization & Schema.org AggregateRating Standards  
* **Diagnostic Findings & Evidence:** No review app detected. Zero social proof. Monogram Coffee leads with 150,000+ orders shipped + star ratings as primary trust signal.  
* **Architectural Context & Why It Matters:** Over 90% of specialty coffee consumers read reviews before purchasing coffee online. Without customer reviews and star ratings, prospective buyers hesitate, and product listings miss out on eye-catching star rating rich snippets in Google search results.  
* **Impact on Conversion & Search:** Increases product page conversion rates by 15-30% and unlocks Google SERP review star snippets.  
* **Fix:**

**Action Steps:**
1. Install **Judge.me** or **Okendo** from the Shopify App Store.
2. Configure automated review request emails sent 7 and 14 days after order fulfillment.
3. Embed the Judge.me review carousel widget on product pages and an aggregate social proof banner on the homepage.
4. Verify that the app automatically generates valid `AggregateRating` JSON-LD schema on all reviewed product pages.

&nbsp;

#### Local Business NAP & Physical Presence Signals (P9-8)

* **Status:** Warning | **Priority:** High | **Difficulty:** Hard  
* **Specification & Standard:** Google Local Pack & Schema.org CafeOrCoffeeShop Structured Data  
* **Diagnostic Findings & Evidence:** Local signals: [LocalBusiness schema]. Cities: [Calgary]. LocalBusiness schema present.  
* **Architectural Context & Why It Matters:** Physical cafés rely on Google Local Pack ("Map 3-Pack") rankings for foot traffic and tourist discovery. Search engines require consistent Name, Address, and Phone (NAP) citations plus structured `CafeOrCoffeeShop` JSON-LD schema with exact geo-coordinates and operating hours for each café location.  
* **Impact on Conversion & Search:** Drives foot traffic to both Kelowna locations and secures top 3 visibility in Google Maps searches for "coffee near me".  
* **Fix:**

```json
{
  "@context": "https://schema.org",
  "@type": "CafeOrCoffeeShop",
  "@id": "https://www.michaelvereb.com/#cafe",
  "name": "Craft 42 Roasters",
  "image": "https://www.michaelvereb.com/cdn/shop/files/cafe.jpg",
  "url": "https://www.michaelvereb.com/pages/locations",
  "telephone": "+1-250-000-0000",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Kelowna Location Address",
    "addressLocality": "Kelowna",
    "addressRegion": "BC",
    "postalCode": "V1Y 000",
    "addressCountry": "CA"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 49.888,
    "longitude": -119.496
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
      "opens": "07:00",
      "closes": "17:00"
    }
  ]
}
```

&nbsp;

### Webmaster & Analytics {#webmaster-&-analytics}

#### Google Search Console Query & Click Coverage (U1)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Google Search Console Performance Telemetry & Search Analytics API  
* **Diagnostic Findings & Evidence:** Requires verified GSC domain property to inspect real impression volume, average ranking position, and click-through rates.  
* **Architectural Context & Why It Matters:** Google Search Console provides true impression counts, average ranking positions, and click-through rates for every keyword driving traffic to your site. It is the only authoritative source for real-world crawl errors, index coverage drops, and mobile usability warnings.  
* **Impact on Conversion & Search:** Reveals high-converting search queries, crawl errors, and landing page drop-offs.  
* **Fix:**

**Action Steps:**
1. Navigate to [Google Search Console](https://search.google.com/search-console) and verify domain ownership via DNS TXT record or Cloudflare integration.
2. Submit your primary XML sitemap under **Index → Sitemaps**.
3. Inspect key commercial URLs under **URL Inspection** to confirm clean indexing and mobile usability.
4. Monitor the **Performance** tab for search query impressions, average ranking positions, and click-through rates.

&nbsp;

#### Bing Webmaster Tools (BWT) Live Sync (U2)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Microsoft Bing Webmaster Tools Copilot & Search Telemetry  
* **Diagnostic Findings & Evidence:** Requires BWT account integration to inspect Microsoft Copilot citation readiness and Bingbot crawl health.  
* **Architectural Context & Why It Matters:** Bing Webmaster Tools displays detailed crawl statistics from Bingbot and diagnostic signals for Microsoft Copilot AI assistant grounding. Inspecting live BWT telemetry ensures your site is actively cited across Windows and Edge search environments.  
* **Impact on Conversion & Search:** Ensures crawl coverage and citation accuracy in Microsoft Copilot, Bing, and DuckDuckGo.  
* **Fix:**

**Action Steps:**
1. Log in to [Bing Webmaster Tools](https://www.bing.com/webmasters) using your Google account.
2. Select **Import from Google Search Console** to sync your verified site property instantly.
3. Confirm automated weekly sitemap and URL synchronization to power Microsoft Copilot grounding.

&nbsp;

### Off-Page & Authority {#off-page-&-authority}

#### DataForSEO Backlink Profile & Toxic Link Audit (U3)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Off-Page Authority, Link Toxicity & Referring Domain Intelligence  
* **Diagnostic Findings & Evidence:** Requires backlink profile analysis to evaluate referring domain toxicity, anchor text distribution, and competitor gaps.  
* **Architectural Context & Why It Matters:** Backlink authority from reputable regional publications, food blogs, and coffee directories directly influences domain trust in competitive search verticals. Auditing inbound links identifies toxic spam links requiring Google disavowal and surfaces competitor backlink gaps.  
* **Impact on Conversion & Search:** Protects domain reputation from toxic link penalties and identifies high-value regional PR opportunities.  
* **Fix:**

**Action Steps:**
1. Export your domain backlink profile from Google Search Console under **Links → Top linking sites**.
2. Audit referring domains to identify toxic spam links or unearned spam directory listings.
3. Build local PR partnerships with regional business directories, food & beverage publications, and community guides.

&nbsp;

#### Google Business Profile (GBP) Local Verification (U4)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Google Business Profile (GBP) & Local Maps Verification  
* **Diagnostic Findings & Evidence:** Requires Google Business Profile verification to confirm retail café location data and Google Maps pin health.  
* **Architectural Context & Why It Matters:** Your Google Business Profile powers local Google Maps search cards, customer review accumulation, and phone call routing for both Kelowna cafés. Inconsistent opening hours or unverified location pins suppress local pack rankings.  
* **Impact on Conversion & Search:** Secures top rankings in Google Maps for localized "coffee near me" searches and drives foot traffic.  
* **Fix:**

**Action Steps:**
1. Navigate to [Google Business Profile Manager](https://business.google.com/).
2. Verify all retail café location pins, primary business category (Coffee Roasters / Coffee Shop), and phone numbers.
3. Align NAP (Name, Address, Phone) details exactly with your website footer and location pages.
4. Upload high-resolution interior/exterior photos and establish an active customer review response workflow.

&nbsp;

### Technical Foundation {#technical-foundation}

#### Server Backend Error Logs & Brute-Force Monitoring (U7)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Server Infrastructure & Application Error Logging Standards  
* **Diagnostic Findings & Evidence:** Requires inspecting web server and CDN access logs for 5xx exceptions and traffic anomalies.  
* **Architectural Context & Why It Matters:** Server error logs capture 500 internal server errors, PHP fatal errors, database connection timeouts, and malicious brute-force attempts that are invisible to front-end page scanners.  
* **Impact on Conversion & Search:** Surfaces hidden backend exceptions and ensures infrastructure stability under heavy holiday traffic.  
* **Fix:**

**Action Steps:**
1. Review web server and CDN access logs (Cloudflare Analytics / hosting logs) for recurring 4xx or 5xx status codes.
2. Inspect slow database queries and theme script execution times during peak traffic hours.
3. Verify that edge caching and rate limiting prevent unexpected downtime during marketing campaigns.

&nbsp;

### Performance & Core Web Vitals {#performance-&-core-web-vitals}

#### Chrome User Experience Report (CrUX) Field Data (U8)

* **Status:** Gated | **Priority:** Neutral | **Difficulty:** Easy  
* **Specification & Standard:** Chrome User Experience Report (CrUX) Real-World 28-Day Field Data  
* **Diagnostic Findings & Evidence:** Google requires sufficient real-world 28-day user traffic before publishing historical Core Web Vitals field data.  
* **Architectural Context & Why It Matters:** Google uses 28-day rolling real-user metrics (CrUX) from actual Chrome browser sessions to evaluate Core Web Vitals for search rankings. Low-traffic domains remain in a "data insufficient" state until minimum sample thresholds are reached.  
* **Impact on Conversion & Search:** Validates real-world speed and responsiveness experienced by actual shoppers on local mobile networks.  
* **Fix:**

**Action Steps:**
1. Monitor the Core Web Vitals report in Google Search Console once domain traffic reaches sample thresholds.
2. Verify that 75% of real-world page views meet "Good" thresholds: LCP (<2.5s), INP (<200ms), and CLS (<0.1).
3. Continually optimize mobile image compression and lazy loading to maintain fast real-user page loads.

&nbsp;

---

&nbsp;

*Audit generated by [Michael Vereb](https://www.michaelvereb.com/) on September 18, 2026.*

&nbsp;

[image1]: <data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAAAlCAYAAACjxNxUAAAFWklEQVR4Xu1b7XHcNhB1Cekg+iMLAEkPO7A7sDtwOkg6kDpwOlAJSgcu4UpwCS7BxoJccvGwS4J3VE7S8M28sYX9wBKLLwK8d+8M9Dc3f7SN/94G/8vih9b/jXYvCW3rPnVN+JnH7e5R7zmAbUVEHYneuZsy1pHOfUJ9FYXhCrvgf6CPa4NiwjgHPn/irLpRj2HpS662MRpsIfq6FtoQHjC2mXPiaETuHX8X3F9lnbZ/1Fkj2ieg0sQ0hN39QP9UyJecXgEYV+vdd+/9n0QXp6RJ7xkSV9S94D8tR6gX27oJ7jH+/1TIEmHGKBXi8Gz8t0xJgBoA9VHnWqiNa+/EZWuUsj9A/QamSK29USfzEyt8RKHsmRb2fvC9gM+Ccsae8eP03HX+S00cc2LstVf1Q7sZVVABtOVy2m3SYpoxdg5pKx9UlhPIHmMa+YS6DFkn2sk4SDf++5+mizFjHRYwaTQ1j8tKFgfa1UL1E+fUYi4Fu83QgibS3D3I9fq0ka+x8++/zLUNsOpEJl1lGtOIdVjQ7LR40K4Wqh8spN4CdpuhBU2kaQFH6RRIsittLNLCXlMnMunumDicbm/GuLR40LYG2i41CbCwc+4j2G4GvTCKXejkW1to5QNlDRo7UBfCZ9oJ0r9oE/mzps6BXD6sI0NjxL+LBM56rLsGtJ/LyzikXQ20Tt449zUJUQC2FwP8z7suf/dESSn0484Myxi1sdbr5Y2L8jXINZI6pZSh763+G+//QfusDhQK212A/i+pA/3gdMlAPZQzsHFRvgScwlCOvjUdC+rRF3ZoVAhxWsoULgT65w3KGigp4+7ySdsBErURS0A9lDOwcVFuAUcDygno29KTiLvTf9GGyOsmKIPiDpsTCfSPckSxtV7gtRKH/vE1IlEZNSzT4tY6JtF8nx6Os+oe9Bxs8Y26a9QagIB6KGfslbitxLhRnrg2gHA7S0SdJchepl3z1PpGPepQaw+IcgbqoZzxEhKnjTRzlCHQsAnhEXUs5LblFhp9o5ygbXtRh4A610pcMS0q1GYybapEHVmPBL26SP+psPPluVp8qIfcVAfYnJU4bEBbL9e5OHE+P1prmvEdaQfUPBPuTPGVQgJH5iTQXo6nzBooF+DnSxzu5IiXJq7v++JaBXXORc0zoXxpijQTl4TqyKsn+9GmPqSsl4ByCpTWzPFuKpVpnYt9aWs1EuskWD6J554ioR9J+TqEsi2U9SVo92w1jA1wYh9nJU457EZ2Iono69zEEVCP+aoSx1jqiRnjdIkviOckjrBUJ3Uoq1OR7SWJI8iRzXyViWOEEPrG332bdktxZNHfmCwEfypgEfUluD6q64OyYbB8YTlS+rDQde4j1Ulce0YLWK+k9ImyLZT1HThw4MCBAwcOHDhw4MCBAxnSW7+/m357IGXiEPU0fX2l/LxoPj0wDrSHg++TPGnv4gs9n4xQOX4+wXFRuX+ff7M52LhHPtWR37mImNMzSbs3BXo4Okbi4ymUxcabLmL5PkvqTEdpY2KljDA24nRmiuAkaOXWaYSsh+OXf7fwmeCbxPigE6dyNZHDtYgsox6ePqodr2PwK682hGRDDLe3vZQNcjtxTDyftGIm5PdpdfeXLxrWg6ay8XcBsny6FxNTozaqRp+n4dt8b36XoY3WVB7sxC2NODq3pH9pxKOcwNOoLJvawIjxVYEeJE2VYwJQxo1Evw3QGjnpUEIjzcaKyee1R8pYjj65nOzo9qEcxYMfrTNwvPxZnZS9KcyJG6Y07MHyWgd/K9aH274V6wmPUqkjPynXbpMXE8eEEcJ1zLfl86You+TlT8P/J/wGNKdGaV9N8dUAAAAASUVORK5CYII=>
