# Apex Sentinel — Balagan Cannabis Monthly Audit

**URL:** https://balagancannabis.com/
**Platform:** wordpress
**Archetype:** wellness
**Run ID:** 2026-04-19T06-18-18-831Z
**Scanned:** 2026-04-19T07:09:54.143Z
**Duration:** 811s

This is a **monthly deep audit**. The crawler performed a full-site scan including
Lighthouse performance, axe-core accessibility (WCAG 2.2 AA), cross-browser compatibility,
security headers, schema markup validation, and SEO best-practice checks.

Because this site is not a repository we control, Apex Sentinel **cannot automatically
apply fixes** — instead, each finding below includes an AI-generated plain-English
explanation + step-by-step recommended fix you can hand to a developer or execute
in your CMS directly.

---

## Executive Summary

**Overall grade:** **F**

| Dimension | Count | Meaning |
|---|---|---|
| Pages crawled | 58 | Full sitemap + linked pages |
| P0 (critical) | 2 | Site-down or compliance-breaking |
| P1 (urgent) | 4 | Significant revenue / SEO / UX impact |
| P2 (high) | 45 | Quality / ranking / trust degradation |
| P3 (medium) | 154 | Polish + optimization |
| "Do first" items | 6 | AI-flagged top priorities |
| Quick wins (< 30 min) | 55 | Fastest ROI items |

---

## Top 10 Actions (Ranked)

If you only have time for ten things this month, do these — in this order.

1. **[P0] 🔴 DO FIRST Sensitive artifact exposed: /wp-config.php** — _Exposure of wp-config.php can lead to unauthorized access to your customer database, payment information, and ability to deface or shut down your dispensary's online ordering and compliance documentation._
   Page: https://balagancannabis.com/wp-config.php
   Effort: Quick win (< 30 min)
2. **[P0] 🔴 DO FIRST Sensitive artifact exposed: /wp-login.php** — _Unauthorized access to your WordPress admin panel could allow someone to modify product listings, pricing, compliance information, customer data, or inject malicious code—directly threatening revenue, customer trust, and legal compliance._
   Page: https://balagancannabis.com/wp-login.php
   Effort: Quick win (< 30 min)
3. **[P1] 🔴 DO FIRST A11y: ARIA dialog and alertdialog nodes should have an accessible name** — _Cannabis retailers must comply with ADA accessibility standards to avoid legal liability, and an unlabeled age-gate dialog creates a barrier that locks out disabled customers entirely, reducing addressable market and increasing litigation risk._
   Page: https://balagancannabis.com/
   Effort: Quick win (< 30 min)
4. **[P1] 🔴 DO FIRST A11y: Elements must meet minimum color contrast ratio thresholds (×7)** — _Inaccessible sites risk ADA litigation, exclude customers with vision disabilities, and may trigger search engine penalties for poor user experience compliance._
   Page: https://balagancannabis.com/
   Effort: Moderate (1-3 hours)
5. **[P1] 🔴 DO FIRST A11y: Images must have alternative text (×7)** — _Inaccessible sites expose you to legal liability under the ADA, damage your reputation with inclusive consumers, and reduce organic search ranking signals—Google rewards accessible sites._
   Page: https://balagancannabis.com/
   Effort: Quick win (< 30 min)
6. **[P1] 🔴 DO FIRST A11y: Links must have discernible text (×3)** — _Cannabis retailers must comply with accessibility standards or face legal risk; moreover, customers with disabilities can't navigate your site to find products or hours, directly reducing sales and excluding a market segment._
   Page: https://balagancannabis.com/
   Effort: Quick win (< 30 min)
7. **[P2] 🟠 HIGH Missing meta description** — _A compelling meta description increases click-through rate from search results; missing one means potential customers see a generic auto-generated excerpt instead of your value proposition, reducing organic traffic to your site._
   Page: https://balagancannabis.com/
   Effort: Quick win (< 30 min)
8. **[P2] 🟠 HIGH Missing meta description** — _Customers searching for 'cannabis near me' or 'dispensary directions' are less likely to click your result if the preview text looks generic or irrelevant; a clear, compelling meta description can lift click-through rate by 5–10%._
   Page: https://balagancannabis.com/directions/
   Effort: Quick win (< 30 min)
9. **[P2] 🟠 HIGH Missing meta description** — _A compelling meta description increases click-through rate from search results; missing descriptions lose 5–15% of potential traffic to competitors with better listings, directly reducing foot traffic and online orders._
   Page: https://balagancannabis.com/faqs/
   Effort: Quick win (< 30 min)
10. **[P2] 🟠 HIGH Missing meta description** — _A missing meta description reduces click-through rate from search results, meaning fewer people visit your contact page even if it ranks — directly reducing inquiries and foot traffic._
   Page: https://balagancannabis.com/contact/
   Effort: Quick win (< 30 min)

---

## Findings by Severity

### P0 — 2 findings

### 1. Sensitive artifact exposed: /wp-config.php

- **Severity:** P0   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** security
- **Page URL:** https://balagancannabis.com/wp-config.php
- **Rule:** `tier5.exposed.artifact`

**What it means (plain English)**

Your WordPress configuration file (wp-config.php) is publicly accessible on the internet. This file contains database passwords, security keys, and other sensitive credentials that should never be visible to anyone. An attacker could use this information to compromise your entire website and customer data.

**Why it matters for your business:** Exposure of wp-config.php can lead to unauthorized access to your customer database, payment information, and ability to deface or shut down your dispensary's online ordering and compliance documentation.

**Technical root cause:** WordPress server is not configured to block direct HTTP requests to wp-config.php. This file should be protected at the web server (Apache/Nginx) or hosting level, but your current setup allows it to be downloaded as plain text.

**Recommended fix — step by step**

1. Log in to your WordPress hosting control panel (cPanel, Plesk, or your host's dashboard) and check if there is a 'Security' or '.htaccess Manager' tool available.
2. If .htaccess is available, add these lines to block wp-config.php: Open File Manager → root public_html folder → Edit .htaccess → add '<FilesMatch "^wp-config\.php$"> Order allow,deny Deny from all </FilesMatch>'.
3. If your host is Kinsta, WP Engine, or Bluehost, contact their support chat and state: 'wp-config.php is returning HTTP 200 and needs to be blocked at the server level—please add server rules to deny direct access.'
4. Test the fix by visiting https://balagancannabis.com/wp-config.php in an incognito browser—you should see a 403 Forbidden or 404 error, not the file contents.
5. Verify no other sensitive WordPress files (wp-settings.php, wp-load.php) are accessible using the same method.
6. Run a free security scan at wordfence.com/signup to verify the exposure is closed.

### 2. Sensitive artifact exposed: /wp-login.php

- **Severity:** P0   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** security
- **Page URL:** https://balagancannabis.com/wp-login.php
- **Rule:** `tier5.exposed.artifact`

**What it means (plain English)**

Your WordPress admin login page (/wp-login.php) is publicly accessible on the internet. While this is standard WordPress behavior, it creates a security risk because attackers can repeatedly try to guess passwords at this known location. This is one of the first places bad actors look when targeting WordPress sites.

**Why it matters for your business:** Unauthorized access to your WordPress admin panel could allow someone to modify product listings, pricing, compliance information, customer data, or inject malicious code—directly threatening revenue, customer trust, and legal compliance.

**Technical root cause:** WordPress publishes /wp-login.php by default, and no firewall rule or .htaccess restriction is currently blocking or redirecting this path. The login page responds with HTTP 200 (success) instead of 403 (forbidden) or 404 (not found).

**Recommended fix — step by step**

1. Install the plugin 'Wordfence Security' (free tier includes login protection): Go to Plugins > Add New, search 'Wordfence', install and activate.
2. In Wordfence Settings > Access Control, enable 'Block administrative access' from any country/IP not matching your location, or set a custom admin login URL.
3. Alternatively, add this rule to your .htaccess file (via File Manager or SFTP in the root directory): <FilesMatch "^wp-login\.php$"> Order allow,deny Deny from all Allow from {YOUR_OFFICE_IP} </FilesMatch>
4. Use a plugin like 'WPS Hide Login' to rename /wp-login.php to a custom URL (e.g., /admin-panel-secret), then monitor the original path with Wordfence alerts.
5. Enable two-factor authentication for all admin accounts via Wordfence or 'Two Factor Authentication' plugin to add a second security layer.
6. Review Wordfence Firewall logs weekly (Wordfence > Tools > IP Whitelist & Blacklist) to monitor login attack attempts.

---

### P1 — 4 findings

### 1. A11y: ARIA dialog and alertdialog nodes should have an accessible name

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** compliance
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier9.a11y.aria-dialog-name`

**What it means (plain English)**

Your age-gate dialog (the popup that appears when visitors first arrive) doesn't have a proper accessible name. Screen readers—software that reads web pages aloud for blind and low-vision users—can't announce what this dialog is for. This means users relying on assistive technology won't understand that they're being asked to verify their age before entering the site.

**Why it matters for your business:** Cannabis retailers must comply with ADA accessibility standards to avoid legal liability, and an unlabeled age-gate dialog creates a barrier that locks out disabled customers entirely, reducing addressable market and increasing litigation risk.

**Technical root cause:** The dialog element with id 'baag3-gate' has role='dialog' and aria-modal='true' but is missing an aria-label, aria-labelledby, or title attribute. Screen readers require one of these attributes to announce the dialog's purpose.

**Recommended fix — step by step**

1. Log in to WordPress admin → inspect the age-gate plugin (likely 'Age Verification' or 'Age Gate' in Plugins list); note the plugin name
2. If using a plugin: go to the plugin settings page and look for 'Accessible Label', 'ARIA Label', or 'Dialog Title' field; if present, enter 'Age verification: You must be 21 or older to enter this site'
3. If no such field exists in the plugin UI, contact the plugin author or install a lightweight alternative (e.g., 'Age Verification by Age Gate' which has built-in ARIA support)
4. Alternatively, add the attribute manually: use WordPress Code Snippets plugin (Plugins → Add New → search 'Code Snippets') → add this: add_filter('baag3_dialog_attributes', function($attrs) { $attrs['aria-label'] = 'Age verification dialog'; return $attrs; });
5. After implementation, run the page through axe DevTools (free Chrome extension) → refresh the age-gate and confirm 'aria-dialog-name' no longer appears in violations
6. Test with a screen reader (NVDA on Windows or VoiceOver on Mac) to confirm the dialog announces 'Age verification dialog' when it appears

### 2. A11y: Elements must meet minimum color contrast ratio thresholds (×7)

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** compliance
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier9.a11y.color-contrast`

**What it means (plain English)**

Seven elements on your site use white text (#ffffff) on a green background (#0b9544) that doesn't meet accessibility standards. The contrast ratio is 3.89:1, but WCAG AA requires 4.5:1 minimum. This makes text hard to read for people with low vision or color blindness, and fails legal accessibility compliance in most jurisdictions.

**Why it matters for your business:** Inaccessible sites risk ADA litigation, exclude customers with vision disabilities, and may trigger search engine penalties for poor user experience compliance.

**Technical root cause:** The brand green color (#0b9544) is too dark relative to white text. The specific affected elements are promotional banners, buttons, and call-to-action links that use this color combination.

**Recommended fix — step by step**

1. Open your WordPress admin → Appearance → Customize → Colors section, or locate your theme's custom CSS editor
2. Use a contrast checker tool (e.g., webaim.org/resources/contrastchecker/) to test your green #0b9544 against white; you'll see it fails
3. Choose one of three fixes: (a) lighten the green background to #13c660 or similar, (b) darken white text to a light gray (#f5f5f5), or (c) use a different background color entirely
4. Test the new color on buttons, banners, and text by viewing on mobile and desktop; confirm contrast is now 4.5:1 or higher
5. If using a page builder (Elementor, Beaver Builder, etc.), edit each button/banner element → color settings → apply the new color
6. If using custom CSS, find .bde-text-13-133 and .button-atom classes in your theme's CSS file and update background-color or color properties accordingly
7. Run an accessibility audit tool again (e.g., WAVE, axe DevTools browser extension) to confirm all 7 elements now pass

### 3. A11y: Images must have alternative text (×7)

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier9.a11y.image-alt`

**What it means (plain English)**

Seven images on your homepage lack alternative text (alt attributes), which means screen readers used by blind and low-vision visitors cannot describe what those images show. This creates a barrier for people with disabilities trying to understand your product offerings and brand.

**Why it matters for your business:** Inaccessible sites expose you to legal liability under the ADA, damage your reputation with inclusive consumers, and reduce organic search ranking signals—Google rewards accessible sites.

**Technical root cause:** The images are likely added via a page builder (Beaver Builder, Elementor, etc.) or WordPress block editor without alt text being filled in during upload or insertion. The lazy-loading data attributes (data-src) suggest a performance plugin that doesn't auto-preserve alt metadata.

**Recommended fix — step by step**

1. Log into WordPress admin → Inspect the homepage with a page builder (likely Beaver Builder, Elementor, or Gutenberg). Identify each of the 7 images flagged in the affected selectors (.bde-image2-11-134, .bde-image2-11-139, etc.).
2. For each image, click 'Edit' or the image settings icon, and populate the 'Alt Text' field with a brief, descriptive phrase (e.g., 'Premium cannabis flower assortment' or 'Balagan wellness products lineup'). Avoid keyword stuffing; focus on what the image shows.
3. If using Beaver Builder, navigate to each image module → Advanced tab → click the image thumbnail → fill Alt Text field in the media dialog.
4. If using Elementor, select each image widget → Image panel → click the image → fill 'Alt Text' field in the media library modal.
5. Save and republish the page.
6. Run the page through axe DevTools (free browser extension) or WebAIM's WAVE tool to confirm all 7 images now have alt text.
7. Create a documented process: require alt text for every image before publishing—add a checklist to your content workflow.

### 4. A11y: Links must have discernible text (×3)

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** compliance
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier9.a11y.link-name`

**What it means (plain English)**

Your website has 3 links that don't have any readable text or labels. Screen readers (used by people with vision loss) can't tell users what these links do — they might be icon-only buttons or invisible elements. This makes the site unusable for disabled visitors and violates accessibility law.

**Why it matters for your business:** Cannabis retailers must comply with accessibility standards or face legal risk; moreover, customers with disabilities can't navigate your site to find products or hours, directly reducing sales and excluding a market segment.

**Technical root cause:** The links use only CSS classes or icon fonts without accompanying text, aria-label attributes, or title attributes. Screen readers have no content to announce, so they can't convey the link's purpose.

**Recommended fix — step by step**

1. Log into WordPress admin → navigate to the page editor (likely Breakdance visual builder, given the 'bde-' class selectors)
2. Find the icon-only link elements (search for '.bde-icon-icon' and '.bde-container-link-145-133' in the page structure or inspect the homepage visually for icon buttons)
3. For each icon link: click the element → open its settings/properties panel → look for an 'Accessibility' or 'Label' field and add descriptive text (e.g., 'Get Directions', 'Home')
4. If no accessibility field exists in Breakdance, add an aria-label in the Advanced → Custom Attributes section: aria-label="Get Directions"
5. Alternatively, add a title attribute in Custom HTML/Attributes: title="Get Directions"
6. Publish and test: use a free screen reader (NVDA on Windows or VoiceOver on Mac) to confirm each link announces its purpose
7. Run Axe DevTools browser extension on the homepage to verify all 3 link-name errors are resolved

---

### P2 — 45 findings

### 1. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your homepage doesn't have a meta description — the 160-character summary that appears below your site title in Google search results. Without it, Google will auto-generate a snippet from your page content, which often looks unprofessional and doesn't control your messaging. This is a quick fix that has immediate SEO payoff.

**Why it matters for your business:** A compelling meta description increases click-through rate from search results; missing one means potential customers see a generic auto-generated excerpt instead of your value proposition, reducing organic traffic to your site.

**Technical root cause:** The homepage HTML is missing a `<meta name="description" content="...">` tag in the document head, or it's empty.

**Recommended fix — step by step**

1. Log in to WordPress admin → go to Pages → edit the homepage (usually titled 'Home')
2. Scroll to the bottom of the editor and look for a Yoast SEO, Rankmath, or All in One SEO plugin metabox (if not visible, activate one of these plugins first)
3. In the metabox, find the 'Meta Description' field
4. Write a 155–160 character description that includes your main keyword (e.g., 'Balagan Cannabis: Premium cannabis products & wellness advice for [your city]. Licensed dispensary with curated selection and expert service.') and click Save or Update
5. Verify the change by visiting the homepage, right-clicking, selecting 'Inspect,' and searching for `<meta name="description"` in the HTML to confirm the tag now appears

### 2. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/directions/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

The /directions/ page is missing a meta description—the short text (155–160 characters) that appears below your page title in Google search results. Without it, Google may auto-generate a snippet from your page content, which often looks unprofessional and may not highlight what makes your dispensary unique. This is a quick fix that applies to any page missing this tag.

**Why it matters for your business:** Customers searching for 'cannabis near me' or 'dispensary directions' are less likely to click your result if the preview text looks generic or irrelevant; a clear, compelling meta description can lift click-through rate by 5–10%.

**Technical root cause:** The WordPress page or post template for /directions/ does not include a meta description field, or the field was left blank when the page was created. Most WordPress themes require explicit input or a plugin to auto-generate these tags.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages → find and edit the 'Directions' page
2. Scroll to the SEO plugin panel (Yoast SEO, Rank Math, or All in One SEO, depending on your setup); if you don't see an SEO section, install one of these free plugins
3. In the meta description field, write 155–160 characters that include your location, hours, and a call to action: e.g., 'Visit Balagan Cannabis in [City]. Open [hours]. Convenient parking & online ordering. Directions & hours.'
4. Ensure the description includes your main keyword ('cannabis dispensary', 'directions', or your city name) naturally, not as keyword-stuffing
5. Click 'Update' or 'Publish' to save
6. Repeat this step for any other pages flagged in your audit that lack a meta description

### 3. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/faqs/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your FAQ page is missing a meta description—the 160-character summary that appears under your link in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and doesn't encourage clicks. This is a quick fix that directly impacts how your listing appears to potential customers searching for cannabis FAQs.

**Why it matters for your business:** A compelling meta description increases click-through rate from search results; missing descriptions lose 5–15% of potential traffic to competitors with better listings, directly reducing foot traffic and online orders.

**Technical root cause:** The FAQ page template in WordPress is either not setting the description field, or the field exists but wasn't filled in when the page was created. Most WordPress themes require explicit input or a plugin (like Yoast SEO or Rank Math) to auto-populate this field.

**Recommended fix — step by step**

1. Log in to WordPress admin → Pages → find and edit the FAQ page
2. Scroll down to the SEO section (if using Yoast SEO, it appears below the editor; if Rank Math, look for a sidebar panel labeled 'Rank Math')
3. In the 'Meta Description' field, write 150–160 characters describing the page: e.g., 'Find answers to common cannabis questions about products, dosing, legality, and delivery at Balagan Cannabis.'
4. Preview the description length using the plugin's character counter (should show green for 150–160 chars)
5. Click Update and verify the change is live by searching 'Balagan Cannabis FAQ' in Google within 24 hours

### 4. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/contact/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your contact page is missing a meta description — the 150-160 character summary that appears below your page title in Google search results. Without it, Google generates one automatically (often poorly), which can make your listing look incomplete or unappealing to potential customers deciding whether to click.

**Why it matters for your business:** A missing meta description reduces click-through rate from search results, meaning fewer people visit your contact page even if it ranks — directly reducing inquiries and foot traffic.

**Technical root cause:** The page either has no meta description tag in the HTML head, or the WordPress theme/plugin is not outputting one automatically for that page.

**Recommended fix — step by step**

1. Log in to WordPress admin → Pages → find and edit the Contact page
2. Scroll down to the Yoast SEO or All in One SEO (whichever plugin you use) meta box
3. In the 'Meta description' field, write a 150-160 character summary, e.g.: 'Get in touch with Balagan Cannabis. Questions about our products or store hours? Contact us today for fast responses.'
4. Click 'Update' to save
5. Wait 2-3 minutes, then visit the live contact page and do a hard refresh (Ctrl+F5)
6. Right-click → View Page Source, search for '<meta name="description"' to confirm the tag is now present

### 5. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/sign-up/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

The sign-up page is missing a meta description — a 150–160 character summary that appears below your page title in Google search results. Without it, Google may auto-generate a snippet from your page content, which often looks unprofessional and doesn't encourage clicks.

**Why it matters for your business:** Potential sign-ups are lost when searchers see a vague or auto-generated description instead of a clear, compelling call-to-action in search results.

**Technical root cause:** The WordPress page or template for /sign-up/ does not have a meta description tag set in the page head, or the SEO plugin (if installed) is not configured to generate one.

**Recommended fix — step by step**

1. Log into WordPress admin and navigate to Pages → Sign Up (or the page named 'sign-up').
2. If you use Yoast SEO, scroll to the Yoast SEO metabox at the bottom of the editor; if you use Rank Math, look for the Rank Math panel on the right. If neither is installed, install Yoast SEO (free version is sufficient).
3. In the metabox, find the 'Meta description' field and enter a 150–160 character description, e.g., 'Join Balagan Cannabis. Create your account to receive exclusive updates, loyalty rewards, and legal access to our products.'
4. Ensure the description includes your brand name and a clear benefit or next step.
5. Click 'Update' or 'Publish' to save.
6. Wait 2–4 hours, then visit Google Search Console → Pages to confirm the description is crawled, or search 'site:balagancannabis.com sign-up' in Google to see the live snippet.

### 6. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your /areas/ page is missing a meta description — the 155-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and doesn't tell customers what to expect. This is a quick fix in WordPress.

**Why it matters for your business:** Customers scanning search results are less likely to click your /areas/ page if the preview looks generic or irrelevant, directly reducing foot traffic to your dispensary location information.

**Technical root cause:** The meta description tag is not populated in the WordPress page editor for this page, so the theme's default (usually blank) is being served.

**Recommended fix — step by step**

1. Log in to WordPress dashboard → Pages → find 'Areas' page
2. Scroll to the Yoast SEO box (or All in One SEO) at the bottom of the editor
3. Click 'Edit snippet' and write a 155-character description: e.g., 'Balagan Cannabis locations across [your region]. Find hours, directions, and menu at each of our retail dispensaries.'
4. Ensure the description includes a local modifier (city/region name) to improve local search relevance
5. Click 'Save draft' and then 'Update' the page
6. Wait 2–4 weeks for Google to re-crawl and update the search result preview

### 7. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/easthampton-cannabis/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page is missing a meta description—the 160-character summary that appears under your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and doesn't encourage clicks. For a cannabis dispensary competing locally, a strong description is your chance to highlight location, products, or trust signals directly in search.

**Why it matters for your business:** Missing meta descriptions reduce click-through rate from local search results; potential customers see a generic excerpt instead of your marketing message, and competitors with descriptions outrank you perceptually even if you rank higher.

**Technical root cause:** The Easthampton location page was likely created without filling in the meta description field in WordPress. WordPress doesn't auto-generate descriptions—they must be manually entered or set via SEO plugins.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages → find 'Easthampton Cannabis' page
2. Scroll to the SEO section (if using Yoast SEO, look for 'Snippet editor'; if using Rank Math, scroll to 'SEO' tab below editor)
3. Write a 155–160 character description: e.g., 'Premium cannabis dispensary in Easthampton, MA. Browse flower, edibles & concentrates. Open today. Medical & recreational.'
4. Ensure the description includes location name + primary product category + a trust signal (hours/medical status)
5. Repeat for all other location pages (search wp-admin for 'cannabis' or filter by page type)
6. Save and verify the snippet renders correctly in the plugin preview
7. Wait 1–2 weeks, then check Google Search Console → Performance → click-through rate to confirm improvement

### 8. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/amherst-cannabis/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page is missing a meta description — a 150–160 character summary that appears below the page title in Google search results. Without it, search engines may auto-generate a snippet from your page content, which often looks unprofessional or doesn't highlight your key selling points.

**Why it matters for your business:** A missing or poor meta description reduces click-through rates from search results, which directly lowers foot traffic to your Amherst location page and hurts local SEO performance.

**Technical root cause:** The WordPress page or post does not have a meta description field filled in, either because the SEO plugin (Yoast, Rank Math, etc.) was not configured for this page, or the field was left blank during content creation.

**Recommended fix — step by step**

1. Log into WordPress admin → Posts/Pages → find 'Amherst Cannabis' page
2. Scroll to the SEO plugin section (Yoast, Rank Math, or All in One SEO); look for 'Meta Description' or 'SEO Description' field
3. Write a 150–160 character description including your location, product type, and a call-to-action; example: 'Shop premium cannabis in Amherst. Same-day delivery & lab-tested products. Licensed dispensary. Visit Balagan Cannabis today.'
4. If using Yoast: set the focus keyword to 'Amherst cannabis' and aim for a green light in the readability check
5. Click Publish or Update, then wait 48 hours for Google to re-crawl and update search results
6. Repeat this process for all other location pages to ensure consistency

### 9. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/leeds-dispensary/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page is missing a meta description—the 150–160 character summary that appears below the page title in Google search results. Without it, Google may auto-generate a snippet from your page content, which often looks incomplete or irrelevant to users deciding whether to click.

**Why it matters for your business:** A missing or poorly generated snippet reduces click-through rate from search results, meaning fewer visitors discover your Leeds dispensary location even if the page ranks.

**Technical root cause:** The WordPress page or post template does not include a meta description tag in the <head> section, either because it was never added or the SEO plugin (if installed) was not configured for this page.

**Recommended fix — step by step**

1. Log into WordPress admin → navigate to the Leeds Dispensary page → scroll to the SEO plugin section (Yoast, Rank Math, All in One SEO, or similar) at the bottom of the editor
2. Locate the 'Meta Description' field and enter a 155–160 character description, e.g.: 'Visit Balagan Cannabis Leeds dispensary. Legal cannabis products, knowledgeable staff, age-verified. Open daily 10am–8pm.'
3. Include your location name and key benefits (product variety, staff expertise, hours) to improve click-through
4. Click 'Update' or 'Publish' to save
5. Repeat this process for all other location pages (e.g., /areas/london-dispensary/, /areas/manchester-dispensary/)
6. Verify the change by viewing the page in incognito mode, searching 'Balagan Cannabis Leeds' in Google, and confirming the description appears below the title

### 10. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/florence-dispensary/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page is missing a meta description—the 155-character summary that appears below the page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and fails to explain why someone should click your link.

**Why it matters for your business:** Missing descriptions reduce click-through rates from search results, directly hurting foot traffic to your Florence dispensary location page and lowering overall search visibility for local cannabis customers.

**Technical root cause:** The page template or individual page settings in WordPress don't have a meta description field filled in. WordPress doesn't add one automatically, so it must be manually entered or added via an SEO plugin.

**Recommended fix — step by step**

1. Install Yoast SEO or Rank Math plugin (free version) if not already active: WordPress admin → Plugins → Add New → search 'Yoast SEO' → Install → Activate
2. Navigate to the Florence dispensary page: WordPress admin → Pages → find 'Florence Dispensary' → Edit
3. Scroll to the Yoast SEO (or Rank Math) box at the bottom of the editor
4. In the 'Snippet editor' section, click the meta description field and write 150–160 characters covering: location name + 'cannabis dispensary' + 1–2 key products/services (e.g., 'Award-winning cannabis dispensary in Florence. Shop premium flower, edibles, and concentrates. Walk-ins welcome.')
5. Verify the description shows in the live preview inside the plugin
6. Click 'Update' or 'Publish' to save the page
7. Repeat for any other location pages (check /areas/ directory for additional pages without descriptions)

### 11. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/about/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

The /about/ page is missing a meta description — a 150–160 character summary that appears below your page title in Google search results. Without it, search engines may auto-generate a snippet from your page content, which often looks truncated or irrelevant. This reduces click-through rates from organic search.

**Why it matters for your business:** Dispensary customers searching for 'cannabis near me' or your brand name are less likely to click your About page link in Google results, losing potential foot traffic and brand trust opportunities.

**Technical root cause:** The page's HTML head tag does not include a <meta name="description" content="..."> tag. WordPress may have a missing or disabled meta description field in the page editor.

**Recommended fix — step by step**

1. Log in to WordPress admin → Pages → About → scroll down to 'Yoast SEO' or 'All in One SEO Pack' box (depending on which plugin is active)
2. If using Yoast SEO: click the 'Edit snippet' button and enter a 150–160 character description highlighting your dispensary's mission, licenses, or product focus (e.g., 'Balagan Cannabis is a licensed dispensary in [City] offering high-quality cannabis products and expert advice since [Year].')
3. If using All in One SEO Pack: fill the 'Meta Description' field in the page sidebar
4. If neither plugin is visible, install 'Yoast SEO' from Plugins → Add New, activate it, then repeat step 2
5. Click Update/Publish to save
6. Verify the description appears by viewing the page source (Ctrl+U) and searching for 'meta description' or test in Google's Mobile-Friendly Test tool

### 12. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/northampton-main-street-dispensary/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page is missing a meta description — a short text snippet (160 characters) that summarizes the page content and appears below the page title in search results. Without it, Google shows a generic or auto-generated snippet, which loses the chance to convince potential customers to click through from search.

**Why it matters for your business:** Missing meta descriptions reduce click-through rate from Google search results, directly lowering foot traffic to your Northampton location page and nearby dispensary visibility.

**Technical root cause:** The WordPress page or post for the Northampton dispensary location was published without filling in the SEO meta description field, either in Yoast SEO, Rank Math, or native WordPress excerpt.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages or Posts → search for 'Northampton Main Street' and open it
2. Scroll to the Yoast SEO or Rank Math box at the bottom of the editor (or in the right sidebar)
3. Click 'Edit snippet' and write a 155–160 character description: e.g., 'Balagan Cannabis Northampton dispensary on Main Street. Quality cannabis products, knowledgeable staff, open daily. Visit us today.'
4. Ensure the description includes location keywords (Northampton, Main Street) and a call-to-action
5. Click Update/Publish to save
6. Repeat for all other dispensary location pages (check Sites → All Pages for any missing descriptions)

### 13. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/craft-flower-menu-northampton/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

The craft flower menu page is missing a meta description — the 160-character text snippet that appears below the page title in Google search results. Without it, Google generates a random excerpt from your page content, which may not highlight your best selling points or include relevant keywords.

**Why it matters for your business:** Potential customers searching for craft flower in Northampton see a weak or irrelevant preview in search results, reducing click-through rate and losing traffic to competitors with optimized descriptions.

**Technical root cause:** The WordPress page or post object does not have the meta description field populated in the post editor, or the theme is not outputting the meta description tag in the HTML head.

**Recommended fix — step by step**

1. Log in to WordPress admin → Pages or Posts → edit the 'Craft Flower Menu – Northampton' page
2. Scroll to the SEO plugin section (likely Yoast SEO, Rank Math, or All in One SEO); if none appear, install one: Plugins → Add New → search 'Yoast SEO' → Install & Activate
3. In the SEO meta box, fill the 'Meta Description' field with 155–160 characters including: product type, location, and call-to-action (e.g., 'Premium craft flower in Northampton. Browse our curated strains, lab results, and pricing. Order online or visit today.')
4. Preview the snippet in the plugin's live preview to ensure it reads well in search results
5. Click Update/Publish
6. Repeat for all menu pages (products, edibles, concentrates, etc.) and high-traffic category pages
7. Submit the updated URLs to Google Search Console → Coverage tab → Request indexing

### 14. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/smith-college-dispensary-guide/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your blog post about Smith College dispensary options has no meta description—that's the short summary (150–160 characters) that appears under your page title in Google search results. Without it, Google generates a random snippet from your page content, which may not highlight your key selling points or include your location/offers.

**Why it matters for your business:** Missing meta descriptions reduce click-through rates from search results; potential customers see a generic excerpt instead of a compelling reason to visit your site, directly affecting foot traffic and online inquiries.

**Technical root cause:** The WordPress page or post was published without filling in the meta description field in your SEO plugin (Yoast, Rank Math, or All in One SEO), or the plugin is not installed.

**Recommended fix — step by step**

1. Log in to WordPress admin → Posts → find 'smith-college-dispensary-guide' post
2. Scroll to the SEO plugin section (usually below the editor; if not visible, install free Yoast SEO plugin first: Plugins → Add New → search 'Yoast SEO' → Install & Activate)
3. In the Yoast/SEO meta box, click into the 'Meta description' field
4. Write a 150–160 character description including your location and a key benefit, e.g.: 'Balagan Cannabis near Smith College. Premium flower, edibles & concentrates. Age-verified dispensary in [Town], MA. Shop local.'
5. Click 'Save' or 'Update Post'
6. Repeat for other blog posts lacking descriptions (audit all 'tier2.meta.no-description' findings)

### 15. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/south-hadley-dispensary/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page is missing a meta description — the 160-character summary that appears under your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and doesn't tell customers what they'll find.

**Why it matters for your business:** Missing meta descriptions reduce click-through rates from search results; potential customers see a jumbled text preview instead of a clear call-to-action, causing them to choose a competitor's listing instead.

**Technical root cause:** The WordPress page or post for the South Hadley dispensary location was created without filling in the meta description field, which most SEO plugins (Yoast, Rank Math, etc.) make available in the post editor.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages or Posts → search for 'South Hadley Dispensary' and open it.
2. Scroll down to the Yoast SEO (or Rank Math / All in One SEO) metabox at the bottom of the editor.
3. Find the 'Meta description' field and write a 155–160 character description, e.g., 'South Hadley dispensary: cannabis products, knowledgeable staff, convenient hours. Visit Balagan Cannabis today.'
4. Ensure the description mentions the location, product type, and a benefit (e.g., 'easy access', 'expert advice').
5. Click 'Update' to save the page.
6. Repeat for any other location pages missing descriptions (check your areas/ section).

### 16. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/holyoke-ma-dispensary/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page is missing a meta description — a short text summary (160 characters) that appears below the page title in Google search results. Without it, Google will auto-generate a snippet from the page body, which often looks fragmented and fails to persuade clicks.

**Why it matters for your business:** Lower click-through rates from search results for local dispensary queries, directly reducing foot traffic and online orders.

**Technical root cause:** The page was likely published without filling in the meta description field in WordPress, or the theme/plugin does not default to writing descriptions for location pages.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages → edit 'Holyoke, MA Dispensary' page
2. Scroll to the SEO plugin section (Yoast SEO, Rank Math, or All in One SEO — whichever is active in your plugins list)
3. Click the meta description field and write: 'Premium cannabis dispensary in Holyoke, MA. Wide selection of flower, edibles, and concentrates. Licensed, lab-tested. Visit Balagan Cannabis today.'
4. Ensure the description is 155–160 characters (the field usually shows a counter)
5. Click 'Update' to save
6. Repeat for any other /areas/ location pages that lack descriptions (check via Google Search Console → Performance → Pages with no description)

### 17. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/category/cannabis-education/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

The cannabis education category page is missing a meta description — a 160-character summary that appears below your page title in Google search results. Without it, Google shows a generic snippet instead, which hurts click-through rates from search. This is a straightforward fix.

**Why it matters for your business:** Missing meta descriptions reduce click-through rate from search results, directly lowering organic traffic to your educational content and brand authority in the cannabis space.

**Technical root cause:** The WordPress theme or page template for category archives does not have a meta description field populated or configured, so the tag is absent from the HTML head.

**Recommended fix — step by step**

1. Log into WordPress admin → Posts → Categories
2. Click 'Cannabis Education' category
3. Scroll to the SEO plugin section (Yoast SEO, Rank Math, or All in One SEO, depending on your plugin)
4. Find the 'Meta description' field and write a 155–160 character description, e.g.: 'Learn cannabis science, effects, dosing, and safety. Expert guidance for patients and consumers at Balagan Cannabis.'
5. Save the category
6. Verify the meta description appears in the page source (right-click page → View Page Source, search for '<meta name="description"')

### 18. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/category/dispensary-products/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your dispensary products category page lacks a meta description — the 150-160 character summary that appears under your page title in Google search results. Without it, search engines generate a random snippet from your page content, which often looks unprofessional and doesn't encourage clicks.

**Why it matters for your business:** Missing meta descriptions reduce click-through rates from search results; potential customers see a generic excerpt instead of your value proposition, directly harming traffic to a high-intent product page.

**Technical root cause:** WordPress doesn't auto-generate meta descriptions for category pages by default. The page needs either manual entry or a plugin setting to create one.

**Recommended fix — step by step**

1. Install the free Yoast SEO plugin if not already active: WordPress dashboard → Plugins → Add New → search 'Yoast SEO' → Install & Activate.
2. Navigate to: WordPress dashboard → Products (or your taxonomy label) → Categories → select 'Dispensary Products'.
3. Scroll to the Yoast SEO meta box below the editor and enter a meta description: 'Browse our selection of [product types] at Balagan Cannabis. [Short value prop]. Visit our [City] dispensary today.' (aim for 155 characters).
4. Click Update to save.
5. Verify in Google Search Console (Search Appearance → HTML Improvements) that the missing description warning clears within 24–48 hours.

### 19. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/category/local-cannabis-guide/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Search engines like Google use meta descriptions — a 160-character summary — to preview your page in search results. Without one, Google will auto-generate a snippet, which may cut off mid-sentence or show irrelevant text. For a category page about local cannabis guides, this means potential customers won't see a compelling reason to click your link.

**Why it matters for your business:** A missing meta description reduces click-through rate from search results, directly lowering qualified traffic to your local guide content and missed opportunities to convert browsers into customers.

**Technical root cause:** WordPress category pages do not auto-populate meta descriptions by default. The page was created without manually adding a description in the page/category editing interface or via an SEO plugin.

**Recommended fix — step by step**

1. Log in to WordPress admin → go to Posts → Categories → find 'Local Cannabis Guide'
2. Scroll to the category editing form; look for an 'Yoast SEO' or 'All in One SEO' box (if installed) or a native 'Meta Description' field
3. If using Yoast: click the Yoast box, scroll to 'Snippet Preview', and write a description like 'Explore local cannabis strains, dispensaries, and wellness tips in [your region]. Balagan Cannabis curates guides for informed customers.'
4. Keep the description between 150–160 characters so it displays fully in search results
5. Click 'Update' or 'Publish' to save
6. If no SEO plugin is active, install Yoast SEO (free tier is sufficient) from Plugins → Add New, then repeat steps 2–5

### 20. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/category/seasonal-trends/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your category archive page for 'seasonal-trends' is missing a meta description — the 50–160 character summary that appears below your page title in Google search results. Without it, Google may auto-generate a choppy snippet from your page text, making your listing look incomplete and less likely to be clicked.

**Why it matters for your business:** Missing descriptions reduce click-through rates from search results, which means fewer visitors discovering your seasonal product guides and educational content — directly affecting traffic and product awareness.

**Technical root cause:** WordPress category pages often lack auto-generated or manually-set meta descriptions by default. If you're using an SEO plugin like Yoast or RankMath, the description field was left blank for this archive page.

**Recommended fix — step by step**

1. Log in to WordPress and navigate to Posts → Categories, then click 'seasonal-trends' to edit it.
2. If you use Yoast SEO, scroll to the Yoast panel below the category name and find the 'SEO title & meta description' section; paste a 50–160 character description (e.g., 'Discover seasonal cannabis products, strains, and wellness tips tailored to each time of year.').
3. If you use RankMath, click the RankMath panel and fill the 'Meta Description' field with the same description.
4. If no SEO plugin is installed, install Yoast SEO (free version) from Plugins → Add New, activate it, then return to Categories and add the description as above.
5. Click 'Update' or 'Save' to publish the change.
6. Wait 2–3 days, then check Google Search Console (Google.com/webmasters) → Pages to confirm the new description appears in search results.

### 21. Missing meta description

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/tag/pre-rolls/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your tag page for 'pre-rolls' is missing a meta description—the 50–160 character summary that appears below your page title in Google search results. Without it, Google may auto-generate a snippet, which often looks incomplete or irrelevant to searchers. This reduces click-through rates from search.

**Why it matters for your business:** Missing meta descriptions on tag pages mean fewer clicks from customers searching for pre-rolls, directly lowering organic traffic and sales.

**Technical root cause:** WordPress tag archives don't auto-populate meta descriptions by default. If you're using an SEO plugin like Yoast or Rank Math, the plugin hasn't been configured to generate descriptions for tag pages, or the plugin setting is disabled for that archive type.

**Recommended fix — step by step**

1. Install or open Yoast SEO (if not already active) via Plugins → Installed Plugins in WordPress admin.
2. Go to Yoast SEO → Search Appearance → Taxonomies tab.
3. Find 'Tags' in the list and toggle 'Show tags in search results' to ON.
4. In the 'Meta description template' field for tags, enter: %%title%% | Premium Cannabis Pre-rolls & Flower | %%sitename%% (customize 'Pre-rolls' to match your actual tag).
5. Save settings. Visit https://balagancannabis.com/tag/pre-rolls/ and refresh to confirm the description is now live.
6. Alternatively, if using Rank Math: go to Rank Math → Titles & Meta → Archive Titles and set a custom template for Tags with %%title%% and relevant keywords.

### 22. Layout shift (desktop): 0.130

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** ux
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier3.cwv.cls-desktop`

**What it means (plain English)**

Your homepage is experiencing unexpected visual jumps as it loads—images, text, or buttons shift position after the user sees them. This is measured as Cumulative Layout Shift (CLS), and yours scores 0.130 when Google's ideal target is 0.05 or lower. Users may click the wrong button or feel the page is unstable.

**Why it matters for your business:** Layout shifts frustrate visitors during checkout or age verification, increasing cart abandonment and reducing conversions on your cannabis retail site.

**Technical root cause:** Images and embedded content (likely product photos, ads, or hero images) are loading without reserved space, causing the browser to reflow the page. You have 341 KB of images loading asynchronously without width/height attributes.

**Recommended fix — step by step**

1. Log in to WordPress admin → Media Library. Identify large hero images and product photos on your homepage template.
2. In the WordPress page/post editor, select each image block and ensure width/height are set (e.g., 1200×600px); modern WordPress Gutenberg blocks auto-add these, but older custom code may not.
3. Install the free plugin 'Autoptimize' (wp-admin → Plugins → Add New, search 'Autoptimize') and enable 'Defer jQuery' and 'Defer render-blocking CSS'.
4. Go to Autoptimize settings → Extra → tick 'Optimize Google Fonts' and ensure images have explicit dimensions in the HTML.
5. If you use a page builder (Elementor, Divi, etc.), check each section's responsive settings; set minimum heights for image containers so space is reserved before load.
6. Test in Chrome DevTools (F12 → Lighthouse tab → run mobile + desktop audit) to confirm CLS drops below 0.05.
7. Consider lazy-loading below-the-fold images: install 'Smush' (free tier) or enable 'Native Lazy Loading' in Autoptimize.

### 23. Missing core schema types: LocalBusiness

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier4.schema.missing-core`

**What it means (plain English)**

Your site includes some structured data (Organization, WebSite) that helps search engines understand your business, but is missing LocalBusiness markup. LocalBusiness tells Google key details like your physical address, phone number, hours, and that you operate a retail location—critical for a dispensary to appear in local search results and Google Maps.

**Why it matters for your business:** Without LocalBusiness schema, your dispensary is less likely to appear when customers search 'cannabis near me' or 'dispensary [city name]', directly reducing foot traffic and online visibility in your local market.

**Technical root cause:** Your WordPress site's schema plugin (likely Yoast SEO or Rank Math) is generating Organization and WebSite markup but not triggering the LocalBusiness schema type. This is typically a configuration gap in the plugin settings.

**Recommended fix — step by step**

1. Log into WordPress admin → navigate to the SEO plugin you use (search admin dashboard for 'Yoast' or 'Rank Math')
2. Find 'Search Appearance' or 'Schema' settings → locate 'Organization' or 'Company' configuration
3. Ensure 'Organization type' is set to 'LocalBusiness' (or 'Cannabis Retail Store' if available as sub-type)
4. Confirm fields are filled: business name, street address, city, zip, phone number, hours of operation, and coordinates (latitude/longitude)
5. Save changes and run a schema test at schema.org/validator or Google's Rich Results Test (search.google.com/test/rich-results) using your homepage URL
6. Verify the JSON-LD output now includes 'LocalBusiness' with address, telephone, and openingHoursSpecification blocks
7. Submit updated URL to Google Search Console (if not already done) to re-crawl with new markup

### 24. Missing security header: strict-transport-security

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** security
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.header.strict-transport-security`

**What it means (plain English)**

Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use encrypted HTTPS connections to your domain. Without it, visitors could accidentally connect via unencrypted HTTP, exposing sensitive data like login credentials or product orders. This is particularly important for a cannabis retailer handling age verification and payment information.

**Why it matters for your business:** Missing HSTS weakens trust signals for payment processing, compliance audits, and SEO rankings—browsers increasingly penalize sites without this header, and cannabis retailers face extra scrutiny on security practices.

**Technical root cause:** Your WordPress host (Flywheel) is not automatically injecting the HSTS header into response headers. This must be configured either at the hosting control panel level or via a WordPress plugin/configuration file.

**Recommended fix — step by step**

1. Log into your Flywheel hosting dashboard (flywheel.com → Account → [your site]) and check if there's a 'Security' or 'Headers' section; if available, enable 'Strict-Transport-Security' with a max-age of 31536000 (1 year).
2. If Flywheel dashboard doesn't expose header controls, contact Flywheel support (support@getflywheel.com) and request they add the header: 'Strict-Transport-Security: max-age=31536000; includeSubDomains; preload'.
3. As a fallback, install the free WordPress plugin 'HTTP Headers' (search in WordPress admin → Plugins → Add New) and add the HSTS header via its UI.
4. After deployment, verify the header is present by running https://securityheaders.com/?q=balagancannabis.com and confirming you see the HSTS header in the response.
5. Submit your domain to the HSTS preload list (https://hstspreload.org/) to ensure all major browsers enforce HTTPS from first visit.

### 25. Missing security header: x-frame-options

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** security
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.header.x-frame-options`

**What it means (plain English)**

Your website is missing the X-Frame-Options security header, which tells browsers whether your site can be displayed inside an iframe (a frame within another webpage). Without this header, malicious actors could embed your site in a fake frame to trick visitors into entering credentials or making unintended purchases—a technique called clickjacking. This header is a standard security practice for any site handling sensitive user interactions.

**Why it matters for your business:** Missing this header increases your vulnerability to clickjacking attacks, which could compromise customer data, undermine trust, and expose you to compliance gaps in security posture audits or insurance requirements.

**Technical root cause:** Your WordPress hosting environment (Flywheel) is not configured to send the X-Frame-Options header in HTTP responses. This is typically set at the server or through WordPress security plugins, not at the code level.

**Recommended fix — step by step**

1. Log in to your WordPress admin dashboard and install the free plugin 'Wordfence Security' (wp-admin → Plugins → Add New → search 'Wordfence Security' → Install Now → Activate)
2. Navigate to Wordfence → Firewall → Firewall Rules and enable the 'Block-based protections' section
3. Scroll to 'HTTP Headers' and toggle ON 'Add X-Frame-Options Header'; set it to 'DENY' to prevent framing entirely
4. Click 'Save' and verify the change by visiting your homepage, opening browser DevTools (F12) → Network tab → click the homepage request → Headers section and confirm X-Frame-Options: DENY appears
5. Alternatively, contact Flywheel support (your hosting provider) and request they add 'X-Frame-Options: DENY' to your server configuration in the .htaccess file or nginx config

### 26. Missing security header: content-security-policy

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** security
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.header.content-security-policy`

**What it means (plain English)**

Your website is missing a Content Security Policy (CSP) header, which is a security instruction that tells browsers what content sources (scripts, images, fonts, etc.) are allowed to load. This is like not having a bouncer at the door checking IDs — anyone can try to slip malicious code in. Without it, your site is more vulnerable to code injection attacks that could steal customer data or payment information.

**Why it matters for your business:** A successful attack could expose customer payment details, medical records (if you collect them), or cannabis license information, leading to PCI compliance violations, legal liability, and destroyed customer trust—especially critical for a regulated cannabis business.

**Technical root cause:** The WordPress site is hosted on Flywheel but has not implemented a Content Security Policy header in the server configuration or via a security plugin. The response headers show other security headers (X-Content-Type-Options, X-XSS-Protection) are present, but CSP is absent.

**Recommended fix — step by step**

1. Log into your WordPress admin dashboard and install the 'HTTP Security' or 'WP Security' plugin (e.g., Wordfence or Sucuri) which can inject CSP headers without code editing
2. Alternatively, contact Flywheel support (your hosting provider shown in headers) and request they add a basic Content-Security-Policy header to your site: 'default-src https: 'self'; script-src 'self' 'unsafe-inline' cdn.jsdelivr.net; img-src 'self' data: https:;'
3. If you choose the plugin route, after activation go to Plugins → [security plugin name] → Security Headers and enable Content-Security-Policy with a permissive baseline
4. Test the header is applied by running your URL through https://securityheaders.com/ — you should see CSP listed in green
5. Document your CSP policy in a spreadsheet for compliance records (cannabis regulators may ask about security controls)
6. Schedule a quarterly check: set a calendar reminder to re-run the security headers test to ensure CSP remains active

### 27. No DMARC policy published

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** security
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.fortress.dmarc-missing`

**What it means (plain English)**

DMARC is an email authentication standard that tells receiving mail servers how to handle emails claiming to come from your domain. Without it, scammers can more easily send fake emails that appear to come from balagancannabis.com, damaging your reputation and potentially tricking customers. You already have SPF and DKIM in place (the underlying authentication methods), so adding DMARC is the final step.

**Why it matters for your business:** Without DMARC, legitimate marketing and transactional emails from your domain are more likely to land in spam folders, and customers may receive convincing phishing emails impersonating your dispensary—eroding trust and potentially exposing you to liability.

**Technical root cause:** No DMARC DNS record exists at _dmarc.balagancannabis.com. DMARC requires an explicit TXT record in DNS to function; its absence means mail servers have no policy to consult.

**Recommended fix — step by step**

1. Log into your domain registrar (where you manage balagancannabis.com) and navigate to DNS settings.
2. Create a new TXT record with hostname '_dmarc' (or '_dmarc.balagancannabis.com' depending on your registrar's UI).
3. Set the value to: v=DMARC1; p=none; rua=mailto:dmarc-reports@balagancannabis.com
4. Save the record and wait 24–48 hours for propagation.
5. Forward the 'rua' email address (dmarc-reports@balagancannabis.com) to your actual inbox so you receive weekly reports on email authentication attempts.
6. After 1–2 weeks of monitoring, review the reports; if legitimate mail is authenticated, change p=none to p=quarantine (safer than p=reject for a first deployment).

### 28. 26 tap targets under 44px at mobile-375

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** ux
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier6.a11y.small-targets`

**What it means (plain English)**

Your site has 26 buttons, links, and form fields that are smaller than 44×44 pixels when viewed on a mobile phone (375px wide). This makes them hard to tap accurately — especially for people with larger fingers, tremors, or vision challenges. WCAG 2.5.5 is an accessibility standard that requires interactive elements to be at least 44×44 pixels.

**Why it matters for your business:** Visitors on mobile devices — which is likely 60–70% of your cannabis dispensary traffic — will struggle to complete purchases, navigate menus, or confirm age verification, leading to abandoned carts and lost sales.

**Technical root cause:** CSS padding and sizing on buttons, links, and form inputs are insufficient. Many WordPress themes use default button sizes (often 24–32px) that are optimized for desktop but fail on mobile without responsive padding adjustments.

**Recommended fix — step by step**

1. In WordPress Admin → Customize (or your page builder), open the Mobile (375px) view and identify the 26 undersized elements — focus first on checkout buttons, age-gate confirm, and menu toggle.
2. For buttons: add CSS padding of at least 12px vertically and 16px horizontally so hit-area reaches 44×44; edit theme CSS or use a custom CSS plugin like Code Snippets.
3. For form inputs (search, quantity): set min-height: 44px; in mobile media query (max-width: 576px).
4. For small icon links (close, menu hamburger): wrap in a container with min-width: 44px; min-height: 44px; and use flexbox to center the icon inside.
5. Test each fix using Chrome DevTools Device Mode (Ctrl+Shift+M) set to iPhone SE (375px) or Pixel 5; tap each interactive element to confirm it's easy to hit.
6. If using Elementor or another page builder: select each undersized button → increase padding in the Style tab → preview mobile.
7. Run a second audit via WAVE (wave.webaim.org) or axe DevTools browser extension to confirm count drops to <5 minor spacing edge cases.

### 29. 28 tap targets under 44px at mobile-414

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** accessibility
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier6.a11y.small-targets`

**What it means (plain English)**

Your website has 28 buttons, links, and other clickable elements that are smaller than 44×44 pixels on mobile devices. This makes them hard to tap accurately, especially for people with limited hand control or vision. Even sighted users will struggle to hit small targets on phones.

**Why it matters for your business:** Mobile visitors—likely your largest customer segment for age-gating and product browsing—will experience friction and frustration, leading to abandoned visits and lost sales.

**Technical root cause:** Interactive elements were designed for desktop viewing and not resized or padded for mobile screens. WordPress themes often inherit desktop-sized buttons and links without responsive touch-friendly spacing.

**Recommended fix — step by step**

1. Open WordPress Admin → Customize (or Appearance → Customize) and navigate to Mobile settings or your theme's responsive options.
2. Inspect your mobile view at 414px width and identify which elements appear too small: check navigation menu items, 'Add to Cart' buttons, age-gate buttons, product filters, and footer links.
3. In your theme's custom CSS panel (Customize → Additional CSS), add min-height and min-width rules: e.g., 'button { min-height: 44px; min-width: 44px; padding: 12px 16px; }' and 'a { display: inline-block; min-height: 44px; min-width: 44px; }'.
4. Add padding around tap targets in CSS: e.g., '.menu-item a { padding: 14px 12px; }' to increase touch area without enlarging the visual button.
5. Test on a real mobile phone or use Chrome DevTools (F12 → Device Toolbar, set to 414px width) to verify all interactive elements are now at least 44×44 pixels.
6. If your theme uses a page builder (Elementum, Divi, Gutenberg blocks), select each small button/link and increase padding in the builder's spacing settings rather than CSS.
7. Pay special attention to your age-gate modal—verify the 'Confirm Age' and 'Leave' buttons meet 44×44 to ensure compliance and usability.

### 30. 30 tap targets under 44px at tablet-768

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** accessibility
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier6.a11y.small-targets`

**What it means (plain English)**

Your website has 30 buttons, links, and clickable elements that are smaller than 44×44 pixels when viewed on a tablet. This makes them hard to tap accurately, especially for people with motor difficulties or those using touch screens. WCAG 2.5.5 is an accessibility standard that requires interactive elements to be at least 44×44 pixels to ensure everyone can use your site.

**Why it matters for your business:** Visitors on tablets and mobile devices—including older customers or those with arthritis—will struggle to tap menu items, product filters, or checkout buttons, leading to abandoned sales and lower conversion rates.

**Technical root cause:** The site likely uses CSS padding or sizing that works on desktop but compresses too much on tablet viewports. This is common when spacing rules aren't adjusted for smaller screens or when buttons are sized in fixed pixels without responsive scaling.

**Recommended fix — step by step**

1. Install and activate the free 'Accessibility Inspector' plugin in WordPress (Plugins → Add New → search 'Accessibility Inspector') to identify which elements are undersized.
2. Use Chrome DevTools (press F12 → Device Toolbar → select iPad) to inspect the 30 small targets and note their CSS classes or IDs.
3. In WordPress Customizer (Appearance → Customize → Additional CSS), add a global rule: `button, a.btn, input[type="button"], .menu-link { min-width: 44px; min-height: 44px; padding: 12px 16px !important; }` to set a floor size.
4. Test the tablet view again at 768px width to confirm all interactive elements now meet the 44×44 minimum.
5. If buttons contain icons only (no text label), add padding or wrapper divs to ensure the tap target expands to 44×44; do NOT rely on icon size alone.
6. Audit your navigation menu (Appearance → Menus) and increase spacing/padding between menu items if they are closely packed.
7. Use the free WAVE browser extension (wave.webaim.org) to re-scan the homepage and verify the count drops to zero.

### 31. Lighthouse perf (mobile): 58/100

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** performance
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.perf-mobile`

**What it means (plain English)**

Your mobile site takes nearly 7 seconds to fully load the main content (Largest Contentful Paint), and has noticeable layout shift as elements move around after loading (Cumulative Layout Shift of 0.238). These delays frustrate visitors trying to browse products or find your dispensary info on phones—the majority of your traffic. Your mobile performance score of 58 out of 100 signals critical slowness.

**Why it matters for your business:** Slow mobile load times increase bounce rate (visitors leave before seeing your menu or age gate), reduce conversion on product pages, and hurt your Google search ranking for mobile queries—where most cannabis customers search.

**Technical root cause:** Large unoptimized images, render-blocking JavaScript, missing lazy-loading on below-fold content, or unminified CSS/JS files are likely delaying the display of your main page content. Layout shift typically stems from late-loading images or ads without reserved space.

**Recommended fix — step by step**

1. Install and activate the Smush image optimization plugin (WordPress.org directory) to auto-compress and resize images; configure to generate WebP versions for modern browsers.
2. Install Autoptimize plugin (WordPress.org) and enable defer JavaScript loading and CSS minification, then test homepage load time via Google PageSpeed Insights.
3. Identify hero image or above-fold images: open Inspector (F12) → Network tab → reload → sort by size; replace any image >300KB with a compressed version (use TinyPNG.com if needed).
4. Check Plugins page in wp-admin; deactivate non-essential plugins (especially sliders, chat widgets, analytics that load on init) and retest performance—keep deactivated if score improves.
5. Ensure all images have width/height attributes in HTML or use aspect-ratio in CSS to prevent layout shift; WordPress theme settings often have image sizing controls under Appearance → Customizer.
6. Review WP-Admin → Settings → Reading → Homepage setting; if using a custom homepage with lots of featured products, reduce to 3–4 featured items above the fold.
7. Enable WordPress native lazy-loading: Settings → Performance or caching plugin, or add `loading="lazy"` to img tags if your theme doesn't auto-apply it (check Lighthouse report HTML for which images lack it).

### 32. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/terms-of-use/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your Terms of Use page is missing a meta description — the 155-character summary that appears below your page title in Google search results. Without it, Google will auto-generate one, which is often choppy or incomplete. This reduces click-through rates because potential customers see a poor preview before visiting.

**Why it matters for your business:** Lower search click-through rate on this page means fewer visitors discovering your dispensary, and weaker first impression for compliance-conscious customers researching your policies.

**Technical root cause:** The <meta name="description" content="..."> tag is absent from the page's HTML <head>. WordPress doesn't auto-populate this for terms pages unless you explicitly set it via an SEO plugin or manually edit the theme.

**Recommended fix — step by step**

1. Install Yoast SEO (free version) or Rank Math (free version) if not already active: Plugins → Add New → search 'Yoast SEO' → Install & Activate.
2. Go to Pages → Terms of Use → Edit with Yoast SEO (or Rank Math) plugin panel at bottom of page.
3. In the meta description field, write 150–160 characters summarizing the page: e.g. 'Review Balagan Cannabis terms of service, including age verification, responsible use, and legal compliance policies.'
4. Ensure the description includes your brand name and a benefit (e.g. 'legal compliance').
5. Click Update/Publish.
6. Verify in Google Search Console (Google → Search Console → Pages → view this URL) after 1–2 weeks to confirm Google has crawled the new description.

### 33. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/blog/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your blog index page (/blog/) doesn't have a meta description — the 150–160 character summary that appears below your page title in Google search results. Without one, Google generates a random snippet from your page content, which often looks unprofessional and misses the chance to tell customers what to expect.

**Why it matters for your business:** Missing meta descriptions reduce click-through rates from search results; potential customers see a confusing or truncated excerpt instead of a clear reason to visit your blog, hurting organic traffic and engagement.

**Technical root cause:** WordPress doesn't add meta descriptions automatically. Either your theme lacks SEO fields, or they haven't been filled in for this page.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages (or Posts) → find the Blog page
2. Scroll to the bottom and look for an SEO plugin section (Yoast, Rank Math, or All in One SEO). If you don't see one, install 'Yoast SEO' plugin first: Plugins → Add New → search 'Yoast SEO' → Install & Activate
3. Once the plugin is active, open the Blog page again. Below the editor, find the SEO section → Snippet preview
4. In the 'Meta description' field, write 150–160 characters describing your blog content (e.g., 'Explore cannabis wellness tips, product guides, and health insights from Balagan Cannabis experts')
5. Save the page. Verify in search preview that your description displays correctly.

### 34. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/privacy-policy/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

The privacy policy page is missing a meta description — a 150–160 character summary that search engines display below your page title in results. Without it, Google may auto-generate text that doesn't represent your page well, or show nothing at all, reducing click-through rates.

**Why it matters for your business:** A poorly summarized privacy policy in search results looks unprofessional and may reduce organic traffic to compliance pages, which are important for customer trust and SEO authority.

**Technical root cause:** The WordPress page or post object for /privacy-policy/ has no meta description field populated, likely because it was created without filling in the SEO plugin's description field.

**Recommended fix — step by step**

1. Log in to WordPress admin → Pages → select 'Privacy Policy'
2. Scroll to the SEO plugin section (Yoast SEO, Rank Math, or native WordPress block) at the bottom of the editor
3. Click 'Edit snippet' or the meta description field
4. Write a description: 'Our privacy policy outlines how Balagan Cannabis collects, protects, and uses your personal information in compliance with privacy laws.'
5. Ensure it is 150–160 characters (the plugin will warn if too long)
6. Click 'Update' or 'Save' to publish the change
7. Wait 24–48 hours for Google to re-crawl and update the search result preview

### 35. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/menu-full/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your menu page (/menu-full/) is missing a meta description—a 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and may not tell customers what they're looking at. This one-time fix takes minutes.

**Why it matters for your business:** Missing meta descriptions reduce click-through rates from search results; potential customers see a vague excerpt instead of a clear call-to-action about your full menu, directly impacting foot traffic from organic search.

**Technical root cause:** The /menu-full/ page either has no meta description tag in its HTML head, or the Yoast SEO / All in One SEO plugin (if installed) is not configured to generate one for this page.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages → find 'Menu Full' page
2. Scroll to the Yoast SEO / All in One SEO meta box (usually below the editor)
3. In the 'Snippet preview' section, click 'Edit snippet' and paste a meta description like: 'Browse Balagan's full cannabis menu: flower, edibles, concentrates & more. Legal, lab-tested products.'
4. Ensure the description is 150–160 characters (Yoast will show a green light when correct)
5. Click 'Update' to publish
6. Wait 24–48 hours, then check Google Search Console (Appearance → Search Results) to confirm the new snippet appears in search results

### 36. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/cannabis-cafe-culture-northampton/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This blog post page doesn't have a meta description — the 155-character summary that appears below the page title in Google search results. Without it, Google generates a random snippet from your content, which often looks incomplete or doesn't tell customers what the page is about.

**Why it matters for your business:** Incomplete or irrelevant search snippets reduce click-through rates from Google, meaning fewer potential customers visit your blog content and discover your dispensary.

**Technical root cause:** The WordPress post or page object is missing the meta description field in the page head, likely because the SEO plugin (Yoast, Rank Math, etc.) was not configured or the field was left blank during publication.

**Recommended fix — step by step**

1. Log into WordPress admin → Posts → Cannabis Cafe Culture Northampton
2. Scroll to the SEO plugin section (Yoast SEO / Rank Math / All in One SEO) below the editor
3. Find the 'Meta description' field and write a 155-character description that includes your main keyword (e.g., 'Explore cannabis cafe culture in Northampton. Balagan Cannabis offers curated products and education for wellness-focused customers.')
4. Click Update to save
5. Check Google Search Console (search.google.com) → Pages → filter by this URL to confirm the snippet updates within 48 hours

### 37. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/areas/hadley-ma-dispensary/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

This page doesn't have a meta description — the 155-character summary that appears under your page title in Google search results. Search engines will auto-generate one from page content, which is often fragmented and less compelling. A well-written description acts like a storefront sign, telling customers what to expect before they click.

**Why it matters for your business:** Without a custom description, Google may show an awkward snippet instead, reducing click-through rate from local search traffic — critical for a dispensary driving foot traffic to the Hadley location.

**Technical root cause:** The WordPress page template or Yoast SEO / Rank Math plugin is not outputting an SEO meta description tag in the page head. Either the field was left blank during page creation, or the plugin settings are disabled for this post type.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages → find 'Hadley, MA Dispensary' → scroll to the Yoast SEO or Rank Math metabox at the bottom
2. Click 'Edit snippet' (Yoast) or 'SEO Settings' (Rank Math)
3. Write a 150–160 character description: e.g., 'Premium cannabis dispensary in Hadley, MA. Browse flower, edibles & concentrates. Licensed, tested, & delivered same-day.'
4. Verify the green light / readability score appears
5. Click 'Update' or 'Save' on the page
6. Repeat for other location pages (search Pages → bulk-check descriptions in the SEO plugin dashboard)

### 38. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/category/uncategorized/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your category archive page (uncategorized posts) is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google may auto-generate a poor summary, and visitors won't see a compelling reason to click your link.

**Why it matters for your business:** Missing meta descriptions reduce click-through rates from search results, directly lowering traffic to your site and potential customer inquiries.

**Technical root cause:** WordPress doesn't auto-generate meta descriptions for archive pages; they must be set manually via an SEO plugin or in the page template.

**Recommended fix — step by step**

1. Install or activate Yoast SEO (free version) if not already active: WordPress admin → Plugins → Search for 'Yoast SEO' → Install & Activate
2. Go to WordPress admin → Posts → Categories, click 'Uncategorized'
3. Scroll to the Yoast SEO meta box at the bottom of the category edit page
4. Enter a meta description: 'Latest cannabis wellness articles from Balagan — education on products, effects, and responsible use.' (60–160 characters)
5. Click 'Update' to save
6. As a monitor-only tier, also audit your 5–10 highest-traffic post categories and apply the same fix to any missing descriptions

### 39. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/category/dispensary-highlights/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your /category/dispensary-highlights/ page is missing a meta description — the 150-160 character summary that appears below your page title in Google search results. Without one, Google will auto-generate a snippet from your page content, which often looks truncated or irrelevant. This reduces click-through rates from search.

**Why it matters for your business:** Missing meta descriptions on category pages lower your organic click-through rate, meaning fewer potential customers visit your site even when you rank well in search results.

**Technical root cause:** WordPress category pages do not auto-generate meta descriptions by default. Most SEO plugins (Yoast, Rank Math, etc.) allow you to set them per-page, but this category archive was likely created without manually adding one.

**Recommended fix — step by step**

1. Log in to your WordPress admin dashboard.
2. Go to Posts > Categories and click Edit on 'Dispensary Highlights'.
3. Scroll to the SEO section (usually at the bottom if you have Yoast SEO or Rank Math installed; if not, install Rank Math free via Plugins > Add New > search 'Rank Math').
4. In the Meta Description field, write 150–160 characters that include your target keyword (e.g., 'Explore Balagan's curated dispensary highlights — top-rated cannabis strains, edibles, and wellness products. Shop local medical & adult-use.').
5. Click Update or Publish.
6. Verify the description appears in Google Search Console or a mobile Google search within 1–2 weeks.

### 40. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/tag/vegan-edibles/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your tag page for 'vegan-edibles' doesn't have a meta description — a 155-character summary that appears under your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks incomplete or unprofessional to potential customers browsing search results.

**Why it matters for your business:** Missing meta descriptions reduce click-through rates from search results; potential customers see a poorly formatted preview and may click a competitor's listing instead.

**Technical root cause:** WordPress tag pages don't auto-generate meta descriptions by default. Most SEO plugins (Yoast, Rank Math, All in One SEO) exclude tag archives by default, requiring manual configuration or individual description entry.

**Recommended fix — step by step**

1. Log in to WordPress admin → go to Plugins and verify which SEO plugin is active (Yoast SEO, Rank Math, or All in One SEO).
2. If using Yoast SEO: navigate to SEO → Search Appearance → Archives tab, find 'Tag archives', toggle ON, then set a default description template like 'Vegan cannabis edibles — browse our %%term%% collection at Balagan Cannabis.'
3. If using Rank Math: go to Rank Math → Titles & Metas → Archives, find 'Tag', enable it, and enter: 'Browse our %%term%% selection of vegan edibles at Balagan Cannabis.'
4. If using All in One SEO: Admin → All in One SEO → Titles & Meta → Archives, toggle 'Tag Archives' on, add description template.
5. Alternatively, in WordPress admin → Posts → Tags, click 'vegan-edibles', scroll to the SEO plugin metabox at bottom of page, manually enter: 'Explore premium vegan cannabis edibles — lab-tested and compliant. Shop Balagan Cannabis.' (Keep under 160 characters.)
6. Save changes, then test using Google Search Console (Console → URL Inspection → paste https://balagancannabis.com/tag/vegan-edibles/) to confirm the description now appears.

### 41. Missing meta description

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/tag/edibles/
- **Rule:** `tier2.meta.no-description`

**What it means (plain English)**

Your /tag/edibles/ page is missing a meta description—the 160-character summary that appears below your page title in Google search results. Without it, Google may auto-generate a description from your page text, which often results in an incomplete or irrelevant snippet that doesn't encourage clicks.

**Why it matters for your business:** A weak or missing meta description lowers click-through rate from search results, meaning fewer customers discover your edibles inventory even if the page ranks well.

**Technical root cause:** Tag archive pages in WordPress typically inherit no default meta description. The page was created without one being manually added, and no SEO plugin is generating them automatically for taxonomy pages.

**Recommended fix — step by step**

1. Log into WordPress admin → Plugins → search 'Yoast SEO' or 'Rank Math' (whichever you use) and activate if inactive.
2. Go to Posts → Tags, find 'Edibles', and click Edit.
3. Scroll to the SEO plugin's meta description field and write: 'Shop premium cannabis edibles at Balagan Cannabis. Browse gummies, chocolates, tinctures & more. <21 restricted. Licensed dispensary.' (keep under 160 characters).
4. Click Update.
5. Repeat for all other tag archive pages (strains, product types, effects) that lack descriptions.
6. If using Yoast: enable 'Automatically generate meta descriptions' in Yoast Settings → Site Features to auto-create them for future tags.

### 42. 1 broken internal link(s)

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** ux
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier2.links.broken`

**What it means (plain English)**

Your Directions page contains a link pointing to /testimonials, but that page no longer exists (returns a 404 error). Visitors clicking that link hit a dead end, and search engines waste crawl budget trying to follow a broken path.

**Why it matters for your business:** Broken links hurt user trust and reduce time-on-site; they also signal to Google that your site may be poorly maintained, which can lower your rankings for local cannabis searches.

**Technical root cause:** The testimonials page was likely deleted or moved without updating the internal link on the directions page. WordPress doesn't automatically catch these when you remove a page.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages, and verify whether a Testimonials page exists; if not, check Trash to see if it was deleted.
2. If Testimonials exists, note its correct URL slug.
3. Go to Pages → Directions → Edit, and search for the broken link using Ctrl+F (or Cmd+F).
4. Either update the link to the correct Testimonials URL, or delete it and replace with relevant text or a different internal link (e.g., to your About or Products page).
5. Click Publish/Update, then test the link in a browser to confirm it resolves.
6. Install Yoast SEO or All in One SEO plugin (if not already active) and run a full site crawl to catch any other broken links on other pages.

### 43. Lighthouse bestPractices (mobile): 75/100

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Moderate (1-3 hours)
- **Business category:** ux
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.bestPractices-mobile`

**What it means (plain English)**

Your site's mobile version scored 75/100 on Google's Best Practices audit, which measures security, browser compatibility, and user experience standards. The target is 90+. Common issues at this level include outdated libraries, missing security headers, or third-party script problems. This is a health check, not an emergency, but addressing it strengthens trust and reduces visitor friction.

**Why it matters for your business:** Lower Best Practices scores can trigger browser warnings, slow perceived load times, and reduce customer confidence in a regulated industry where trust is critical for conversions.

**Technical root cause:** WordPress sites often accumulate outdated plugins, unpatched JavaScript libraries, or missing HTTP security headers (like Content Security Policy). The mobile score lag suggests responsive design or touch-interaction issues may also be present.

**Recommended fix — step by step**

1. Download the full Lighthouse HTML report from your audit tools (the file path shows it exists) and open it in a browser; scroll to 'Best Practices' section to see the specific failed audits (e.g., 'Uses HTTPS', 'No unminified JavaScript', 'Avoids deprecated APIs').
2. In WordPress admin, go to Plugins → Installed Plugins and check each plugin's 'Last Updated' date; flag any not updated in the past 12 months as candidates for removal or replacement.
3. Install Wordfence (free tier) or similar security plugin: Admin → Plugins → Add New → search 'Wordfence' → Install and Activate. Run its security audit scan to flag vulnerabilities.
4. Check for missing security headers: use an online tool (e.g., securityheaders.com) on your domain; if you see red grades, escalate to your hosting provider to add headers like X-Content-Type-Options: nosniff and Content-Security-Policy via .htaccess or server config.
5. Test mobile touch interactions (buttons, dropdowns, age gate) on a real mobile device or Chrome DevTools device mode; ensure tap targets are ≥48×48 pixels.
6. Run WordPress → Tools → Site Health and address any 'critical' alerts listed.

### 44. 26 tap targets under 44px at mobile-320

- **Severity:** P2
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier6.a11y.small-targets`

**Detail**

Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.

### 45. A11y: All page content should be contained by landmarks (×25)

- **Severity:** P2
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier9.a11y.region`

**Detail**

Ensure all page content is contained by landmarks
Impact: moderate
WCAG: 
Learn more: https://dequeuniversity.com/rules/axe/4.11/region?application=playwright

---

### P3 — 154 findings

### 1. robots.txt does not reference sitemap

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/robots.txt
- **Rule:** `tier2.robots.no-sitemap`

**What it means (plain English)**

Your robots.txt file (a small text file that tells search engines which pages to crawl) doesn't include a link to your XML sitemap. A sitemap is like a directory of all your important pages. Without this link, Google has to find your pages the hard way—by following links on your site. For a cannabis dispensary, this can slow down how quickly search engines discover product pages, menu updates, and compliance information.

**Why it matters for your business:** Missing sitemap reference delays Google's ability to index new products, menu changes, and educational content, which can cost you weeks of lost search visibility and customer traffic.

**Technical root cause:** The robots.txt file was either created manually without a Sitemap directive, or a WordPress SEO plugin (like Yoast SEO or Rank Math) hasn't been configured to auto-insert the sitemap URL into robots.txt.

**Recommended fix — step by step**

1. Log into WordPress admin → Settings → Reading → verify that 'Search Engine Visibility' is unchecked (so robots.txt allows crawling).
2. Go to Settings → Permalinks → click 'Save Changes' once (this regenerates robots.txt).
3. If using Yoast SEO: navigate to Yoast SEO → Tools → File Editor → click 'Edit robots.txt' and add the line 'Sitemap: https://balagancannabis.com/sitemap.xml' before the User-agent rules.
4. If using Rank Math: go to Rank Math → Settings → General Settings → ensure 'Enable Sitemap' is toggled ON.
5. If no SEO plugin is active, use an SFTP/file manager (cPanel File Manager) to edit robots.txt at the root directory and add 'Sitemap: https://balagancannabis.com/sitemap.xml' on a new line at the top.
6. After editing, submit the sitemap URL directly to Google Search Console (Indexing → Sitemaps → Add new sitemap).
7. Wait 24–48 hours and check Google Search Console → Coverage to confirm indexing has improved.

### 2. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are HTML snippets that tell social media platforms (Facebook, Instagram, LinkedIn, Pinterest) how to display your website when someone shares a link. Without them, your posts appear bland—no custom title, no preview image—which reduces clicks and engagement.

**Why it matters for your business:** When customers share your dispensary's product pages or promotions on social media, missing preview images and titles result in lower engagement and fewer visits from social referrals, directly reducing foot traffic and online orders.

**Technical root cause:** The WordPress theme or SEO plugin (if installed) is not generating or inserting og:title, og:image, og:description, and og:url meta tags into the page <head> section.

**Recommended fix — step by step**

1. Install Yoast SEO or Rank Math (both free versions support OpenGraph): go to WordPress Dashboard → Plugins → Add New → search 'Yoast SEO' → Install and Activate
2. If using Yoast: go to Dashboard → SEO → Social → Facebook tab → enable 'Add Open Graph meta tags' → set default image → Save
3. If using Rank Math: go to Dashboard → Rank Math → Settings → Social → Facebook → toggle 'Add Open Graph Tags' on → set default image → Save
4. On the home page (Dashboard → Pages → Home), add a featured image (at least 1200×630px) and fill in the SEO title and meta description fields in the plugin panel
5. Test the fix: use Facebook's Sharing Debugger (facebook.com/sharing/debugger) → paste your homepage URL → verify og:title, og:image, og:description appear in the preview
6. Repeat for key product/landing pages: visit each page → add featured image → fill SEO fields → re-test in Sharing Debugger

### 3. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/relaxing-cannabis-strains-holidays/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, Pinterest) how to display your page when someone shares it. Without them, your posts appear as plain text links instead of rich cards with your logo, headline, and image. This hurts click-through rates on social.

**Why it matters for your business:** When customers share your product pages on social media, missing OpenGraph metadata results in ugly, low-engagement shares that don't drive traffic back to your dispensary.

**Technical root cause:** The page is missing the og:title and og:image meta tags in the <head> section. WordPress doesn't add these automatically; they require a plugin or manual configuration.

**Recommended fix — step by step**

1. Install the free 'Yoast SEO' plugin (Plugins → Add New → search 'Yoast SEO' → Install Now → Activate).
2. Go to Yoast SEO → Settings → Social (left menu) and click the 'Facebook' tab.
3. Toggle 'Add Open Graph meta tags' to ON.
4. Under the same Social settings, upload your default OpenGraph image (a 1200×630px version of your logo or brand image).
5. Go to the affected page (Dispensary Products → Relaxing Cannabis Strains Holidays) and scroll to the Yoast SEO meta box at the bottom.
6. In the 'Social preview' section, verify og:title and og:image appear; edit if needed.
7. Click 'Update' to save.
8. Repeat for other product pages, or enable 'Automatically generate' in Yoast settings so OpenGraph pulls from page title + featured image automatically.

### 4. Missing Twitter card

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/winter-cannabis-flavors/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your product pages are missing Twitter Card metadata — a small code snippet that tells Twitter (now X) how to display your content when someone shares a link on that platform. Without it, shares appear generic and less engaging, reducing click-through rates from social traffic.

**Why it matters for your business:** Customers sharing your winter cannabis flavors or other products on X won't see an appealing preview image or description, leading to fewer clicks back to your site and weaker social amplification of your inventory.

**Technical root cause:** The WordPress site lacks the necessary `<meta name="twitter:card" content="summary_large_image">` tag and related Open Graph tags (og:image, og:title, og:description) in the page head, which both WordPress plugins and manual theme configuration can provide.

**Recommended fix — step by step**

1. Install the free Yoast SEO plugin: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install and Activate
2. Go to Yoast SEO → Social → toggle 'Add Open Graph meta tags' to ON
3. Set your default X/Twitter account: Yoast SEO → Settings → Integrations → paste your @balagancannabis handle
4. Edit the affected product page: Products → Winter Cannabis Flavors → Yoast SEO meta box → Social Preview tab → verify the image preview looks good
5. Repeat for other high-traffic product pages (at least top 5–10 products)
6. Test one share by copying the product URL and pasting it into X's Card Validator (cards-dev.twitter.com/validator) to confirm the card renders correctly

### 5. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** revenue
- **Page URL:** https://balagancannabis.com/dispensary-products/4-strains-high-thc-levels/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are HTML snippets that tell social platforms (Facebook, Instagram, Pinterest) what image and text to display when someone shares your page. Without them, social shares look plain and generic, which reduces click-through rates from social traffic.

**Why it matters for your business:** Cannabis product pages shared on social media without proper OpenGraph tags get fewer clicks and lower engagement because the preview looks unprofessional or incomplete—costing you foot traffic and online orders.

**Technical root cause:** The WordPress theme or SEO plugin is not generating or outputting og:title and og:image meta tags in the page <head> section for product pages.

**Recommended fix — step by step**

1. Install Yoast SEO (if not active) or verify it is active: Dashboard → Plugins → search 'Yoast SEO' → ensure status is 'Active'.
2. Edit the affected page: Dashboard → Pages → search '4-strains-high-thc-levels' → click Edit → scroll to Yoast SEO panel at bottom.
3. In Yoast, click 'Focus Keyword' tab, then scroll to 'Social' section → upload a product image for og:image (recommend 1200×630px) and confirm og:title matches your SEO title.
4. If Yoast Social section is missing, go to Yoast → Settings → Social → enable 'Facebook' and 'Pinterest' toggles.
5. Repeat for other product pages in /dispensary-products/ category.
6. Test the fix: visit https://www.facebook.com/sharer/dialog?u=https://balagancannabis.com/dispensary-products/4-strains-high-thc-levels/ and verify image and title display correctly.

### 6. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/what-is-thcv/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph metadata tells social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares a link. Without og:title and og:image, shared links show generic or broken previews, which looks unprofessional and discourages clicks.

**Why it matters for your business:** When customers share your product pages or educational content on social media, missing preview images and titles reduce click-through rates and hurt your social credibility—especially important for a wellness dispensary building trust.

**Technical root cause:** The page's HTML head section is missing <meta property="og:title"> and <meta property="og:image"> tags. WordPress themes often include these by default, but they may be disabled in theme settings or the theme lacks full OpenGraph support.

**Recommended fix — step by step**

1. Log in to WordPress admin → Settings → Reading, verify 'Discourage search engines' is unchecked (unchecks would disable all social meta)
2. Install the free plugin 'Yoast SEO' or 'Rank Math' (both add OpenGraph controls)
3. For each post/page: edit the page → scroll to Yoast SEO meta box → click 'Social' tab → set 'Open Graph Title' and upload 'Open Graph Image' (minimum 1200×630px, high-quality product shot or lifestyle image)
4. Alternatively, if your theme supports it: Appearance → Customize → Site Identity, ensure 'Site Icon' is set; then in theme settings look for 'Social Media' or 'OpenGraph' options and enable them
5. Test the fix: use Facebook Sharing Debugger (facebook.com/developers/tools/debug) to paste the URL and verify og:title and og:image now appear in the preview

### 7. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/cannabis-education/thc-thats-right-for-you/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are hidden metadata that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your posts appear as plain text links instead of rich cards with images and formatted titles — making shares look unprofessional and reducing click-through rates.

**Why it matters for your business:** Cannabis education content shared on social media without proper OpenGraph tags generates fewer clicks and conversions because the preview looks generic instead of branded and compelling.

**Technical root cause:** The WordPress theme or SEO plugin (likely Yoast, All in One SEO, or Rank Math) is not configured to auto-generate og:title and og:image tags, or the page is missing featured image assignment.

**Recommended fix — step by step**

1. Log in to WordPress admin → Pages → 'THC That's Right For You' → check if a Featured Image is assigned; if not, upload or select one that represents the content (minimum 1200×630px).
2. Install or verify active SEO plugin: go to Plugins → Installed Plugins → confirm Yoast SEO, Rank Math, or All in One SEO is activated.
3. Open that plugin's settings (usually under Settings or within the plugin menu) → Social Media or OpenGraph section → enable 'Generate OpenGraph tags' or 'Social meta tags'.
4. Return to the page editor and save/update the post (even without changes) to trigger meta tag generation.
5. Use Facebook's Sharing Debugger (facebook.com/sharing/debugger/) → paste the page URL → click 'Debug' to verify og:title and og:image now appear in the preview.

### 8. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/5-vegan-edibles-that-will-have-your-mouth-watering/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

Your product pages are missing OpenGraph tags — special code that tells social media platforms (Facebook, Instagram, Pinterest) how to display your content when someone shares a link. Without these tags, your posts appear plain and unlabeled, making them less visually appealing when shared.

**Why it matters for your business:** When customers share your edible products on social media, the post won't show a product image or custom title — it'll display a generic preview, reducing click-through rates and lost organic traffic from social referrals.

**Technical root cause:** WordPress SEO plugins (like Yoast, Rank Math, or All in One SEO) either aren't installed, aren't activated for this post type, or haven't been configured to auto-generate og:title and og:image tags from your post content.

**Recommended fix — step by step**

1. Install and activate Yoast SEO (free version) via WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install Now → Activate
2. Go to WordPress Admin → Yoast SEO → Settings → Social → Facebook tab, enable 'Add Open Graph meta tags', and save
3. Return to the edibles post, scroll to the Yoast meta box at the bottom, and verify the 'Social preview' tab shows a product image and title (if not, add a featured image to the post)
4. Repeat for all other product pages, or bulk-regenerate via Yoast → Tools → File optimizations (if available in your version)
5. Test a shared link: post the product URL in a Facebook/Instagram share dialog to confirm the image and title now appear correctly

### 9. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/why-do-customers-love-pre-rolls/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are snippets of code that control how your pages appear when shared on social media platforms like Facebook, Instagram, and LinkedIn. Without them, social shares show a generic preview instead of your chosen title, description, and image — making your content look unprofessional and less clickable.

**Why it matters for your business:** Shared product pages and educational content generate fewer clicks and engagement on social platforms, directly reducing referral traffic and brand visibility for a dispensary that relies on community word-of-mouth and social discovery.

**Technical root cause:** WordPress is not automatically inserting og:title and og:image meta tags in the <head> section of this page. This typically happens when an SEO plugin is not configured, or the specific page template is missing OpenGraph output.

**Recommended fix — step by step**

1. Install and activate Yoast SEO or Rank Math (free version) from WordPress Plugins → Add New if not already active.
2. Go to the affected page (Dispensary Products > Why Do Customers Love Pre-Rolls) and edit it.
3. Scroll to the plugin's meta box (usually 'Yoast SEO' or 'Rank Math') below the editor.
4. Ensure og:title is set to your preferred page title (e.g., 'Premium Pre-Rolls | Balagan Cannabis').
5. Upload or select a featured image (1200×630px minimum) — this becomes og:image automatically.
6. Repeat for all high-traffic product and educational pages, prioritizing ones you link to on social media.
7. Test using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) to verify the preview renders correctly.

### 10. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** revenue
- **Page URL:** https://balagancannabis.com/dispensary-products/perfect-edibles-for-a-beach-day/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

When your product pages are shared on social media (Facebook, Instagram, LinkedIn), those platforms use special metadata tags called OpenGraph to pull in a preview image and headline. Without these tags, the preview looks broken or generic—just a plain link with no image. This is especially important for cannabis retail, where visual appeal and product imagery drive social sharing and traffic.

**Why it matters for your business:** Missing social preview metadata reduces click-through rates from social media shares by 30–50%, directly cutting referral traffic and customer discovery during word-of-mouth promotion.

**Technical root cause:** The page's HTML head section lacks og:title and og:image meta tags. WordPress doesn't add these automatically; they require either a plugin (like Yoast SEO, Rank Math, or All in One SEO) or manual code insertion in the theme.

**Recommended fix — step by step**

1. Install Yoast SEO plugin (free version): WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install → Activate.
2. Navigate to the affected product post (Dispensary Products → edit 'Perfect Edibles for a Beach Day').
3. Scroll to the Yoast SEO meta box at the bottom of the editor and click 'Social previews' tab.
4. Upload or assign a high-quality product image (at least 1200×630px) and confirm og:title is set to your product name.
5. Update the post and verify the social preview renders correctly using Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing).
6. Create a Yoast SEO rule to auto-populate og:image for all future product posts: Yoast SEO → Settings → Social → enable 'Add Open Graph meta tags' and set featured image as default.

### 11. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/cannabis-education/can-cannabis-mellow-you-out-anxiety/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

Your blog post about cannabis and anxiety is missing OpenGraph tags — special metadata that tells Facebook, Instagram, LinkedIn, and other social platforms what image and title to display when someone shares the link. Without them, the social preview looks unprofessional and defaults to whatever the platform guesses, which is often wrong.

**Why it matters for your business:** When customers share your educational content on social media, a missing or broken preview reduces click-through rates and makes your brand look less polished; for a wellness dispensary, this undermines trust and referral traffic.

**Technical root cause:** The WordPress page template or post content is not including og:title and og:image meta tags in the HTML head section. This is usually handled by an SEO plugin like Yoast or Rank Math, but either the plugin is not installed, not configured for this post type, or these specific fields were left blank.

**Recommended fix — step by step**

1. Install Yoast SEO (if not already active): Go to WordPress Dashboard → Plugins → Add New, search 'Yoast SEO', click Install and Activate.
2. Go to the affected blog post editor: Dashboard → Posts → select 'Can cannabis mellow you out anxiety?'
3. Scroll to the Yoast SEO box at the bottom and click the 'Social' tab (it has a Facebook icon).
4. Fill in the Facebook Preview section: set og:title (e.g., 'Cannabis & Anxiety: A Science-Based Guide') and upload or select an og:image (1200×630px recommended; use a clear, on-brand image).
5. Repeat this process for other education posts by auditing 5–10 of your top cannabis education pages for missing social metadata.
6. After saving, test the result: paste your URL into facebook.com/sharer/dialog and verify the preview displays correctly.

### 12. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/cannabis-education/how-to-store-your-cannabis/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are HTML snippets that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your content appears as a plain text link with no image or formatted title — making it much less likely someone will click through from social media.

**Why it matters for your business:** Cannabis education content is shareable and builds brand authority; missing OpenGraph metadata means your blog posts won't display attractively on social platforms, reducing click-through rates and organic referral traffic.

**Technical root cause:** The education page lacks og:title and og:image meta tags in the HTML <head> section. WordPress doesn't add these automatically unless an SEO plugin is installed and configured to generate them.

**Recommended fix — step by step**

1. Install Yoast SEO plugin (free version) if not already active: Dashboard → Plugins → Add New → search 'Yoast SEO' → Install & Activate
2. Navigate to the affected post: Dashboard → Posts → Edit 'How to Store Your Cannabis'
3. Scroll down to the Yoast SEO metabox and click the 'Social' tab
4. In the Facebook preview section, upload or confirm an og:image (recommended 1200×630px); update og:title if needed
5. Save the post
6. Repeat for all education/blog posts in your 'cannabis-education' category

### 13. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/winter-cannabis-flavors/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your posts will show a generic preview instead of an attractive custom image and headline. This is purely cosmetic on the page itself, but it affects how your link looks when customers share it on social media.

**Why it matters for your business:** Weak social sharing appearance reduces click-through rates when your products are shared by customers or your own marketing team on social platforms, limiting organic reach and repeat traffic.

**Technical root cause:** The page template or post is missing og:title and og:image meta tags in the <head> section. WordPress SEO plugins (like Yoast or Rank Math) can auto-generate these, but they must be enabled and configured.

**Recommended fix — step by step**

1. Install Yoast SEO (free version) if not already active: WordPress admin → Plugins → Add New → search 'Yoast SEO' → Install & Activate
2. Go to WordPress admin → Yoast SEO → Social → Facebook, and ensure 'Add Open Graph meta tags' is toggled ON
3. Edit the affected post (Dispensary Products → Winter Cannabis Flavors) and check the Yoast metabox at the bottom
4. Upload or assign a featured image to this post (at least 1200×630px for ideal social display) if missing
5. In the Yoast Social tab on that post, verify og:title and og:image preview are populated; adjust if needed
6. Repeat for any other product pages lacking og:image by bulk-assigning featured images via Posts → Bulk Edit

### 14. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/4-strains-high-thc-levels/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your product pages are missing Twitter Card tags—metadata that tells Twitter (now X) how to display your links when someone shares them on that platform. Without these tags, shared links appear as plain text instead of rich preview cards with images and descriptions, making them less visually appealing and clickable.

**Why it matters for your business:** Reduced click-through rates on social shares of your product pages, which means fewer visitors discovering your high-THC strains and other inventory through organic social traffic.

**Technical root cause:** The Yoast SEO plugin (or your current SEO plugin) is not configured to auto-generate Twitter Card meta tags, or they were never manually added to the page template.

**Recommended fix — step by step**

1. Log in to WordPress admin → Plugins → search 'Yoast SEO' (or your active SEO plugin)
2. Open Yoast SEO settings → Social → Twitter tab
3. Enable 'Add Open Graph Meta Tags' and toggle 'Twitter Card' on
4. In the Twitter Card type field, select 'Summary with Large Image'
5. Save changes and visit one of your product pages to confirm twitter:card meta tag appears in page source (right-click → View Page Source → search 'twitter:card')
6. Test a product URL in Twitter's Card Validator (card-validator.twitter.com) to confirm rendering
7. Optionally: if Yoast is not installed, install it now via WordPress admin → Plugins → Add New → search 'Yoast SEO' → Install → Activate

### 15. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://balagancannabis.com/dispensary-products/why-do-customers-love-pre-rolls/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your product pages are missing a Twitter Card meta tag, which is a snippet of code that tells Twitter (now X) how to display your content when someone shares a link on that platform. Without it, shared links appear plain and unoptimized, reducing click-through rates and visual appeal.

**Why it matters for your business:** When customers share your pre-roll or product pages on Twitter/X, the posts won't include product images or compelling previews, leading to fewer clicks and lower visibility for your brand on social platforms.

**Technical root cause:** The WordPress theme or SEO plugin (if installed) has not been configured to output the twitter:card meta tag. This is typically a simple addition to the site's header or a setting in an SEO plugin like Yoast or Rank Math.

**Recommended fix — step by step**

1. Log in to WordPress admin → Plugins and check if you have Yoast SEO or Rank Math installed
2. If using Yoast SEO: go to Yoast SEO → Social → X (Twitter) tab, enable the option, and enter your Twitter handle
3. If using Rank Math: go to Rank Math → Integrations → Social Networks, enable Twitter, and configure your handle
4. If you have no SEO plugin installed, install Yoast SEO (free version is sufficient) then follow step 2
5. After configuration, test the fix using the X Card Validator at https://cards-dev.twitter.com/validator (paste your product page URL)

### 16. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 17. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/relaxing-cannabis-strains-holidays/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 18. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/what-is-thcv/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 19. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/thc-thats-right-for-you/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 20. Title length 70 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/5-vegan-edibles-that-will-have-your-mouth-watering/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "5 Vegan Edibles That Will Have Your Mouth Watering! | Balagan Cannabis"

### 21. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/5-vegan-edibles-that-will-have-your-mouth-watering/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 22. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/perfect-edibles-for-a-beach-day/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 23. Title length 69 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/can-cannabis-mellow-you-out-anxiety/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Can Cannabis Mellow You Out and Help With Anxiety? | Balagan Cannabis"

### 24. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/can-cannabis-mellow-you-out-anxiety/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 25. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/how-to-store-your-cannabis/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 26. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/cbd-or-thc-whats-right-for-you/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 27. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/cbd-or-thc-whats-right-for-you/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 28. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/a-guide-on-concentrates/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 29. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/a-guide-on-concentrates/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 30. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/uncategorized/edibles-101-a-beginners-guide/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 31. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/uncategorized/edibles-101-a-beginners-guide/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 32. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/beginners-guide-to-cannabis/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 33. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/beginners-guide-to-cannabis/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 34. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/cannabis-for-sleep/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 35. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/cannabis-for-sleep/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 36. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/cannabis-for-anxiety/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 37. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/cannabis-for-anxiety/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 38. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/halloween-edibles-guide/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 39. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/halloween-edibles-guide/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 40. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/fall-activities-and-edibles/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 41. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/fall-activities-and-edibles/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 42. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/live-resin-facts/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 43. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/live-resin-facts/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 44. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/thanksgiving-cannabis-products/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 45. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-education/thanksgiving-cannabis-products/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 46. Title length 68 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-highlights/what-makes-our-recreational-dispensary-different/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "What Makes Our Recreational Dispensary Different? | Balagan Cannabis"

### 47. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-highlights/what-makes-our-recreational-dispensary-different/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 48. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-highlights/what-makes-our-recreational-dispensary-different/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 49. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/cannabis-infused-chocolates/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 50. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/cannabis-infused-chocolates/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 51. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-highlights/at-balagan-variety-is-the-name-of-the-game/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 52. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-highlights/at-balagan-variety-is-the-name-of-the-game/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 53. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/5-edibles-to-try-this-spring/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 54. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/dispensary-products/5-edibles-to-try-this-spring/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 55. Title length 73 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/local-cannabis-guide/dispensary-northampton-ma/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Downtown Northampton Cannabis Dispensary & Local Guide | Balagan Cannabis"

### 56. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/local-cannabis-guide/dispensary-northampton-ma/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 57. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/local-cannabis-guide/dispensary-northampton-ma/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 58. Title length 90 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/seasonal-trends/420-deals-northampton/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "The Ultimate Guide to 420 in Northampton: Deals, Events & Local Culture | Balagan Cannabis"

### 59. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/seasonal-trends/420-deals-northampton/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 60. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/seasonal-trends/420-deals-northampton/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 61. Title length 83 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/seasonal-trends/winter-products/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cozy Cannabis Products for Winter Relaxation: The Ultimate Guide | Balagan Cannabis"

### 62. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/seasonal-trends/winter-products/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 63. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/seasonal-trends/winter-products/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 64. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/terms-of-use/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 65. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/terms-of-use/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 66. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/blog/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 67. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/blog/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 68. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/privacy-policy/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 69. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/privacy-policy/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 70. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/directions/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 71. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/directions/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 72. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/faqs/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 73. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/faqs/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 74. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/contact/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 75. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/contact/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 76. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/sign-up/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 77. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/sign-up/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 78. 1 image(s) missing alt text

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/sign-up/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 79. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/menu-full/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 80. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/menu-full/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 81. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 82. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 83. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/easthampton-cannabis/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 84. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/easthampton-cannabis/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 85. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/amherst-cannabis/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 86. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/amherst-cannabis/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 87. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/leeds-dispensary/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 88. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/leeds-dispensary/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 89. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/florence-dispensary/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 90. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/florence-dispensary/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 91. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/about/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 92. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/about/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 93. Title length 95 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/northampton-main-street-dispensary/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "The Only Dispensary on Main Street: Your Downtown Northampton Cannabis Guide | Balagan Cannabis"

### 94. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/northampton-main-street-dispensary/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 95. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/northampton-main-street-dispensary/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 96. Title length 84 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/craft-flower-menu-northampton/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "The Curator’s Choice: Craft Cannabis Flower & Small Batch Strains | Balagan Cannabis"

### 97. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/craft-flower-menu-northampton/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 98. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/craft-flower-menu-northampton/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 99. Title length 80 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-cafe-culture-northampton/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "The Northampton Ritual: Craft Coffee, Cannabis & Cafe Culture | Balagan Cannabis"

### 100. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-cafe-culture-northampton/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 101. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/cannabis-cafe-culture-northampton/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 102. Title length 85 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/smith-college-dispensary-guide/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "The Dispensary Near Smith College: Convenience, Safety & Community | Balagan Cannabis"

### 103. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/smith-college-dispensary-guide/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 104. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/smith-college-dispensary-guide/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 105. Title length 73 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/south-hadley-dispensary/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Best Recreational Weed Dispensary Near South Hadley MA | Balagan Cannabis"

### 106. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/south-hadley-dispensary/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 107. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/south-hadley-dispensary/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 108. Title length 71 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/holyoke-ma-dispensary/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Premium Recreational Weed Dispensary Near Holyoke MA | Balagan Cannabis"

### 109. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/holyoke-ma-dispensary/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 110. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/holyoke-ma-dispensary/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 111. Title length 66 chars

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/hadley-ma-dispensary/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Premium Recreational Dispensary Near Hadley, MA | Balagan Cannabis"

### 112. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/hadley-ma-dispensary/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 113. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/hadley-ma-dispensary/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 114. 1 image(s) missing alt text

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/areas/hadley-ma-dispensary/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 115. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/uncategorized/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 116. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/uncategorized/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 117. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/cannabis-education/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 118. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/cannabis-education/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 119. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/dispensary-products/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 120. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/dispensary-products/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 121. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/dispensary-highlights/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 122. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/dispensary-highlights/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 123. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/local-cannabis-guide/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 124. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/local-cannabis-guide/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 125. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/seasonal-trends/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 126. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/category/seasonal-trends/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 127. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/tag/vegan-edibles/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 128. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/tag/vegan-edibles/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 129. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/tag/pre-rolls/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 130. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/tag/pre-rolls/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 131. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/tag/edibles/
- **Rule:** `tier2.meta.no-og`

**Detail**

Page missing og:title and/or og:image.

### 132. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/tag/edibles/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 133. Multiple H1s on homepage (8)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier4.h1.multiple`

**Detail**

Only one H1 per page.

### 134. Missing security header: permissions-policy

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.header.permissions-policy`

**Detail**

permissions-policy not present on homepage response. Affects fortress score and CSP posture.

### 135. SSL Labs grade: unknown

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.fortress.ssl-grade`

**Detail**

Qualys SSL Labs: SSL Labs HTTP 400. Aim for A+ via strong TLS 1.3, HSTS, CAA, and preload.

### 136. DNSSEC not enabled

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.fortress.dnssec-missing`

**Detail**

DNSSEC adds cryptographic verification to DNS responses. Consider enabling via your registrar.

### 137. No CAA DNS records

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier5.fortress.caa-missing`

**Detail**

CAA records restrict which CAs may issue certs for your domain, preventing rogue issuance. Add CAA for letsencrypt.org / digicert.com / etc.

### 138. Lighthouse a11y (mobile): 82/100

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.a11y-mobile`

**Detail**

Score 82 is below target 95. See HTML report for details.

### 139. Lighthouse seo (mobile): 92/100

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.seo-mobile`

**Detail**

Score 92 is below target 95. See HTML report for details.

### 140. LH mobile: Preconnect to required origins (Est savings of 120 ms)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.uses-rel-preconnect-mobile`

**Detail**

Consider adding `preconnect` or `dns-prefetch` resource hints to establish early connections to important third-party origins. [Learn how to preconnect to required origins](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/).

### 141. LH mobile: Eliminate render-blocking resources (Est savings of 1,930 ms)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.render-blocking-resources-mobile`

**Detail**

Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).

### 142. LH mobile: Minify JavaScript (Est savings of 177 KiB)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.unminified-javascript-mobile`

**Detail**

Minifying JavaScript files can reduce payload sizes and script parse time. [Learn how to minify JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/).

### 143. LH mobile: Reduce unused JavaScript (Est savings of 90 KiB)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.unused-javascript-mobile`

**Detail**

Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### 144. LH mobile: Avoid serving legacy JavaScript to modern browsers (Est savings of 1 KiB)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.legacy-javascript-mobile`

**Detail**

Polyfills and transforms enable legacy browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile [Baseline](https://web.dev/baseline) features, unless you know you must support legacy browsers. [Learn why most sites can deploy ES6+ code without transpiling](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)

### 145. Lighthouse perf (desktop): 87/100

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.perf-desktop`

**Detail**

Score 87 is below target 90. See HTML report for details.

### 146. Lighthouse a11y (desktop): 82/100

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.a11y-desktop`

**Detail**

Score 82 is below target 95. See HTML report for details.

### 147. Lighthouse bestPractices (desktop): 78/100

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.bestPractices-desktop`

**Detail**

Score 78 is below target 90. See HTML report for details.

### 148. Lighthouse seo (desktop): 92/100

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lighthouse.seo-desktop`

**Detail**

Score 92 is below target 95. See HTML report for details.

### 149. LH desktop: Preconnect to required origins (Est savings of 80 ms)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.uses-rel-preconnect-desktop`

**Detail**

Consider adding `preconnect` or `dns-prefetch` resource hints to establish early connections to important third-party origins. [Learn how to preconnect to required origins](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/).

### 150. LH desktop: Preload Largest Contentful Paint image

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.prioritize-lcp-image-desktop`

**Detail**

If the LCP element is dynamically added to the page, you should preload the image in order to improve LCP. [Learn more about preloading LCP elements](https://web.dev/articles/optimize-lcp#optimize_when_the_resource_is_discovered).

### 151. LH desktop: Eliminate render-blocking resources (Est savings of 420 ms)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.render-blocking-resources-desktop`

**Detail**

Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/).

### 152. LH desktop: Minify JavaScript (Est savings of 177 KiB)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.unminified-javascript-desktop`

**Detail**

Minifying JavaScript files can reduce payload sizes and script parse time. [Learn how to minify JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/).

### 153. LH desktop: Reduce unused JavaScript (Est savings of 90 KiB)

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier8.lh-opportunity.unused-javascript-desktop`

**Detail**

Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### 154. Dutchie menu iframe not found on /, /menu, or /shop

- **Severity:** P3
- **Page URL:** https://balagancannabis.com/
- **Rule:** `tier-revenue.dutchie.iframe-absent`

**Detail**

No Dutchie iframe detected. If this client uses a different menu provider, add it to clients.yaml dutchieSlug=null + we'll stop flagging.

---

## Findings by Page

Grouped by URL — useful when working through the site one page at a time.

### https://balagancannabis.com/
_43 findings on this page_

- **[P1] A11y: ARIA dialog and alertdialog nodes should have an accessible name** 🔴 DO FIRST
  Your age-gate dialog (the popup that appears when visitors first arrive) doesn't have a proper accessible name. Screen readers—software that reads web pages aloud for blind and low-vision users—can't 
- **[P1] A11y: Elements must meet minimum color contrast ratio thresholds (×7)** 🔴 DO FIRST
  Seven elements on your site use white text (#ffffff) on a green background (#0b9544) that doesn't meet accessibility standards. The contrast ratio is 3.89:1, but WCAG AA requires 4.5:1 minimum. This m
- **[P1] A11y: Images must have alternative text (×7)** 🔴 DO FIRST
  Seven images on your homepage lack alternative text (alt attributes), which means screen readers used by blind and low-vision visitors cannot describe what those images show. This creates a barrier fo
- **[P1] A11y: Links must have discernible text (×3)** 🔴 DO FIRST
  Your website has 3 links that don't have any readable text or labels. Screen readers (used by people with vision loss) can't tell users what these links do — they might be icon-only buttons or invisib
- **[P2] Missing meta description** 🟠 HIGH
  Your homepage doesn't have a meta description — the 160-character summary that appears below your site title in Google search results. Without it, Google will auto-generate a snippet from your page co
- **[P2] 1 broken internal link(s)** 🟡 MEDIUM
  Your Directions page contains a link pointing to /testimonials, but that page no longer exists (returns a 404 error). Visitors clicking that link hit a dead end, and search engines waste crawl budget 
- **[P2] Layout shift (desktop): 0.130** 🟠 HIGH
  Your homepage is experiencing unexpected visual jumps as it loads—images, text, or buttons shift position after the user sees them. This is measured as Cumulative Layout Shift (CLS), and yours scores 
- **[P2] Missing core schema types: LocalBusiness** 🟠 HIGH
  Your site includes some structured data (Organization, WebSite) that helps search engines understand your business, but is missing LocalBusiness markup. LocalBusiness tells Google key details like you
- **[P2] Missing security header: strict-transport-security** 🟠 HIGH
  Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use encrypted HTTPS connections to your domain. Without it, visitors could accidentally connect via une
- **[P2] Missing security header: x-frame-options** 🟠 HIGH
  Your website is missing the X-Frame-Options security header, which tells browsers whether your site can be displayed inside an iframe (a frame within another webpage). Without this header, malicious a
- **[P2] Missing security header: content-security-policy** 🟠 HIGH
  Your website is missing a Content Security Policy (CSP) header, which is a security instruction that tells browsers what content sources (scripts, images, fonts, etc.) are allowed to load. This is lik
- **[P2] No DMARC policy published** 🟠 HIGH
  DMARC is an email authentication standard that tells receiving mail servers how to handle emails claiming to come from your domain. Without it, scammers can more easily send fake emails that appear to
- **[P2] 26 tap targets under 44px at mobile-320** 
- **[P2] 26 tap targets under 44px at mobile-375** 🟠 HIGH
  Your site has 26 buttons, links, and form fields that are smaller than 44×44 pixels when viewed on a mobile phone (375px wide). This makes them hard to tap accurately — especially for people with larg
- **[P2] 28 tap targets under 44px at mobile-414** 🟠 HIGH
  Your website has 28 buttons, links, and other clickable elements that are smaller than 44×44 pixels on mobile devices. This makes them hard to tap accurately, especially for people with limited hand c
- **[P2] 30 tap targets under 44px at tablet-768** 🟠 HIGH
  Your website has 30 buttons, links, and clickable elements that are smaller than 44×44 pixels when viewed on a tablet. This makes them hard to tap accurately, especially for people with motor difficul
- **[P2] Lighthouse perf (mobile): 58/100** 🟠 HIGH
  Your mobile site takes nearly 7 seconds to fully load the main content (Largest Contentful Paint), and has noticeable layout shift as elements move around after loading (Cumulative Layout Shift of 0.2
- **[P2] Lighthouse bestPractices (mobile): 75/100** 🟡 MEDIUM
  Your site's mobile version scored 75/100 on Google's Best Practices audit, which measures security, browser compatibility, and user experience standards. The target is 90+. Common issues at this level
- **[P2] A11y: All page content should be contained by landmarks (×25)** 
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are HTML snippets that tell social media platforms (Facebook, Instagram, LinkedIn, Pinterest) how to display your website when someone shares a link. Without them, your posts appear bla
- **[P3] Missing Twitter card** 
- **[P3] Multiple H1s on homepage (8)** 
- **[P3] Missing security header: permissions-policy** 
- **[P3] SSL Labs grade: unknown** 
- **[P3] DNSSEC not enabled** 
- **[P3] No CAA DNS records** 
- **[P3] Lighthouse a11y (mobile): 82/100** 
- **[P3] Lighthouse seo (mobile): 92/100** 
- **[P3] LH mobile: Preconnect to required origins (Est savings of 120 ms)** 
- **[P3] LH mobile: Eliminate render-blocking resources (Est savings of 1,930 ms)** 
- **[P3] LH mobile: Minify JavaScript (Est savings of 177 KiB)** 
- **[P3] LH mobile: Reduce unused JavaScript (Est savings of 90 KiB)** 
- **[P3] LH mobile: Avoid serving legacy JavaScript to modern browsers (Est savings of 1 KiB)** 
- **[P3] Lighthouse perf (desktop): 87/100** 
- **[P3] Lighthouse a11y (desktop): 82/100** 
- **[P3] Lighthouse bestPractices (desktop): 78/100** 
- **[P3] Lighthouse seo (desktop): 92/100** 
- **[P3] LH desktop: Preconnect to required origins (Est savings of 80 ms)** 
- **[P3] LH desktop: Preload Largest Contentful Paint image** 
- **[P3] LH desktop: Eliminate render-blocking resources (Est savings of 420 ms)** 
- **[P3] LH desktop: Minify JavaScript (Est savings of 177 KiB)** 
- **[P3] LH desktop: Reduce unused JavaScript (Est savings of 90 KiB)** 
- **[P3] Dutchie menu iframe not found on /, /menu, or /shop** 

### https://balagancannabis.com/areas/hadley-ma-dispensary/
_5 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  This page doesn't have a meta description — the 155-character summary that appears under your page title in Google search results. Search engines will auto-generate one from page content, which is oft
- **[P3] Title length 66 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://balagancannabis.com/sign-up/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  The sign-up page is missing a meta description — a 150–160 character summary that appears below your page title in Google search results. Without it, Google may auto-generate a snippet from your page 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://balagancannabis.com/northampton-main-street-dispensary/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  This page is missing a meta description — a short text snippet (160 characters) that summarizes the page content and appears below the page title in search results. Without it, Google shows a generic 
- **[P3] Title length 95 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/craft-flower-menu-northampton/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  The craft flower menu page is missing a meta description — the 160-character text snippet that appears below the page title in Google search results. Without it, Google generates a random excerpt from
- **[P3] Title length 84 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-cafe-culture-northampton/
_4 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  This blog post page doesn't have a meta description — the 155-character summary that appears below the page title in Google search results. Without it, Google generates a random snippet from your cont
- **[P3] Title length 80 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/smith-college-dispensary-guide/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your blog post about Smith College dispensary options has no meta description—that's the short summary (150–160 characters) that appears under your page title in Google search results. Without it, Goo
- **[P3] Title length 85 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/areas/south-hadley-dispensary/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  This page is missing a meta description — the 160-character summary that appears under your page title in Google search results. Without it, Google generates a random snippet from your page content, w
- **[P3] Title length 73 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/areas/holyoke-ma-dispensary/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  This page is missing a meta description — a short text summary (160 characters) that appears below the page title in Google search results. Without it, Google will auto-generate a snippet from the pag
- **[P3] Title length 71 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/5-vegan-edibles-that-will-have-your-mouth-watering/
_3 findings on this page_

- **[P3] Title length 70 chars** 
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  Your product pages are missing OpenGraph tags — special code that tells social media platforms (Facebook, Instagram, Pinterest) how to display your content when someone shares a link. Without these ta
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/can-cannabis-mellow-you-out-anxiety/
_3 findings on this page_

- **[P3] Title length 69 chars** 
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  Your blog post about cannabis and anxiety is missing OpenGraph tags — special metadata that tells Facebook, Instagram, LinkedIn, and other social platforms what image and title to display when someone
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-highlights/what-makes-our-recreational-dispensary-different/
_3 findings on this page_

- **[P3] Title length 68 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/local-cannabis-guide/dispensary-northampton-ma/
_3 findings on this page_

- **[P3] Title length 73 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/seasonal-trends/420-deals-northampton/
_3 findings on this page_

- **[P3] Title length 90 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/seasonal-trends/winter-products/
_3 findings on this page_

- **[P3] Title length 83 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/terms-of-use/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  Your Terms of Use page is missing a meta description — the 155-character summary that appears below your page title in Google search results. Without it, Google will auto-generate one, which is often 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/blog/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  Your blog index page (/blog/) doesn't have a meta description — the 150–160 character summary that appears below your page title in Google search results. Without one, Google generates a random snippe
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/privacy-policy/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  The privacy policy page is missing a meta description — a 150–160 character summary that search engines display below your page title in results. Without it, Google may auto-generate text that doesn't
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/directions/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  The /directions/ page is missing a meta description—the short text (155–160 characters) that appears below your page title in Google search results. Without it, Google may auto-generate a snippet from
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/faqs/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your FAQ page is missing a meta description—the 160-character summary that appears under your link in Google search results. Without it, Google generates a random snippet from your page content, which
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/contact/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your contact page is missing a meta description — the 150-160 character summary that appears below your page title in Google search results. Without it, Google generates one automatically (often poorl
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/menu-full/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  Your menu page (/menu-full/) is missing a meta description—a 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/areas/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your /areas/ page is missing a meta description — the 155-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page co
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/areas/easthampton-cannabis/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  This page is missing a meta description—the 160-character summary that appears under your page title in Google search results. Without it, Google generates a random snippet from your page content, whi
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/areas/amherst-cannabis/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  This page is missing a meta description — a 150–160 character summary that appears below the page title in Google search results. Without it, search engines may auto-generate a snippet from your page 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/areas/leeds-dispensary/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  This page is missing a meta description—the 150–160 character summary that appears below the page title in Google search results. Without it, Google may auto-generate a snippet from your page content,
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/areas/florence-dispensary/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  This page is missing a meta description—the 155-character summary that appears below the page title in Google search results. Without it, Google generates a random snippet from your page content, whic
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/about/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  The /about/ page is missing a meta description — a 150–160 character summary that appears below your page title in Google search results. Without it, search engines may auto-generate a snippet from yo
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/category/uncategorized/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  Your category archive page (uncategorized posts) is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google may auto-gene
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/category/cannabis-education/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  The cannabis education category page is missing a meta description — a 160-character summary that appears below your page title in Google search results. Without it, Google shows a generic snippet ins
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/category/dispensary-products/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your dispensary products category page lacks a meta description — the 150-160 character summary that appears under your page title in Google search results. Without it, search engines generate a rando
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/category/dispensary-highlights/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  Your /category/dispensary-highlights/ page is missing a meta description — the 150-160 character summary that appears below your page title in Google search results. Without one, Google will auto-gene
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/category/local-cannabis-guide/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Search engines like Google use meta descriptions — a 160-character summary — to preview your page in search results. Without one, Google will auto-generate a snippet, which may cut off mid-sentence or
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/category/seasonal-trends/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your category archive page for 'seasonal-trends' is missing a meta description — the 50–160 character summary that appears below your page title in Google search results. Without it, Google may auto-g
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/tag/vegan-edibles/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  Your tag page for 'vegan-edibles' doesn't have a meta description — a 155-character summary that appears under your page title in Google search results. Without it, Google generates a random snippet f
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/tag/pre-rolls/
_3 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your tag page for 'pre-rolls' is missing a meta description—the 50–160 character summary that appears below your page title in Google search results. Without it, Google may auto-generate a snippet, wh
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/tag/edibles/
_3 findings on this page_

- **[P2] Missing meta description** 🟡 MEDIUM
  Your /tag/edibles/ page is missing a meta description—the 160-character summary that appears below your page title in Google search results. Without it, Google may auto-generate a description from you
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/relaxing-cannabis-strains-holidays/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, Pinterest) how to display your page when someone shares it. Without them, your posts appear as plain text lin
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/winter-cannabis-flavors/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** ⚪ LOW
  OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your posts will show a generic previ
- **[P3] Missing Twitter card** 🟡 MEDIUM
  Your product pages are missing Twitter Card metadata — a small code snippet that tells Twitter (now X) how to display your content when someone shares a link on that platform. Without it, shares appea

### https://balagancannabis.com/dispensary-products/4-strains-high-thc-levels/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are HTML snippets that tell social platforms (Facebook, Instagram, Pinterest) what image and text to display when someone shares your page. Without them, social shares look plain and ge
- **[P3] Missing Twitter card** ⚪ LOW
  Your product pages are missing Twitter Card tags—metadata that tells Twitter (now X) how to display your links when someone shares them on that platform. Without these tags, shared links appear as pla

### https://balagancannabis.com/dispensary-products/what-is-thcv/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph metadata tells social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares a link. Without og:title and og:image, shared links show generic or broken 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/thc-thats-right-for-you/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are hidden metadata that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your posts appear as plain text links
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/why-do-customers-love-pre-rolls/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are snippets of code that control how your pages appear when shared on social media platforms like Facebook, Instagram, and LinkedIn. Without them, social shares show a generic preview 
- **[P3] Missing Twitter card** ⚪ LOW
  Your product pages are missing a Twitter Card meta tag, which is a snippet of code that tells Twitter (now X) how to display your content when someone shares a link on that platform. Without it, share

### https://balagancannabis.com/dispensary-products/perfect-edibles-for-a-beach-day/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  When your product pages are shared on social media (Facebook, Instagram, LinkedIn), those platforms use special metadata tags called OpenGraph to pull in a preview image and headline. Without these ta
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/how-to-store-your-cannabis/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are HTML snippets that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your content appears as a plain text li
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/cbd-or-thc-whats-right-for-you/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/a-guide-on-concentrates/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/uncategorized/edibles-101-a-beginners-guide/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/beginners-guide-to-cannabis/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/cannabis-for-sleep/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/cannabis-for-anxiety/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/halloween-edibles-guide/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/fall-activities-and-edibles/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/live-resin-facts/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/cannabis-education/thanksgiving-cannabis-products/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/cannabis-infused-chocolates/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-highlights/at-balagan-variety-is-the-name-of-the-game/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/dispensary-products/5-edibles-to-try-this-spring/
_2 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://balagancannabis.com/robots.txt
_1 finding on this page_

- **[P3] robots.txt does not reference sitemap** 🟡 MEDIUM
  Your robots.txt file (a small text file that tells search engines which pages to crawl) doesn't include a link to your XML sitemap. A sitemap is like a directory of all your important pages. Without t

### https://balagancannabis.com/wp-config.php
_1 finding on this page_

- **[P0] Sensitive artifact exposed: /wp-config.php** 🔴 DO FIRST
  Your WordPress configuration file (wp-config.php) is publicly accessible on the internet. This file contains database passwords, security keys, and other sensitive credentials that should never be vis

### https://balagancannabis.com/wp-login.php
_1 finding on this page_

- **[P0] Sensitive artifact exposed: /wp-login.php** 🔴 DO FIRST
  Your WordPress admin login page (/wp-login.php) is publicly accessible on the internet. While this is standard WordPress behavior, it creates a security risk because attackers can repeatedly try to gu


---

_Generated by Apex Sentinel Monthly Audit · 2026-04-19T07:23:24.755Z · Powered by Bud Authority._