# Apex Sentinel — Jungle Kingdom Flower Monthly Audit

**URL:** https://junglekingdomflower.com/
**Platform:** unknown
**Archetype:** fun
**Run ID:** 2026-04-19T06-18-18-831Z
**Scanned:** 2026-04-19T06:56:42.127Z
**Duration:** 792s

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 | 21 | Full sitemap + linked pages |
| P0 (critical) | 4 | Site-down or compliance-breaking |
| P1 (urgent) | 35 | Significant revenue / SEO / UX impact |
| P2 (high) | 37 | Quality / ranking / trust degradation |
| P3 (medium) | 35 | Polish + optimization |
| "Do first" items | 30 | AI-flagged top priorities |
| Quick wins (< 30 min) | 29 | 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: /.git/config** — _Exposing development files puts your site at immediate risk of being hacked, which could compromise customer data, disrupt sales, violate cannabis licensing compliance requirements, and damage your reputation._
   Page: https://junglekingdomflower.com/.git/config
   Effort: Moderate (1-3 hours)
2. **[P0] 🔴 DO FIRST Sensitive artifact exposed: /.git/HEAD** — _This is a direct security vulnerability that could expose your codebase, customer data handling logic, or payment processing details to attackers, risking compliance violations (cannabis licensing boards require secure systems) and potential data breaches._
   Page: https://junglekingdomflower.com/.git/HEAD
   Effort: Moderate (1-3 hours)
3. **[P0] 🔴 DO FIRST Sensitive artifact exposed: /wp-login.php** — _Exposing your login page increases the risk of account takeover, which could lead to your site being defaced, malware injection, or unauthorized access to customer data and compliance records._
   Page: https://junglekingdomflower.com/wp-login.php
   Effort: Moderate (1-3 hours)
4. **[P0] Sensitive artifact exposed: /.env**
   Page: https://junglekingdomflower.com/.env
5. **[P1] 🔴 DO FIRST Page returns 404: https://junglekingdomflower.com/about-us/** — _Customers looking for your "About Us" page will hit a dead end, and Google will gradually stop trusting your sitemap, which hurts your visibility in search results for cannabis dispensary queries._
   Page: https://junglekingdomflower.com/about-us/
   Effort: Quick win (< 30 min)
6. **[P1] 🔴 DO FIRST Page returns 404: https://junglekingdomflower.com/contact-us/** — _Lost customer inquiries and compliance violations: cannabis retailers must provide a working contact method to answer age-verification questions and license inquiries; a broken contact page damages trust and may trigger compliance audits._
   Page: https://junglekingdomflower.com/contact-us/
   Effort: Quick win (< 30 min)
7. **[P1] 🔴 DO FIRST Page returns 404: https://junglekingdomflower.com/weed-delivery-williamsburg/** — _You're losing potential sales from customers searching for 'weed delivery Williamsburg' — Google will stop showing this page in results, and any traffic sent to this URL bounces immediately._
   Page: https://junglekingdomflower.com/weed-delivery-williamsburg/
   Effort: Quick win (< 30 min)
8. **[P1] 🔴 DO FIRST Page returns 404: https://junglekingdomflower.com/weed-delivery-bed-stuy/** — _Customers searching for 'weed delivery Bed-Stuy' may click a Google result pointing to this URL and land on an error page instead of a product page, causing lost sales and damaging trust._
   Page: https://junglekingdomflower.com/weed-delivery-bed-stuy/
   Effort: Moderate (1-3 hours)
9. **[P1] 🔴 DO FIRST Page returns 404: https://junglekingdomflower.com/terms-conditions/** — _Broken links harm your search rankings, frustrate customers looking for legal terms, and may trigger compliance issues if regulators expect a Terms & Conditions page to be publicly available._
   Page: https://junglekingdomflower.com/terms-conditions/
   Effort: Quick win (< 30 min)
10. **[P1] 🔴 DO FIRST Page returns 404: https://junglekingdomflower.com/blog/** — _You're losing potential organic search traffic from blog-related keywords, and customers who click blog links from search results or social media will hit a dead end instead of engaging with your content._
   Page: https://junglekingdomflower.com/blog/
   Effort: Quick win (< 30 min)

---

## Findings by Severity

### P0 — 4 findings

### 1. Sensitive artifact exposed: /.git/config

- **Severity:** P0   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** security
- **Page URL:** https://junglekingdomflower.com/.git/config
- **Rule:** `tier5.exposed.artifact`

**What it means (plain English)**

Your website is exposing a Git configuration file (a developer tool file) that contains sensitive information about your codebase and deployment setup. This file should never be publicly accessible on the internet—it's like leaving your house blueprints and security codes on your front lawn. An attacker can use this to find vulnerabilities or understand your system architecture.

**Why it matters for your business:** Exposing development files puts your site at immediate risk of being hacked, which could compromise customer data, disrupt sales, violate cannabis licensing compliance requirements, and damage your reputation.

**Technical root cause:** Your website's source code was deployed to production with the .git directory (a hidden developer folder) still present and accessible. Most web servers should block access to hidden directories, but this one isn't configured to do so.

**Recommended fix — step by step**

1. Contact your hosting provider or server admin and ask them to add a firewall rule blocking all requests to /.git/* and other hidden directories (/.hg/*, /.svn/*, /.env, etc.) at the edge (before traffic reaches your application).
2. If you have server access: add a .htaccess rule (Apache) or nginx config block to deny access: 'location ~ /\.git { deny all; }' and restart the server.
3. Remove the .git directory from your production server entirely: SSH into your server, navigate to your root directory, and run 'rm -rf .git' (ask your host for help if unsure).
4. Add a .gitignore file to your repository so .git never gets deployed again in future updates.
5. Scan https://junglekingdomflower.com/.git/config, /.env, /.htaccess, and /web.config with a free tool like GitHunter or manually verify they no longer return HTTP 200.

### 2. Sensitive artifact exposed: /.git/HEAD

- **Severity:** P0   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** security
- **Page URL:** https://junglekingdomflower.com/.git/HEAD
- **Rule:** `tier5.exposed.artifact`

**What it means (plain English)**

Your website is exposing Git version control files (internal developer files) to the public internet. When someone visits `/.git/HEAD`, they can see it exists and potentially access other Git files, which may contain sensitive information like code history, credentials, or file paths that attackers could exploit.

**Why it matters for your business:** This is a direct security vulnerability that could expose your codebase, customer data handling logic, or payment processing details to attackers, risking compliance violations (cannabis licensing boards require secure systems) and potential data breaches.

**Technical root cause:** The `.git/` directory from local development was deployed to production and is not being blocked by the web server or CDN. Most hosting platforms don't automatically hide these directories.

**Recommended fix — step by step**

1. Add a `.htaccess` file to your root directory with `<FilesMatch "^\.git"> Deny from all </FilesMatch>` (if Apache) or equivalent `location ~ /\.git` block in nginx.conf (if Nginx) — ask your host which you use
2. Contact your hosting provider and ask them to block `/.git/`, `/.env`, `/.svn/`, and other hidden version-control directories at the server level
3. Remove the `.git/` directory entirely from your production server: SSH into your host and run `rm -rf .git/` in your website's root folder, or redeploy without it
4. Test the fix by visiting `https://junglekingdomflower.com/.git/HEAD` in your browser — it should return a 403 Forbidden or 404, not 200
5. Scan for other exposed files: visit `/.env`, `/.git/config`, and `/web.config` to ensure they also return 403/404

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

- **Severity:** P0   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** security
- **Page URL:** https://junglekingdomflower.com/wp-login.php
- **Rule:** `tier5.exposed.artifact`

**What it means (plain English)**

Your WordPress admin login page (/wp-login.php) is publicly accessible and returns a successful response. This is a common entry point for attackers trying to break into websites. While WordPress login pages exist by default, exposing them without protection makes your site a target for automated attacks that guess passwords.

**Why it matters for your business:** Exposing your login page increases the risk of account takeover, which could lead to your site being defaced, malware injection, or unauthorized access to customer data and compliance records.

**Technical root cause:** WordPress installations ship with /wp-login.php exposed by default. No server-level protection (IP whitelist, WAF rule, or HTTP 403 block) has been configured to restrict access to this sensitive administrative path.

**Recommended fix — step by step**

1. Log into your hosting control panel (cPanel, Plesk, or your host's dashboard) and locate the Web Application Firewall (WAF) or ModSecurity settings.
2. Create a rule to return HTTP 403 (Forbidden) for requests to /wp-login.php from all IP addresses except those you explicitly whitelist (e.g., your office IP).
3. Alternatively, install the WordPress plugin 'Wordfence Security' (free tier) → Firewall tab → set 'Block all login attempts' or 'Restrict login to specific IP addresses'.
4. If you use Cloudflare for DNS, enable 'WAF Rules' and create a custom rule: (cf.uri_path contains '/wp-login.php') → Block.
5. Test the fix by visiting https://junglekingdomflower.com/wp-login.php in an incognito window; you should see a 403 error or blank page, not a login form.
6. Optional: rename /wp-login.php to a custom path using a plugin like 'WPS Hide Login' if you want to avoid lockouts.

### 4. Sensitive artifact exposed: /.env

- **Severity:** P0
- **Page URL:** https://junglekingdomflower.com/.env
- **Rule:** `tier5.exposed.artifact`

**Detail**

https://junglekingdomflower.com/.env returned 200. Sensitive paths must be blocked at edge.

---

### P1 — 35 findings

### 1. Page returns 404: https://junglekingdomflower.com/about-us/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/about-us/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

Your sitemap (the file that tells Google which pages exist on your site) lists a page at /about-us/, but when we visit that URL, the server returns a 404 error — meaning the page doesn't exist or has been deleted. This breaks both user experience and search engine crawling.

**Why it matters for your business:** Customers looking for your "About Us" page will hit a dead end, and Google will gradually stop trusting your sitemap, which hurts your visibility in search results for cannabis dispensary queries.

**Technical root cause:** Either the page was deleted without updating the sitemap, the page URL was changed without a redirect, or the page exists but is misconfigured on the server.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/about-us/ directly and confirm whether the page should exist — check your site structure and navigation menu.
2. If the page should exist, check your CMS (WordPress, Shopify, custom platform) to see if it's published and publicly visible; if using WordPress, go to Pages → All Pages, search "about", and verify the post status is "Published" and URL slug is exactly "about-us".
3. If the page exists but is returning 404, ask your hosting provider to check server logs or test from a different network (the page might be geofenced or IP-blocked due to cannabis restrictions).
4. If the page was intentionally removed, remove it from your sitemap: use your SEO plugin (e.g., Yoast SEO: SEO → Sitemaps → view XML sitemap, or manually edit the sitemap.xml file) or contact your hosting provider to regenerate the sitemap.
5. Once resolved, submit the updated sitemap to Google Search Console (Google Search Console → Sitemaps → Request indexing of the correct URL).

### 2. Page returns 404: https://junglekingdomflower.com/contact-us/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** compliance
- **Page URL:** https://junglekingdomflower.com/contact-us/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

Your sitemap (the file search engines use to discover all your pages) lists a contact page at /contact-us/, but when we visit it, the server returns a 404 error—meaning the page doesn't exist or is misconfigured. Customers clicking 'Contact Us' will hit a dead end, and Google will gradually stop trusting your sitemap.

**Why it matters for your business:** Lost customer inquiries and compliance violations: cannabis retailers must provide a working contact method to answer age-verification questions and license inquiries; a broken contact page damages trust and may trigger compliance audits.

**Technical root cause:** The page URL is listed in your sitemap but either (a) the page was deleted without updating the sitemap, (b) the URL routing is misconfigured, or (c) the page exists but isn't being served due to a redirect or permission issue.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/contact-us/ directly in your browser and confirm the 404 error.
2. Log in to your site's admin panel and check if a contact page exists in the Page or Post list; if not, recreate it with a contact form or contact information.
3. If the page exists but returns 404, check your site's Settings → Permalinks (or URL routing in non-WordPress platforms) to ensure clean URLs are enabled.
4. Update or regenerate your XML sitemap via your site builder's SEO tool or plugin (e.g., Yoast SEO → XML Sitemaps → Regenerate) to remove the dead link.
5. Test the contact page again and confirm it loads with a 200 status code; use Google's URL Inspection tool (search.google.com → URL Inspection → paste link) to verify.

### 3. Page returns 404: https://junglekingdomflower.com/weed-delivery-williamsburg/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** revenue
- **Page URL:** https://junglekingdomflower.com/weed-delivery-williamsburg/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file search engines use to discover your content) is returning a 404 error, meaning it no longer exists or was deleted. When customers click links to this page or search engines try to index it, they hit a dead end instead of finding product information.

**Why it matters for your business:** You're losing potential sales from customers searching for 'weed delivery Williamsburg' — Google will stop showing this page in results, and any traffic sent to this URL bounces immediately.

**Technical root cause:** The page was either deleted, moved to a different URL, or the permalink structure changed without setting up a redirect. The sitemap wasn't updated to match.

**Recommended fix — step by step**

1. Check if /weed-delivery-williamsburg/ was intentionally deleted or if the content moved to a new URL by searching your site's admin history or checking similar delivery pages (e.g., /weed-delivery-brooklyn/) to understand the current URL pattern.
2. If the page still should exist, restore it or recreate it with current inventory and delivery details.
3. If the page was moved, set up a 301 redirect from the old URL to the new one using your hosting control panel (typically .htaccess for Apache servers or your CMS redirect tool).
4. Remove https://junglekingdomflower.com/weed-delivery-williamsburg/ from your sitemap by editing sitemap.xml and resubmitting via Google Search Console.
5. In Google Search Console, check 'Coverage' to confirm the 404 is resolved, then request re-indexing of the corrected page if it was restored.

### 4. Page returns 404: https://junglekingdomflower.com/weed-delivery-bed-stuy/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/weed-delivery-bed-stuy/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your website's sitemap (the file that tells search engines what pages exist on your site) is actually returning a 404 error, meaning the page is not found. This confuses both visitors and search engine robots, who expect that page to exist based on the sitemap.

**Why it matters for your business:** Customers searching for 'weed delivery Bed-Stuy' may click a Google result pointing to this URL and land on an error page instead of a product page, causing lost sales and damaging trust.

**Technical root cause:** Either the page was deleted or moved without updating the sitemap, or the URL slug (weed-delivery-bed-stuy) no longer maps to a published page in the CMS.

**Recommended fix — step by step**

1. Check your CMS (WordPress, Shopify, custom platform) to confirm whether a 'Bed-Stuy delivery' or location-specific page actually exists; search for 'bed-stuy' in your page/post listings
2. If the page should exist, restore it from a backup or republish it; if it was intentionally deleted, proceed to step 3
3. Remove the dead URL from your sitemap: locate sitemap.xml in your admin panel or root directory and delete or comment out the line containing '/weed-delivery-bed-stuy/'
4. If this is a location page that was consolidated into another page, set up a 301 redirect (permanent redirect) from /weed-delivery-bed-stuy/ to the correct URL using your CMS plugin (e.g., Redirection for WordPress) or server config
5. Resubmit your updated sitemap to Google Search Console (Search Console → Sitemaps → click your sitemap URL → Request indexing)
6. Use Google Search Console's 'Removed URLs' report to check if this 404 is still being crawled; if yes, request removal

### 5. Page returns 404: https://junglekingdomflower.com/terms-conditions/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** compliance
- **Page URL:** https://junglekingdomflower.com/terms-conditions/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

Your sitemap (the file that tells Google which pages exist on your site) lists a Terms & Conditions page at /terms-conditions/, but when visitors or search engines try to load it, they get a 404 error—meaning the page doesn't actually exist or has been moved. This creates a bad user experience and signals to Google that your sitemap is out of date.

**Why it matters for your business:** Broken links harm your search rankings, frustrate customers looking for legal terms, and may trigger compliance issues if regulators expect a Terms & Conditions page to be publicly available.

**Technical root cause:** The page URL was either deleted, moved to a different path, or never created—but the sitemap.xml file was not updated to remove it.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/sitemap.xml in your browser and download or view it to confirm the /terms-conditions/ URL is listed
2. Check your site's navigation and admin panel to find where your Terms & Conditions page actually lives (or confirm it doesn't exist)
3. If the page exists at a different URL, update the sitemap entry to point to the correct path
4. If the page does not exist, remove the /terms-conditions/ entry from sitemap.xml
5. After updating the sitemap, go to Google Search Console (search.google.com) → Sitemaps → re-submit your sitemap
6. Wait 24–48 hours for Google to re-crawl and verify the error is resolved

### 6. Page returns 404: https://junglekingdomflower.com/blog/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

Your sitemap lists a /blog/ page, but when Google (or customers) try to visit it, the server returns a 404 error — meaning 'page not found.' This breaks the user experience and signals to search engines that your sitemap is out of sync with your actual site.

**Why it matters for your business:** You're losing potential organic search traffic from blog-related keywords, and customers who click blog links from search results or social media will hit a dead end instead of engaging with your content.

**Technical root cause:** The /blog/ URL is referenced in your XML sitemap but the page either does not exist on the server, has been deleted, or is misconfigured. This mismatch between the sitemap and live content confuses both crawlers and visitors.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/blog/ directly in your browser and confirm the 404 error.
2. Check your sitemap file (usually at /sitemap.xml) and remove the /blog/ entry if the page is intentionally gone, or note the correct URL if it has been moved.
3. If you want a blog, restore the /blog/ page or create it with at least one published post; if not, delete the /blog/ entry from sitemap.xml and submit the updated sitemap to Google Search Console.
4. After fixing, go to Google Search Console → Coverage → resubmit the sitemap to expedite re-crawl.
5. Check your URL structure in your CMS settings to ensure all sitemap entries map to real, published pages going forward.

### 7. Page returns 404: https://junglekingdomflower.com/blog/best-cannabis-brands-brooklyn/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/best-cannabis-brands-brooklyn/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A blog post URL is listed in your sitemap (the file search engines use to discover pages) but returns a 404 error, meaning the page no longer exists or was deleted. Customers clicking from search results or old links will land on a dead end, and Google will waste crawl budget trying to index a broken page.

**Why it matters for your business:** Lost SEO ranking power for cannabis-related keywords, wasted search traffic, and damage to your site's credibility if users encounter dead links—especially harmful for a niche market where every qualified visitor counts.

**Technical root cause:** The blog post was either deleted, moved to a different URL, or the sitemap was not updated after content removal. Search engines indexed the URL and will keep checking it until told otherwise.

**Recommended fix — step by step**

1. Verify the post still exists: visit the blog section and search for 'best cannabis brands brooklyn' or similar keywords to confirm it's truly deleted.
2. If the post exists under a different URL, note that new URL.
3. If the post is genuinely deleted: either restore it from backup, or create a 301 redirect from the old URL to a related post (e.g., your general cannabis brands page).
4. Update your sitemap (usually at /sitemap.xml or /sitemap.xml.gz) to remove the dead URL—if using WordPress, install Yoast SEO, go to Crawl Settings > Sitemaps, and regenerate.
5. Submit the updated sitemap to Google Search Console: go to Google Search Console > Sitemaps, paste the sitemap URL, and click Submit.
6. Monitor Search Console for 404 errors in the next 2–4 weeks to confirm the page is no longer reported as broken.

### 8. Page returns 404: https://junglekingdomflower.com/blog/best-pre-rolls-brooklyn/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/best-pre-rolls-brooklyn/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your site's sitemap (the index search engines use to crawl your content) is returning a 404 error, meaning it's gone or inaccessible. This creates friction: customers who click a link from Google or social media land on an error page instead of the content they expected, and search engines mark the page as broken, which hurts your ranking.

**Why it matters for your business:** You're losing potential customers at the moment they're most interested (mid-research phase), and Google is interpreting broken links as poor site maintenance, which lowers your visibility in local search results for cannabis dispensaries.

**Technical root cause:** The page URL was likely deleted, moved, or renamed without setting up a redirect. The sitemap still references the old URL, creating a mismatch between what search engines expect to find and what actually exists.

**Recommended fix — step by step**

1. Check if the blog post 'best-pre-rolls-brooklyn' still exists at a different URL by searching your site admin or CMS for 'pre-rolls' or 'brooklyn'; if found, note the new URL.
2. If the post no longer exists and was valuable, restore it from a backup or rebuild it — blog content about local product guides drives consistent cannabis discovery traffic.
3. If the post is genuinely deleted and won't be recreated, add a 301 redirect from /blog/best-pre-rolls-brooklyn/ to your main /blog/ page or a relevant category page (e.g., /products/pre-rolls/).
4. Regenerate your sitemap to remove the dead URL — in most CMS platforms (WordPress, Shopify, etc.), this is automatic after you delete/redirect; manually ping Google Search Console > Sitemaps to force a re-crawl.
5. Search Google Search Console for 'best-pre-rolls-brooklyn' to confirm it's no longer indexed; if it still shows, click 'Request indexing' on the new destination URL.

### 9. Page returns 404: https://junglekingdomflower.com/blog/weed-delivery-bed-stuy-guide/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/weed-delivery-bed-stuy-guide/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your site's sitemap (the file that tells Google which pages exist) is returning a 404 error, meaning it no longer exists or was moved without a redirect. Customers clicking links and search engines crawling your site will hit a dead end, wasting their time and signaling to Google that your site has quality issues.

**Why it matters for your business:** This broken page wastes SEO equity—Google invested crawl budget here, and any backlinks pointing to it are now worthless; it also frustrates customers looking for delivery info in Bed-Stuy, potentially pushing them to competitors.

**Technical root cause:** The page was either deleted, the URL slug changed, or the page was moved to a new location without setting up a 301 redirect (a permanent forwarding rule). The sitemap was not updated to match.

**Recommended fix — step by step**

1. Check your content management system (WordPress, Shopify, custom CMS, etc.) to see if the blog post 'weed-delivery-bed-stuy-guide' still exists in draft or trash; if it's live, verify the URL is correct.
2. If the page no longer serves a purpose, remove it from your sitemap: access your sitemap file (usually at /sitemap.xml or /sitemap-index.xml) and delete the entry for this URL.
3. If the page should exist, restore it from backup or republish it with the correct URL; then test the URL in your browser to confirm it returns a 200 status (success).
4. If the URL changed (e.g., from /blog/weed-delivery-bed-stuy/ to /delivery-guides/bed-stuy/), set up a 301 redirect from the old URL to the new one using your platform's redirect tool or .htaccess file.
5. Re-submit your updated sitemap to Google Search Console (at https://search.google.com/search-console/sitemaps) to notify Google of the fix.
6. Monitor this URL weekly in Search Console under 'Coverage' to ensure it no longer reports errors.

### 10. Page returns 404: https://junglekingdomflower.com/blog/cannabis-concentrates-guide/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/cannabis-concentrates-guide/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page that's listed in your sitemap (the file that tells search engines what pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. This breaks the user experience when someone clicks a link to that page, and it wastes search engine crawl time looking for content that isn't there.

**Why it matters for your business:** Broken links hurt your SEO rankings for cannabis-related keywords, reduce customer trust when they land on error pages, and waste search engine crawlers' time that could be indexing working pages—directly impacting your ability to be found for high-intent 'cannabis concentrates' searches.

**Technical root cause:** The page either was deleted without setting up a redirect, the URL path changed without updating the sitemap, or the content was moved to a different location. The sitemap still references the old URL, creating a mismatch.

**Recommended fix — step by step**

1. Check if the page exists at a different URL (e.g., /concentrates-guide/ instead of /cannabis-concentrates-guide/) and note the correct path.
2. If the page exists elsewhere, go to your site's .htaccess file (or redirect settings in your hosting panel) and add a 301 redirect from the broken URL to the correct one.
3. If the page content is truly gone and you don't plan to recreate it, remove the URL from your sitemap (usually at /sitemap.xml or via your CMS).
4. Regenerate and resubmit your sitemap to Google Search Console (search.google.com) to notify Google of the change.
5. Set up a monitoring alert (e.g., using Screaming Frog or Google Search Console 'Coverage' reports) to catch future 404s in the sitemap weekly.

### 11. Page returns 404: https://junglekingdomflower.com/brands/jeeter/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/jeeter/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

Your sitemap (the map search engines use to find all your pages) lists a page at /brands/jeeter/, but when Google or a customer tries to visit it, they get a 404 error (page not found). This tells search engines the page is broken and tells customers the product no longer exists.

**Why it matters for your business:** Broken product pages harm SEO rankings, waste crawl budget that Google could use on live pages, and confuse customers who land on the missing page from external links or ads.

**Technical root cause:** The page was either deleted or moved without updating the sitemap, or the URL slug in the sitemap doesn't match the actual URL structure on your site.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/brands/jeeter/ directly and confirm it returns 404.
2. Check if Jeeter products exist under a different URL path (e.g., /products/jeeter/ or /shop/jeeter/) using your site search or navigation.
3. If the product page is permanently gone, remove the /brands/jeeter/ URL from your sitemap file (usually sitemap.xml in your root directory or via an SEO plugin).
4. If the page should exist, restore the page content or redirect /brands/jeeter/ to the correct URL using a 301 redirect.
5. Regenerate and resubmit your sitemap to Google Search Console to notify Google of the change.
6. Check for any other dead links in your sitemap by running a crawl tool (e.g., Screaming Frog free tier) to catch similar issues.

### 12. Page returns 404: https://junglekingdomflower.com/brands/runtz/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/runtz/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

Your sitemap (the file that tells Google where your pages are) lists a page about Runtz brand products, but when visitors or search engines try to visit that URL, they get a 404 error — meaning the page doesn't exist or has been deleted. This creates a broken experience and wastes search engine crawling time.

**Why it matters for your business:** Potential customers searching for Runtz products won't find your page in Google, and if they click a link to that page, they leave your site frustrated — hurting both sales and your search ranking.

**Technical root cause:** The page either was deleted without updating the sitemap, or the URL path changed but the sitemap wasn't refreshed. Sitemaps are cached by search engines, so stale entries persist.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/brands/runtz/ directly to confirm it returns 404
2. Check your content management system (CMS) or product database to see if a Runtz brand page exists under a different URL path
3. If the page should exist, restore it from backup or recreate it with product listings
4. If Runtz is no longer carried, delete the URL from your sitemap file (typically at /sitemap.xml or /sitemap-index.xml) and resubmit via Google Search Console
5. After fixing, go to Google Search Console → Coverage → and request re-indexing of the corrected or removed URL
6. Set up monthly sitemap audits to catch future mismatches (or enable automated sitemap generation if your CMS supports it)

### 13. Page returns 404: https://junglekingdomflower.com/brands/ayrloom/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/ayrloom/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file that tells Google which pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. This confuses both search engines and customers who click links to that brand page.

**Why it matters for your business:** Search engines waste crawl budget on dead pages, and customers cannot browse the Ayrloom brand—losing potential sales and damaging trust in your site reliability.

**Technical root cause:** The /brands/ayrloom/ page either was deleted without updating the sitemap, the brand inventory was removed from the database, or a URL structure change was made without redirects.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/sitemap.xml and verify whether /brands/ayrloom/ is still listed; if yes, remove it and resubmit the sitemap to Google Search Console.
2. Check your site's brand management system or CMS to confirm Ayrloom is no longer an active brand; if it should exist, restore the page content or database entry.
3. If Ayrloom was moved or renamed, set up a 301 redirect from /brands/ayrloom/ to the new URL (e.g., /brands/ayrloom-cannabis/) so old links and search results point to the correct page.
4. In Google Search Console, go to Coverage report and verify the 404 disappears after fixes; resubmit the sitemap.
5. Audit other /brands/* URLs in the sitemap to ensure no similar dead pages exist.

### 14. Page returns 404: https://junglekingdomflower.com/brands/grassroots-cannabis/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/grassroots-cannabis/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page that's listed in your sitemap (the file that tells Google which pages exist on your site) is actually returning a 404 error — meaning it doesn't exist. This sends conflicting signals to search engines and breaks user experience if someone clicks a link to that page.

**Why it matters for your business:** Customers searching for 'Grassroots Cannabis' brands won't find your product page, and Google will gradually trust your sitemap less, hurting your overall search visibility for other product pages.

**Technical root cause:** The URL /brands/grassroots-cannabis/ is listed in your sitemap but the page has been deleted, moved, or never existed. The web server is configured to return HTTP 404 (not found) when accessed.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/brands/grassroots-cannabis/ directly to confirm it's broken.
2. Check your sitemap at https://junglekingdomflower.com/sitemap.xml or /sitemap-index.xml and remove the /brands/grassroots-cannabis/ entry.
3. If this product page should still exist, restore it from a backup or recreate it in your CMS.
4. If the page was intentionally removed, set up a 301 redirect from /brands/grassroots-cannabis/ to a related page (e.g., /brands/ or the correct Grassroots product page) so bookmarks and search results preserve traffic.
5. Regenerate and resubmit your sitemap via Google Search Console (Google > Search Console > Sitemaps > Resubmit).
6. Monitor Google Search Console > Coverage for any remaining 404 errors in the next 2–3 weeks.

### 15. Page returns 404: https://junglekingdomflower.com/brands/tyson-20/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/tyson-20/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your website's sitemap (the file that tells Google which pages to crawl) is returning a 404 error, meaning it no longer exists. When customers click links to this product or brand page, or when Google's crawler tries to index it, they hit a dead end. This wastes crawl budget and frustrates visitors.

**Why it matters for your business:** Lost sales opportunity: customers searching for Tyson products cannot reach that brand page, and search engines will gradually stop showing your site for brand-related queries.

**Technical root cause:** The /brands/tyson-20/ URL was either deleted, renamed, or moved without setting up a redirect. The sitemap file was not updated to remove the dead link.

**Recommended fix — step by step**

1. Verify whether the Tyson brand page should still exist: check your product inventory or content calendar to confirm if this brand is still carried.
2. If the page should exist, restore it or check your hosting file manager / CMS for a deleted or moved file.
3. If the page should NOT exist, log into your CMS admin or server and remove /brands/tyson-20/ from the sitemap.xml file.
4. If the URL was renamed or moved, set up a 301 redirect from /brands/tyson-20/ to the correct new URL (e.g., via .htaccess on Apache servers or CMS redirect plugins).
5. After fixing, submit the updated sitemap to Google Search Console (search.google.com > your property > Sitemaps) to re-crawl.

### 16. Page returns 404: https://junglekingdomflower.com/brands/jaunty/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/jaunty/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file that tells Google what pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. When customers or search engines try to visit https://junglekingdomflower.com/brands/jaunty/, they hit a dead end instead of seeing product or brand information.

**Why it matters for your business:** This wastes crawl budget (the limited time Google spends indexing your site), breaks any backlinks or internal links pointing to that brand page, and damages user experience if customers are directed there via email, social, or search results.

**Technical root cause:** The page either was deleted without updating the sitemap, the URL path changed without a redirect, or the brand content is unpublished but still referenced in the sitemap file.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/brands/jaunty/ directly and confirm it returns 404.
2. Log into your CMS admin panel and search for 'Jaunty' brand or any archived/unpublished content — restore it if it should be live, or delete it if it's obsolete.
3. If the brand page was intentionally removed, access your sitemap file (usually at /sitemap.xml or /sitemap-index.xml) and remove the dead URL from the list.
4. If the URL structure changed (e.g., brand page is now at /brands/jaunty-flower/), set up a 301 redirect from the old URL to the new one at the server level (via .htaccess for Apache, or your CMS redirect tool).
5. Resubmit your sitemap to Google Search Console (Settings → Sitemaps → paste sitemap URL and click 'Submit').
6. Run a site crawl again in 48–72 hours to confirm the error is gone.

### 17. Page returns 404: https://junglekingdomflower.com/brands/platinum-reserve/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** revenue
- **Page URL:** https://junglekingdomflower.com/brands/platinum-reserve/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A product page listed in your sitemap (the file that tells Google where your pages are) is returning a 404 error, meaning it no longer exists or is broken. When customers click links to this page or Google tries to index it, they'll hit a dead end instead of seeing product information.

**Why it matters for your business:** Lost sales from customers trying to find Platinum Reserve products, and lost SEO ranking power because Google can't crawl and index this page—which also hurts visibility for related searches.

**Technical root cause:** The page either was deleted without updating the sitemap, the URL structure changed (e.g., slug renamed), or the product was removed from inventory but the sitemap wasn't refreshed. The web server is correctly returning a 404 status code, but the sitemap still points to it.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/brands/platinum-reserve/ directly to confirm it's broken.
2. Check if the Platinum Reserve product still exists in your inventory system or CMS—if it does, restore the page; if not, proceed to step 3.
3. Remove the dead URL from your sitemap file (usually /sitemap.xml or generated via a CMS plugin) or regenerate the sitemap to exclude it.
4. If the product was renamed or moved, update any internal links pointing to the old URL to point to the new one.
5. Resubmit your updated sitemap to Google Search Console (search.google.com → your property → Sitemaps → re-upload or click 'Refresh').
6. Check Google Search Console for other 404 errors in the 'Coverage' report to catch similar issues.

### 18. Page returns 404: https://junglekingdomflower.com/order-east-williamsburg/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/order-east-williamsburg/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file that tells Google which pages exist on your site) is returning a 404 error, meaning it no longer exists or is misconfigured. This breaks the user experience for anyone trying to access that page and signals to search engines that your site structure is broken.

**Why it matters for your business:** Customers searching for the East Williamsburg location may land on a dead page, lose trust, and order elsewhere; Google also penalizes sites with broken sitemap links, hurting your search visibility for dispensary keywords.

**Technical root cause:** The URL /order-east-williamsburg/ is listed in your sitemap.xml but either the page was deleted without updating the sitemap, or a server redirect is missing. Search engines crawl the sitemap first and expect all listed URLs to return 200 OK responses.

**Recommended fix — step by step**

1. Check if this page should still exist: visit https://junglekingdomflower.com/order-east-williamsburg/ in your browser and confirm it's truly a 404.
2. If the East Williamsburg location still exists, restore the page or check the CMS (WordPress, Shopify, etc.) to ensure it's published and not in draft mode.
3. If the location/page was intentionally removed, access your sitemap.xml file (usually at /sitemap.xml) and remove the line containing '/order-east-williamsburg/'.
4. After editing the sitemap, resubmit it to Google Search Console: go to google.com/search/console → select your property → Sitemaps → paste https://junglekingdomflower.com/sitemap.xml → click Submit.
5. Wait 24–48 hours, then re-check the URL in Search Console's URL Inspection tool to confirm it's no longer flagged as an error.

### 19. Page returns 404: https://junglekingdomflower.com/dispensary/east-williamsburg/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** revenue
- **Page URL:** https://junglekingdomflower.com/dispensary/east-williamsburg/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file search engines use to discover all your content) is returning a 404 error — meaning it no longer exists or is broken. When customers click links to this page from search results or your own site, they'll hit a dead end. Search engines will also waste crawl time on a page that doesn't exist, which harms your search visibility.

**Why it matters for your business:** You're losing potential customers who find your East Williamsburg location in Google Search and land on an error page instead of your menu, hours, or ordering info — and search engines will gradually deprioritize your site if 404s accumulate.

**Technical root cause:** The page URL is registered in your sitemap.xml but either the page has been deleted, moved to a different URL path, or the server is misconfigured to return 404 instead of serving the actual content.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/dispensary/east-williamsburg/ directly in your browser and confirm it shows 404; take a screenshot for documentation.
2. Check your CMS (WordPress, Shopify, custom platform) to see if this location page exists—search admin for 'east-williamsburg' or browse your Dispensary/Locations section.
3. If the page should exist: restore it from backup, republish it, or verify the URL slug matches exactly (including hyphens and spelling).
4. If the page was intentionally removed or relocated: update your sitemap.xml to remove the dead URL, or redirect it to the correct new URL (301 redirect in your hosting control panel or WordPress plugin like Redirection).
5. After fixing, resubmit your sitemap to Google Search Console (Property Settings → Sitemaps → click 'Add/Test Sitemap') to signal the fix.
6. Monitor Google Search Console for 404 errors in the Coverage report weekly for the next month to confirm no new dead links.

### 20. Page returns 404: https://junglekingdomflower.com/dispensary/williamsburg/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/williamsburg/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page that you listed in your sitemap (the map search engines use to find your content) is returning a 404 error—meaning it doesn't exist or is broken. When customers click a link or Google tries to crawl it, they hit a dead end. This wastes crawl budget and frustrates both users and search engines.

**Why it matters for your business:** Broken location pages in your sitemap directly harm local SEO visibility for Williamsburg and similar searches, reducing foot traffic and online discovery for that area.

**Technical root cause:** Either the /dispensary/williamsburg/ page was deleted but not removed from the sitemap.xml file, or it's misconfigured on the server and returning 404 instead of 200 OK.

**Recommended fix — step by step**

1. Go to https://junglekingdomflower.com/sitemap.xml and download or view the full sitemap; search for 'williamsburg' to confirm it's listed
2. Visit https://junglekingdomflower.com/dispensary/williamsburg/ directly in a browser and verify it returns 404
3. Decide: either restore/republish the Williamsburg location page, or remove that URL from sitemap.xml
4. If removing from sitemap: access your site's root directory (via FTP, cPanel, or content management admin panel) and edit sitemap.xml to delete the <url><loc>https://junglekingdomflower.com/dispensary/williamsburg/</loc></url> block
5. If restoring the page: recreate the location content, ensure it's published/live on your server, then test the URL again in a browser
6. After fix, go to Google Search Console → Sitemaps → Resubmit your sitemap to notify Google of changes
7. Monitor Google Search Console → Coverage report over the next 48–72 hours to confirm the 404 errors disappear

### 21. Page returns 404: https://junglekingdomflower.com/dispensary/flatbush/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/flatbush/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file that tells search engines what pages exist on your site) is returning a 404 error, meaning it no longer exists or is not accessible. When customers click a link or search engines crawl that URL, they hit a dead end instead of finding dispensary information.

**Why it matters for your business:** This breaks customer journeys to a specific dispensary location, wastes search engine crawl budget on non-existent pages, and signals to Google that your site structure is broken—hurting your search rankings for dispensary location pages.

**Technical root cause:** The page URL exists in your sitemap but the actual page has been deleted, moved without a redirect, or the server is misconfigured. Search engines indexed it (hence the sitemap reference) but can no longer reach it.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/dispensary/flatbush/ in a browser and confirm it shows a 404 error.
2. Check if this dispensary location still exists—if it closed or moved, the page deletion was correct; if it should still exist, restore it from backup or recreate it.
3. If the page was intentionally removed, delete it from your sitemap: log into your website admin, find Sitemap settings (often under SEO or XML Sitemap plugins), and remove the flatbush URL.
4. If the page should exist but was moved to a new URL, set up a 301 redirect from /dispensary/flatbush/ to the new URL using your hosting control panel or a redirect plugin (e.g., Redirection for WordPress).
5. Regenerate and resubmit your sitemap to Google Search Console: go to google.com/webmasters, select your property, navigate to Sitemaps, and click 'Resubmit Sitemap'.
6. Check Google Search Console for other 404 errors in the 'Coverage' report under the 'Excluded' tab and repeat this process for any other broken dispensary location pages.

### 22. Page returns 404: https://junglekingdomflower.com/dispensary/crown-heights/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** revenue
- **Page URL:** https://junglekingdomflower.com/dispensary/crown-heights/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file that tells Google where your content lives) is returning a 404 error, meaning it no longer exists or is broken. This prevents both customers and search engines from accessing it, damaging discoverability and user trust.

**Why it matters for your business:** Potential customers searching for your Crown Heights location won't find it in search results, and anyone clicking a saved link or social media reference will hit a dead end—losing foot traffic and sales.

**Technical root cause:** The page URL exists in your sitemap.xml but the actual page has been deleted, moved without a redirect, or the site structure doesn't support that path. The server is configured to return HTTP 404 instead of forwarding traffic or restoring content.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/sitemap.xml and confirm whether /dispensary/crown-heights/ is still listed; if it is, remove it from the sitemap.
2. Check if the Crown Heights location page exists at a different URL (e.g., /locations/crown-heights/ or /crown-heights-dispensary/); if so, set up a 301 redirect from the old URL to the new one.
3. If the Crown Heights location is no longer in service, create a simple page at that URL explaining the closure and directing visitors to your active locations, or implement a 301 redirect to your main locations page.
4. Submit an updated sitemap to Google Search Console (https://search.google.com/search-console/) to remove the dead URL.
5. Check your server logs or hosting control panel for other 404 errors in the /dispensary/ path to identify additional broken location pages.

### 23. Page returns 404: https://junglekingdomflower.com/cannabis-101/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/cannabis-101/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file search engines use to discover your content) is returning a 404 error, meaning it no longer exists or is unreachable. Customers clicking links expecting educational content will hit a dead end, and Google will waste crawl budget on a page that isn't there.

**Why it matters for your business:** This damages your SEO rankings because search engines see broken links as a sign of poor site maintenance, and it frustrates customers seeking 'Cannabis 101' educational content that might convert them into buyers.

**Technical root cause:** The page /cannabis-101/ was either deleted, moved to a new URL without a redirect, or the sitemap wasn't updated after the page was removed.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/cannabis-101/ directly and confirm it is indeed returning a 404 error.
2. Check your CMS or hosting control panel (e.g., WordPress admin → Pages, or your site builder's page list) to see if the page still exists; if it does, republish it.
3. If the page was intentionally removed, access your sitemap file (usually at /sitemap.xml or /sitemap_index.xml) and remove the /cannabis-101/ URL entry.
4. If the page was moved to a new URL, set up a permanent 301 redirect from /cannabis-101/ to the new location using your CMS (WordPress: Redirection plugin, or hosting control panel > Redirects).
5. Resubmit your sitemap to Google Search Console: log in → your property → Sitemaps → click 'Add/test sitemap' and paste the sitemap URL.

### 24. Page returns 404: https://junglekingdomflower.com/cannabis-101/how-to-buy-legal-weed-nyc/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/cannabis-101/how-to-buy-legal-weed-nyc/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file that tells Google what pages exist on your site) is returning a 404 error, meaning it's not found. This happens when either the page was deleted without redirecting traffic elsewhere, or the URL in your sitemap is wrong. Both Google and customers who click links will hit a dead end.

**Why it matters for your business:** You're losing potential customers searching for 'how to buy legal weed in NYC'—a high-intent search query—and Google is wasting crawl budget on a broken page instead of indexing content that converts.

**Technical root cause:** The URL exists in your sitemap.xml but the actual page has either been deleted, moved to a different URL without a redirect, or never existed. Web servers and search engines follow what the sitemap says should be there.

**Recommended fix — step by step**

1. Check your live site: visit https://junglekingdomflower.com/cannabis-101/how-to-buy-legal-weed-nyc/ in a browser and confirm it's truly gone or if it loads.
2. If the page exists but shows 404: check your web server logs or CMS for why the page isn't rendering (contact your hosting provider or admin).
3. If the page was intentionally deleted: remove the URL from your sitemap.xml file and add a 301 redirect (permanent redirect) from the old URL to the most relevant replacement page (e.g., a general 'How to Buy' guide).
4. If the page should exist: restore it from backup or republish it through your CMS (WordPress, Shopify, custom platform, etc.).
5. After fixing, re-submit your updated sitemap to Google Search Console (Google → Search Console → Sitemaps → Re-submit).
6. Monitor Search Console for crawl errors over the next 2 weeks to confirm Google recrawls successfully.

### 25. Page returns 404: https://junglekingdomflower.com/cannabis-101/indica-vs-sativa-vs-hybrid/

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/cannabis-101/indica-vs-sativa-vs-hybrid/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page that your sitemap promises to search engines (cannabis-101/indica-vs-sativa-vs-hybrid/) is returning a 404 error, which means it doesn't exist. This sends conflicting signals to Google and Bing: your sitemap says 'this page is here,' but the server says 'nope, it's gone.' Both search engines and customers who click links will hit a dead end.

**Why it matters for your business:** You're losing potential customers searching for educational cannabis content (a common entry point for new dispensary shoppers), and Google will gradually trust your sitemap less, reducing visibility for your other pages.

**Technical root cause:** The page has been deleted, moved, or never published, but the sitemap was not updated to remove it. This creates a mismatch between what your site promises and what actually exists.

**Recommended fix — step by step**

1. Log into your site admin or CMS dashboard and search for any page with 'indica-vs-sativa-vs-hybrid' in the URL; if it exists in draft or archived state, either publish it or delete it permanently
2. If the page was intentionally deleted, regenerate your XML sitemap (most platforms have a 'Regenerate Sitemap' button in SEO settings) to remove the dead URL
3. Visit https://junglekingdomflower.com/cannabis-101/indica-vs-sativa-vs-hybrid/ directly to confirm it now returns 200 (success) or a proper 301 redirect to a live page
4. Submit the updated sitemap to Google Search Console (search.google.com → your site → Sitemaps → Resubmit), and request a crawl of the affected URL
5. Check your analytics or backlink tools for any external links pointing to this URL and redirect them to the correct educational content page if one exists, or to your main cannabis education hub

### 26. 25 broken internal link(s)

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier2.links.broken`

**What it means (plain English)**

Your site has 25 internal links pointing to pages that no longer exist (returning HTTP 404 errors). Visitors clicking these links land on error pages instead of useful content, creating frustration. Search engines also waste crawl budget following dead links, which signals poor site maintenance and hurts your search ranking.

**Why it matters for your business:** Broken links kill conversions—customers trying to learn about your products, read your blog, or contact you hit dead ends and may buy elsewhere. Search engines penalize sites with broken internal links, pushing you lower in results for local cannabis searches.

**Technical root cause:** Pages were likely deleted, renamed, or moved without updating the links pointing to them. This commonly happens during site redesigns, CMS migrations, or when content is consolidated.

**Recommended fix — step by step**

1. Run a full internal link audit: use a free tool like Screaming Frog SEO Spider (download, point at your domain) or Ahrefs Site Audit to identify all 404s and the pages linking to them.
2. For each broken link, decide: does the page still exist at a new URL (redirect needed), or was it genuinely deleted (remove the link)?
3. If pages were renamed/moved, set up 301 redirects from old URLs to new ones. In most CMS platforms (WordPress, Shopify, etc.), use a redirect plugin; for custom sites, ask your hosting provider to configure server-level redirects.
4. If pages were deleted, edit the linking pages and remove or update the dead links—prioritize high-traffic pages like your homepage, /order/, and /blog/.
5. After fixes are live, resubmit your sitemap to Google Search Console (follow Google's instructions for your CMS) to trigger a fresh crawl.
6. Set a quarterly reminder to re-run the audit and fix any new broken links.

### 27. A11y: Elements must only use permitted ARIA attributes (×3)

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

**What it means (plain English)**

Your site has star rating displays (showing "5 out of 5 stars") that use an ARIA label—a special HTML attribute meant to help screen readers—but the elements don't have a proper ARIA role assigned. This is like labeling a box without saying what kind of box it is. Screen readers get confused and may ignore or misread the label entirely.

**Why it matters for your business:** Customers using screen readers cannot understand your product ratings, degrading their shopping experience and potentially violating accessibility law (ADA), which could expose you to legal risk or complaints.

**Technical root cause:** The `.rstars` div elements have `aria-label` attributes but lack a `role` attribute. ARIA labels are only valid on elements with explicit roles (e.g., `role="img"`, `role="button"`); bare divs cannot use them.

**Recommended fix — step by step**

1. Open your site's HTML source (View > View Page Source in Chrome/Firefox), search for 'rstars' and 'aria-label' to locate the star rating markup.
2. Add `role="img"` to each `.rstars` div element, e.g. `<div class="rstars" role="img" aria-label="5 out of 5 stars">`.
3. Alternatively, remove `aria-label` entirely and instead wrap the stars in semantic HTML: `<figure><figcaption>5 out of 5 stars</figcaption></figure>` or use a list-based structure.
4. Test the fix using a free screen reader (NVDA on Windows, VoiceOver on Mac) or browser extension (axe DevTools) to confirm the label is now readable.
5. If you use a website builder (Shopify, WordPress, Wix, etc.), check its settings for a ratings/reviews plugin and look for an accessibility option in that plugin's documentation.

### 28. Page returns 404: https://junglekingdomflower.com/dispensary-near-me-crown-heights/

- **Severity:** P1   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary-near-me-crown-heights/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file that tells Google what pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. When customers click a link to this page or Google tries to index it, they'll see an error instead of your content. This wastes crawl budget and frustrates both users and search engines.

**Why it matters for your business:** Broken location pages hurt local SEO visibility for Crown Heights customers searching 'dispensary near me,' and any direct traffic or links to that URL result in a lost sale opportunity.

**Technical root cause:** The page was either deleted, moved, or the sitemap was not updated after the URL changed. The server is correctly returning a 404 status code, but the sitemap still points to the dead URL.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/dispensary-near-me-crown-heights/ in your browser to confirm it returns a 404.
2. Check your website backend (WordPress admin, CMS, or file explorer) to see if a 'Crown Heights' location page exists under a different URL or if it was deleted.
3. If the page should exist, restore or republish it; if it was intentionally removed, proceed to step 4.
4. Open your sitemap (usually at /sitemap.xml or /sitemap-index.xml) and remove the https://junglekingdomflower.com/dispensary-near-me-crown-heights/ entry.
5. If using WordPress, go to Settings → Reading → Permalink structure, then regenerate the sitemap using Yoast SEO (SEO → Sitemaps → click the XML Sitemap link to confirm refresh) or another sitemap plugin.
6. Submit the updated sitemap to Google Search Console (https://search.google.com/search-console) → Sitemaps → paste your sitemap URL → click Submit.
7. Wait 24–48 hours and return to Search Console → Coverage to confirm the 404 is no longer listed.

### 29. Page returns 404: https://junglekingdomflower.com/blog/indica-vs-sativa-brooklyn/

- **Severity:** P1   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/indica-vs-sativa-brooklyn/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

Your sitemap includes a blog post URL that no longer exists or was never published. When customers click that link or search engines try to index it, they hit a dead end. This creates a poor user experience and wastes search engine crawl budget on pages that don't deliver value.

**Why it matters for your business:** Broken sitemap entries dilute your search visibility, confuse customers looking for product education, and signal to Google that your site maintenance is neglected—potentially lowering your overall search rankings.

**Technical root cause:** The URL is listed in your sitemap.xml but the page has been deleted, moved, or never deployed. Sitemaps aren't automatically updated when content changes, so stale entries accumulate.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/sitemap.xml in a browser and confirm the URL is listed; if present, remove it or update the sitemap file directly.
2. Check your blog section (typically /blog or /posts) to see if this content exists under a different URL; if it does, update the sitemap entry to point to the correct path.
3. If the blog post was intentionally removed, delete the URL from your sitemap generator or CMS (WordPress: use Yoast SEO or All in One SEO → Sitemaps; static site: edit sitemap.xml and re-upload).
4. Set up a 301 redirect from the dead URL to your main blog index or product category page so any backlinks or bookmarks don't fully break.
5. After fixing, resubmit your sitemap to Google Search Console (Search Console → Sitemaps → paste https://junglekingdomflower.com/sitemap.xml and click Submit).
6. Check Google Search Console → Coverage → Excluded → Excluded by robots.txt or noindex to rule out crawl issues masking the real problem.

### 30. Page returns 404: https://junglekingdomflower.com/brands/kiva/

- **Severity:** P1   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/kiva/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file search engines use to find all your pages) is returning a 404 error, meaning it no longer exists or is broken. This tells both search engines and customers that the page is missing, damaging your credibility and search rankings.

**Why it matters for your business:** Customers trying to view your Kiva brand products won't find them, and search engines will deprioritize your site for brand-related searches—losing qualified traffic from people looking for that specific vendor.

**Technical root cause:** The URL /brands/kiva/ was indexed in your sitemap but the page has been deleted, moved, or the product line was removed without updating the sitemap or setting up a redirect.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/sitemap.xml and confirm whether /brands/kiva/ should still exist; if not, remove it from the sitemap file
2. Check your product database or CMS to see if Kiva products still exist under a different URL path
3. If Kiva products are permanently discontinued, delete the URL from the sitemap and submit the updated sitemap to Google Search Console (search.google.com)
4. If Kiva products still exist at a new URL, set up a 301 redirect from the old /brands/kiva/ path to the new one using your hosting control panel or .htaccess file
5. After fixing, re-crawl the site using a tool like Screaming Frog or your monitoring tool to verify the 404 is resolved

### 31. Page returns 404: https://junglekingdomflower.com/brands/eaton-botanicals/

- **Severity:** P1   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/eaton-botanicals/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your site's sitemap (the file search engines use to discover all your pages) is returning a 404 error—meaning it doesn't exist or has been deleted. Customers and Google will see a 'page not found' error when they try to visit it, which breaks the user experience and signals to search engines that your site may have broken links.

**Why it matters for your business:** This erodes trust with customers looking for Eaton Botanicals products, wastes search engine crawl budget on a dead page, and may lower your overall search ranking if multiple such pages exist.

**Technical root cause:** The URL was indexed and added to the sitemap but the page was either deleted, moved without a redirect, or never properly published. The web server returns HTTP 404 instead of 200 (OK) or 301 (redirect).

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/brands/eaton-botanicals/ in your browser and confirm it shows 404
2. Check your CMS admin panel (WordPress dashboard, Shopify admin, etc.) to see if the Eaton Botanicals brand/product page still exists as a draft or published item
3. If the page was intentionally deleted, remove it from your sitemap by regenerating the sitemap in your SEO plugin (Yoast, Rank Math) or CMS settings
4. If the page should exist, republish or restore it; if it moved to a new URL, add a 301 redirect from /brands/eaton-botanicals/ to the new location
5. Re-generate and re-submit your sitemap to Google Search Console (Search Console → Sitemaps → Delete old, upload new)
6. Monitor Search Console for crawl errors weekly until this and any similar 404s are resolved

### 32. Page returns 404: https://junglekingdomflower.com/brands/old-pal/

- **Severity:** P1   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/old-pal/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your sitemap (the file search engines use to find all your content) is returning a 404 error, meaning it no longer exists or is broken. When someone tries to visit https://junglekingdomflower.com/brands/old-pal/ — whether from Google search results, a link, or your sitemap — they'll see an error page instead of product content.

**Why it matters for your business:** Lost sales from customers trying to find the Old Pal brand, wasted search engine crawl budget on a broken link, and damage to your site's trustworthiness in Google's ranking system.

**Technical root cause:** The URL is still listed in your sitemap.xml file, but the page has been deleted, moved, or the brand product page no longer exists. Search engines are trying to crawl it and failing.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/brands/old-pal/ yourself to confirm it returns a 404 error.
2. Decide: is this brand still carried? If YES, restore the page from backup or recreate it with current product info. If NO, proceed to step 3.
3. If the brand is discontinued, remove the URL from your sitemap.xml file (usually in the root directory or your site admin backend).
4. If Old Pal was renamed or moved to a new URL, set up a 301 redirect from the old URL to the new one so existing links and search results automatically point to the correct page.
5. Resubmit your sitemap to Google Search Console: log in → Sitemaps → paste the sitemap URL → click Submit.
6. Check Google Search Console's Coverage report weekly for the next month to confirm the URL is removed and no new 404s appear for this brand.

### 33. Page returns 404: https://junglekingdomflower.com/cannabis-101/reading-cannabis-labels/

- **Severity:** P1   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/cannabis-101/reading-cannabis-labels/
- **Rule:** `tier2.page.404`

**What it means (plain English)**

A page listed in your site map (the file search engines use to find all your pages) is returning a 404 error, meaning it's broken or deleted. When customers click links to this page or search engines try to index it, they hit a dead end instead of seeing content.

**Why it matters for your business:** Broken links harm both SEO rankings and customer trust; if this educational content was driving organic traffic, you're now losing those visits and potential sales.

**Technical root cause:** The page URL exists in your sitemap but the actual page file has been deleted, moved without a redirect, or the URL structure changed without updating internal links and the sitemap.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/cannabis-101/reading-cannabis-labels/ in your browser and confirm it returns 404.
2. Check your content management system (WordPress admin → Pages, or equivalent) to see if a page titled 'Reading Cannabis Labels' exists; if it does, verify its current URL slug and confirm it's published.
3. If the page exists but URL changed, add a 301 redirect from the old URL to the new one (in WordPress: use Redirection plugin → Add New → Source URL (old) → Target URL (new)).
4. If the page was intentionally deleted, remove the URL from your sitemap (WordPress: Yoast SEO → Sitemaps → look for excluded posts, or manually edit sitemap.xml if self-hosted).
5. Re-fetch your sitemap in Google Search Console (Google Search Console → Sitemaps → select your sitemap → Request Indexing) to clear the error.
6. Check your analytics (Google Analytics or server logs) to see if this page was generating traffic; if yes, recreate the content or set up a permanent redirect to the closest live page.

### 34. Journey failed: default: homepage → age gate → menu visible

- **Severity:** P1   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** security
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier10.journey.failed`

**What it means (plain English)**

Your site is sending Content Security Policy (CSP) rules in 'report-only' mode, which means the browser logs violations but doesn't enforce them. One specific rule, 'upgrade-insecure-requests', doesn't work in report-only mode—it only works when CSP is enforced. Additionally, a third-party script from i.liadm.com is being blocked because your CSP doesn't explicitly allow it. These console errors don't break the age gate or menu, but they indicate misconfigured security headers that could mask real problems.

**Why it matters for your business:** For a cannabis retailer, CSP misconfiguration can hide injection attacks or malicious third-party code that could compromise customer data (payment info, location, age verification details) or expose your business to liability.

**Technical root cause:** Your web server is sending a Content-Security-Policy-Report-Only header instead of (or in addition to) the enforced Content-Security-Policy header. The 'upgrade-insecure-requests' directive and frame-src restrictions are only checked in report-only mode, so violations are logged but not blocked. A third-party vendor (likely an ad or marketing service) is trying to load from i.liadm.com, which isn't in your frame-src allowlist.

**Recommended fix — step by step**

1. Access your web server configuration (Apache .htaccess, nginx config, or hosting control panel) and locate the HTTP headers section.
2. Find the 'Content-Security-Policy-Report-Only' header and change it to 'Content-Security-Policy' (enforced mode) or remove report-only entirely if you have an enforced CSP in place.
3. In your CSP header, change 'upgrade-insecure-requests' to only appear in the enforced Content-Security-Policy, not in report-only.
4. Add 'https://i.liadm.com' to your frame-src directive (e.g., 'frame-src https://maps.google.com https://lab.alpineiq.com https://i.liadm.com') or remove it if it's an unwanted third party.
5. If you use a service like Cloudflare, go to Security → Custom Headers and apply the corrected CSP header.
6. After changes, clear your browser cache and run the journey test again to confirm console errors are gone.

### 35. A11y: Elements must meet minimum color contrast ratio thresholds (×57)

- **Severity:** P1
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier9.a11y.color-contrast`

**Detail**

Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds
Impact: serious
WCAG: wcag2aa, wcag143
Learn more: https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright

---

### P2 — 37 findings

### 1. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your site has a JSON-LD schema block (structured data that tells search engines about your business) that contains a syntax error. This means Google and other search engines can't fully read or trust the information you've marked up — it stops parsing partway through. The error is at position 3890, likely a stray character or malformed quote breaking the code.

**Why it matters for your business:** Search engines won't be able to reliably extract your business name, location, hours, or license information from this markup, which weakens local SEO visibility and may prevent rich snippets (like star ratings or store hours) from appearing in search results.

**Technical root cause:** The JSON-LD block contains a syntax error — most commonly an unescaped character (like a quote, newline, or special symbol) inside a string value, or a missing comma between properties. The parser fails at character position 3890.

**Recommended fix — step by step**

1. Open your site's homepage HTML in a browser, right-click → Inspect, and search for the `<script type="application/ld+json">` tag containing the LocalBusiness schema.
2. Copy the entire JSON-LD block (from the opening `{` to the closing `}`).
3. Paste it into the Google Structured Data Testing Tool (https://developers.google.com/search/tools/schema-markup-validator) — it will highlight the exact line and character where the error occurs.
4. Check line 172, column 1 (or the location shown by the validator) for common issues: unescaped quotes inside description/address fields, missing commas between properties, or trailing commas before the closing brace.
5. If your description, address, or other multi-line field contains quotes or special characters, ensure they are escaped with a backslash (e.g., `\"` for a quote).
6. Validate the corrected JSON using the same tool until it shows no errors.
7. Deploy the fix and re-test after 24 hours using Google Search Console → Enhancements → Structured Data to confirm the schema is now valid.

### 2. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/cannabis-delivery-brooklyn/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your website has a broken structured data block (JSON-LD) on the cannabis delivery page. Structured data is code that tells search engines what your page is about. A syntax error at position 873 means the JSON is malformed — likely a missing comma, misplaced quote, or unclosed bracket — so Google cannot parse it and will ignore the entire block.

**Why it matters for your business:** Search engines cannot understand your page's content properly, which reduces the chance your delivery service appears in local search results, maps, or rich snippets that drive clicks and orders.

**Technical root cause:** The JSON-LD schema block contains a syntax error (likely truncated or improperly escaped text in the description field). The parser stops at position 873 because it encounters an unexpected character after valid JSON.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/cannabis-delivery-brooklyn/ in a browser and inspect the page source (Ctrl+F on Windows, Cmd+F on Mac, search for '<script type="application/ld+json"')
2. Copy the entire JSON-LD block and paste it into https://jsonlint.com/ to identify the exact syntax error
3. Common fixes: ensure all quote marks are paired, check for unescaped characters in the description field, confirm commas separate all properties, and verify closing braces match opening braces
4. If you use a page builder or CMS (WordPress, Shopify, etc.), look for a SEO plugin (Yoast, All in One SEO, RankMath) and validate its structured data output in those tools
5. After fixing, re-test at https://search.google.com/test/rich-results to confirm Google can parse it
6. Deploy the corrected page and request re-indexing in Google Search Console (Coverage report → Request Indexing)

### 3. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brooklyn-dispensary/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your site has broken structured data (JSON-LD) on the Brooklyn dispensary page. Search engines use this code to understand your business details — location, hours, products. When it breaks mid-way through (position 865), Google stops reading it and may ignore critical info like your dispensary name, address, or hours.

**Why it matters for your business:** Broken schema means Google cannot reliably display your dispensary in local search results, Knowledge Panel, or rich snippets — reducing clicks from customers searching for cannabis near them.

**Technical root cause:** The JSON-LD block has a syntax error (likely an unescaped character, mismatched quote, or stray character) at line 12. This causes the parser to halt before completing the data structure.

**Recommended fix — step by step**

1. Open your page source (Ctrl+U or Cmd+U on https://junglekingdomflower.com/brooklyn-dispensary/) and find the <script type="application/ld+json"> block.
2. Copy the entire JSON block into a JSON validator (jsonlint.com or similar) to identify the exact syntax error.
3. Look for common culprits: unescaped quotes within description/name fields, missing commas between properties, or stray characters like line breaks inside string values.
4. If you use WordPress, check if a plugin (Yoast SEO, All in One SEO) is generating the schema — visit Settings → Plugins and disable each SEO plugin one at a time to isolate the culprit.
5. If schema is hand-coded in your theme, ask your hosting provider or developer to fix the JSON syntax, or use a schema generator (Google's Schema Markup Helper or Yoast's free tool) to rebuild it correctly.
6. After fixing, revalidate with Google's Rich Results Test (search.google.com/test/rich-results) to confirm parsing passes.
7. Repeat for any other affected pages (run full site audit to find all broken JSON-LD blocks).

### 4. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary-near-me-bed-stuy/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your page contains structured data (JSON-LD markup that helps search engines understand your content) with a syntax error at position 890. This means there's a malformed character or extra punctuation breaking the code block. Search engines may ignore this markup entirely, losing valuable context about your business.

**Why it matters for your business:** Broken structured data prevents Google from fully understanding your dispensary location, hours, and products, which directly reduces your visibility in local search results and knowledge panels — critical for foot traffic.

**Technical root cause:** The JSON-LD block has an unexpected character (likely a quote, bracket, or comma) after a closing brace, or a missing/extra quote within a string value. This is typically caused by copy-paste errors, template bugs, or improper escaping of special characters in field values.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/dispensary-near-me-bed-stuy/ and view the page source (Ctrl+U or Cmd+U in your browser).
2. Search for the first <script type="application/ld+json"> block on the page.
3. Copy the entire JSON block and paste it into the Google Structured Data Testing Tool (https://developers.google.com/search/docs/appearance/structured-data) to pinpoint the exact error line.
4. Look for unescaped quotes or backslashes in field values like business name, description, or address — these must be escaped as \" or \\.
5. If you use a CMS plugin (Yoast SEO, RankMath, etc.), go to that plugin's settings, find the local business or schema section, and re-save without editing — this often auto-corrects formatting.
6. If manually edited, remove any trailing commas before closing braces, and ensure every string value is wrapped in double quotes.
7. Re-test in the Google Structured Data Testing Tool until it shows zero errors.
8. Monitor the page again in 48 hours to confirm Google re-crawled it.

### 5. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/stiiizy-brooklyn/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

A structured data block (JSON-LD) on your blog post about STIIIZY products is malformed — it has extra characters that break parsing at character 752. Search engines use this structured data to understand your content; when it's broken, they can't read it and may ignore the page entirely.

**Why it matters for your business:** Google cannot properly index this blog post for product searches (e.g., 'STIIIZY pods near me'), reducing organic traffic and visibility for a revenue-driving content piece.

**Technical root cause:** The JSON-LD block contains an unclosed or improperly escaped quote, or a trailing comma before the closing brace. This is commonly caused by a theme, plugin, or manual edit that didn't properly close the JSON object.

**Recommended fix — step by step**

1. Open https://junglekingdomflower.com/blog/stiiizy-brooklyn/ in a browser, right-click → Inspect, then search for the <script type='application/ld+json'> tag.
2. Copy the entire JSON block and paste it into https://jsonlint.com to identify the exact syntax error.
3. If using WordPress, check the page editor → Code block or HTML widget for stray characters after the closing } brace.
4. Correct the JSON syntax (usually remove trailing commas, close unclosed quotes, or remove extra characters after }).
5. Save and verify the fix using Google's Rich Results Test (https://search.google.com/test/rich-results) — paste the post URL and confirm 'BlogPosting' passes.
6. Repeat for any other blog posts with the same template/error (check Google Search Console → Coverage → Error for other affected URLs).

### 6. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/cannabis-edibles-guide-nyc/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your blog post has a malformed JSON-LD block (a code snippet that tells Google what your content is about). The JSON parser hit an unexpected character at position 757, which usually means extra punctuation, an unclosed quote, or mismatched brackets. This prevents search engines from fully understanding the page's structured data.

**Why it matters for your business:** Google may not properly index this blog post or display it with rich snippets (star ratings, publication date, etc.) in search results, reducing click-through rates and organic traffic to your edibles guide.

**Technical root cause:** The JSON-LD schema block contains a syntax error—likely a missing comma, unescaped quote, or trailing bracket. The evidence snippet is truncated, so the full error lies after position 757 in the actual page source.

**Recommended fix — step by step**

1. Open https://junglekingdomflower.com/blog/cannabis-edibles-guide-nyc/ in a browser and view the page source (Ctrl+U or Cmd+U)
2. Search for the first occurrence of '{"@context":"https://schema.org"' to locate the schema block
3. Copy the entire JSON-LD block (from opening { to closing }) and paste it into the Google Structured Data Testing Tool (https://validator.schema.org/)
4. The tool will highlight the exact syntax error; fix it (common issues: add missing comma after field, escape quotes in descriptions with backslash, ensure all opening braces have closing braces)
5. If you use a page builder or CMS (WordPress, Webflow, etc.), edit the blog post and locate the JSON-LD field; if using a plugin like Rank Math or Yoast SEO, check the 'Advanced' section under that post and fix the schema
6. Re-test in the Structured Data Testing Tool to confirm valid JSON
7. Clear any cached versions by waiting 24 hours or submitting the URL to Google Search Console

### 7. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/blog/first-time-dispensary-brooklyn/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your blog post contains a malformed JSON-LD schema block — this is machine-readable code that tells search engines what your page is about. The code breaks at position 772, likely due to an unescaped quote mark or missing comma. Search engines can't parse it, so they ignore the structured data entirely.

**Why it matters for your business:** Google and other search engines won't recognize this as a blog post in search results, losing an opportunity for rich snippets (star ratings, publication date) that make your content stand out and drive clicks.

**Technical root cause:** The JSON-LD string contains a character that breaks JSON syntax rules — typically an unescaped double quote in the description field, or a missing comma between properties. The truncated preview suggests the description field is not properly escaped or closed.

**Recommended fix — step by step**

1. Open the source code of https://junglekingdomflower.com/blog/first-time-dispensary-brooklyn/ in your browser (right-click → View Page Source) and search for '"@context":"https://schema.org"' to locate the schema block
2. Copy the entire JSON-LD block (from opening { to closing }) into a JSON validator tool at https://jsonlint.com/ to pinpoint the exact syntax error
3. Look for unescaped quote marks inside the 'description' field — any double quote must be written as \" instead
4. If you use WordPress, install the Yoast SEO plugin (free version) or All in One SEO, which auto-generates and validates BlogPosting schema on posts
5. After correcting the JSON, run the page through Google's Rich Results Test (https://search.google.com/test/rich-results) to confirm the schema now parses correctly
6. Check all other blog posts for the same error pattern — search your HTML for any other BlogPosting schema blocks and validate them too

### 8. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/brands/mfny/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your website contains malformed JSON-LD markup (structured data that tells search engines what your pages are about). The JSON is breaking at position 1096, likely due to an unclosed quote, unescaped character, or stray comma. Search engines cannot read this data, so they miss important signals about your brand pages.

**Why it matters for your business:** Broken schema markup reduces your visibility in search results for brand pages like MFNY, making it harder for customers searching for specific cannabis products to find you.

**Technical root cause:** The JSON-LD block contains a syntax error—typically an unescaped special character (quote, backslash, or newline) within a field value, or a missing closing brace. The preview cuts off mid-description, suggesting the error is in how the description or a subsequent field is formatted.

**Recommended fix — step by step**

1. Open the affected page (https://junglekingdomflower.com/brands/mfny/) in a browser, right-click → Inspect, and search for the <script type="application/ld+json"> tag.
2. Copy the entire JSON block and paste it into https://jsonlint.com/ to identify the exact syntax error.
3. Check for unescaped quotes or backslashes in the 'description' field—these must be escaped as \" and \\.
4. Ensure the JSON block ends with a closing brace } followed by </script>.
5. If using a CMS (WordPress, Shopify, etc.), check the plugin generating this schema (e.g., Yoast SEO, All in One Schema) and re-save the page settings.
6. After fixing, re-test using Google's Rich Results Test (https://search.google.com/test/rich-results) to confirm the schema parses.

### 9. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/locations/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your locations page contains malformed JSON-LD code (a structured data format that tells search engines about your business). There's a syntax error around line 31—likely a missing comma, bracket, or quote—that breaks the entire schema block. Search engines will skip this invalid data, so they won't understand your location details.

**Why it matters for your business:** Search engines cannot parse your location information, which hurts local SEO visibility and may prevent your dispensaries from appearing in Google Maps, local packs, or location-based searches—critical for foot traffic.

**Technical root cause:** The JSON-LD block is missing or has incorrect punctuation (typically a missing comma between properties or an unclosed quote). The parser stops at position 1433 because it encounters unexpected characters after valid JSON ends.

**Recommended fix — step by step**

1. Open the page source (Ctrl+U / Cmd+U) and search for the JSON-LD block starting with '"@context":"https://schema.org"'
2. Copy the entire <script type="application/ld+json"> block and paste it into a JSON validator at jsonlint.com to identify the exact error
3. Look for common issues: missing commas between properties, unclosed curly braces { or square brackets [, or unescaped quotes inside string values
4. If using a page builder (Elementor, Divi, Oxygen), check the schema/structured data plugin settings for the Locations page and re-save the block
5. If hand-coded, fix the JSON syntax error (the validator will pinpoint the line), then validate again until jsonlint shows 'Valid JSON'
6. After fixing, use Google's Rich Results Test (search.google.com/test/rich-results) to confirm the LocalBusiness schema now parses correctly
7. Submit the URL to Google Search Console → Coverage to re-crawl and recognize the corrected schema

### 10. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/bushwick/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your Bushwick dispensary page contains malformed structured data (JSON-LD) that browsers and search engines cannot fully parse. Think of it like sending a letter with a smudged address — it might still arrive, but delivery is unreliable. The parser stops at position 864, meaning something after that point breaks the syntax (likely a missing comma, mismatched quote, or stray character).

**Why it matters for your business:** Search engines may fail to index key information about your Bushwick location (address, hours, phone number), reducing visibility in local cannabis searches and Google Maps results — critical for foot traffic to that location.

**Technical root cause:** The JSON-LD block has a syntax error — typically a missing comma between fields, an unescaped quote inside a string value, or truncated content. The preview cuts off at 'description' field, suggesting the block is incomplete or malformed mid-property.

**Recommended fix — step by step**

1. Open the Bushwick page source (right-click → View Page Source, Ctrl+F/Cmd+F for '<script type="application/ld+json">')
2. Copy the entire JSON-LD block into a JSON validator (jsonlint.com or paste into your browser console) to identify the exact syntax error
3. Common fixes: ensure every string value is wrapped in quotes, every property has a comma after it (except the last one), and no smart quotes (" " ') are used — only straight ASCII quotes
4. If you use a page builder (Elementz, Divi, Oxygen), check if there's a built-in schema editor — disable/re-enable the schema block to force a refresh
5. If you hand-coded the JSON, fix the identified error and test again with jsonlint.com
6. After fix, visit Google Search Console (search.google.com) → URL Inspection → paste the Bushwick URL → Request Indexing to refresh Google's cache

### 11. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/bushwick/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your site contains a JSON-LD schema block (a structured data format that tells search engines about your page content) with a syntax error. The parser stopped at position 890 because of a malformed character or unclosed bracket. This means Google and other search engines cannot read the intended information about your dispensary page, reducing the chances it appears in local search results.

**Why it matters for your business:** Broken schema means search engines cannot properly index your dispensary location, hours, and products—directly hurting local SEO visibility when customers search 'dispensary near me' or 'cannabis in Bushwick.'

**Technical root cause:** The JSON-LD block likely contains an unescaped quote, missing comma, or unclosed bracket. Position 890 on line 12 suggests the error occurs mid-object or at the boundary between multiple schema blocks being concatenated without proper separation.

**Recommended fix — step by step**

1. Visit https://junglekingdomflower.com/dispensary/bushwick/ in your browser, right-click → Inspect → search the page source (Ctrl+F) for the first occurrence of '{"@context":"https://schema.org"' to locate the offending schema block
2. Copy the entire JSON-LD block (from opening '{' to closing '}') and paste it into https://jsonlint.com/ to identify the exact syntax error
3. Common fixes: (a) if you see a quote inside a string value, escape it with a backslash (e.g., change "description":"Loo" to "description":"Loo\"" if there's a stray quote); (b) ensure all field names and values are wrapped in double quotes; (c) verify commas separate each key-value pair; (d) confirm no trailing comma before the closing '}'
4. If using a CMS (WordPress, Shopify, etc.), check the plugin generating schema (likely Yoast SEO, Rank Math, or a custom location plugin) — export/re-save the Bushwick location page to regenerate clean JSON
5. After fix, test at https://search.google.com/test/rich-results using the Bushwick URL to confirm schema now parses

### 12. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/clinton-hill/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your website contains malformed structured data (JSON-LD) on the Clinton Hill dispensary page. Structured data is code that tells search engines what your page is about — in this case, it's broken at character position 880, likely due to an unescaped quote or missing comma. Search engines will skip this broken data and may not understand your page's purpose.

**Why it matters for your business:** Search engines may fail to display your dispensary's location, hours, or license information in search results, reducing click-through rates and foot traffic from local searches.

**Technical root cause:** The JSON-LD block contains a syntax error — most commonly an unescaped character (like a quote or special symbol) in a field value, or a missing comma between properties. This breaks the entire schema block.

**Recommended fix — step by step**

1. Open https://junglekingdomflower.com/dispensary/clinton-hill/ in your browser and right-click → Inspect to view the page source.
2. Search the source code (Ctrl+F) for the line containing '{"@context":"https://schema.org","@type":"WebPage"' to locate the JSON-LD block.
3. Copy the entire JSON-LD block and paste it into https://jsonlint.com to identify the exact syntax error.
4. If you use a website builder or CMS (WordPress, Shopify, custom platform), check that platform's settings for schema.org generators or plugins; look for improperly formatted business address, hours, or license fields.
5. Fix the error (usually: add missing comma, escape quotes in text fields, or close unclosed brackets) and re-test at jsonlint.com.
6. Re-check the page with Google's Rich Results Test (https://search.google.com/test/rich-results) to confirm the schema now parses correctly.
7. Repeat for all other dispensary location pages that may have the same issue.

### 13. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/clinton-hill/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your site has a JSON-LD schema block (structured data that tells search engines about your pages) with a syntax error. The parser stopped at position 890 because there's a stray character or missing comma breaking the code. This is like a misplaced parenthesis in an email address—it looks fine to humans but breaks the parser.

**Why it matters for your business:** Malformed schema means Google cannot reliably extract your business data (location, hours, reviews) for rich snippets and local search results, reducing your visibility in local cannabis searches and map results.

**Technical root cause:** The JSON-LD block is missing a closing brace, has an extra character, or contains an unescaped quote mid-string. Line 12 column 1 suggests the structure closes abruptly or a value extends into what should be the next key.

**Recommended fix — step by step**

1. Open https://junglekingdomflower.com/dispensary/clinton-hill/ in your browser, right-click → Inspect, then Ctrl+F (or Cmd+F) for '<script type="application/ld+json">' to find the schema block.
2. Copy the entire JSON-LD block and paste it into https://jsonlint.com/ to identify the exact syntax error (missing comma, unescaped quote, etc.).
3. Common fixes: ensure every key-value pair ends with a comma except the last one; wrap all string values in double quotes; escape any quotes inside strings with backslash (\")
4. If the page is templated (same schema on many dispensary location pages), fix the template source once rather than each page.
5. After fixing, re-run the block through jsonlint.com, then validate with Google's Rich Results Test (https://search.google.com/test/rich-results) pointing to the fixed URL.
6. Check your CMS or site builder for a schema plugin (if WordPress: Yoast SEO, Rank Math, Schema Pro) that may have auto-generated broken code; update or reconfigure it.

### 14. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/fort-greene/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your website has a JSON-LD structured data block (a special code format that tells Google what your page is about) that contains a syntax error—specifically, something is malformed at character 856. Google can't read this block, so it ignores it. This means search engines miss important information about your Fort Greene location page.

**Why it matters for your business:** Search engines may fail to display rich snippets (special info boxes) for your dispensary location in search results, reducing click-through rates and local visibility.

**Technical root cause:** The JSON-LD schema block contains a character or formatting error—likely a stray character, mismatched quote, or missing comma—that breaks the JSON structure after position 856.

**Recommended fix — step by step**

1. Copy the full JSON-LD block from your Fort Greene page HTML source (right-click → Inspect, search for <script type="application/ld+json">)
2. Paste it into a JSON validator tool (jsonlint.com) to identify exactly where the syntax breaks
3. Look for common issues: unescaped quotes inside strings, missing commas between key-value pairs, or extra characters after the closing brace
4. If you're using a plugin (Yoast SEO, RankMath, etc.), open that plugin's settings and regenerate the schema for the Fort Greene page
5. If editing HTML directly, compare the broken block against a working schema block from another location page to spot the difference
6. After fixing, re-test the page at search.google.com/test/rich-results to confirm Google can now read the schema
7. Check all other location/dispensary pages for the same error pattern and fix them in bulk if possible

### 15. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/prospect-heights/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your website includes structured data markup (JSON-LD) that helps Google understand your page content, but the code is malformed — it has a syntax error around line 12 that breaks the JSON block. Google will skip this block entirely and won't be able to read the information you're trying to share about your dispensary.

**Why it matters for your business:** Without valid schema markup, Google cannot reliably understand that Prospect Heights is a real dispensary location, which reduces your chances of appearing in local search results, maps, and knowledge panels when customers search for cannabis near them.

**Technical root cause:** The JSON-LD block contains an extra character or unclosed quote/bracket that terminates the JSON prematurely. This is typically caused by unescaped special characters in field values (e.g., a quote mark in the description) or a missing comma between properties.

**Recommended fix — step by step**

1. Open the HTML source of https://junglekingdomflower.com/dispensary/prospect-heights/ (right-click → View Page Source)
2. Search for the JSON-LD block starting with {"@context":"https://schema.org"
3. Use Google's Structured Data Testing Tool (https://schema.org/docs/structured-data.html → validator) to paste the JSON block and identify the exact error location
4. Look for unescaped quotes or backslashes within string values (e.g., in the description field); wrap them with backslashes (e.g., \" for quotes)
5. Verify all properties are comma-separated and brackets/braces are balanced
6. Re-validate in Google's tool; once valid, re-test the live URL in Google Search Console → Inspect URL to confirm Google parses it

### 16. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/prospect-heights/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your site contains malformed JSON-LD structured data (a machine-readable format that tells Google what your pages are about). The JSON block at position 890 has a syntax error—likely a missing comma, bracket, or quote—that prevents search engines from parsing it correctly. This only affects one page but signals a broader data quality issue.

**Why it matters for your business:** Search engines may ignore your structured data, reducing the chance Google displays rich snippets (star ratings, prices, hours) in search results, which lowers click-through rates from local searches where cannabis dispensaries compete fiercely.

**Technical root cause:** A JSON-LD block in the page source is syntactically invalid, most likely due to a missing delimiter (comma or closing brace) or a quote mismatch in the data being inserted—common when dynamically generating schema from a CMS or template without proper escaping.

**Recommended fix — step by step**

1. Open https://junglekingdomflower.com/dispensary/prospect-heights/ in a browser, right-click → Inspect, and search for the <script type="application/ld+json"> tag.
2. Copy the entire JSON block and paste it into https://jsonlint.com/ to identify the exact syntax error.
3. Look at line 12, column 1 in the JSON output; most likely a missing comma after a property value or an unclosed string.
4. If you use a CMS (WordPress, Contentful, custom Python/PHP), locate the template or plugin generating this schema and add proper quote escaping (e.g., in PHP use json_encode() with JSON_UNESCAPED_SLASHES).
5. After fixing, re-validate using Google's Rich Results Test (https://search.google.com/test/rich-results) to confirm the schema parses.
6. Check all other dispensary location pages (e.g., /dispensary/bed-stuy/) for the same error pattern and apply the fix site-wide.

### 17. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/downtown-brooklyn/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your site has a malformed JSON-LD schema block—a structured data format search engines use to understand page content. The JSON parser stopped at position 890 because there's a syntax error (likely a missing comma, bracket, or quote). Search engines may ignore this schema entirely, which weakens local SEO and product rich snippets.

**Why it matters for your business:** Invalid schema reduces your chances of appearing in Google Local Pack results (the map + listing box), which drives foot traffic to your Brooklyn dispensaries. It also prevents rich snippets (star ratings, hours, product info) from displaying in search results.

**Technical root cause:** A JSON-LD block in the page source has a syntax error—most commonly a missing comma between properties, an unclosed string, or a stray character. The error at position 890 suggests the schema was hand-edited or generated by a template system without proper validation.

**Recommended fix — step by step**

1. Open the page https://junglekingdomflower.com/dispensary/downtown-brooklyn/ in a browser, right-click → View Page Source, then search for the first <script type="application/ld+json"> tag.
2. Copy the entire JSON block into https://jsonlint.com/ to see exactly where the syntax error is (it will highlight the problem line).
3. Common fixes: ensure every key and string value is wrapped in double quotes, add missing commas between properties, close all opening brackets/braces.
4. If your site is WordPress, install the Yoast SEO plugin, go to SEO → Search Appearance → Schema, and regenerate the local business schema for each location.
5. If schema is hardcoded in HTML/template, have a developer fix the JSON syntax, then re-validate at jsonlint.com.
6. Use Google's Rich Results Test (https://search.google.com/test/rich-results) on the corrected page to confirm the schema now parses.

### 18. Missing core schema types: Organization, LocalBusiness

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier4.schema.missing-core`

**What it means (plain English)**

Your homepage is missing two critical pieces of structured data (machine-readable metadata that search engines use to understand your business). Organization schema tells Google who you are; LocalBusiness schema tells it where you're located, your hours, phone, and that you're a physical retail location. Together, they boost your visibility in local search results and Google Maps.

**Why it matters for your business:** Without LocalBusiness schema, you're invisible in local search queries like "cannabis dispensary near me" or "flower shop open now"—competitors with this markup will rank higher and capture foot traffic you're losing.

**Technical root cause:** Your site currently emits FAQ and WebSite schema but omits the two foundational schemas that Google expects from a local business. Search engines use these to populate knowledge panels, local pack results, and business listings.

**Recommended fix — step by step**

1. Open your homepage HTML source (right-click → Inspect → search for <script type="application/ld+json">)
2. Locate the existing FAQPage schema block and note its structure
3. Add a new JSON-LD block for Organization with: name ("Jungle Kingdom Flower"), logo URL, contact email, phone, and sameAs (links to your Google Business Profile and social media)
4. Add a LocalBusiness schema block with: @type "CannabisRetail" or "Store", name, address (street, city, state, zip), phone, email, hours (Mon–Sun), priceRange, and geo (latitude/longitude from Google Maps)
5. If you use WordPress, install the Yoast SEO plugin → go to Admin → Yoast SEO → Search Appearance → click your business type and fill the organization details form
6. If editing raw HTML, use Google's Structured Data Markup Helper (schema.org/docs) to validate before publishing
7. Submit your updated homepage to Google Search Console → URL Inspection tool to trigger re-indexing
8. Check Google Business Profile (google.com/business) to ensure hours, categories, and legal compliance info (licenses, age gate) are synced

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

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

**What it means (plain English)**

Your site has a Content-Security-Policy header set to 'report-only' mode, which means it logs violations but doesn't actually block unsafe content. For a cannabis retailer handling age-gated access and customer data, you need the policy in enforcement mode (not report-only) to prevent attackers from injecting malicious scripts or stealing visitor information.

**Why it matters for your business:** Without an enforced CSP, your site is vulnerable to cross-site scripting (XSS) attacks that could compromise customer trust, violate compliance requirements, and damage your reputation in a heavily regulated industry.

**Technical root cause:** The header is currently set to 'content-security-policy-report-only' instead of 'content-security-policy'. Report-only mode is useful for testing, but it must be promoted to enforcement mode once validated.

**Recommended fix — step by step**

1. Access your Cloudflare dashboard (cloudflare.com) → select your domain → navigate to 'Rules' or 'Transform Rules' (depending on your plan)
2. Look for any existing CSP configuration; if using a 'Modify Response Header' rule, change 'content-security-policy-report-only' to 'content-security-policy'
3. If you don't see an existing rule, create a new 'HTTP Response Header Modification' rule that matches all requests (/*) and adds the header: content-security-policy with the same directive list currently in report-only mode
4. Remove or disable the 'content-security-policy-report-only' header rule
5. Deploy the change and wait 5–10 minutes for Cloudflare to propagate
6. Verify enforcement using a free CSP validator (e.g., cspvalidator.org) or your browser DevTools (F12 → Network → click homepage request → Headers tab → confirm 'content-security-policy' is present, not 'report-only')

### 20. 55 tap targets under 44px at mobile-320

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

**What it means (plain English)**

Your website has 55 interactive buttons and links that are smaller than 44×44 pixels when viewed on a mobile phone. This makes them hard to tap accurately—especially for people with larger fingers, tremors, or vision impairments. Mobile users will misclick and get frustrated.

**Why it matters for your business:** Customers on phones will struggle to place orders, navigate menus, or find your location and hours, leading to abandoned carts and lost sales.

**Technical root cause:** The site's buttons, menu items, and navigation links were likely designed for desktop and not resized for touch-friendly mobile. CSS media queries or the framework's responsive system did not enforce the WCAG 2.5.5 minimum of 44×44 pixels.

**Recommended fix — step by step**

1. Open your site in Chrome DevTools (F12) and select mobile-320 viewport (mobile view). Use the inspect tool to click each small button and note its computed width and height in the Styles panel.
2. In your CSS file, add or update a mobile media query: @media (max-width: 480px) { button, a, [role='button'] { min-width: 44px; min-height: 44px; padding: 12px; } } to enforce minimum sizes.
3. For nav menus, increase padding around each link: padding: 12px 16px instead of padding: 4px 8px.
4. For icons without text labels, wrap them in a container that is 44×44: <a href='...' style='display:inline-block; width:44px; height:44px; display:flex; align-items:center; justify-content:center;'><icon/></a>
5. Re-test in DevTools mobile view to confirm all tappable elements now meet 44×44; use the Lighthouse accessibility audit (DevTools > Lighthouse > Accessibility) to re-run the check.
6. If your platform is WordPress, use a plugin like Elementor's built-in responsive controls or OceanWP to adjust button sizing per breakpoint without code.

### 21. 55 tap targets under 44px at mobile-375

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

**What it means (plain English)**

Your site has 55 interactive buttons, links, and form fields that are smaller than 44x44 pixels on mobile phones. This violates Web Content Accessibility Guidelines (WCAG) — a legal standard for digital accessibility. Visitors using touchscreens, people with motor disabilities, or anyone on a small phone will struggle to tap these elements accurately.

**Why it matters for your business:** Small tap targets frustrate customers trying to browse your menu, add products to cart, or navigate on mobile — leading to abandoned orders and negative reviews, especially on budget Android phones where screen precision is harder.

**Technical root cause:** The site's CSS or HTML uses undersized buttons, links, or form inputs without adequate padding or spacing. This is common when designs are desktop-first or when icon-only buttons lack sufficient clickable area around them.

**Recommended fix — step by step**

1. Audit your mobile stylesheet (or responsive CSS media queries for max-width: 767px) and identify buttons, menu items, and links smaller than 44×44px using Chrome DevTools → Inspect → measure element width and height.
2. For each undersized element, add CSS padding or increase the min-width / min-height to 44px minimum (e.g., `button { min-height: 44px; min-width: 44px; padding: 12px 16px; }`).
3. For icon-only buttons (menu toggle, close, search), wrap the icon in a larger invisible hit area: `<button style='width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;'><svg>...</svg></button>`.
4. Test on a real mobile device (or Chrome mobile emulation) and verify each tap target is comfortably clickable without zooming.
5. Use free tools like WAVE (wave.webaim.org) or Lighthouse (DevTools → Lighthouse → Accessibility) to re-scan after fixes and confirm the count drops to near-zero.

### 22. Lighthouse seo (mobile): 69/100

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

**What it means (plain English)**

Your mobile site's SEO score is 69/100, below the target of 95. This means search engines like Google may have difficulty understanding and ranking your pages properly on mobile devices, where most cannabis customers search. The Lighthouse report shows specific SEO issues that are preventing better visibility in mobile search results.

**Why it matters for your business:** A lower mobile SEO score directly reduces your visibility when customers search for cannabis products or dispensaries on their phones—your primary traffic source—costing you qualified customers to competitors with better mobile SEO.

**Technical root cause:** Common mobile SEO issues include missing or poorly formatted meta descriptions, heading structure problems, unoptimized images, slow mobile performance, or missing schema markup (structured data that helps search engines understand your business type and products).

**Recommended fix — step by step**

1. Download and review the full Lighthouse HTML report at /Users/markwallace/BKH/apex-sentinel/runs/2026-04-19T06-18-18-831Z/lighthouse/jungle-kingdom/lighthouse-mobile.html to identify the specific SEO failures
2. Check that all pages have unique, compelling meta descriptions (160 characters max) that include relevant keywords—use your site's admin panel or CMS to edit page settings
3. Verify your homepage and key product pages use proper heading hierarchy (one H1 per page, H2/H3 in logical order); use browser DevTools (F12) to inspect
4. Ensure you have schema.org markup for LocalBusiness and/or Cannabis Retailer on your homepage—ask your developer to add JSON-LD in the <head> tag, or use an SEO plugin if WordPress
5. Check that your license/compliance information is visible in page content (not hidden behind images); search engines need readable text to verify legitimacy
6. Optimize all images for mobile (compress, use responsive sizes) via tools like TinyPNG or your CMS's built-in media tools
7. Test mobile usability at https://search.google.com/test/mobile-friendly and fix any reported issues

### 23. Lighthouse seo (desktop): 69/100

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

**What it means (plain English)**

Your homepage scores 69/100 on Lighthouse SEO (a search engine crawler simulation), which is below the target of 95. Common culprits include missing or poorly structured page metadata (title tags, meta descriptions), unoptimized heading hierarchy, missing image alt text, or schema markup that search engines use to understand your site. Since this is a dispensary site, missing or weak structured data about your business, products, and age-gating compliance could hurt your visibility in cannabis-friendly search results.

**Why it matters for your business:** A 69 SEO score limits your ability to rank in organic search for local cannabis queries, directly reducing foot traffic and online orders without paid ads.

**Technical root cause:** The Lighthouse SEO audit detected gaps in on-page optimization signals: likely issues include missing or duplicate meta descriptions, poor heading structure, insufficient image optimization with alt text, or absent business schema markup (Organization, LocalBusiness, or Product schemas that tell Google who you are and what you sell).

**Recommended fix — step by step**

1. Open the full Lighthouse HTML report at the path provided and review the 'SEO' section; note each failed or incomplete check (e.g., 'Document has a valid meta description', 'Images have descriptive alt text').
2. Add or update the page title tag to include your business name + primary keyword: '<title>Jungle Kingdom Flower | Cannabis Dispensary [Your City]</title>' in the <head>.
3. Add a concise meta description (150–160 chars) in the <head>: '<meta name="description" content="[Your tagline about products, hours, delivery]. Age-gated. Licensed [license#]."/>'
4. Audit all images on the homepage: add descriptive alt text to each (e.g., alt="Premium cannabis flower strains" instead of alt="product") to improve accessibility and SEO.
5. Add Organization + LocalBusiness schema markup to your <head> or footer to tell search engines your business name, address, phone, hours, and age-gate requirement. Use schema.org templates or a free tool like Google's Structured Data Markup Helper.
6. Ensure all H1/H2/H3 headings flow logically (one H1 per page, subheadings in order) and include relevant keywords naturally.
7. Re-run Lighthouse (Chrome DevTools → Lighthouse tab → Analyze page load) after changes and target a score of 85+ before final launch.

### 24. Invalid JSON-LD

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/dispensary/greenpoint/
- **Rule:** `tier2.schema.invalid-json`

**What it means (plain English)**

Your site has a malformed JSON-LD schema block (a structured data format that helps search engines understand your page content). The JSON parser found an unexpected character at position 890, which means the code is incomplete or has a syntax error. This won't break your website visually, but search engines may ignore the schema entirely, losing valuable context about your dispensary locations.

**Why it matters for your business:** Malformed schema reduces your visibility in local search results and Google Maps, making it harder for customers searching 'dispensary near me' to find your Greenpoint and Bed-Stuy locations.

**Technical root cause:** The JSON-LD block is truncated or contains an unclosed quote, bracket, or brace. The evidence shows the schema ends mid-description, suggesting the output was cut off or improperly closed.

**Recommended fix — step by step**

1. Open the page source (Ctrl+U or Cmd+U in browser) and search for the schema block starting with '{"@context":"https://schema.org"'
2. Locate the end of this JSON block and verify it ends with a closing brace and closing script tag: }</script>
3. Check if the 'description' field is truncated; it should have a closing quote and comma before the next field
4. If you use a page builder or CMS plugin (Yoast SEO, Rank Math, Schema Pro, etc.), open that plugin's schema editor and re-save the page to regenerate clean JSON
5. If you hand-coded the schema, use a JSON validator (https://jsonlint.com/) to paste the entire block and confirm it's valid before publishing
6. Test the fixed page with Google Rich Results Test (https://search.google.com/test/rich-results) to confirm schema now parses correctly

### 25. No JSON-LD schema

- **Severity:** P2   |   **Priority:** 🟡 MEDIUM
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://junglekingdomflower.com/cannabis-101/cannabis-dosing-guide/
- **Rule:** `tier2.schema.none`

**What it means (plain English)**

Your Cannabis Dosing Guide page lacks structured data — invisible code that tells Google what your content is about and how to display it in search results. Without it, search engines can't confidently understand that this is educational cannabis content, which means you miss opportunities for rich snippets (special formatted results) and voice search visibility.

**Why it matters for your business:** Without schema markup, your educational content ranks lower for cannabis-related searches, and you lose competitive advantage for voice assistants and featured snippets that drive traffic to dispensaries.

**Technical root cause:** The page HTML contains no JSON-LD blocks (structured data format) in the <head> or <body>. Search engines default to plain-text interpretation, which is less precise and less rewarding for ranking.

**Recommended fix — step by step**

1. Open https://junglekingdomflower.com/cannabis-101/cannabis-dosing-guide/ in a browser and right-click → View Page Source, then search for '<script type="application/ld+json">' to confirm no schema blocks exist.
2. Visit schema.org/Article and schema.org/HowTo to review which schema type best fits your dosing guide (likely Article or HowTo).
3. Use Google's Structured Data Markup Helper (https://www.google.com/webmasters/markup-helper/) to highlight your page title, author, publish date, and main dosing steps, then copy the generated JSON-LD block.
4. Paste the JSON-LD block into your page template's <head> section (ask your host/CMS admin where to add global header scripts, or edit the page HTML directly if you have CMS access).
5. Test the result using Google's Rich Results Test (https://search.google.com/test/rich-results) and paste your page URL to confirm the schema validates without errors.
6. Repeat for other educational pages (strain guides, consumption methods) using the same Article schema template.

### 26. 55 tap targets under 44px at tablet-768

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

**What it means (plain English)**

Your site has 55 interactive buttons, links, and form fields that are smaller than 44×44 pixels when viewed on tablets. This makes them hard to tap accurately, especially for customers with less precise motor control or those using their fingers on smaller screens. Mobile and tablet users will experience frustration when trying to click menu items, add products to cart, or fill out forms.

**Why it matters for your business:** Tablet shoppers (a significant portion of cannabis retail browsing) will abandon checkout or menu navigation due to accidental mis-taps, directly reducing conversion rates and repeat visits.

**Technical root cause:** The site's CSS likely sets button/link padding and font sizes too small, or uses tiny icon-only buttons without adequate spacing around them. The 44×44px minimum is a WCAG accessibility standard designed for touch interfaces.

**Recommended fix — step by step**

1. Audit your primary action buttons (add-to-cart, checkout, age-gate confirmation): measure each in browser DevTools (right-click → Inspect → check width/height in Styles panel). Flag any under 44px.
2. Increase padding on small buttons: if you use CSS classes like `.btn` or `.cta`, add `min-height: 44px; min-width: 44px; padding: 12px 16px;` (adjust padding to fit design).
3. For icon-only buttons (hamburger menu, close, search): wrap the icon in a container with `width: 48px; height: 48px;` to exceed the minimum.
4. Test on a real iPad or use Chrome DevTools device emulation (toggle device toolbar → select iPad) and try tapping every interactive element.
5. Check your navigation menu, product filters, quantity selectors, and form inputs on tablet view—these are common offenders.
6. If using a plugin or theme framework (WordPress, Shopify, custom CMS), search your admin for 'button size' or 'touch target' settings and increase globally.

### 27. Lighthouse bestPractices (desktop): 74/100

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

**What it means (plain English)**

Lighthouse Best Practices score of 74 is below the recommended threshold of 90. This audit checks for common web security, performance, and user experience issues like outdated libraries, missing security headers, and improper API usage. While not a critical failure, it signals potential vulnerabilities or poor user experience patterns that could erode customer trust.

**Why it matters for your business:** A lower Best Practices score can reduce customer confidence in your site's security and professionalism, especially important for a cannabis retailer where compliance and trustworthiness directly affect sales and brand reputation.

**Technical root cause:** The specific issues are listed in the Lighthouse HTML report but commonly include: deprecated dependencies, missing security headers (like X-Frame-Options or Content-Security-Policy), console warnings, or third-party scripts without proper sandboxing.

**Recommended fix — step by step**

1. Download and open the Lighthouse HTML report at /Users/markwallace/BKH/apex-sentinel/runs/2026-04-19T06-18-18-831Z/lighthouse/jungle-kingdom/lighthouse-desktop.html
2. Scroll to 'Passed audits' and 'Issues' sections; note any red-flagged items under 'Fails audits' with details
3. If you see 'Includes front-end JavaScript libraries with known security vulnerabilities', ask your developer or hosting provider to run 'npm audit' and update libraries
4. If 'Missing security headers' appear, work with your hosting/server admin to add headers via .htaccess (Apache) or nginx config: X-Frame-Options, X-Content-Type-Options, Content-Security-Policy
5. If third-party scripts (analytics, chat, ads) are flagged, check each vendor's documentation for sandbox attribute or CSP exceptions
6. Re-run Lighthouse (via Chrome DevTools → Lighthouse → Generate report) after each fix to confirm score climbs toward 90+
7. Set a quarterly Lighthouse audit reminder to stay compliant as libraries and best practices evolve

### 28. Invalid JSON-LD

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/privacy-policy/
- **Rule:** `tier2.schema.invalid-json`

**Detail**

A schema block failed to parse: Unexpected non-whitespace character after JSON at position 808 (line 12 column 1)

### 29. Invalid JSON-LD

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/dispensary/fort-greene/
- **Rule:** `tier2.schema.invalid-json`

**Detail**

A schema block failed to parse: Unexpected non-whitespace character after JSON at position 890 (line 12 column 1)

### 30. Invalid JSON-LD

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/dispensary/downtown-brooklyn/
- **Rule:** `tier2.schema.invalid-json`

**Detail**

A schema block failed to parse: Unexpected non-whitespace character after JSON at position 886 (line 12 column 1)

### 31. Invalid JSON-LD

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/dispensary/park-slope/
- **Rule:** `tier2.schema.invalid-json`

**Detail**

A schema block failed to parse: Unexpected non-whitespace character after JSON at position 864 (line 12 column 1)

### 32. Invalid JSON-LD

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/dispensary/park-slope/
- **Rule:** `tier2.schema.invalid-json`

**Detail**

A schema block failed to parse: Unexpected non-whitespace character after JSON at position 890 (line 12 column 1)

### 33. Invalid JSON-LD

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/dispensary/greenpoint/
- **Rule:** `tier2.schema.invalid-json`

**Detail**

A schema block failed to parse: Unexpected non-whitespace character after JSON at position 859 (line 12 column 1)

### 34. No JSON-LD schema

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/cannabis-101/terpenes-guide/
- **Rule:** `tier2.schema.none`

**Detail**

Page has no JSON-LD structured data blocks.

### 35. 55 tap targets under 44px at mobile-414

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

**Detail**

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

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

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier8.lighthouse.bestPractices-mobile`

**Detail**

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

### 37. A11y: Heading levels should only increase by one

- **Severity:** P2
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier9.a11y.heading-order`

**Detail**

Ensure the order of headings is semantically correct
Impact: moderate
WCAG: 
Learn more: https://dequeuniversity.com/rules/axe/4.11/heading-order?application=playwright

---

### P3 — 35 findings

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

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/robots.txt
- **Rule:** `tier2.robots.no-sitemap`

**Detail**

robots.txt should contain a Sitemap: directive pointing to the XML sitemap.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 3. Description length 254 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/order/
- **Rule:** `tier2.meta.description-length`

**Detail**

Description should be 80-160 chars.

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

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/order/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 5. Title length 75 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/cannabis-delivery-brooklyn/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Delivery Brooklyn | Same-Day Weed Delivery | Jungle Kingdom Flower"

### 6. Description length 161 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/cannabis-delivery-brooklyn/
- **Rule:** `tier2.meta.description-length`

**Detail**

Description should be 80-160 chars.

### 7. Title length 74 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/blog/stiiizy-brooklyn/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "STIIIZY in Brooklyn: Full Guide + Best Pods (2026) | Jungle Kingdom Flower"

### 8. Description length 181 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/blog/stiiizy-brooklyn/
- **Rule:** `tier2.meta.description-length`

**Detail**

Description should be 80-160 chars.

### 9. Title length 80 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/blog/cannabis-edibles-guide-nyc/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Edibles Guide Brooklyn & NYC 2026 | Kiva, Eaton Botanicals & More | JKF"

### 10. Title length 75 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/blog/first-time-dispensary-brooklyn/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "First Time at a Brooklyn Dispensary? What to Expect | Jungle Kingdom Flower"

### 11. Description length 172 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/blog/first-time-dispensary-brooklyn/
- **Rule:** `tier2.meta.description-length`

**Detail**

Description should be 80-160 chars.

### 12. Title length 74 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/brands/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Brands at Jungle Kingdom Flower | Brooklyn Dispensary Brand Guide"

### 13. Title length 66 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/brands/mfny/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "MFNY Cannabis Brooklyn | Made for New York | Jungle Kingdom Flower"

### 14. Title length 73 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/locations/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Jungle Kingdom Flower Locations | Bed-Stuy and East Williamsburg Brooklyn"

### 15. Description length 162 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/locations/
- **Rule:** `tier2.meta.description-length`

**Detail**

Description should be 80-160 chars.

### 16. Title length 68 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/dispensary/clinton-hill/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Dispensary in Clinton Hill Brooklyn | Jungle Kingdom Flower"

### 17. Title length 67 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/dispensary/fort-greene/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Dispensary in Fort Greene Brooklyn | Jungle Kingdom Flower"

### 18. Title length 72 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/dispensary/prospect-heights/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Dispensary in Prospect Heights Brooklyn | Jungle Kingdom Flower"

### 19. Title length 66 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/dispensary/park-slope/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Dispensary in Park Slope Brooklyn | Jungle Kingdom Flower"

### 20. Title length 66 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/dispensary/greenpoint/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Dispensary in Greenpoint Brooklyn | Jungle Kingdom Flower"

### 21. Title length 76 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/cannabis-101/cannabis-dosing-guide/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Dosing Guide: How Much THC Should You Take? | Jungle Kingdom Flower"

### 22. Title length 80 chars

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/cannabis-101/terpenes-guide/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Cannabis Terpenes Guide: What They Are & Why They Matter | Jungle Kingdom Flower"

### 23. SSL Labs grade: unknown

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.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.

### 24. DNSSEC not enabled

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

**Detail**

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

### 25. No CAA DNS records

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.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.

### 26. DMARC policy is p=none (monitoring only)

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier5.fortress.dmarc-weak`

**Detail**

DMARC published at p=none — monitoring mode only. After 2-4 weeks of clean reports, tighten to p=quarantine → p=reject.

### 27. Lighthouse a11y (mobile): 86/100

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

**Detail**

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

### 28. LH mobile: Reduce unused JavaScript (Est savings of 65 KiB)

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.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/).

### 29. LH mobile: Properly size images (Est savings of 631 KiB)

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier8.lh-opportunity.uses-responsive-images-mobile`

**Detail**

Serve images that are appropriately-sized to save cellular data and improve load time. [Learn how to size images](https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/).

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

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.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/)

### 31. Lighthouse a11y (desktop): 90/100

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

**Detail**

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

### 32. LH desktop: Reduce unused JavaScript (Est savings of 65 KiB)

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.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/).

### 33. LH desktop: Properly size images (Est savings of 801 KiB)

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.com/
- **Rule:** `tier8.lh-opportunity.uses-responsive-images-desktop`

**Detail**

Serve images that are appropriately-sized to save cellular data and improve load time. [Learn how to size images](https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/).

### 34. LH desktop: Avoid serving legacy JavaScript to modern browsers (Est savings of 17 KiB)

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

**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/)

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

- **Severity:** P3
- **Page URL:** https://junglekingdomflower.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://junglekingdomflower.com/
_30 findings on this page_

- **[P1] 25 broken internal link(s)** 🔴 DO FIRST
  Your site has 25 internal links pointing to pages that no longer exist (returning HTTP 404 errors). Visitors clicking these links land on error pages instead of useful content, creating frustration. S
- **[P1] A11y: Elements must only use permitted ARIA attributes (×3)** 🔴 DO FIRST
  Your site has star rating displays (showing "5 out of 5 stars") that use an ARIA label—a special HTML attribute meant to help screen readers—but the elements don't have a proper ARIA role assigned. Th
- **[P1] A11y: Elements must meet minimum color contrast ratio thresholds (×57)** 
- **[P1] Journey failed: default: homepage → age gate → menu visible** 🟠 HIGH
  Your site is sending Content Security Policy (CSP) rules in 'report-only' mode, which means the browser logs violations but doesn't enforce them. One specific rule, 'upgrade-insecure-requests', doesn'
- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your site has a JSON-LD schema block (structured data that tells search engines about your business) that contains a syntax error. This means Google and other search engines can't fully read or trust 
- **[P2] Missing core schema types: Organization, LocalBusiness** 🟠 HIGH
  Your homepage is missing two critical pieces of structured data (machine-readable metadata that search engines use to understand your business). Organization schema tells Google who you are; LocalBusi
- **[P2] Missing security header: content-security-policy** 🟠 HIGH
  Your site has a Content-Security-Policy header set to 'report-only' mode, which means it logs violations but doesn't actually block unsafe content. For a cannabis retailer handling age-gated access an
- **[P2] 55 tap targets under 44px at mobile-320** 🟠 HIGH
  Your website has 55 interactive buttons and links that are smaller than 44×44 pixels when viewed on a mobile phone. This makes them hard to tap accurately—especially for people with larger fingers, tr
- **[P2] 55 tap targets under 44px at mobile-375** 🟠 HIGH
  Your site has 55 interactive buttons, links, and form fields that are smaller than 44x44 pixels on mobile phones. This violates Web Content Accessibility Guidelines (WCAG) — a legal standard for digit
- **[P2] 55 tap targets under 44px at mobile-414** 
- **[P2] 55 tap targets under 44px at tablet-768** 🟡 MEDIUM
  Your site has 55 interactive buttons, links, and form fields that are smaller than 44×44 pixels when viewed on tablets. This makes them hard to tap accurately, especially for customers with less preci
- **[P2] Lighthouse bestPractices (mobile): 75/100** 
- **[P2] Lighthouse seo (mobile): 69/100** 🟠 HIGH
  Your mobile site's SEO score is 69/100, below the target of 95. This means search engines like Google may have difficulty understanding and ranking your pages properly on mobile devices, where most ca
- **[P2] Lighthouse bestPractices (desktop): 74/100** 🟡 MEDIUM
  Lighthouse Best Practices score of 74 is below the recommended threshold of 90. This audit checks for common web security, performance, and user experience issues like outdated libraries, missing secu
- **[P2] Lighthouse seo (desktop): 69/100** 🟠 HIGH
  Your homepage scores 69/100 on Lighthouse SEO (a search engine crawler simulation), which is below the target of 95. Common culprits include missing or poorly structured page metadata (title tags, met
- **[P2] A11y: Heading levels should only increase by one** 
- **[P3] 1 image(s) missing alt text** 
- **[P3] SSL Labs grade: unknown** 
- **[P3] DNSSEC not enabled** 
- **[P3] No CAA DNS records** 
- **[P3] DMARC policy is p=none (monitoring only)** 
- **[P3] Lighthouse a11y (mobile): 86/100** 
- **[P3] LH mobile: Reduce unused JavaScript (Est savings of 65 KiB)** 
- **[P3] LH mobile: Properly size images (Est savings of 631 KiB)** 
- **[P3] LH mobile: Avoid serving legacy JavaScript to modern browsers (Est savings of 17 KiB)** 
- **[P3] Lighthouse a11y (desktop): 90/100** 
- **[P3] LH desktop: Reduce unused JavaScript (Est savings of 65 KiB)** 
- **[P3] LH desktop: Properly size images (Est savings of 801 KiB)** 
- **[P3] LH desktop: Avoid serving legacy JavaScript to modern browsers (Est savings of 17 KiB)** 
- **[P3] Dutchie menu iframe not found on /, /menu, or /shop** 

### https://junglekingdomflower.com/cannabis-delivery-brooklyn/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your website has a broken structured data block (JSON-LD) on the cannabis delivery page. Structured data is code that tells search engines what your page is about. A syntax error at position 873 means
- **[P3] Title length 75 chars** 
- **[P3] Description length 161 chars** 

### https://junglekingdomflower.com/blog/stiiizy-brooklyn/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  A structured data block (JSON-LD) on your blog post about STIIIZY products is malformed — it has extra characters that break parsing at character 752. Search engines use this structured data to unders
- **[P3] Title length 74 chars** 
- **[P3] Description length 181 chars** 

### https://junglekingdomflower.com/blog/first-time-dispensary-brooklyn/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your blog post contains a malformed JSON-LD schema block — this is machine-readable code that tells search engines what your page is about. The code breaks at position 772, likely due to an unescaped 
- **[P3] Title length 75 chars** 
- **[P3] Description length 172 chars** 

### https://junglekingdomflower.com/locations/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your locations page contains malformed JSON-LD code (a structured data format that tells search engines about your business). There's a syntax error around line 31—likely a missing comma, bracket, or 
- **[P3] Title length 73 chars** 
- **[P3] Description length 162 chars** 

### https://junglekingdomflower.com/dispensary/clinton-hill/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your website contains malformed structured data (JSON-LD) on the Clinton Hill dispensary page. Structured data is code that tells search engines what your page is about — in this case, it's broken at 
- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your site has a JSON-LD schema block (structured data that tells search engines about your pages) with a syntax error. The parser stopped at position 890 because there's a stray character or missing c
- **[P3] Title length 68 chars** 

### https://junglekingdomflower.com/dispensary/fort-greene/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your website has a JSON-LD structured data block (a special code format that tells Google what your page is about) that contains a syntax error—specifically, something is malformed at character 856. G
- **[P2] Invalid JSON-LD** 
- **[P3] Title length 67 chars** 

### https://junglekingdomflower.com/dispensary/prospect-heights/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your website includes structured data markup (JSON-LD) that helps Google understand your page content, but the code is malformed — it has a syntax error around line 12 that breaks the JSON block. Goog
- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your site contains malformed JSON-LD structured data (a machine-readable format that tells Google what your pages are about). The JSON block at position 890 has a syntax error—likely a missing comma, 
- **[P3] Title length 72 chars** 

### https://junglekingdomflower.com/dispensary/park-slope/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 
- **[P2] Invalid JSON-LD** 
- **[P3] Title length 66 chars** 

### https://junglekingdomflower.com/dispensary/greenpoint/
_3 findings on this page_

- **[P2] Invalid JSON-LD** 
- **[P2] Invalid JSON-LD** 🟡 MEDIUM
  Your site has a malformed JSON-LD schema block (a structured data format that helps search engines understand your page content). The JSON parser found an unexpected character at position 890, which m
- **[P3] Title length 66 chars** 

### https://junglekingdomflower.com/order/
_2 findings on this page_

- **[P3] Description length 254 chars** 
- **[P3] 1 image(s) missing alt text** 

### https://junglekingdomflower.com/blog/cannabis-edibles-guide-nyc/
_2 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your blog post has a malformed JSON-LD block (a code snippet that tells Google what your content is about). The JSON parser hit an unexpected character at position 757, which usually means extra punct
- **[P3] Title length 80 chars** 

### https://junglekingdomflower.com/brands/mfny/
_2 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your website contains malformed JSON-LD markup (structured data that tells search engines what your pages are about). The JSON is breaking at position 1096, likely due to an unclosed quote, unescaped 
- **[P3] Title length 66 chars** 

### https://junglekingdomflower.com/dispensary/bushwick/
_2 findings on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your Bushwick dispensary page contains malformed structured data (JSON-LD) that browsers and search engines cannot fully parse. Think of it like sending a letter with a smudged address — it might stil
- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your site contains a JSON-LD schema block (a structured data format that tells search engines about your page content) with a syntax error. The parser stopped at position 890 because of a malformed ch

### https://junglekingdomflower.com/dispensary/downtown-brooklyn/
_2 findings on this page_

- **[P2] Invalid JSON-LD** 
- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your site has a malformed JSON-LD schema block—a structured data format search engines use to understand page content. The JSON parser stopped at position 890 because there's a syntax error (likely a 

### https://junglekingdomflower.com/cannabis-101/cannabis-dosing-guide/
_2 findings on this page_

- **[P2] No JSON-LD schema** 🟡 MEDIUM
  Your Cannabis Dosing Guide page lacks structured data — invisible code that tells Google what your content is about and how to display it in search results. Without it, search engines can't confidentl
- **[P3] Title length 76 chars** 

### https://junglekingdomflower.com/cannabis-101/terpenes-guide/
_2 findings on this page_

- **[P2] No JSON-LD schema** 
- **[P3] Title length 80 chars** 

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

- **[P3] robots.txt does not reference sitemap** 

### https://junglekingdomflower.com/about-us/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/about-us/** 🔴 DO FIRST
  Your sitemap (the file that tells Google which pages exist on your site) lists a page at /about-us/, but when we visit that URL, the server returns a 404 error — meaning the page doesn't exist or has 

### https://junglekingdomflower.com/contact-us/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/contact-us/** 🔴 DO FIRST
  Your sitemap (the file search engines use to discover all your pages) lists a contact page at /contact-us/, but when we visit it, the server returns a 404 error—meaning the page doesn't exist or is mi

### https://junglekingdomflower.com/brooklyn-dispensary/
_1 finding on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your site has broken structured data (JSON-LD) on the Brooklyn dispensary page. Search engines use this code to understand your business details — location, hours, products. When it breaks mid-way thr

### https://junglekingdomflower.com/dispensary-near-me-bed-stuy/
_1 finding on this page_

- **[P2] Invalid JSON-LD** 🟠 HIGH
  Your page contains structured data (JSON-LD markup that helps search engines understand your content) with a syntax error at position 890. This means there's a malformed character or extra punctuation

### https://junglekingdomflower.com/dispensary-near-me-crown-heights/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/dispensary-near-me-crown-heights/** 🟠 HIGH
  A page listed in your sitemap (the file that tells Google what pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. When customers click a link to this page or

### https://junglekingdomflower.com/weed-delivery-williamsburg/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/weed-delivery-williamsburg/** 🔴 DO FIRST
  A page listed in your sitemap (the file search engines use to discover your content) is returning a 404 error, meaning it no longer exists or was deleted. When customers click links to this page or se

### https://junglekingdomflower.com/weed-delivery-bed-stuy/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/weed-delivery-bed-stuy/** 🔴 DO FIRST
  A page listed in your website's sitemap (the file that tells search engines what pages exist on your site) is actually returning a 404 error, meaning the page is not found. This confuses both visitors

### https://junglekingdomflower.com/privacy-policy/
_1 finding on this page_

- **[P2] Invalid JSON-LD** 

### https://junglekingdomflower.com/terms-conditions/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/terms-conditions/** 🔴 DO FIRST
  Your sitemap (the file that tells Google which pages exist on your site) lists a Terms & Conditions page at /terms-conditions/, but when visitors or search engines try to load it, they get a 404 error

### https://junglekingdomflower.com/blog/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/blog/** 🔴 DO FIRST
  Your sitemap lists a /blog/ page, but when Google (or customers) try to visit it, the server returns a 404 error — meaning 'page not found.' This breaks the user experience and signals to search engin

### https://junglekingdomflower.com/blog/best-cannabis-brands-brooklyn/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/blog/best-cannabis-brands-brooklyn/** 🔴 DO FIRST
  A blog post URL is listed in your sitemap (the file search engines use to discover pages) but returns a 404 error, meaning the page no longer exists or was deleted. Customers clicking from search resu

### https://junglekingdomflower.com/blog/indica-vs-sativa-brooklyn/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/blog/indica-vs-sativa-brooklyn/** 🟠 HIGH
  Your sitemap includes a blog post URL that no longer exists or was never published. When customers click that link or search engines try to index it, they hit a dead end. This creates a poor user expe

### https://junglekingdomflower.com/blog/best-pre-rolls-brooklyn/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/blog/best-pre-rolls-brooklyn/** 🔴 DO FIRST
  A page listed in your site's sitemap (the index search engines use to crawl your content) is returning a 404 error, meaning it's gone or inaccessible. This creates friction: customers who click a link

### https://junglekingdomflower.com/blog/weed-delivery-bed-stuy-guide/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/blog/weed-delivery-bed-stuy-guide/** 🔴 DO FIRST
  A page listed in your site's sitemap (the file that tells Google which pages exist) is returning a 404 error, meaning it no longer exists or was moved without a redirect. Customers clicking links and 

### https://junglekingdomflower.com/blog/cannabis-concentrates-guide/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/blog/cannabis-concentrates-guide/** 🔴 DO FIRST
  A page that's listed in your sitemap (the file that tells search engines what pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. This breaks the user experie

### https://junglekingdomflower.com/brands/
_1 finding on this page_

- **[P3] Title length 74 chars** 

### https://junglekingdomflower.com/brands/jeeter/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/jeeter/** 🔴 DO FIRST
  Your sitemap (the map search engines use to find all your pages) lists a page at /brands/jeeter/, but when Google or a customer tries to visit it, they get a 404 error (page not found). This tells sea

### https://junglekingdomflower.com/brands/runtz/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/runtz/** 🔴 DO FIRST
  Your sitemap (the file that tells Google where your pages are) lists a page about Runtz brand products, but when visitors or search engines try to visit that URL, they get a 404 error — meaning the pa

### https://junglekingdomflower.com/brands/ayrloom/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/ayrloom/** 🔴 DO FIRST
  A page listed in your sitemap (the file that tells Google which pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. This confuses both search engines and cust

### https://junglekingdomflower.com/brands/kiva/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/kiva/** 🟠 HIGH
  A page listed in your sitemap (the file search engines use to find all your pages) is returning a 404 error, meaning it no longer exists or is broken. This tells both search engines and customers that

### https://junglekingdomflower.com/brands/eaton-botanicals/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/eaton-botanicals/** 🟠 HIGH
  A page listed in your site's sitemap (the file search engines use to discover all your pages) is returning a 404 error—meaning it doesn't exist or has been deleted. Customers and Google will see a 'pa

### https://junglekingdomflower.com/brands/grassroots-cannabis/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/grassroots-cannabis/** 🔴 DO FIRST
  A page that's listed in your sitemap (the file that tells Google which pages exist on your site) is actually returning a 404 error — meaning it doesn't exist. This sends conflicting signals to search 

### https://junglekingdomflower.com/brands/tyson-20/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/tyson-20/** 🔴 DO FIRST
  A page listed in your website's sitemap (the file that tells Google which pages to crawl) is returning a 404 error, meaning it no longer exists. When customers click links to this product or brand pag

### https://junglekingdomflower.com/brands/jaunty/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/jaunty/** 🔴 DO FIRST
  A page listed in your sitemap (the file that tells Google what pages exist on your site) is returning a 404 error, meaning it no longer exists or is broken. When customers or search engines try to vis

### https://junglekingdomflower.com/brands/platinum-reserve/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/platinum-reserve/** 🔴 DO FIRST
  A product page listed in your sitemap (the file that tells Google where your pages are) is returning a 404 error, meaning it no longer exists or is broken. When customers click links to this page or G

### https://junglekingdomflower.com/brands/old-pal/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/brands/old-pal/** 🟠 HIGH
  A page listed in your sitemap (the file search engines use to find all your content) is returning a 404 error, meaning it no longer exists or is broken. When someone tries to visit https://junglekingd

### https://junglekingdomflower.com/order-east-williamsburg/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/order-east-williamsburg/** 🔴 DO FIRST
  A page listed in your sitemap (the file that tells Google which pages exist on your site) is returning a 404 error, meaning it no longer exists or is misconfigured. This breaks the user experience for

### https://junglekingdomflower.com/dispensary/east-williamsburg/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/dispensary/east-williamsburg/** 🔴 DO FIRST
  A page listed in your sitemap (the file search engines use to discover all your content) is returning a 404 error — meaning it no longer exists or is broken. When customers click links to this page fr

### https://junglekingdomflower.com/dispensary/williamsburg/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/dispensary/williamsburg/** 🔴 DO FIRST
  A page that you listed in your sitemap (the map search engines use to find your content) is returning a 404 error—meaning it doesn't exist or is broken. When customers click a link or Google tries to 

### https://junglekingdomflower.com/dispensary/flatbush/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/dispensary/flatbush/** 🔴 DO FIRST
  A page listed in your sitemap (the file that tells search engines what pages exist on your site) is returning a 404 error, meaning it no longer exists or is not accessible. When customers click a link

### https://junglekingdomflower.com/dispensary/crown-heights/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/dispensary/crown-heights/** 🔴 DO FIRST
  A page listed in your sitemap (the file that tells Google where your content lives) is returning a 404 error, meaning it no longer exists or is broken. This prevents both customers and search engines 

### https://junglekingdomflower.com/cannabis-101/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/cannabis-101/** 🔴 DO FIRST
  A page listed in your sitemap (the file search engines use to discover your content) is returning a 404 error, meaning it no longer exists or is unreachable. Customers clicking links expecting educati

### https://junglekingdomflower.com/cannabis-101/how-to-buy-legal-weed-nyc/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/cannabis-101/how-to-buy-legal-weed-nyc/** 🔴 DO FIRST
  A page listed in your sitemap (the file that tells Google what pages exist on your site) is returning a 404 error, meaning it's not found. This happens when either the page was deleted without redirec

### https://junglekingdomflower.com/cannabis-101/indica-vs-sativa-vs-hybrid/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/cannabis-101/indica-vs-sativa-vs-hybrid/** 🔴 DO FIRST
  A page that your sitemap promises to search engines (cannabis-101/indica-vs-sativa-vs-hybrid/) is returning a 404 error, which means it doesn't exist. This sends conflicting signals to Google and Bing

### https://junglekingdomflower.com/cannabis-101/reading-cannabis-labels/
_1 finding on this page_

- **[P1] Page returns 404: https://junglekingdomflower.com/cannabis-101/reading-cannabis-labels/** 🟠 HIGH
  A page listed in your site map (the file search engines use to find all your pages) is returning a 404 error, meaning it's broken or deleted. When customers click links to this page or search engines 

### https://junglekingdomflower.com/.env
_1 finding on this page_

- **[P0] Sensitive artifact exposed: /.env** 

### https://junglekingdomflower.com/.git/config
_1 finding on this page_

- **[P0] Sensitive artifact exposed: /.git/config** 🔴 DO FIRST
  Your website is exposing a Git configuration file (a developer tool file) that contains sensitive information about your codebase and deployment setup. This file should never be publicly accessible on

### https://junglekingdomflower.com/.git/HEAD
_1 finding on this page_

- **[P0] Sensitive artifact exposed: /.git/HEAD** 🔴 DO FIRST
  Your website is exposing Git version control files (internal developer files) to the public internet. When someone visits `/.git/HEAD`, they can see it exists and potentially access other Git files, w

### https://junglekingdomflower.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 and returns a successful response. This is a common entry point for attackers trying to break into websites. While WordPress logi


---

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