# Apex Sentinel — Green Genius NYC Monthly Audit

**URL:** https://greengeniusnyc.com/
**Platform:** wordpress
**Archetype:** lifestyle
**Run ID:** 2026-04-19T06-18-18-831Z
**Scanned:** 2026-04-19T06:18:19.213Z
**Duration:** 919s

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 | 51 | Full sitemap + linked pages |
| P0 (critical) | 1 | Site-down or compliance-breaking |
| P1 (urgent) | 6 | Significant revenue / SEO / UX impact |
| P2 (high) | 19 | Quality / ranking / trust degradation |
| P3 (medium) | 192 | Polish + optimization |
| "Do first" items | 5 | AI-flagged top priorities |
| Quick wins (< 30 min) | 48 | Fastest ROI items |

---

## Top 10 Actions (Ranked)

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

1. **[P0] 🔴 DO FIRST Sensitive artifact exposed: /wp-login.php** — _An unauthorized admin account could modify your site, inject malware, or take it offline — damaging customer trust, SEO rankings, and compliance with cannabis regulations that require secure operations._
   Page: https://greengeniusnyc.com/wp-login.php
   Effort: Quick win (< 30 min)
2. **[P1] 🔴 DO FIRST 1 mixed-content references (http://)** — _Mixed content warnings reduce customer confidence in your site security, particularly important for a cannabis retailer where compliance and legitimacy are critical to brand trust._
   Page: https://greengeniusnyc.com/
   Effort: Quick win (< 30 min)
3. **[P1] 🔴 DO FIRST A11y: ARIA dialog and alertdialog nodes should have an accessible name** — _Cannabis retailers are legally required to provide age verification, but inaccessible verification gates exclude disabled customers and expose you to ADA/Section 508 litigation risk, especially in NYC._
   Page: https://greengeniusnyc.com/
   Effort: Moderate (1-3 hours)
4. **[P1] 🔴 DO FIRST A11y: Elements must meet minimum color contrast ratio thresholds (×2)** — _Inaccessible buttons directly reduce conversions and create legal risk under the ADA; visitors who can't read your order button can't place orders, and you may face compliance complaints._
   Page: https://greengeniusnyc.com/
   Effort: Quick win (< 30 min)
5. **[P1] 🔴 DO FIRST Journey failed: default: homepage → age gate → menu visible** — _Visitors cannot pass your age verification gate or navigate your site, preventing access to product pages and blocking potential sales during a critical compliance checkpoint._
   Page: https://greengeniusnyc.com/
   Effort: Moderate (1-3 hours)
6. **[P1] 🟠 HIGH Lighthouse bestPractices (desktop): 59/100** — _A low Best Practices score erodes customer trust, may trigger browser warnings on checkout pages, and signals to Google that your site has quality or security concerns—potentially hurting organic search visibility for high-intent 'cannabis near me' and product searches._
   Page: https://greengeniusnyc.com/
   Effort: Moderate (1-3 hours)
7. **[P1] A11y: Links must have discernible text**
   Page: https://greengeniusnyc.com/
8. **[P2] 🟠 HIGH 7 console errors on homepage** — _These errors can break interactive features (product filters, age-gate verification, shopping cart) and may prevent Google from fully crawling and indexing your site, reducing organic search visibility and conversion potential._
   Page: https://greengeniusnyc.com/
   Effort: Moderate (1-3 hours)
9. **[P2] 🟠 HIGH Missing meta description** — _A missing meta description reduces click-through rates from search results, directly lowering qualified traffic to your blog and reducing opportunities to engage customers with educational cannabis content._
   Page: https://greengeniusnyc.com/blog/
   Effort: Quick win (< 30 min)
10. **[P2] 🟠 HIGH Missing meta description** — _A missing meta description reduces click-through rate from search results; potential customers see a generic excerpt instead of a compelling summary of your services, directly impacting foot traffic and online inquiries._
   Page: https://greengeniusnyc.com/services/
   Effort: Quick win (< 30 min)

---

## Findings by Severity

### P0 — 1 finding

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

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

**What it means (plain English)**

Your WordPress login page is publicly accessible at /wp-login.php. While this is WordPress's default, leaving it exposed makes it an easy target for automated attacks trying to guess passwords. Attackers can find this page and attempt thousands of login tries to break in.

**Why it matters for your business:** An unauthorized admin account could modify your site, inject malware, or take it offline — damaging customer trust, SEO rankings, and compliance with cannabis regulations that require secure operations.

**Technical root cause:** WordPress installs with /wp-login.php enabled by default. No firewall rule or .htaccess restriction is blocking access to this administrative path.

**Recommended fix — step by step**

1. Install the 'Wordfence Security' plugin: WordPress admin → Plugins → Add New → search 'Wordfence' → Install & Activate
2. In Wordfence settings (left sidebar), go to 'Login Security' → enable 'Change WordPress login URL' and set a custom URL (e.g., /secret-admin-portal)
3. Alternatively, add this to your .htaccess file in the root directory: '<FilesMatch "wp-login\.php"> Order allow,deny Deny from all </FilesMatch>' (requires SSH/File Manager access)
4. Test the block by visiting https://greengeniusnyc.com/wp-login.php in an incognito window — should show 403 Forbidden
5. If using Wordfence, set up 'Two-Factor Authentication' in Login Security settings for all admin accounts
6. Monitor Wordfence's attack log (Dashboard → Wordfence → Attacks) weekly to track blocked attempts

---

### P1 — 6 findings

### 1. 1 mixed-content references (http://)

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Quick win (< 30 min)
- **Business category:** security
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier5.mixed-content`

**What it means (plain English)**

Your website is loaded over HTTPS (secure), but one resource is being requested over HTTP (insecure). Modern browsers will block or warn users about this mismatch, which can degrade trust and break functionality. In this case, the OASAS helpline link is being referenced insecurely.

**Why it matters for your business:** Mixed content warnings reduce customer confidence in your site security, particularly important for a cannabis retailer where compliance and legitimacy are critical to brand trust.

**Technical root cause:** A link or embedded resource in your WordPress site (likely in a footer, widget, or page content) points to http://oasas.ny.gov instead of https://oasas.ny.gov, or the URL lacks a protocol and the browser defaults to HTTP.

**Recommended fix — step by step**

1. Log into WordPress admin → go to Posts/Pages and search for 'oasas.ny.gov' to find where this link appears
2. Edit the page or post and change 'http://oasas.ny.gov/HOPELine' to 'https://oasas.ny.gov/HOPELine' (add the 's' to http)
3. Check your WordPress Customizer (Appearance → Customize) for any widgets or footer text containing http:// links and update them to https://
4. Use a WordPress plugin like 'Better Find and Replace' (Search → Plugins → Add New, then search 'Better Find and Replace') to bulk-find any remaining http:// URLs in your database and replace with https://
5. Save and republish any changed pages
6. Test the homepage in Chrome DevTools (F12 → Console tab) to confirm no mixed-content warnings appear

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

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

**What it means (plain English)**

Your site has an age-gate popup (the dialog box that appears to verify visitors are 21+) that screen readers cannot identify or describe. Screen reader users—including your legally compliant visitors—cannot understand what the dialog is for or how to interact with it. This breaks accessibility for a material portion of your audience.

**Why it matters for your business:** Cannabis retailers are legally required to provide age verification, but inaccessible verification gates exclude disabled customers and expose you to ADA/Section 508 litigation risk, especially in NYC.

**Technical root cause:** The dialog element with id='baag3-gate' (likely from the BAAG3 age-gate plugin) has role='dialog' and aria-modal='true' but lacks an aria-label, aria-labelledby, or title attribute. Screen readers cannot announce the dialog's purpose.

**Recommended fix — step by step**

1. Log into WordPress Admin → Plugins → search 'BAAG3' or similar age-gate plugin and open its settings.
2. Look for 'Accessibility' or 'ARIA' options in the plugin; if present, enable them.
3. If no setting exists, contact the plugin author to add aria-label='Age Verification' or aria-labelledby to the dialog element.
4. As a temporary workaround, add this CSS snippet in WordPress Admin → Appearance → Additional CSS: `#baag3-gate { --aria-label: 'Age Verification'; }` (note: CSS cannot fix ARIA; this is documentation only).
5. Install the free 'WP Accessibility' plugin (WordPress Admin → Plugins → Add New → search 'WP Accessibility' by Joe Dolson) to audit and flag similar issues.
6. Run an accessibility scan using the free axe DevTools browser extension (chrome/firefox) on your age gate after each change to verify the dialog now has an accessible name.
7. Document the fix in your VPAT (Voluntary Product Accessibility Template) if you have one, or create one for your legal team.

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

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

**What it means (plain English)**

Your site has two buttons with text colors that don't contrast sharply enough against their backgrounds. The 'Start Your Order' button uses white text on a medium green (#439466) with a contrast ratio of 3.7, but accessibility standards require 4.5:1 for text this size. The age-gate 'Yes' button has similar issues at 4.28:1. This means visitors with low vision or color blindness may struggle to read these critical calls-to-action.

**Why it matters for your business:** Inaccessible buttons directly reduce conversions and create legal risk under the ADA; visitors who can't read your order button can't place orders, and you may face compliance complaints.

**Technical root cause:** The button background colors (#439466 and #56855c) are too close in lightness to white text. WCAG AA requires at least 4.5:1 contrast for normal text; these buttons fall short by ~0.7-0.2 ratio points.

**Recommended fix — step by step**

1. Log into WordPress admin → Elementor (or page builder in use) → edit the homepage
2. Click the 'Start Your Order' button → open Color settings in the button's style panel
3. Change the button background color from #439466 to a darker green (try #2d5a3d or #1e3f2a) — test in real-time to reach 4.5:1 contrast with white text
4. Repeat for the age-gate 'Yes' button: darken #56855c to meet 4.5:1 contrast with its white text
5. Use a free online contrast checker (WebAIM Contrast Checker or Stark) to verify each button reaches 4.5:1 before saving
6. Save changes and run axe DevTools browser extension on the published page to confirm both buttons now pass

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

- **Severity:** P1   |   **Priority:** 🔴 DO FIRST
- **Effort:** Moderate (1-3 hours)
- **Business category:** compliance
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier10.journey.failed`

**What it means (plain English)**

Your site is trying to load JavaScript files (modern module scripts), but the server is returning HTML pages instead. Browsers reject this because they expect actual JavaScript code with the correct file type label. This breaks interactive features like your age gate and menu functionality.

**Why it matters for your business:** Visitors cannot pass your age verification gate or navigate your site, preventing access to product pages and blocking potential sales during a critical compliance checkpoint.

**Technical root cause:** JavaScript imports (likely from a theme or plugin) are pointing to incorrect file paths that resolve to WordPress pages or error pages instead of .js files. The server is serving HTML with the wrong MIME type header (text/html instead of application/javascript).

**Recommended fix — step by step**

1. Open Chrome DevTools (F12) on the homepage, go to Console tab, and click each 'Failed to load module script' error to see the exact file path being requested
2. Log into WordPress admin → Appearance → Theme File Editor, search for <script type="module" src=...> tags and verify each src path ends in .js and points to /wp-content/themes/ or /wp-content/plugins/
3. Check Plugins → Installed Plugins for any age-gate or age-verification plugins; click Settings and verify the JavaScript file paths are correctly configured
4. If using a page builder (Elementor, Divi, etc.), go to Settings → Advanced and disable any 'Defer JavaScript' or 'Async JavaScript' options, then test
5. Open WordPress admin → Settings → Permalinks and click Save Changes (flushes rewrite rules, sometimes resolves script routing issues)
6. If errors persist, ask your hosting provider to check server error logs (/var/log/error.log or cPanel Error Log) for 404s on .js files
7. Test in a private browser window to rule out cache; if fixed, clear browser cache and WordPress cache plugin (if installed)

### 5. Lighthouse bestPractices (desktop): 59/100

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

**What it means (plain English)**

Your site's Lighthouse Best Practices score is 59 out of 100—well below the healthy target of 90. This score aggregates issues like outdated browser APIs, insecure third-party scripts, missing security headers, and deprecated code patterns. While your SEO (92) and accessibility (89) are strong, Best Practices failures can signal trust issues to both search engines and visitors.

**Why it matters for your business:** A low Best Practices score erodes customer trust, may trigger browser warnings on checkout pages, and signals to Google that your site has quality or security concerns—potentially hurting organic search visibility for high-intent 'cannabis near me' and product searches.

**Technical root cause:** WordPress sites commonly accumulate issues through outdated plugins, unvetted third-party integrations (tracking pixels, age-gate services, payment processors), mixed HTTP/HTTPS content, missing security headers (CSP, X-Frame-Options), and browser APIs deprecated since 2020. The Lighthouse report details the specific violations.

**Recommended fix — step by step**

1. Download and review the full Lighthouse HTML report from the evidence path—it lists each Best Practices failure with severity; prioritize any marked 'error' or 'critical'.
2. In WordPress Admin → Plugins, audit all active plugins for outdated versions; update any not updated in >6 months. Check each plugin's security track record in wordpress.org/plugins/ reviews.
3. In WordPress Admin → Settings → General, verify Site URL and WordPress URL both use HTTPS (not HTTP); if mixed, install Really Simple SSL plugin and enable 'Force HTTPS' option.
4. Check WordPress Admin → Settings → Reading and verify 'Discourage search engines from indexing this site' is unchecked—a common accidental setting that tanks SEO.
5. Review any third-party scripts (age-gate, analytics, payment gateway) loaded in your header/footer or via plugins; ask vendors for security certifications (SOC 2, PCI-DSS if handling payments).
6. Install Wordfence Security plugin (free tier) → Firewall → enable 'Protect sensitive files' and review reported threats; it will flag outdated libraries and insecure patterns.
7. Request your hosting provider (vendor-escalate if unsure who) enable security headers: Content-Security-Policy, X-Frame-Options: SAMEORIGIN, and Strict-Transport-Security; provide them the Lighthouse report detail.
8. Re-run Lighthouse (via Chrome DevTools → Lighthouse tab on your homepage) after fixes to confirm score improvement toward 85+.

### 6. A11y: Links must have discernible text

- **Severity:** P1
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier9.a11y.link-name`

**Detail**

Ensure links have discernible text
Impact: serious
WCAG: wcag2a, wcag244, wcag412
Learn more: https://dequeuniversity.com/rules/axe/4.11/link-name?application=playwright

---

### P2 — 19 findings

### 1. 7 console errors on homepage

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Moderate (1-3 hours)
- **Business category:** performance
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier1.js.console-errors`

**What it means (plain English)**

Your homepage is producing 7 JavaScript errors in the browser console, all related to failed module script loads. The server is returning HTML instead of JavaScript files when the browser requests modern JavaScript modules (ESM). This typically happens when a plugin or theme references JavaScript files with incorrect paths or when the web server isn't configured to serve those files correctly.

**Why it matters for your business:** These errors can break interactive features (product filters, age-gate verification, shopping cart) and may prevent Google from fully crawling and indexing your site, reducing organic search visibility and conversion potential.

**Technical root cause:** A WordPress plugin or theme is attempting to load ES modules (modern JavaScript) from paths that don't exist or return HTML error pages instead of actual JavaScript files. This is often caused by broken plugin dependencies, misconfigured asset URLs, or a theme conflict.

**Recommended fix — step by step**

1. Open Chrome DevTools (F12) → Console tab → click the first red error → note the exact file URL that failed to load
2. Log into WordPress Admin → Plugins → deactivate all plugins except Yoast SEO and any security plugins, then refresh homepage and check if errors persist
3. If errors persist after deactivation, go to Appearance → Themes → switch to a default WordPress theme (Twenty Twenty-Four) temporarily to isolate theme vs. plugin conflict
4. If errors stop after switching theme, reactivate plugins one-by-one and test homepage after each to identify the culprit
5. Once identified, contact the plugin vendor or consider a replacement — many lightweight page builders (Elementor, Divi) can cause this if misconfigured
6. If the current theme is the issue, request an update from the theme developer or switch to an actively maintained theme
7. After fix, verify console is clear by refreshing homepage and opening DevTools Console again

### 2. Missing meta description

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

**What it means (plain English)**

The blog page lacks a meta description — a 160-character summary that appears under your page title in Google search results. Without it, Google may auto-generate a snippet, which often looks incomplete and doesn't persuade users to click through.

**Why it matters for your business:** A missing meta description reduces click-through rates from search results, directly lowering qualified traffic to your blog and reducing opportunities to engage customers with educational cannabis content.

**Technical root cause:** The WordPress page or post object for /blog/ has no meta description field populated in the page settings or SEO plugin configuration.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages or Posts (whichever /blog/ uses) → find the Blog page and click Edit
2. If you use Yoast SEO: scroll to the Yoast SEO panel at the bottom → click the Meta description field → write a 150–160 character description (e.g., 'Explore cannabis education, product guides, and wellness tips from Green Genius NYC experts')
3. If you use Rank Math: scroll to Rank Math → click Edit Snippet → fill the Meta Description field
4. If no SEO plugin is active: install Yoast SEO (free tier) from Plugins → Add New, search 'Yoast', activate it, then return to step 2
5. Click Publish or Update
6. Use Google Search Console (search.google.com) → Pages → filter for /blog/ → verify the new description appears in the preview within 24 hours

### 3. Missing meta description

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

**What it means (plain English)**

The Services page is missing a meta description — the 155-character text snippet that appears below your page title in Google search results. This means search engines will auto-generate a snippet from your page content, which may not highlight your most important selling points or include a call-to-action.

**Why it matters for your business:** A missing meta description reduces click-through rate from search results; potential customers see a generic excerpt instead of a compelling summary of your services, directly impacting foot traffic and online inquiries.

**Technical root cause:** The WordPress page was created without filling in the meta description field in the page editor, or the theme's SEO plugin (if installed) was not configured to auto-populate it.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages → find 'Services' and click Edit
2. Scroll to the bottom of the editor and look for an 'SEO' or 'Yoast SEO' metabox; if not visible, install the free Yoast SEO plugin from Plugins → Add New
3. In the metabox, fill the 'Meta description' field with 60–155 characters describing your services (e.g., 'Premium cannabis flower, edibles, concentrates & accessories. Licensed NYC dispensary open daily 10am–10pm.')
4. Include one relevant keyword (e.g., 'cannabis', 'dispensary', 'NYC') and a benefit or call-to-action if space allows
5. Click 'Save' or 'Update'
6. Repeat for any other key pages missing descriptions (Products, About, etc.)

### 4. Missing meta description

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

**What it means (plain English)**

Your /brands/ page is missing a meta description — the 160-character summary that appears under your page title in Google search results. Without it, Google will auto-generate a snippet, which is often choppy and may not highlight why customers should click your page. This is fixable in under five minutes via WordPress.

**Why it matters for your business:** A missing description reduces click-through rate from search results; potential customers see a generic preview instead of a compelling reason to visit your brands inventory page.

**Technical root cause:** The page was published without filling in the meta description field in WordPress's SEO plugin (Yoast SEO, Rank Math, or native WordPress block editor), or no SEO plugin is active.

**Recommended fix — step by step**

1. Log into WordPress → Pages → find 'Brands' page → scroll to the SEO plugin section (usually Yoast SEO, Rank Math, or All in One SEO)
2. Locate the 'Meta Description' field and enter a 155–160 character description, e.g. 'Explore premium cannabis brands at Green Genius NYC. Curated selection of flower, edibles, and concentrates.'
3. Ensure the green/amber light appears (plugin will show if length is acceptable)
4. Click 'Update' to save the page
5. Wait 5–10 minutes, then search Google for 'site:greengeniusnyc.com brands' to confirm the new description appears in results

### 5. 5 image(s) missing alt text

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/vapes/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

Five product images on your vapes page lack alt text—a text description that tells both screen readers (used by visually impaired visitors) and search engines what each image shows. This means some customers can't understand your products, and Google can't index those images in search results.

**Why it matters for your business:** You're losing potential customers with visual impairments (required by law to serve), and missing SEO value from image search traffic—cannabis product photos often drive discovery.

**Technical root cause:** Images were uploaded to WordPress without filling in the 'Alt Text' field in the media uploader, or the image blocks/gallery were inserted without alt attributes.

**Recommended fix — step by step**

1. Log in to WordPress admin → go to Media Library → find each image from /vapes/ page
2. Click each image → in the 'Alternative Text' field, write a clear 5–10 word description (e.g., 'Sleek black vape pen with charging cable' for a product shot)
3. Click 'Update' after each one
4. Alternatively, edit the /vapes/ page directly → click each image block → on the right panel, find 'Alt text' field → add descriptive text → save
5. Test by using a screen reader (free: NVDA for Windows or VoiceOver for Mac) to verify alt text is read aloud

### 6. Mobile perf measurement failed

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

**What it means (plain English)**

Our automated performance test couldn't load your homepage on mobile within 60 seconds. This means either the site is extremely slow to load, or it's stuck waiting for resources (images, scripts, ads) that never arrive. Real customers on mobile devices likely experience the same delay.

**Why it matters for your business:** Slow mobile load times drive away customers before they see your menu, hours, or age gate—directly costing you sales and foot traffic from the majority of users browsing on phones.

**Technical root cause:** Either a resource (third-party script, image, or plugin) is failing to load, or your server/hosting is under-provisioned. The 'networkidle' check waits for all network activity to stop; if a resource hangs, the page never signals completion.

**Recommended fix — step by step**

1. Open Chrome DevTools on mobile (or use Chrome Remote Debugging) and load https://greengeniusnyc.com/ while watching the Network tab—identify any requests that time out or fail (red entries)
2. In WordPress admin, go to Plugins and temporarily deactivate all non-essential plugins (especially sliders, popup, or ad-related ones); reload the site and test load time again
3. Check for external third-party scripts: Google Analytics, Facebook Pixel, Hotjar, chat widgets—disable each one temporarily to isolate the culprit
4. In WordPress > Settings > General, verify 'Site Address' uses https:// and matches your domain exactly; mixed http/https can cause hanging requests
5. Ask your hosting provider (contact them via your hosting control panel) to check server error logs for timeout or memory errors during the test window
6. If a plugin is the cause, replace it or contact the plugin author; if a third-party service is slow, move its script to load asynchronously (ask your developer or use a plugin like 'Async JavaScript')

### 7. Missing core schema types: LocalBusiness

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

**What it means (plain English)**

Your site includes Organization and WebSite schema markup, but is missing LocalBusiness schema. LocalBusiness tells search engines and map apps that you're a physical retail location with a specific address, hours, and phone number. For a cannabis dispensary competing locally, this markup helps Google Show your business in local search results and on Google Maps.

**Why it matters for your business:** Without LocalBusiness schema, you're less likely to appear in Google local pack results (the map + business card section at the top of search), which drives foot traffic and phone calls for retail locations.

**Technical root cause:** The WordPress schema plugin or manual JSON-LD implementation is currently only outputting Organization, WebSite, and utility schemas. LocalBusiness is a parent schema that wraps or extends Organization to add location-specific fields like address, phone, hours, and geo coordinates.

**Recommended fix — step by step**

1. Log in to WordPress admin → Plugins → search for 'Yoast SEO' (if installed) or 'Schema Pro' or 'All in One Schema Rich Snippets'; if none exist, note which schema plugin you're using
2. If using Yoast SEO: go to SEO → Search Appearance → Business Details → toggle 'Enable Company Info' and fill in 'Business Type' = 'LocalBusiness', then add your address, phone, hours, and geo coordinates
3. If using Schema Pro or similar: locate the schema builder in the plugin settings, click 'Add Schema' → select 'Local Business', fill in all required fields (business name, address, phone, hours of operation, coordinates)
4. If no plugin is installed, open a code editor and edit your header.php or footer.php to add a JSON-LD block containing the LocalBusiness schema with your cannabis retail details
5. Paste the updated schema code into Google's Rich Results Test (https://search.google.com/test/rich-results) and verify LocalBusiness is now detected
6. Submit your URL to Google Search Console → Coverage report to re-crawl and re-index the schema

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

- **Severity:** P2   |   **Priority:** 🟠 HIGH
- **Effort:** Vendor escalation (host/registrar/etc.)
- **Business category:** security
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier5.header.strict-transport-security`

**What it means (plain English)**

Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use encrypted HTTPS connections when visiting your site. This header is especially important for cannabis retailers, where customer trust and secure transactions are critical. Without it, visitors could accidentally connect via insecure HTTP, exposing their data.

**Why it matters for your business:** Missing HSTS weakens customer trust in your payment security and increases vulnerability to man-in-the-middle attacks during checkout, directly risking compliance violations and refund disputes.

**Technical root cause:** Your WordPress host (WP Engine) and CDN (Cloudflare) are not configured to inject the Strict-Transport-Security header into HTTP responses. This is a server-side configuration, not a WordPress plugin setting.

**Recommended fix — step by step**

1. Log in to your Cloudflare dashboard → select your domain greengeniusnyc.com → go to Rules → Transform Rules → HTTP Request Header Rules
2. Create a new rule to modify response headers (if Cloudflare tier supports; otherwise escalate to WP Engine support)
3. Alternatively, contact WP Engine support directly: request they add 'Strict-Transport-Security: max-age=31536000; includeSubDomains' header to all HTTPS responses for your account
4. If WP Engine declines, install the free WordPress plugin 'Headers Security Advanced' and configure it to add HSTS (max-age=31536000, includeSubDomains)
5. After implementation, verify using curl: `curl -I https://greengeniusnyc.com` and confirm 'Strict-Transport-Security' appears in response headers
6. Test with an online HSTS checker (e.g., https://securityheaders.com/) to confirm the header is live

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

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

**What it means (plain English)**

Your website is missing a Content Security Policy (CSP) header — a security instruction that tells browsers which sources of content (scripts, images, stylesheets) are trusted. Without it, your site is more vulnerable to malicious script injection attacks that could steal customer data or redirect users to phishing pages.

**Why it matters for your business:** A CSP breach could expose customer payment information, age-verification data, or license details, leading to regulatory fines under New York cannabis compliance rules and loss of customer trust.

**Technical root cause:** WordPress on WP Engine with Cloudflare is not returning a Content-Security-Policy header in the HTTP response. This is typically configured at the hosting level, WordPress plugin level, or CDN level, but none are currently active.

**Recommended fix — step by step**

1. Log into WP Engine dashboard → Settings → Security → Content Security Policy toggle or header injection field, and enable/configure a baseline CSP (if available in your tier; if not, escalate to WP Engine support).
2. If WP Engine CSP is unavailable, install the free 'HTTP Headers' plugin (WordPress.org) or 'WP Security Audit Log', go to plugin settings, and add a CSP header starting with 'default-src self' to block external scripts by default.
3. Test the header is present by running curl -I https://greengeniusnyc.com/ in terminal and confirm 'content-security-policy' appears in the response.
4. If using Cloudflare Workers or Page Rules, add a custom header rule: Header Name 'Content-Security-Policy', Value 'default-src self https:; script-src self https://code.jquery.com https://cdn.jsdelivr.net; style-src self https:;' (adjust whitelist based on your actual CDN/script sources).
5. Document any third-party scripts you're running (e.g., Google Analytics, Hotjar, payment processors) and add their domains to the CSP allowlist to prevent breakage.

### 10. 41 tap targets under 44px at mobile-320

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

**What it means (plain English)**

Your site has 41 buttons, links, and interactive elements that are smaller than 44×44 pixels when viewed on mobile phones. This makes them difficult to tap accurately—especially for people with limited dexterity, older users, or anyone trying to interact quickly. WCAG 2.5.5 is an accessibility standard that ensures your site works for everyone.

**Why it matters for your business:** Visitors on mobile (where most cannabis research happens) will struggle to navigate your menu, click product links, or complete age verification—leading to abandoned browsing and lost sales.

**Technical root cause:** CSS styling or theme defaults are setting buttons, menu items, and links to padding/sizes below the 44px minimum. WordPress themes often inherit small touch targets from desktop-first designs without mobile optimization.

**Recommended fix — step by step**

1. Open WordPress Admin → Customize (or Theme File Editor) and identify all buttons, navigation links, and clickable elements in your header, menu, and footer.
2. Increase padding and line-height for all touch targets: set minimum height and width to 44px, with at least 8px padding inside. Example: `.wp-block-button__link { min-height: 44px; min-width: 44px; padding: 12px 16px; }`
3. Test your mobile menu specifically: ensure each navigation item is at least 44×44 and spaced at least 8px apart from adjacent targets.
4. Check your age-gate form and any product filter buttons—these are critical compliance touchpoints and must meet the 44px standard.
5. Use Chrome DevTools (F12 → Responsive Design Mode → set to 320px width) and hover over buttons to verify the interactive area is now 44×44 or larger.
6. Install and run the free WAVE or Lighthouse accessibility audit (in Chrome DevTools → Lighthouse tab) to confirm the fix and catch any remaining small targets.
7. Test on actual phones (iOS and Android) to confirm taps feel natural and don't accidentally trigger neighboring elements.

### 11. 41 tap targets under 44px at mobile-375

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

**What it means (plain English)**

Your site has 41 buttons, links, and other clickable elements that are smaller than 44×44 pixels on mobile phones. WCAG 2.5.5 (a web accessibility standard) requires interactive elements to be at least 44×44 pixels so people with limited dexterity—including older adults and those with tremors—can tap them reliably without accidentally hitting the wrong button.

**Why it matters for your business:** Small tap targets frustrate mobile visitors, increase accidental clicks (driving up bounce rates and cart abandonment), and expose your dispensary to accessibility complaints or legal risk under state/federal accessibility laws.

**Technical root cause:** The site's CSS or theme is sizing interactive elements (likely navigation links, product filters, 'Add to Cart' buttons, age-gate controls) below the 44px minimum. This often happens when designers optimize for desktop first without testing mobile tap zones.

**Recommended fix — step by step**

1. Install and activate the 'WP Accessibility' plugin (free, via WordPress.org → Plugins → Add New → search 'WP Accessibility') to audit and flag small targets in the admin dashboard.
2. Use Chrome DevTools on a mobile-375 viewport (Chrome → F12 → click device toggle → select 'Pixel 5' or similar) and inspect each interactive element to confirm its computed width and height in the Styles panel.
3. In WordPress Theme Customizer (Appearance → Customize), increase global button/link padding and line-height; set a minimum of 44px × 44px for all buttons, and 24px × 44px minimum for inline links.
4. For navigation menus, open your active theme's CSS file (Appearance → Theme File Editor → search 'style.css' or theme's custom CSS) and add rules: `a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }` for all link types.
5. Check your age-gate modal/popup (if present under Plugins or custom code) and ensure the 'Yes, I'm 21+' and 'No' buttons are each at least 44×44px with 8–12px padding around the text.
6. Test the product filter buttons, checkout buttons, and add-to-cart buttons on an actual mobile phone (or use Chrome DevTools device mode) to confirm each is tappable without zoom.
7. If using a page builder (e.g., Elementor, WPBakery), audit each button element: select it, go to Style/Advanced, set Min. Width and Min. Height to 44px, and confirm spacing in mobile preview.

### 12. 37 tap targets under 44px at tablet-768

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

**What it means (plain English)**

Your website has 37 buttons, links, and other clickable elements that are smaller than 44×44 pixels when viewed on a tablet. This makes them hard to tap accurately—especially for people with motor impairments or simply anyone using a tablet one-handed. It's a WCAG accessibility standard that helps ensure your site works for everyone.

**Why it matters for your business:** Customers on tablets may struggle to tap menu items, product filters, or checkout buttons, leading to cart abandonment and frustration. This also affects your compliance posture if audited by disability-focused organizations.

**Technical root cause:** Interactive elements are sized for desktop viewing (where mouse precision is high) without considering touch-based devices. Tablet viewports at 768px width often expose links and buttons that meet desktop standards but fall short of the 44×44px touch-target minimum.

**Recommended fix — step by step**

1. Open WordPress Customizer (Appearance → Customize) and navigate to Additional CSS to add a rule like 'a, button { min-width: 44px; min-height: 44px; display: inline-block; }' as a starting baseline.
2. Use Chrome DevTools (F12 → Device Toolbar → set to iPad/768px tablet view) and inspect each small target identified in the audit to confirm which elements need resizing.
3. For navigation menu items, go to Appearance → Menus and adjust padding in Customizer CSS: 'nav a { padding: 12px 16px; }' to reach 44px minimum in both directions.
4. Check your active theme's stylesheet (likely in wp-content/themes/[theme-name]/style.css) for hardcoded button/link sizes and increase padding or min-height to 44px.
5. If using a page builder (Elementor, Divi, etc.), audit each button/link widget: select it → increase padding (Top, Bottom, Left, Right) so total height and width both reach 44px.
6. Test tap targets on an actual tablet or use Chrome's tablet emulation to verify fixes; repeat on all main pages (homepage, product listing, checkout).
7. Consider installing the 'Accessible Toolkit' or 'WP Accessibility' plugin to auto-audit and flag sub-44px targets in the future.

### 13. Lighthouse perf (mobile): 56/100

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

**What it means (plain English)**

Your mobile site takes roughly 25 seconds for the largest visual element (hero image, main product photo) to appear on screen—that's 5× slower than Google's recommendation. Visitors on phones will see a blank or incomplete page for nearly half a minute, causing them to bounce away before they ever see your products or age gate.

**Why it matters for your business:** Slow mobile load times directly reduce conversion rates and harm your search ranking on Google, where mobile performance is a ranking factor—especially critical for cannabis retail competing in local searches.

**Technical root cause:** Large unoptimized images, render-blocking JavaScript (likely from plugins or ads), and missing lazy-load attributes are preventing the browser from displaying content quickly on slower mobile connections.

**Recommended fix — step by step**

1. Install ShortPixel Image Optimizer (free tier available) via WordPress admin → Plugins → Add New → search 'ShortPixel' → Activate, then run bulk optimization on all images in Media Library.
2. Enable lazy loading: Go to Settings → Reading and enable 'Lazy load images' if available in your theme; if not, install Lazy Load by WP Rocket via Plugins.
3. Audit WordPress plugins: Admin → Plugins → deactivate non-essential plugins (testimonial sliders, pop-ups, analytics scripts) temporarily and re-test mobile speed via PageSpeed Insights to isolate which are slowest.
4. Compress CSS and JavaScript: Install Autoptimize plugin (free) → Settings → Autoptimize → enable 'Optimize CSS Code', 'Optimize JavaScript Code', and 'Defer JavaScript execution'.
5. Enable browser caching: If using a caching plugin (WP Super Cache, W3 Total Cache), verify it's active in Admin → Plugins and configured to cache static assets for 30+ days.
6. Review hosting: Contact your host to confirm you're on a plan with SSD storage and at least 2GB RAM (not shared hosting); if uncertain, ask support 'What's the average PHP memory limit and server response time?'
7. Re-test after changes: Use Google PageSpeed Insights (greengeniusnyc.com) and monitor mobile score weekly; aim for 80+.

### 14. Lighthouse perf (desktop): 72/100

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

**What it means (plain English)**

Your homepage takes 4 seconds to display its main content (images, headlines), which is slower than Google's recommended 2.5 seconds. Visitors see a blank or incomplete page during this delay, increasing bounce rates. The Lighthouse performance score of 72 indicates room for improvement in image optimization, script loading, and server response time.

**Why it matters for your business:** Slow page load directly reduces conversion rates—studies show every 1-second delay costs 7% of sales. For a dispensary site, this means fewer customers completing age verification, product browsing, or pre-orders.

**Technical root cause:** Large unoptimized images, render-blocking JavaScript, or excessive third-party scripts (ads, analytics, age-gate tools) are likely delaying the Largest Contentful Paint metric. WordPress sites often load too many plugins simultaneously.

**Recommended fix — step by step**

1. Install ShortPixel Image Optimizer plugin (WordPress → Plugins → Add New → search 'ShortPixel' → activate). Configure it to auto-compress all existing images to WebP format and set lossy compression to 'Glossy'.
2. Install Async JavaScript plugin to defer non-critical scripts: WordPress → Plugins → Add New → search 'Async JavaScript' → activate → Dashboard → Async JavaScript → mark Google Analytics, Facebook Pixel, and non-essential third-party tags as 'Async'.
3. Check WordPress → Settings → Reading → 'Discourage search engines from indexing this site' is OFF, then go to Yoast SEO (if installed) → Tools → File Editor and verify no bloat in header/footer injections.
4. Audit plugins via WordPress → Plugins → Installed Plugins. Deactivate and test each non-essential plugin (e.g., excessive form builders, outdated widgets) — disable for 24 hours, re-run Lighthouse to measure impact.
5. Enable browser caching: WordPress → Settings → Permalink (or via WP Super Cache plugin if installed) → ensure 'Gzip compression' is enabled in hosting control panel (cPanel/Plesk).
6. Run Lighthouse again via Chrome DevTools (F12 → Lighthouse tab → Generate report) and confirm LCP drops below 2.5s and overall score exceeds 85 before next audit cycle.

### 15. 5 image(s) missing alt text

- **Severity:** P2
- **Page URL:** https://greengeniusnyc.com/edibles/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

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

- **Severity:** P2
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier5.header.x-frame-options`

**Detail**

x-frame-options not present on homepage response. Affects fortress score and CSP posture.

### 17. 41 tap targets under 44px at mobile-414

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

**Detail**

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

### 18. Lighthouse bestPractices (mobile): 61/100

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

**Detail**

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

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

- **Severity:** P2
- **Page URL:** https://greengeniusnyc.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 — 192 findings

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

- **Severity:** P3   |   **Priority:** 🟠 HIGH
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/brands/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your Brands page doesn't have alt text — the hidden text that describes an image to screen readers and search engines. This means visually impaired visitors can't understand that image, and Google can't index it properly for image search.

**Why it matters for your business:** Missing alt text reduces organic search visibility for product/brand discovery and makes your site less accessible to customers using screen readers — a compliance risk and a missed audience.

**Technical root cause:** The image element in the HTML is missing the alt attribute entirely, leaving no fallback text for assistive technology or search engines to parse.

**Recommended fix — step by step**

1. Log into WordPress admin → go to Media Library and find the image used on /brands/ page
2. Click the image → scroll to the Alt Text field and enter a descriptive phrase (e.g., 'Brand logo for [Brand Name]' or 'Premium cannabis strain packaging')
3. Alternatively, go to Pages → Brands → edit the page in Block Editor, click the image block, and fill the Alt Text field in the right sidebar
4. Ensure the alt text is 100–125 characters, descriptive, and includes relevant keywords if natural (e.g., 'premium cannabis flower brand packaging' rather than just 'logo')
5. Publish/update the page and verify the change with a free tool like WAVE (wave.webaim.org) by pasting the page URL

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

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

**What it means (plain English)**

Your robots.txt file (the file that tells search engines which pages to crawl) doesn't include a pointer to your XML sitemap. A sitemap is like a table of contents for your entire website. Without this pointer, Google has to discover all your pages through links alone, which is slower and less reliable.

**Why it matters for your business:** Search engines may take longer to index new products, menus, or content updates, delaying when customers can find you through organic search.

**Technical root cause:** The robots.txt file is missing a 'Sitemap:' line that URL-points to the XML sitemap. WordPress typically generates a sitemap automatically (usually at /sitemap.xml or /sitemap_index.xml), but robots.txt must be told where it lives.

**Recommended fix — step by step**

1. Log in to WordPress admin → Settings → Reading, and confirm 'Search engine visibility' is set to allow indexing (checkbox should be unchecked).
2. Go to Yoast SEO (if installed) → Crawl settings → Sitemaps, and toggle 'XML sitemaps' to enabled; copy the sitemap URL shown (typically https://greengeniusnyc.com/sitemap_index.xml).
3. If Yoast is not installed, use WordPress SEO plugins like Rank Math or All in One SEO, or check if your hosting provider's control panel has a built-in sitemap generator.
4. Access your site's robots.txt file via FTP, SFTP, or your WordPress hosting control panel (cPanel → File Manager → public_html/robots.txt).
5. Add this line at the end of robots.txt: 'Sitemap: https://greengeniusnyc.com/sitemap_index.xml' (replace with your actual sitemap URL).
6. Save and refresh the file.
7. Test in Google Search Console (https://search.google.com/search-console) → Sitemaps → Add/test → paste your sitemap URL to confirm it's readable.

### 3. Missing OpenGraph metadata

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

**What it means (plain English)**

OpenGraph tags are metadata snippets that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your link when someone shares it. Without them, social shares show a generic preview instead of your chosen title, description, and image—making posts look unprofessional and less clickable.

**Why it matters for your business:** Reduced click-through rates on social media sharing, lower engagement on Instagram and Facebook where cannabis retailers build community, and missed opportunity to control your brand presentation when customers share your site.

**Technical root cause:** The WordPress site's header is missing og:title, og:image, og:description, and og:url meta tags in the <head> section, either because the theme doesn't include them by default or an SEO plugin hasn't been configured to generate them.

**Recommended fix — step by step**

1. Install the free Yoast SEO plugin (Plugins → Add New → search 'Yoast SEO' → Install Now → Activate).
2. Go to Yoast SEO → General → Site representation, and fill in your site title and tagline.
3. Upload a high-quality logo or brand image (1200×630px) in Yoast SEO → General → Site representation → Logo upload.
4. Edit your homepage (Pages → Home or Dashboard → Edit) and set a Featured Image (right panel → Featured Image → Set featured image) with a professional photo.
5. In the Yoast SEO metabox on the homepage editor, ensure 'Snippet preview' shows your desired title and description; adjust the 'SEO title' and 'Meta description' fields if needed.
6. Save the page and clear your WordPress cache plugin (if installed) via Settings → [your cache plugin] → Clear Cache.
7. Test the homepage preview on Facebook using the Facebook Sharing Debugger (facebook.com/developers → Tools → Sharing Debugger → paste your URL → Scrape Again).

### 4. Title length 80 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss/
- **Rule:** `tier2.meta.title-length`

**What it means (plain English)**

Your page title is 80 characters long, but search engines like Google typically show only 50-60 characters in search results before cutting off with an ellipsis (…). This means visitors searching for your content won't see the full title, and you lose an opportunity to communicate your brand name or key message.

**Why it matters for your business:** Incomplete titles in search results reduce click-through rates from potential customers browsing for deals, directly affecting store traffic and online visibility.

**Technical root cause:** The WordPress page title was written without considering the display limit in search engine results. Each character beyond ~60 is hidden from users in most search interfaces.

**Recommended fix — step by step**

1. In WordPress, go to the post editor for 'August Just Got Better: Two Pre-Roll Deals You Don't Want to Miss'
2. Look for the 'SEO Title' field (usually in a metabox below the editor, or within Yoast/Rank Math if installed)
3. Shorten the title to 50-60 characters; example: 'Two Pre-Roll Deals | Green Genius NYC'
4. Confirm the shortened title still includes your main keyword ('pre-roll deals') and brand name
5. Click 'Update' to save
6. Monitor the same URLs using Screaming Frog or Google Search Console to confirm the new title displays fully in search results within 48 hours

### 5. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

Your blog post about pre-roll deals is missing OpenGraph tags—special HTML code that tells Facebook, Instagram, and other social platforms how to display your content when someone shares the link. Without these tags, the platforms show a generic preview instead of your custom title and product image, which reduces click-through rates from social traffic.

**Why it matters for your business:** Missing OpenGraph metadata means fewer clicks from social shares; when customers post your deals to Instagram or Facebook, the preview looks unprofessional and doesn't highlight your product, directly reducing traffic and sales from social referrals.

**Technical root cause:** WordPress is not automatically generating og:title and og:image meta tags for this post. This typically happens when an SEO plugin (like Yoast, RankMath, or All in One SEO) is not installed, not configured, or the post is missing a featured image.

**Recommended fix — step by step**

1. Install Yoast SEO (free version) if not already active: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install and Activate.
2. Go to WordPress Admin → Dashboard → check that Yoast SEO is showing a green/orange light indicator on posts; if missing, Yoast is not enabled for posts.
3. Edit the affected post (WordPress Admin → Posts → August Just Got Better) and ensure a Featured Image is set (right sidebar, 'Featured Image' box); this is what Yoast uses for og:image.
4. Go to WordPress Admin → Yoast SEO → Settings → Social → Facebook and enable 'Add Open Graph Meta Tags'.
5. Regenerate the post's meta: edit the post, scroll to Yoast SEO box, click 'Update' to force tag generation.
6. Test the post by pasting the URL into Facebook's Sharing Debugger (facebook.com/sharing/debugger) to verify og:title and og:image now appear.

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One product or promotional image on your August pre-roll deals post lacks alt text — a brief text description that screen readers announce and search engines use to understand images. This affects both visitors using assistive technology and your SEO visibility for image searches.

**Why it matters for your business:** Missing alt text reduces discoverability in Google Images, limits reach to visually impaired customers (a legal accessibility requirement), and may signal poor quality to search algorithms, slightly lowering ranking for that page.

**Technical root cause:** The image was likely inserted via WordPress media uploader without filling the Alt Text field, or the field was left blank during content creation.

**Recommended fix — step by step**

1. Log in to WordPress admin → Posts → find 'August just got better' post → click Edit
2. Scroll to the image block and click the image to select it
3. In the right sidebar, locate the Image block settings panel and find the Alt Text field
4. Write a short, descriptive alt text (e.g., 'Two pre-rolled cannabis joints on a wooden surface' or 'Pre-roll deal promotion')
5. Click Publish or Update to save

### 7. Title length 71 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers/
- **Rule:** `tier2.meta.title-length`

**What it means (plain English)**

Your page title is 71 characters long, but Google typically displays 50–60 characters on desktop and fewer on mobile. Titles longer than 65 characters get truncated in search results, meaning potential customers won't see your full message. This particular title is getting cut off after 'Green Genius,' losing the descriptive part that explains what the page offers.

**Why it matters for your business:** Truncated titles reduce click-through rates from search results because visitors can't see the full value proposition of your content before deciding whether to visit.

**Technical root cause:** The title tag in the page's HTML head section exceeds the recommended 65-character limit, likely because it combines both a descriptive headline and the brand name without prioritization.

**Recommended fix — step by step**

1. Log into WordPress admin → go to the specific post 'August in NYC: Elevated Summer Plans for Cannabis Lovers'
2. Scroll to the Yoast SEO meta box (or your installed SEO plugin) and locate the 'SEO title' field
3. Shorten to: 'August Plans for Cannabis Lovers in NYC | Green Genius' (58 characters)
4. Use the character counter in Yoast to confirm it's between 20–65 chars and shows green
5. Click 'Update' to save
6. Optional: Review other blog posts using the same pattern to batch-fix similar titles

### 8. Description length 225 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers/
- **Rule:** `tier2.meta.description-length`

**What it means (plain English)**

Your meta description—the text that appears under your page title in Google search results—is 225 characters long. Google typically truncates (cuts off) descriptions longer than 160 characters on desktop and 120 on mobile. This means potential customers see an incomplete preview of your content, which reduces click-through rates.

**Why it matters for your business:** Incomplete search snippets discourage clicks from search results, lowering organic traffic and visibility for your lifestyle content that could drive awareness and foot traffic to your dispensary.

**Technical root cause:** The meta description tag in the page's HTML head section exceeds the recommended 80–160 character range, likely written without length constraints or automated truncation in place.

**Recommended fix — step by step**

1. Log in to WordPress → Pages or Posts → find 'August in NYC Elevated Summer Plans' post → scroll to the Yoast SEO meta description field
2. Clear the current description and rewrite it to 120–150 characters, focusing on the single most compelling reason someone should click (e.g., 'Discover elevated summer activities and cannabis-friendly spots across NYC. Seasonal guides for cannabis lovers.')
3. Use WordPress's character counter (Yoast shows it inline) to verify length before saving
4. Once saved, wait 2–3 hours for WordPress cache to clear, then check Google Search Console → Performance → click the URL to verify the new snippet appears in preview
5. Apply this same process to any other pages with descriptions over 160 characters (Search Console → Performance tab shows affected URLs)

### 9. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

When someone shares your blog post on Facebook, Instagram, or other social platforms, those sites use special metadata tags (called OpenGraph tags) to pull in a preview image and title. Without them, your post appears as a plain link with no visual preview, making people much less likely to click through.

**Why it matters for your business:** Missing OpenGraph metadata reduces social sharing engagement and click-through rates on your lifestyle content, limiting organic reach and potential customer discovery from social platforms where cannabis-curious audiences congregate.

**Technical root cause:** The WordPress theme or SEO plugin (if in use) is not automatically generating or allowing manual entry of og:title and og:image meta tags in the page <head> section.

**Recommended fix — step by step**

1. Install Yoast SEO (free) if not already active: Go to WordPress admin > Plugins > Add New, search 'Yoast SEO', install and activate.
2. Edit the affected blog post: WordPress admin > Posts > 'August in NYC...' > Scroll to Yoast SEO meta box at bottom.
3. In the Yoast box, click 'Preview' or 'Social' tab and ensure 'Social title' and 'Social image' are filled in (Yoast will auto-fill from post title and featured image, but verify they're set).
4. Set a featured image for this post if missing: In the post editor, click 'Set featured image' and upload or select a high-quality image (1200×630px minimum for Facebook optimal display).
5. Repeat for all lifestyle blog posts: Use bulk edit or systematically open each post to confirm og:title and og:image are populated.
6. Test the fix: Go to Facebook Sharing Debugger (facebook.com/developers/tools/debug/sharing), paste the post URL, and confirm the preview now shows your image and title correctly.

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your August blog post doesn't have alt text—a short description that screen readers read aloud and that search engines use to understand the image. This means visitors using screen readers can't tell what that image shows, and Google can't index it for image search.

**Why it matters for your business:** Missing alt text reduces your blog post's SEO visibility (especially in Google Images), locks out customers using accessibility tools, and may expose you to accessibility compliance complaints.

**Technical root cause:** The image was likely inserted into the WordPress editor without the alt text field being populated. WordPress doesn't require alt text, so it's easy to skip.

**Recommended fix — step by step**

1. Log into WordPress admin → Posts → Edit the 'August in NYC' post
2. In the post editor, click on the image that's missing alt text
3. In the sidebar panel that appears, find the 'Alt Text' field and fill it with a short, descriptive phrase (e.g., 'Cannabis flower display at Green Genius NYC')
4. Click Update to save the post
5. Verify the fix by visiting the live URL and using a browser inspector (right-click image → Inspect) to confirm the alt attribute is now present

### 11. Description length 232 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer/
- **Rule:** `tier2.meta.description-length`

**What it means (plain English)**

Your meta description (the snippet Google shows under your link in search results) is 232 characters long. Google typically displays 150–160 characters on desktop and 120 on mobile, so anything longer gets cut off. This means visitors see an incomplete preview, which can reduce click-through rates from search results.

**Why it matters for your business:** When your product descriptions are truncated in search results, potential customers may skip your link in favor of competitors who have clearer, complete previews—directly reducing traffic and sales.

**Technical root cause:** The meta description tag in the page's HTML head contains more text than the recommended 80–160 character range, causing it to exceed what search engines display.

**Recommended fix — step by step**

1. In WordPress admin, go to Posts → All Posts and find 'Green Genius Summer Favorites Closing Out Summer'
2. Click Edit, scroll to the bottom, and locate the Yoast SEO box (or your installed SEO plugin)
3. In the 'Meta description' field, trim the text to 155 characters max
4. Ensure the trimmed version still includes the primary keyword and a call-to-action (e.g., 'Shop summer cannabis deals at Green Genius NYC. Limited-time offers on top strains.')
5. Click Update to save
6. Repeat this process for any other posts with descriptions over 160 characters (use Yoast's bulk editor or search console to identify)

### 12. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Moderate (1-3 hours)
- **Business category:** revenue
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

When this page is shared on Facebook, Instagram, or other social platforms, those sites won't have a nice preview card with your image and headline. Instead, they'll show a plain text link or a generic thumbnail. This weakens the visual appeal of your content when customers share it.

**Why it matters for your business:** Shared blog posts and product pages that lack preview images get fewer clicks and engagement on social media, reducing referral traffic and brand visibility among potential customers.

**Technical root cause:** The page is missing og:title and og:image meta tags in the HTML head. WordPress doesn't add these automatically unless an SEO plugin or custom code is configured to generate them.

**Recommended fix — step by step**

1. Install the free Yoast SEO plugin (Plugins → Add New → search 'Yoast SEO' → Install Now → Activate).
2. Go to Yoast SEO → Social (in left menu) and enable Facebook and Instagram integrations.
3. Edit the affected post (Posts → Green Genius Summer Favorites → Edit).
4. Scroll to the Yoast SEO metabox at the bottom and click the 'Social' tab.
5. Upload or select a featured image (1200×630px recommended) in the post's featured image panel.
6. In the Yoast Social tab, verify og:title and og:image are auto-populated; adjust if needed.
7. Publish or update the post, then test the preview using Facebook's Sharing Debugger (facebook.com/developers/tools/debug/) and paste the URL to confirm the card displays correctly.
8. Repeat steps 5–7 for other blog posts and product pages to ensure consistent social sharing.

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your summer favorites blog post is missing alt text—a short text description that appears when the image fails to load and helps search engines understand what the image shows. This hurts both accessibility (visually impaired visitors using screen readers can't understand the image) and SEO (Google can't rank you for image-related search queries if it doesn't know what the image depicts).

**Why it matters for your business:** Missing alt text reduces your organic search visibility for product and lifestyle imagery, and excludes visually impaired customers from understanding your content—both hurt discoverability and brand inclusivity.

**Technical root cause:** The image element in the post HTML lacks an alt attribute. WordPress allows editors to add alt text during upload or via the media library, but it was skipped during post creation.

**Recommended fix — step by step**

1. Log into WordPress admin → Posts → Edit the 'Green Genius Summer Favorites' post
2. Click the image in the post editor to select it
3. In the right sidebar, find the 'Alt Text' field and describe the image in 5–15 words (e.g., 'Green Genius summer cannabis products on display')
4. Click 'Update' to save the post
5. Optionally, install the Yoast SEO free plugin (Plugins → Add New → search 'Yoast') to get a red flag in the editor whenever an image lacks alt text on future posts

### 14. Title length 80 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss-2/
- **Rule:** `tier2.meta.title-length`

**What it means (plain English)**

Your page title is 80 characters long, but search engines like Google typically display only 50–60 characters in search results before truncating with ellipsis (…). This means potential customers see a cut-off headline, making your offer less compelling and harder to read.

**Why it matters for your business:** Truncated titles in search results reduce click-through rates, meaning fewer customers see your full promotion and may skip your listing entirely for competitors' results.

**Technical root cause:** The page title meta tag exceeds the recommended 50–65 character range. While Google doesn't penalize length directly, displays are capped, so anything beyond ~60 chars gets hidden from users.

**Recommended fix — step by step**

1. Log into WordPress admin → Pages/Posts → Edit the page 'August Just Got Better…'
2. Scroll to the 'Yoast SEO' metabox (or native WordPress 'Document' panel if using WordPress 6.4+)
3. In the SEO title field, replace the current title with: 'August Deals: Pre-Roll Offers | Green Genius'
4. Verify the character count shows ≤60 characters in the Yoast/WordPress counter
5. Click Publish or Update
6. Repeat this process for any other promotional pages with titles >65 characters

### 15. Description length 208 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss-2/
- **Rule:** `tier2.meta.description-length`

**What it means (plain English)**

Your meta description (the summary that appears under your page title in Google search results) is 208 characters long. Search engines typically truncate descriptions longer than 160 characters, which means your full message won't be visible to people deciding whether to click your link. This one page is affected.

**Why it matters for your business:** Potential customers scrolling search results won't see your complete promotion details, reducing click-through rates and lost foot traffic to your dispensary.

**Technical root cause:** The WordPress SEO plugin (likely Yoast or Rank Math) is not enforcing or flagging the character limit on this post's meta description field during publication.

**Recommended fix — step by step**

1. Log in to WordPress → Posts → search 'august-just-got-better-two-pre-roll-deals'
2. Scroll to the SEO meta box at the bottom of the editor (Yoast/Rank Math panel)
3. Click 'Edit snippet' or the meta description field
4. Trim the description to 150–160 characters maximum, keeping the key offer (e.g., 'Two pre-roll deals you don't want to miss at Green Genius NYC')
5. Verify the live preview in the SEO plugin shows green/passing status
6. Click Update
7. Optional: Search for other posts with descriptions >160 chars using your SEO plugin's site audit feature and repeat for each

### 16. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss-2/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

OpenGraph tags are snippets of code that tell social platforms (Facebook, Instagram, LinkedIn) how to display your content when someone shares a link. Without them, social shares show a generic preview instead of your custom title and product image, making posts look unprofessional and reducing click-through rates.

**Why it matters for your business:** When customers share your deals on social media without proper OpenGraph tags, the post appears broken or generic, reducing traffic from social referrals and weakening word-of-mouth visibility for promotions like your pre-roll deals.

**Technical root cause:** The WordPress theme or site configuration is not automatically generating OpenGraph meta tags for blog posts. Most WordPress SEO plugins (like Yoast or Rank Math) include this feature, but it must be enabled and configured.

**Recommended fix — step by step**

1. Log into WordPress admin → Plugins → Search for 'Yoast SEO' (or 'Rank Math'). If not installed, click Install Now + Activate.
2. Go to Yoast SEO → Integrations → check 'OpenGraph' is enabled under 'Social features'.
3. In the Yoast plugin settings, go to Social → Facebook and ensure 'Add Open Graph meta tags' is toggled ON.
4. Return to the affected post (August just got better...) → scroll to Yoast SEO panel → 'Social' tab → upload a product/deal image for og:image (1200×630px recommended).
5. Verify by visiting the post URL, right-clicking → View Page Source, and searching for 'og:title' and 'og:image' tags to confirm they now appear.
6. Use Facebook's Sharing Debugger (facebook.com/sharing/debugger) to paste the post URL and test the preview rendering.

### 17. Missing Twitter card

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss-2/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your product pages are missing Twitter Card meta tags, which are small snippets of code that tell Twitter (now X) how to display your content when someone shares a link. Without them, shared posts show as plain text with no image or formatted preview, making them look unprofessional and less clickable.

**Why it matters for your business:** When customers share your deals on social media, posts with missing Twitter Cards get fewer clicks and engagement compared to posts with rich previews—directly reducing traffic from social sharing, which is a key discovery channel for cannabis retailers.

**Technical root cause:** WordPress sites need either manual meta tag insertion in the header, or an SEO plugin (like Yoast SEO or Rank Math) configured to auto-generate Twitter Cards. Neither is currently enabled for this page.

**Recommended fix — step by step**

1. Install Yoast SEO plugin (free) via WordPress admin → Plugins → Add New → search 'Yoast SEO' → Install & Activate
2. Go to Yoast SEO → Social → toggle 'X (formerly Twitter)' to enabled
3. Enter your @twitter handle in Yoast SEO → Integrations → X account field
4. Go back to the 'August just got better' post and ensure 'Focus Keyword' and featured image are set (Yoast uses these to auto-generate Twitter Card)
5. Publish/update the post to regenerate meta tags
6. Test at card-validator.twitter.com by pasting the post URL to confirm Twitter Card now appears with image

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss-2/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your August deals post is missing alt text — a short text description that screen readers use to describe the image to visually impaired visitors. Search engines also use alt text to understand image content, which helps your pages rank higher in image search results.

**Why it matters for your business:** Missing alt text reduces accessibility for customers with visual disabilities, and search engines may rank this page lower for relevant image searches, costing you organic traffic to promotional content.

**Technical root cause:** The image was likely uploaded and inserted into the post without filling in the alt text field during upload or editing.

**Recommended fix — step by step**

1. Log in to your WordPress dashboard and navigate to Posts → All Posts.
2. Search for or click the post titled 'August Just Got Better — Two Pre-Roll Deals You Don't Want to Miss.'
3. Click Edit to open the post editor.
4. Look for the image in the content (you should see 3 other images with alt text; find the one without).
5. Click on that image to select it, then click the pencil/edit icon in the toolbar.
6. In the Image Details popup, fill the 'Alt Text' field with a concise, descriptive phrase (e.g., 'Two pre-roll cannabis deals with discount pricing' — 5–10 words, avoid keyword stuffing).
7. Click Update and then Save/Publish the post.

### 19. Title length 71 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers-2/
- **Rule:** `tier2.meta.title-length`

**What it means (plain English)**

Your page title is 71 characters long, but search engines like Google typically display 50–60 characters on desktop and fewer on mobile. Your full title gets cut off in search results, hiding the benefit of 'Green Genius' branding at the end. Shorter, punchy titles also rank better because they fit in the visible snippet.

**Why it matters for your business:** Potential customers searching for cannabis content won't see your brand name in Google results, reducing click-through rate and brand recognition for this high-traffic seasonal post.

**Technical root cause:** The title tag in the page's HTML head exceeds the optimal character threshold due to including both the blog topic and full site name without prioritization.

**Recommended fix — step by step**

1. Log into WordPress admin → go to Posts → find 'August in NYC: Elevated Summer Plans for Cannabis Lovers' post → click Edit
2. Scroll to the Yoast SEO or All in One SEO plugin metabox (typically below the content editor)
3. In the 'SEO Title' field, rewrite to exactly 58 characters max: e.g., 'Summer Cannabis Plans NYC | Green Genius Dispensary'
4. Preview the change in the snippet preview below the title field to confirm the full text displays
5. Click Update to save
6. Repeat for any other blog posts exceeding 65 characters using WordPress bulk edit or a plugin like Rank Math to audit all titles at once

### 20. Description length 225 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers-2/
- **Rule:** `tier2.meta.description-length`

**What it means (plain English)**

Your meta description (the text that appears below your page title in Google search results) is 225 characters long, but search engines typically display only 80–160 characters on desktop and fewer on mobile. The extra text gets cut off, so visitors can't see your full message before deciding whether to click.

**Why it matters for your business:** Truncated descriptions reduce click-through rates from search results, meaning fewer potential customers visit this lifestyle content page and discover your brand.

**Technical root cause:** The meta description tag in the page's HTML head section contains excessive text that exceeds the recommended character limit.

**Recommended fix — step by step**

1. Log in to WordPress admin dashboard and navigate to the post or page editor for the affected URL.
2. In the post editor, scroll down to the Yoast SEO (or similar SEO plugin) meta box.
3. Find the 'Meta description' field and count the current text length.
4. Rewrite the description to be 80–160 characters, focusing on the most compelling reason a cannabis enthusiast would click (e.g., 'Summer cannabis events and elevated activities in NYC this August. Discover local dispensaries, tastings, and community highlights.').
5. Ensure the description includes at least one primary keyword (e.g., 'cannabis,' 'NYC,' 'summer').
6. Click 'Update' to publish the change.
7. Repeat for any other lifestyle/blog posts with similarly long descriptions.

### 21. Missing Twitter card

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers-2/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your blog post doesn't include a Twitter Card meta tag — a small code snippet that tells Twitter how to display a preview when someone shares your link. Without it, Twitter shows a plain text preview instead of an attractive card with your headline, image, and description, which reduces click-through rates from social sharing.

**Why it matters for your business:** Lost social engagement and traffic: shared blog posts about cannabis lifestyle and events won't stand out in Twitter feeds, reducing visits from social referral and brand visibility among your audience.

**Technical root cause:** WordPress isn't automatically adding the twitter:card meta tag to post headers. Most SEO plugins (Yoast, Rank Math, All in One SEO) include Twitter Card settings but they may not be enabled or configured for your site.

**Recommended fix — step by step**

1. Log in to WordPress admin → Plugins → search for 'Yoast SEO' (or your installed SEO plugin); if installed, click Settings → Social
2. Enable 'Add Open Graph & Twitter Card data' toggle if present
3. In Social settings, find the Twitter Card section and select 'Summary with Large Image' as the default card type
4. Upload or select a default image for Twitter Cards (recommended: 1200×630px image of your dispensary or brand logo)
5. Save settings, then visit the affected blog post and check the post's social meta settings to confirm Twitter Card is active
6. Test the post URL in Twitter's Card Validator (cards-dev.twitter.com/validator) to confirm the card renders correctly
7. Repeat for other published blog posts or set as site-wide default so future posts inherit the setting

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers-2/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your August summer plans blog post is missing alt text—a text description that explains what the image shows. Screen reader users (including people with vision loss) won't know what that image is, and search engines won't understand it either, which weakens SEO for that page.

**Why it matters for your business:** Missing alt text reduces your visibility in Google Images search and image-based discovery, and excludes a portion of your potential customers who rely on assistive technology.

**Technical root cause:** The image was likely uploaded to WordPress without filling in the Alt Text field in the media editor, or the media library entry was never completed with descriptive text.

**Recommended fix — step by step**

1. Log in to WordPress admin → go to Posts → edit the 'August in NYC' post
2. Scroll to the post content and locate the image without alt text (compare to the other 3 images to spot which one appears to lack a description)
3. Click on the image in the editor → look for the Alt Text field in the right panel (or click image → Edit)
4. Write a concise, descriptive alt text (e.g., 'Cannabis-infused summer cocktail in a glass with citrus garnish') and save
5. Publish the change (click Update if already published)

### 23. Description length 232 chars

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer-2/
- **Rule:** `tier2.meta.description-length`

**What it means (plain English)**

Your meta description (the summary that appears under your site name in Google search results) is 232 characters long, but search engines typically display only 150–160 characters on desktop and fewer on mobile. The extra text gets cut off, so visitors don't see your complete message, and you're wasting valuable real estate that could influence click-through rates.

**Why it matters for your business:** Truncated descriptions reduce click-through rates from search results, meaning fewer customers discover your summer favorites content and products.

**Technical root cause:** The page's meta description tag contains excessive text that exceeds the practical display limit of search engine results pages.

**Recommended fix — step by step**

1. Log in to WordPress admin → go to the affected post (green-genius-summer-favorites-closing-out-summer-2)
2. Scroll to the Yoast SEO or All in One SEO meta description field (usually at the bottom of the editor)
3. Edit the description to 80–160 characters, prioritizing your key message (e.g., 'Discover Green Genius summer favorites—top strains and products closing out the season. Shop now.')
4. Ensure the description includes a clear call-to-action or benefit, not just a truncated version of the full text
5. Click 'Update' to save the post
6. Repeat this process for any other posts with descriptions longer than 160 characters (use your SEO plugin's bulk editor or a Content Audit report to identify them)

### 24. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer-2/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

When someone shares your blog post on Facebook, Instagram, or other social platforms, those platforms need preview images and titles to display. Without OpenGraph metadata (special code tags in your page's head section), shares show up as plain links instead of rich previews with your product images and custom text. This reduces click-through rates on shared content.

**Why it matters for your business:** Lower engagement on social shares means fewer customers clicking through from Instagram/Facebook to your site, directly impacting store traffic and online orders.

**Technical root cause:** WordPress doesn't automatically generate OpenGraph tags. The blog post page is missing og:title, og:image, and og:description meta tags that social platforms read when someone attempts to share the URL.

**Recommended fix — step by step**

1. Install the free plugin 'Yoast SEO' or 'Rank Math' (both widely used, WordPress-native).
2. Activate the plugin and go to its settings dashboard.
3. For Yoast: navigate to SEO → Social, then enable Facebook and Instagram integration.
4. For Rank Math: go to Rank Math → Integrations → Social Media, then toggle all platforms on.
5. Edit the affected blog post (and all others): scroll to the plugin's meta box below the editor, upload a featured image (required for og:image), and verify the post title and excerpt are present.
6. Publish or update the post.
7. Test the fix by pasting the URL into Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing/) to confirm the preview now displays your image and title.

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer-2/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your Summer Favorites blog post is missing alt text — descriptive text that screen readers read aloud to visually impaired visitors. This makes the content inaccessible to those users and also means search engines can't understand what the image shows, which hurts your visibility in image search results.

**Why it matters for your business:** Missing alt text reduces your reach to customers using accessibility tools and loses organic search traffic from image discovery, both of which directly affect potential sales.

**Technical root cause:** When the image was uploaded or embedded in the WordPress post editor, the alt text field was left blank.

**Recommended fix — step by step**

1. Log into WordPress admin → go to Posts → search for and open 'green-genius-summer-favorites-closing-out-summer-2'
2. In the post editor, look for the image without alt text (compare against the other 4 images which should already have alt text filled in)
3. Click the image to select it, then click the edit/pencil icon that appears
4. In the right sidebar under 'Alt Text', write a short, descriptive phrase (e.g., 'Summer cannabis product bundle on white background') — 6-12 words works best
5. Click 'Update' to save the post
6. Install and activate the 'SEO by Yoast' plugin if not already active, which will flag missing alt text on future posts to prevent this happening again

### 26. Missing OpenGraph metadata

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

**What it means (plain English)**

OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your posts appear with a generic or broken preview—no image, no custom headline. This is especially important for a lifestyle cannabis brand where visual presentation drives engagement.

**Why it matters for your business:** When customers share your 'Areas We Serve' page on social media, it won't display your brand imagery or a compelling headline, reducing click-through rates and perceived professionalism.

**Technical root cause:** The page template or WordPress theme is not generating og:title and og:image meta tags in the <head> section. This typically happens when the SEO plugin (if present) isn't configured, or the theme doesn't include OpenGraph scaffolding.

**Recommended fix — step by step**

1. Install or activate the free Yoast SEO plugin (if not already active): Dashboard → Plugins → Add New → search 'Yoast SEO' → Install → Activate.
2. Go to Yoast SEO → Social → Facebook and enable 'Add Open Graph meta tags'; repeat for any other social platforms you use.
3. Edit the 'Areas We Serve' page: Dashboard → Pages → Areas We Serve → scroll to the Yoast SEO meta box → set a 'Social title' (max 60 chars) and upload a 'Social image' (1200×630 px minimum).
4. Save the page and verify using the Facebook Sharing Debugger (facebook.com/sharing/debugger) — paste the URL and confirm og:title and og:image now appear.
5. Repeat step 3 for other high-traffic pages (homepage, dispensary info, product pages) to ensure consistency.

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/areas-we-serve/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your "Areas We Serve" page is missing alt text—a short text description that screen readers use to describe images to visually impaired visitors, and that search engines use to understand image content. This reduces accessibility and slightly limits how search engines index that image.

**Why it matters for your business:** Missing alt text reduces your site's accessibility score, may lower search rankings for image-related queries, and risks excluding visually impaired customers from understanding your service areas.

**Technical root cause:** The image element in the HTML lacks an `alt` attribute. This is often an oversight when uploading images directly to WordPress without filling in the Alt Text field in the media uploader.

**Recommended fix — step by step**

1. Log into WordPress admin and navigate to Media → Library.
2. Search for or locate images used on the "Areas We Serve" page (or use the page editor to identify the missing alt).
3. Open the affected image and scroll to the Alt Text field in the right sidebar.
4. Write a brief, descriptive alt text (e.g., "Map of service areas in New York City" or "Photo of Queens, NY dispensary location") — 5–10 words is ideal.
5. Click Update and save the page to republish.

### 28. Title length 19 chars

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

**What it means (plain English)**

Your blog page title is only 19 characters long, which is just under the recommended 20-character minimum. Search engines like Google use page titles as a primary ranking signal and to display in search results. A title that's too short misses an opportunity to include relevant keywords and may appear truncated or incomplete to search visitors.

**Why it matters for your business:** A weak blog title reduces click-through rates from Google search results and signals low relevance to search algorithms, limiting organic traffic to your content marketing efforts.

**Technical root cause:** The WordPress page or post title is set to only "Blog | Green Genius" without descriptive keywords. This is typically configured in the WordPress editor or via an SEO plugin's title template.

**Recommended fix — step by step**

1. Log in to WordPress admin → Posts → Blog (or the page showing this title)
2. If using Yoast SEO: scroll to the Yoast SEO box → click the 'Snippet Preview' → edit the SEO Title field to 40–55 characters, e.g. 'Blog | Green Genius NYC Cannabis Insights'
3. If NOT using an SEO plugin: edit the post title in the main editor to something more descriptive like 'Cannabis Blog | Green Genius NYC Tips & Trends'
4. Verify the new title displays 40–60 characters and includes your primary keyword (e.g. 'cannabis', 'NYC', or a product category)
5. Publish/Update and wait 24 hours for Google to re-crawl

### 29. Missing OpenGraph metadata

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

**What it means (plain English)**

OpenGraph metadata tells social media platforms (Facebook, Instagram, LinkedIn) how to display your content when someone shares a link. Without it, your blog posts appear as plain links instead of eye-catching cards with your title and a branded image. For a lifestyle brand like Green Genius, this directly affects how professional and trustworthy your content looks when shared.

**Why it matters for your business:** Missing OpenGraph tags reduce social media click-through rates and brand perception when customers share your blog content, limiting organic reach and customer acquisition through word-of-mouth.

**Technical root cause:** The blog page template lacks og:title and og:image meta tags in the HTML <head> section. WordPress doesn't output these by default unless manually added or injected via a plugin.

**Recommended fix — step by step**

1. Install the free plugin Yoast SEO or All in One SEO Pack (go to Plugins → Add New, search by name, click Install, then Activate)
2. Open the plugin settings and navigate to Social Media / OpenGraph tab
3. Set a default OpenGraph image (your logo or branded banner) — this will auto-populate on all blog posts
4. Edit the blog index page (Pages → Blog or Posts → All Posts archive) and verify og:title and og:image are populated in each post's SEO preview
5. Use Facebook's Sharing Debugger tool (facebook.com/developers/tools/debug/sharing/) and paste your blog URL to confirm the tags now render correctly
6. Test a social share by copying the blog URL into a Facebook post composer and verify the preview displays your title and image

### 30. Missing Twitter card

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

**What it means (plain English)**

Your blog pages are missing Twitter Card tags — small code snippets that tell Twitter how to display your content when someone shares a link. Without them, Twitter shows a plain text preview instead of an attractive card with your image and headline, making shares less engaging and less likely to drive clicks back to your site.

**Why it matters for your business:** Missing Twitter Cards reduce click-through rates on social shares, limiting organic traffic from Twitter and lowering visibility for blog content that could educate and attract customers.

**Technical root cause:** The WordPress theme or SEO plugin (likely Yoast, Rank Math, or All in One SEO) is not configured to output Twitter Card meta tags, or the setting is disabled.

**Recommended fix — step by step**

1. Log in to WordPress admin → Plugins, and identify your active SEO plugin (check for Yoast SEO, Rank Math, or All in One SEO Pack).
2. If using Yoast SEO: navigate to SEO → Integrations → Social and enable 'Add Open Graph meta tags' and 'Add Twitter Card meta tags'; set Default Card Type to 'Summary with Large Image'.
3. If using Rank Math: go to Rank Math → Titles & Meta → Social and toggle 'Enable Twitter' to ON, then choose 'Summary Large Image' as the card type.
4. If using All in One SEO: navigate to All in One SEO → Social Networks → Twitter and enable 'Twitter Card'.
5. If no SEO plugin is active, install Yoast SEO or Rank Math (both free versions support Twitter Cards).
6. After enabling, publish or re-save your blog post at /blog/ to refresh the meta tags.
7. Verify the fix by visiting https://cards-dev.twitter.com/validator and pasting your blog URL to confirm the Twitter Card meta tag now appears.

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/blog/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your blog page lacks alt text—a short text description that screen readers use to describe images to blind and low-vision visitors. Search engines also use alt text to understand what images show, which helps your site rank for image searches.

**Why it matters for your business:** Missing alt text reduces accessibility for customers with visual impairments, lowers your blog's SEO ranking potential, and creates minor legal risk under accessibility compliance standards.

**Technical root cause:** The image was uploaded to WordPress without an alt text field being filled in during upload or later editing.

**Recommended fix — step by step**

1. Log into WordPress admin → navigate to Posts → Blog → click Edit
2. In the block editor, find the image missing alt text (scroll through the blog post)
3. Click the image, then look for the 'Alt text (alternative text)' field in the right panel (or click the image settings icon)
4. Write a brief, descriptive alt text (e.g., 'Green Genius storefront entrance' or 'Cannabis flower display') — 5–15 words is ideal
5. Click Update to save the post

### 32. Missing OpenGraph metadata

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

**What it means (plain English)**

Your Services page is missing OpenGraph tags—special metadata that tells social media platforms (Facebook, Instagram, LinkedIn) what title and image to display when someone shares the page. Without these tags, social shares may look broken or generic, hurting click-through rates from social traffic.

**Why it matters for your business:** Missing OG tags reduce engagement on social shares; potential customers clicking through from Instagram or Facebook may see a blank preview instead of your service details, lowering conversion from social channels.

**Technical root cause:** WordPress theme or SEO plugin (Yoast, Rank Math, etc.) is not generating or the site is not outputting og:title and og:image meta tags in the page <head>.

**Recommended fix — step by step**

1. Log into WordPress admin → install or activate Yoast SEO (free tier includes OG support); if already active, go to SEO → Search Appearance → Social and enable 'Add Open Graph meta tags'.
2. Alternatively, if using Rank Math, go to Rank Math → Titles & Metas → Social → toggle on 'Add Open Graph meta tags'.
3. Set a default featured image for the Services page: edit the page, upload/assign a featured image in the right panel under 'Featured Image'.
4. Go back to your SEO plugin settings (Yoast/Rank Math) and verify og:title and og:image are now appearing by viewing page source (Ctrl+U on the live page, search for 'og:').
5. Test the share preview in real-time: visit Facebook Sharing Debugger (facebook.com/developers/tools/debug/sharing), paste the URL, and confirm the title and image now display correctly.

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/services/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your Services page doesn't have alt text—a short text description that explains what the image shows. Screen readers (used by people with vision loss) can't "see" images, so they read this text aloud instead. Search engines also use alt text to understand your images, which helps them rank your content higher.

**Why it matters for your business:** Missing alt text hurts both accessibility (excluding potential customers) and your search rankings, especially for image-based queries around cannabis products or services.

**Technical root cause:** The image HTML element lacks an alt attribute, or the alt attribute is empty. This is typically a content entry issue in WordPress's image uploader.

**Recommended fix — step by step**

1. Log into WordPress admin and navigate to Media Library.
2. Search for or identify the image on the /services/ page (check the page edit screen to see which image is missing alt).
3. Click the image to open its details panel.
4. In the 'Alt Text' field, write a concise 1–2 sentence description (e.g., 'Cannabis flower display on wooden shelf' or 'Staff member assisting customer at checkout counter').
5. Click 'Update' and save the page.
6. Use a free browser tool like WAVE (wave.webaim.org) to verify the alt text now appears.

### 34. Missing OpenGraph metadata

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

**What it means (plain English)**

When someone shares a link to your Brands page on Facebook, Instagram, or other social media, those platforms use special metadata tags (called OpenGraph tags) to pull in a preview image and title. Without them, the share shows a generic or broken preview, which looks unprofessional and discourages clicks.

**Why it matters for your business:** Poor social sharing appearance reduces organic traffic from word-of-mouth sharing and brand mentions, especially important for lifestyle cannabis retailers who rely on community engagement and Instagram visibility.

**Technical root cause:** The /brands/ page is missing og:title and og:image meta tags in its HTML head section. WordPress does not add these automatically; they must be added via theme code, plugin, or manual entry.

**Recommended fix — step by step**

1. Install the Yoast SEO or Rank Math SEO plugin (both free versions include social meta features).
2. Activate the plugin and navigate to its Social Media settings.
3. Upload or select a default og:image (a branded image or logo at least 1200×630px works best).
4. For the /brands/ page specifically, edit the page in WordPress and check the plugin's meta box at the bottom to set a custom og:title (e.g. 'Featured Cannabis Brands | Green Genius NYC') and og:image.
5. Save and publish, then test the share preview using Facebook's Sharing Debugger (facebook.com/sharing/debugger) or LinkedIn's Post Inspector to confirm the image and title appear.

### 35. Missing OpenGraph metadata

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Moderate (1-3 hours)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/brands/dank-by-definition/
- **Rule:** `tier2.meta.no-og`

**What it means (plain English)**

When someone shares your product page on social media (Facebook, Instagram, LinkedIn), the platform needs to know what image and title to display in that share card. Without OpenGraph tags, social platforms either show a generic preview or nothing at all, making your products look unprofessional and reducing click-through rates from social traffic.

**Why it matters for your business:** Missing social preview metadata reduces engagement and click-through rates when customers share your brand pages on social platforms, directly reducing referral traffic and word-of-mouth visibility for your products.

**Technical root cause:** WordPress is not automatically inserting og:title and og:image meta tags into the page <head> section. This typically happens when either no SEO plugin is active, the plugin isn't configured to generate these tags, or they're not being output on this specific page template.

**Recommended fix — step by step**

1. Install Yoast SEO (free version) from WordPress Admin → Plugins → Add New, search 'Yoast SEO', click Install Now
2. Activate the plugin and go to Yoast SEO → Dashboard → Integrations, ensure Google Search Console is connected (you'll paste your GSC verification code)
3. Navigate to the Brands taxonomy page at WordPress Admin → Products → Categories (or your taxonomy structure) and find 'Dank by Definition'
4. Click Edit on that term and scroll down to the Yoast SEO section; ensure 'Show in search results' is enabled and fill in the Focus Keyphrase
5. Go to Yoast SEO → Site Features and enable 'XML Sitemaps' and 'Social Media' integration
6. In Yoast SEO → Integration → Social, connect your Facebook and Instagram accounts and enable 'Add Open Graph meta tags'
7. Return to the 'Dank by Definition' term and set a featured image in the Yoast social preview section, then update
8. Test the fix by visiting https://developers.facebook.com/tools/debug/ and pasting your brand page URL to verify og:title and og:image now appear

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

- **Severity:** P3   |   **Priority:** 🟡 MEDIUM
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/brands/dank-by-definition/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your Dank by Definition brand page lacks alt text — a text description that screen readers use to convey image content to blind and low-vision visitors. This also signals search engines about the image, which can boost SEO for visual searches and product discoverability.

**Why it matters for your business:** Missing alt text reduces accessibility for customers with visual disabilities and slightly weakens search visibility for product images, which is important for a lifestyle cannabis brand competing on visual appeal.

**Technical root cause:** The image element in the HTML is missing the alt attribute entirely, likely added via WordPress media upload without a description filled in during insertion.

**Recommended fix — step by step**

1. Log into WordPress admin → navigate to /brands/dank-by-definition/
2. Click Edit → scroll to find the image without alt text (compare count: 1 of 11 images)
3. Click the image in the editor → click the pencil/edit icon in the image preview
4. In the Image Details modal, locate the Alt Text field and enter a brief, descriptive phrase (e.g., 'Dank by Definition cannabis product packaging' or 'Dank by Definition flower jar with label')
5. Click Update → Publish the page

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

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** accessibility
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier2.a11y.img-missing-alt`

**What it means (plain English)**

One image on your homepage lacks alt text — a text description that screen readers use and that search engines read to understand image content. With 25 images total and only 1 missing, this is a minor issue, but it's an easy fix that improves both accessibility for visitors using assistive technology and search engine understanding of your page.

**Why it matters for your business:** Missing alt text on even one image slightly reduces your SEO visibility for image-related searches and excludes visitors using screen readers from understanding that image, which is both a usability and brand reputation concern.

**Technical root cause:** The image was likely added via WordPress media upload without filling in the Alt Text field, or was inserted via HTML without an alt attribute.

**Recommended fix — step by step**

1. Log into WordPress admin → Media Library
2. Search for images on the homepage (or navigate to that page in the editor)
3. Click Edit on each image until you find the one without alt text
4. In the image details panel, locate the Alt Text field and fill it with a concise, descriptive phrase (e.g., 'Green cannabis flower on white background')
5. Save changes
6. Optional: Use the Yoast SEO plugin → SEO → Image Optimization feature to audit all images at once

### 38. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your blog posts are missing Twitter card tags—metadata that tells Twitter (X) how to display your content when someone shares a link. Without these tags, your posts show up as plain text instead of rich preview cards with images and descriptions, which look less professional and get fewer clicks.

**Why it matters for your business:** Missed social media engagement: posts shared on Twitter/X won't display promotional images or compelling descriptions, reducing click-through traffic from social platforms where cannabis lifestyle content performs well.

**Technical root cause:** The WordPress theme or SEO plugin (if installed) is not generating twitter:card meta tags in the page <head>. This requires explicit configuration in the theme or a plugin like Yoast SEO or Rank Math.

**Recommended fix — step by step**

1. Install or activate Yoast SEO plugin (free version): go to Plugins → Add New, search 'Yoast SEO', click Install Now, then Activate.
2. In WordPress admin, go to Yoast SEO → Dashboard → Site Connections.
3. Scroll to 'Social Profiles' and add your Twitter/X profile URL.
4. Go to Yoast SEO → Integrate → Social, toggle on 'Add Open Graph meta tags' and 'Add Twitter Card meta tags'.
5. For the affected post (august-just-got-better post), edit it and scroll to the Yoast SEO sidebar; ensure a featured image is set and the 'Social preview' shows the card correctly.
6. Publish/update the post; Twitter will cache the new card within 24 hours.

### 39. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your blog post is missing a Twitter Card — a special HTML tag that tells Twitter how to display your content when someone shares the link. Without it, Twitter shows a plain, unformatted preview. For a lifestyle brand like Green Genius, a rich preview (with your custom image and description) drives more clicks and engagement when customers share your content.

**Why it matters for your business:** Missing Twitter Cards reduce click-through rates on social shares, meaning fewer potential customers discover your content and visit your site from Twitter/X.

**Technical root cause:** The page lacks the `<meta name="twitter:card">` tag and related Twitter meta tags (twitter:title, twitter:description, twitter:image) in the HTML head section.

**Recommended fix — step by step**

1. Install the Yoast SEO plugin (Free version) if not already active: Dashboard → Plugins → Add New, search 'Yoast SEO', click Install & Activate.
2. Go to Yoast SEO → Integrations → Social Media, enable 'Twitter' toggle.
3. Set your Twitter handle: Yoast SEO → General → Social Profiles, paste your Twitter URL.
4. Edit the affected post (August in NYC blog): Dashboard → Posts → Edit, scroll to Yoast SEO panel, click 'Social' tab, verify Twitter preview displays correctly.
5. Regenerate the post preview by saving it again to trigger meta tag output.
6. Test the page in Twitter Card Validator (card-validator.twitter.com) — paste the full URL and confirm the card renders with image and description.

### 40. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer-2/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your product pages are missing Twitter Card tags—special metadata that tells Twitter how to display a link when someone shares your page on that platform. Without them, Twitter shows a plain text preview instead of a rich preview with your product image and description. This affects how appealing your shared content looks to potential customers scrolling Twitter.

**Why it matters for your business:** Reduced click-through rates on Twitter shares, since users are less likely to click a plain text link than a visually rich card showing your product imagery and copy.

**Technical root cause:** The page HTML is missing `<meta name="twitter:card">` and related open graph tags in the `<head>` section. WordPress doesn't add these by default; they require either a plugin or manual theme customization.

**Recommended fix — step by step**

1. Install the Yoast SEO plugin (free version is sufficient) via WordPress Admin → Plugins → Add New, search 'Yoast SEO', then activate it.
2. Go to Yoast SEO → Integration → Social accounts and enable Twitter.
3. In Yoast SEO → Social preview settings, set your default Twitter card type to 'summary_large_image' (shows image + title + description).
4. On each product post (e.g., the Summer Favorites post), edit it and scroll to the Yoast SEO meta box → Social tab → add a custom Twitter image (recommended 1200×628px) if you want to override the default featured image.
5. Save the post and verify the meta tag appeared by viewing the page source (Ctrl+U or Cmd+U in browser) and searching for 'twitter:card'.

### 41. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/areas-we-serve/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your site is missing Twitter Card meta tags, which are small snippets of code that tell Twitter (now X) how to display your page when someone shares a link. Without them, the platform shows a plain text preview instead of an attractive image, headline, and description—making your content less likely to be clicked.

**Why it matters for your business:** Social sharing drives traffic and brand awareness for lifestyle cannabis retailers; a plain link preview reduces click-through rates on X/Twitter and makes your dispensary look less polished than competitors who optimize for social.

**Technical root cause:** The WordPress theme or SEO plugin (if present) has not been configured to output Twitter Card meta tags in the <head> section of your pages.

**Recommended fix — step by step**

1. Log into WordPress admin → Plugins → search for 'Yoast SEO' (or 'RankMath' if installed); if not present, install Yoast SEO.
2. Activate Yoast SEO; go to Yoast SEO → Integrations → Social.
3. Toggle 'Twitter' ON and enter your Twitter/X handle (e.g., @greengeniusnyc).
4. In Yoast SEO → Title & Metas, ensure 'Social' tab is enabled.
5. For the affected page (areas-we-serve), open it in the WordPress editor → Yoast SEO sidebar → Social preview → select Twitter and verify the card displays correctly with image, headline, and description.
6. If using a custom theme without Yoast, manually add `<meta name="twitter:card" content="summary_large_image">`, `<meta name="twitter:site" content="@yourtwitterhandle">`, and `<meta name="twitter:image" content="[image-url]">` to wp-content/themes/[your-theme]/header.php (or child theme if present).

### 42. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/services/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your website is missing a Twitter Card meta tag, which is a small piece of code that tells Twitter how to display your content when someone shares a link to your site. Without it, Twitter shows a plain, less visually appealing preview. This is a nice-to-have social feature, not a critical issue.

**Why it matters for your business:** Missing Twitter Cards reduces click-through rates from Twitter/X shares and makes your dispensary look less polished when customers or advocates share your service pages on social media.

**Technical root cause:** The page lacks the `<meta name="twitter:card" content="summary_large_image">` tag and related Open Graph meta tags in the HTML head section.

**Recommended fix — step by step**

1. Log into WordPress admin → Settings → Social or install Yoast SEO / Rank Math (both free versions support Twitter Cards)
2. If using Yoast: go to SEO → Search Appearance → Social → Twitter and enable Twitter Card, set card type to 'Summary with Large Image'
3. If using Rank Math: Settings → Social Media → Twitter and toggle 'Enable Twitter Card'
4. Add a featured image to the /services/ page if one doesn't exist (1200×630px minimum for best display)
5. Test the fix at https://cards-dev.twitter.com/validator by pasting your /services/ URL
6. Repeat for other key pages (homepage, product/menu pages, blog posts)

### 43. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/brands/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your website is missing Twitter Card meta tags, which are small snippets of code that tell Twitter how to display your content when someone shares a link to your site. Without them, Twitter shows a plain, generic preview instead of an attractive one with your chosen image, title, and description.

**Why it matters for your business:** When customers share your products or articles on Twitter/X, a bland preview reduces click-through rates and doesn't reinforce your brand identity.

**Technical root cause:** The WordPress head section lacks the twitter:card, twitter:title, twitter:description, and twitter:image meta tags required by Twitter's sharing protocol.

**Recommended fix — step by step**

1. Install the Yoast SEO plugin (free version) or All in One SEO Pack if not already active.
2. Go to WordPress Admin → SEO (Yoast) → Social → X/Twitter.
3. Enable the X/Twitter integration toggle.
4. Set a default Twitter Card image (recommended 1200×630px) by uploading via 'Twitter Image' field.
5. Add your brand's Twitter handle in 'Twitter Account Name' field.
6. Go to a key product or article page (e.g., /brands/) and verify Twitter Card meta tags appear by viewing page source (Ctrl+U) or using Twitter's Card Validator (https://cards-dev.twitter.com/validator).
7. Recheck the same URL in Twitter Card Validator to confirm tags render correctly.

### 44. Missing Twitter card

- **Severity:** P3   |   **Priority:** ⚪ LOW
- **Effort:** Quick win (< 30 min)
- **Business category:** seo
- **Page URL:** https://greengeniusnyc.com/brands/dank-by-definition/
- **Rule:** `tier2.meta.no-twitter-card`

**What it means (plain English)**

Your product pages (like the Dank by Definition brand page) are missing a Twitter Card meta tag. This is a small HTML snippet that tells Twitter how to display your link when someone shares it on that platform — without it, Twitter shows a generic preview instead of your product image and description.

**Why it matters for your business:** Missed opportunity to drive traffic from Twitter/X shares; competitors with proper Twitter Cards will get more clicks and engagement when their products are shared socially.

**Technical root cause:** The Twitter Card meta tag (e.g., `<meta name="twitter:card" content="summary_large_image">`) is not present in the page's HTML head section. WordPress themes often omit this unless explicitly added via an SEO plugin or custom code.

**Recommended fix — step by step**

1. Install the free Yoast SEO plugin if not already active: WordPress admin → Plugins → Add New → search 'Yoast SEO' → Install & Activate.
2. Go to Yoast SEO → Integrations → Social Media.
3. Toggle 'Add open graph and Twitter card meta tags' to ON.
4. In the same section, enter your Twitter handle (e.g., @greengeniusnyc) in the 'Twitter username' field.
5. Go to the affected product page (Brands → Dank by Definition → Edit).
6. Scroll to the Yoast SEO metabox at the bottom; ensure 'Social preview' shows your product image and description.
7. Publish/Update the page.
8. Repeat for all brand and product pages, or use Yoast's bulk edit feature to apply Twitter settings site-wide.

### 45. Title length 19 chars

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

**Detail**

Title should be 20-65 chars. Got: "Home | Green Genius"

### 46. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

### 47. Description length 208 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss/
- **Rule:** `tier2.meta.description-length`

**Detail**

Description should be 80-160 chars.

### 48. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

### 49. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers-2/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 50. Missing OpenGraph metadata

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

**Detail**

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

### 51. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

### 52. Missing OpenGraph metadata

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

**Detail**

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

### 53. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

### 54. Missing OpenGraph metadata

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

**Detail**

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

### 55. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 57. Missing OpenGraph metadata

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

**Detail**

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

### 58. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 60. Missing OpenGraph metadata

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

**Detail**

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

### 61. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 63. Missing OpenGraph metadata

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

**Detail**

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

### 64. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 66. Missing OpenGraph metadata

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

**Detail**

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

### 67. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 69. Missing OpenGraph metadata

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

**Detail**

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

### 70. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 72. Missing OpenGraph metadata

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

**Detail**

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

### 73. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 75. Missing OpenGraph metadata

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

**Detail**

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

### 76. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 78. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-alphabet-city-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 79. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-alphabet-city-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-alphabet-city-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 81. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-bowery-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 82. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-bowery-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-bowery-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 84. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-flatiron-district-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 85. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-flatiron-district-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-flatiron-district-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 87. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-greenwich-village/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 88. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-greenwich-village/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-greenwich-village/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 90. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-kips-bay-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 91. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-kips-bay-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-kips-bay-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 93. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-peter-cooper-village-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 94. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-peter-cooper-village-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-peter-cooper-village-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 96. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-stuytown-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 97. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-stuytown-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-stuytown-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 99. Missing OpenGraph metadata

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

**Detail**

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

### 100. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 102. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/services/cannabis-delivery/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 103. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/services/cannabis-delivery/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/services/cannabis-delivery/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 105. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-gramercy-park-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 106. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-gramercy-park-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-gramercy-park-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 108. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-union-square-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 109. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-union-square-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-union-square-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 111. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-east-village-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 112. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-east-village-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-east-village-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 114. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-chelsea-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 115. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-chelsea-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-chelsea-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 117. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-nomad-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 118. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-nomad-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-nomad-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 120. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-west-village-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 121. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-west-village-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-west-village-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 123. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-murray-hill-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 124. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-murray-hill-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-murray-hill-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 126. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-lower-manhattan-ny/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 127. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-lower-manhattan-ny/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/about/service-areas/dispensary-in-lower-manhattan-ny/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 129. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/jaunty/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 130. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 132. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/hudson-cannabis/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 133. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/hudson-cannabis/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/hudson-cannabis/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 135. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/holiday/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 136. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 138. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/fernway/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 139. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 141. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/services/in-store-pickup/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 142. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/services/in-store-pickup/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/services/in-store-pickup/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 144. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/back-home-cannabis-co/
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 145. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/back-home-cannabis-co/
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/brands/back-home-cannabis-co/
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 147. Title length 19 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-single-post-773
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Home | Green Genius"

### 148. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-single-post-773
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 149. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-single-post-773
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-single-post-773
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 151. Title length 19 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-archive-758
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Home | Green Genius"

### 152. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-archive-758
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 153. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-archive-758
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-archive-758
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 155. Title length 19 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=default-kit
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Home | Green Genius"

### 156. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=default-kit
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 157. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=default-kit
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=default-kit
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 159. Title length 19 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-header-300
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Home | Green Genius"

### 160. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-header-300
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 161. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-header-300
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-header-300
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 163. Title length 19 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-footer-292
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Home | Green Genius"

### 164. Missing OpenGraph metadata

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-footer-292
- **Rule:** `tier2.meta.no-og`

**Detail**

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

### 165. Missing Twitter card

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-footer-292
- **Rule:** `tier2.meta.no-twitter-card`

**Detail**

No twitter:card meta tag.

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

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/?elementor_library=elementor-footer-292
- **Rule:** `tier2.a11y.img-missing-alt`

**Detail**

Images without alt fail a11y + hurt SEO.

### 167. Title length 19 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/category/blog/
- **Rule:** `tier2.meta.title-length`

**Detail**

Title should be 20-65 chars. Got: "Blog | Green Genius"

### 168. Description length 18 chars

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/category/blog/
- **Rule:** `tier2.meta.description-length`

**Detail**

Description should be 80-160 chars.

### 169. Missing OpenGraph metadata

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

**Detail**

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

### 170. Missing Twitter card

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

**Detail**

No twitter:card meta tag.

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

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

**Detail**

Images without alt fail a11y + hurt SEO.

### 172. Desktop perf measurement failed

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier3.perf.desktop-fail`

**Detail**

page.goto: Timeout 60000ms exceeded.
Call log:
  - navigating to "https://greengeniusnyc.com/", waiting until "networkidle"


### 173. Missing security header: x-content-type-options

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier5.header.x-content-type-options`

**Detail**

x-content-type-options not present on homepage response. Affects fortress score and CSP posture.

### 174. Missing security header: referrer-policy

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

**Detail**

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

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

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

**Detail**

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

### 176. SSL Labs grade: unknown

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

### 177. DNSSEC not enabled

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

**Detail**

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

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

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

### 179. Lighthouse a11y (mobile): 89/100

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

**Detail**

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

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

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

**Detail**

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

### 181. LH mobile: Preconnect to required origins (Est savings of 340 ms)

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

**Detail**

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

### 182. LH mobile: Defer offscreen images (Est savings of 64 KiB)

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier8.lh-opportunity.offscreen-images-mobile`

**Detail**

Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).

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

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

**Detail**

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

### 184. LH mobile: Minify JavaScript (Est savings of 5 KiB)

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

**Detail**

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

### 185. LH mobile: Reduce unused JavaScript (Est savings of 22 KiB)

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

### 186. Lighthouse a11y (desktop): 89/100

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

**Detail**

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

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

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

**Detail**

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

### 188. LH desktop: Preconnect to required origins (Est savings of 220 ms)

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

**Detail**

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

### 189. LH desktop: Defer offscreen images (Est savings of 64 KiB)

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier8.lh-opportunity.offscreen-images-desktop`

**Detail**

Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/).

### 190. LH desktop: Minify JavaScript (Est savings of 5 KiB)

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

**Detail**

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

### 191. LH desktop: Reduce unused JavaScript (Est savings of 22 KiB)

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

### 192. LH desktop: Serve images in next-gen formats (Est savings of 508 KiB)

- **Severity:** P3
- **Page URL:** https://greengeniusnyc.com/
- **Rule:** `tier8.lh-opportunity.modern-image-formats-desktop`

**Detail**

Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

---

## Findings by Page

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

### https://greengeniusnyc.com/
_45 findings on this page_

- **[P1] 1 mixed-content references (http://)** 🔴 DO FIRST
  Your website is loaded over HTTPS (secure), but one resource is being requested over HTTP (insecure). Modern browsers will block or warn users about this mismatch, which can degrade trust and break fu
- **[P1] Lighthouse bestPractices (desktop): 59/100** 🟠 HIGH
  Your site's Lighthouse Best Practices score is 59 out of 100—well below the healthy target of 90. This score aggregates issues like outdated browser APIs, insecure third-party scripts, missing securit
- **[P1] A11y: ARIA dialog and alertdialog nodes should have an accessible name** 🔴 DO FIRST
  Your site has an age-gate popup (the dialog box that appears to verify visitors are 21+) that screen readers cannot identify or describe. Screen reader users—including your legally compliant visitors—
- **[P1] A11y: Elements must meet minimum color contrast ratio thresholds (×2)** 🔴 DO FIRST
  Your site has two buttons with text colors that don't contrast sharply enough against their backgrounds. The 'Start Your Order' button uses white text on a medium green (#439466) with a contrast ratio
- **[P1] A11y: Links must have discernible text** 
- **[P1] Journey failed: default: homepage → age gate → menu visible** 🔴 DO FIRST
  Your site is trying to load JavaScript files (modern module scripts), but the server is returning HTML pages instead. Browsers reject this because they expect actual JavaScript code with the correct f
- **[P2] 7 console errors on homepage** 🟠 HIGH
  Your homepage is producing 7 JavaScript errors in the browser console, all related to failed module script loads. The server is returning HTML instead of JavaScript files when the browser requests mod
- **[P2] Mobile perf measurement failed** 🟠 HIGH
  Our automated performance test couldn't load your homepage on mobile within 60 seconds. This means either the site is extremely slow to load, or it's stuck waiting for resources (images, scripts, ads)
- **[P2] Missing core schema types: LocalBusiness** 🟠 HIGH
  Your site includes Organization and WebSite schema markup, but is missing LocalBusiness schema. LocalBusiness tells search engines and map apps that you're a physical retail location with a specific a
- **[P2] Missing security header: strict-transport-security** 🟠 HIGH
  Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use encrypted HTTPS connections when visiting your site. This header is especially important for cannab
- **[P2] Missing security header: x-frame-options** 
- **[P2] Missing security header: content-security-policy** 🟠 HIGH
  Your website is missing a Content Security Policy (CSP) header — a security instruction that tells browsers which sources of content (scripts, images, stylesheets) are trusted. Without it, your site i
- **[P2] 41 tap targets under 44px at mobile-320** 🟠 HIGH
  Your site has 41 buttons, links, and interactive elements that are smaller than 44×44 pixels when viewed on mobile phones. This makes them difficult to tap accurately—especially for people with limite
- **[P2] 41 tap targets under 44px at mobile-375** 🟠 HIGH
  Your site has 41 buttons, links, and other clickable elements that are smaller than 44×44 pixels on mobile phones. WCAG 2.5.5 (a web accessibility standard) requires interactive elements to be at leas
- **[P2] 41 tap targets under 44px at mobile-414** 
- **[P2] 37 tap targets under 44px at tablet-768** 🟠 HIGH
  Your website has 37 buttons, links, and other clickable elements that are smaller than 44×44 pixels when viewed on a tablet. This makes them hard to tap accurately—especially for people with motor imp
- **[P2] Lighthouse perf (mobile): 56/100** 🟠 HIGH
  Your mobile site takes roughly 25 seconds for the largest visual element (hero image, main product photo) to appear on screen—that's 5× slower than Google's recommendation. Visitors on phones will see
- **[P2] Lighthouse bestPractices (mobile): 61/100** 
- **[P2] Lighthouse perf (desktop): 72/100** 🟠 HIGH
  Your homepage takes 4 seconds to display its main content (images, headlines), which is slower than Google's recommended 2.5 seconds. Visitors see a blank or incomplete page during this delay, increas
- **[P2] A11y: Heading levels should only increase by one** 
- **[P3] Title length 19 chars** 
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are metadata snippets that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your link when someone shares it. Without them, social shares show a generic previe
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** ⚪ LOW
  One image on your homepage lacks alt text — a text description that screen readers use and that search engines read to understand image content. With 25 images total and only 1 missing, this is a mino
- **[P3] Desktop perf measurement failed** 
- **[P3] Missing security header: x-content-type-options** 
- **[P3] Missing security header: referrer-policy** 
- **[P3] Missing security header: permissions-policy** 
- **[P3] SSL Labs grade: unknown** 
- **[P3] DNSSEC not enabled** 
- **[P3] DMARC policy is p=none (monitoring only)** 
- **[P3] Lighthouse a11y (mobile): 89/100** 
- **[P3] Lighthouse seo (mobile): 92/100** 
- **[P3] LH mobile: Preconnect to required origins (Est savings of 340 ms)** 
- **[P3] LH mobile: Defer offscreen images (Est savings of 64 KiB)** 
- **[P3] LH mobile: Eliminate render-blocking resources (Est savings of 1,170 ms)** 
- **[P3] LH mobile: Minify JavaScript (Est savings of 5 KiB)** 
- **[P3] LH mobile: Reduce unused JavaScript (Est savings of 22 KiB)** 
- **[P3] Lighthouse a11y (desktop): 89/100** 
- **[P3] Lighthouse seo (desktop): 92/100** 
- **[P3] LH desktop: Preconnect to required origins (Est savings of 220 ms)** 
- **[P3] LH desktop: Defer offscreen images (Est savings of 64 KiB)** 
- **[P3] LH desktop: Minify JavaScript (Est savings of 5 KiB)** 
- **[P3] LH desktop: Reduce unused JavaScript (Est savings of 22 KiB)** 
- **[P3] LH desktop: Serve images in next-gen formats (Est savings of 508 KiB)** 

### https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss/
_5 findings on this page_

- **[P3] Title length 80 chars** 🟡 MEDIUM
  Your page title is 80 characters long, but search engines like Google typically show only 50-60 characters in search results before cutting off with an ellipsis (…). This means visitors searching for 
- **[P3] Description length 208 chars** 
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  Your blog post about pre-roll deals is missing OpenGraph tags—special HTML code that tells Facebook, Instagram, and other social platforms how to display your content when someone shares the link. Wit
- **[P3] Missing Twitter card** ⚪ LOW
  Your blog posts are missing Twitter card tags—metadata that tells Twitter (X) how to display your content when someone shares a link. Without these tags, your posts show up as plain text instead of ri
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One product or promotional image on your August pre-roll deals post lacks alt text — a brief text description that screen readers announce and search engines use to understand images. This affects bot

### https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers/
_5 findings on this page_

- **[P3] Title length 71 chars** 🟡 MEDIUM
  Your page title is 71 characters long, but Google typically displays 50–60 characters on desktop and fewer on mobile. Titles longer than 65 characters get truncated in search results, meaning potentia
- **[P3] Description length 225 chars** 🟡 MEDIUM
  Your meta description—the text that appears under your page title in Google search results—is 225 characters long. Google typically truncates (cuts off) descriptions longer than 160 characters on desk
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  When someone shares your blog post on Facebook, Instagram, or other social platforms, those sites use special metadata tags (called OpenGraph tags) to pull in a preview image and title. Without them, 
- **[P3] Missing Twitter card** ⚪ LOW
  Your blog post is missing a Twitter Card — a special HTML tag that tells Twitter how to display your content when someone shares the link. Without it, Twitter shows a plain, unformatted preview. For a
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your August blog post doesn't have alt text—a short description that screen readers read aloud and that search engines use to understand the image. This means visitors using screen reader

### https://greengeniusnyc.com/august-just-got-better-two-pre-roll-deals-you-dont-want-to-miss-2/
_5 findings on this page_

- **[P3] Title length 80 chars** 🟡 MEDIUM
  Your page title is 80 characters long, but search engines like Google typically display only 50–60 characters in search results before truncating with ellipsis (…). This means potential customers see 
- **[P3] Description length 208 chars** 🟡 MEDIUM
  Your meta description (the summary that appears under your page title in Google search results) is 208 characters long. Search engines typically truncate descriptions longer than 160 characters, which
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are snippets of code that tell social platforms (Facebook, Instagram, LinkedIn) how to display your content when someone shares a link. Without them, social shares show a generic previe
- **[P3] Missing Twitter card** 🟡 MEDIUM
  Your product pages are missing Twitter Card meta tags, which are small snippets of code that tell Twitter (now X) how to display your content when someone shares a link. Without them, shared posts sho
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your August deals post is missing alt text — a short text description that screen readers use to describe the image to visually impaired visitors. Search engines also use alt text to unde

### https://greengeniusnyc.com/august-in-nyc-elevated-summer-plans-for-cannabis-lovers-2/
_5 findings on this page_

- **[P3] Title length 71 chars** 🟡 MEDIUM
  Your page title is 71 characters long, but search engines like Google typically display 50–60 characters on desktop and fewer on mobile. Your full title gets cut off in search results, hiding the bene
- **[P3] Description length 225 chars** 🟡 MEDIUM
  Your meta description (the text that appears below your page title in Google search results) is 225 characters long, but search engines typically display only 80–160 characters on desktop and fewer on
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 🟡 MEDIUM
  Your blog post doesn't include a Twitter Card meta tag — a small code snippet that tells Twitter how to display a preview when someone shares your link. Without it, Twitter shows a plain text preview 
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your August summer plans blog post is missing alt text—a text description that explains what the image shows. Screen reader users (including people with vision loss) won't know what that 

### https://greengeniusnyc.com/blog/
_5 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  The blog page lacks a meta description — a 160-character summary that appears under your page title in Google search results. Without it, Google may auto-generate a snippet, which often looks incomple
- **[P3] Title length 19 chars** 🟡 MEDIUM
  Your blog page title is only 19 characters long, which is just under the recommended 20-character minimum. Search engines like Google use page titles as a primary ranking signal and to display in sear
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph metadata tells social media platforms (Facebook, Instagram, LinkedIn) how to display your content when someone shares a link. Without it, your blog posts appear as plain links instead of eye
- **[P3] Missing Twitter card** 🟡 MEDIUM
  Your blog pages are missing Twitter Card tags — small code snippets that tell Twitter how to display your content when someone shares a link. Without them, Twitter shows a plain text preview instead o
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your blog page lacks alt text—a short text description that screen readers use to describe images to blind and low-vision visitors. Search engines also use alt text to understand what ima

### https://greengeniusnyc.com/category/blog/
_5 findings on this page_

- **[P3] Title length 19 chars** 
- **[P3] Description length 18 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer/
_4 findings on this page_

- **[P3] Description length 232 chars** 🟡 MEDIUM
  Your meta description (the snippet Google shows under your link in search results) is 232 characters long. Google typically displays 150–160 characters on desktop and 120 on mobile, so anything longer
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  When this page is shared on Facebook, Instagram, or other social platforms, those sites won't have a nice preview card with your image and headline. Instead, they'll show a plain text link or a generi
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your summer favorites blog post is missing alt text—a short text description that appears when the image fails to load and helps search engines understand what the image shows. This hurts

### https://greengeniusnyc.com/green-genius-summer-favorites-closing-out-summer-2/
_4 findings on this page_

- **[P3] Description length 232 chars** 🟡 MEDIUM
  Your meta description (the summary that appears under your site name in Google search results) is 232 characters long, but search engines typically display only 150–160 characters on desktop and fewer
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  When someone shares your blog post on Facebook, Instagram, or other social platforms, those platforms need preview images and titles to display. Without OpenGraph metadata (special code tags in your p
- **[P3] Missing Twitter card** ⚪ LOW
  Your product pages are missing Twitter Card tags—special metadata that tells Twitter how to display a link when someone shares your page on that platform. Without them, Twitter shows a plain text prev
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your Summer Favorites blog post is missing alt text — descriptive text that screen readers read aloud to visually impaired visitors. This makes the content inaccessible to those users and

### https://greengeniusnyc.com/services/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  The Services page is missing a meta description — the 155-character text snippet that appears below your page title in Google search results. This means search engines will auto-generate a snippet fro
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  Your Services page is missing OpenGraph tags—special metadata that tells social media platforms (Facebook, Instagram, LinkedIn) what title and image to display when someone shares the page. Without th
- **[P3] Missing Twitter card** ⚪ LOW
  Your website is missing a Twitter Card meta tag, which is a small piece of code that tells Twitter how to display your content when someone shares a link to your site. Without it, Twitter shows a plai
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your Services page doesn't have alt text—a short text description that explains what the image shows. Screen readers (used by people with vision loss) can't "see" images, so they read thi

### https://greengeniusnyc.com/brands/
_4 findings on this page_

- **[P2] Missing meta description** 🟠 HIGH
  Your /brands/ page is missing a meta description — the 160-character summary that appears under your page title in Google search results. Without it, Google will auto-generate a snippet, which is ofte
- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  When someone shares a link to your Brands page on Facebook, Instagram, or other social media, those platforms use special metadata tags (called OpenGraph tags) to pull in a preview image and title. Wi
- **[P3] Missing Twitter card** ⚪ LOW
  Your website is missing Twitter Card meta tags, which are small snippets of code that tell Twitter how to display your content when someone shares a link to your site. Without them, Twitter shows a pl
- **[P3] 1 image(s) missing alt text** 🟠 HIGH
  One image on your Brands page doesn't have alt text — the hidden text that describes an image to screen readers and search engines. This means visually impaired visitors can't understand that image, a

### https://greengeniusnyc.com/?elementor_library=elementor-single-post-773
_4 findings on this page_

- **[P3] Title length 19 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/?elementor_library=elementor-archive-758
_4 findings on this page_

- **[P3] Title length 19 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/?elementor_library=default-kit
_4 findings on this page_

- **[P3] Title length 19 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/?elementor_library=elementor-header-300
_4 findings on this page_

- **[P3] Title length 19 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/?elementor_library=elementor-footer-292
_4 findings on this page_

- **[P3] Title length 19 chars** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/areas-we-serve/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, your posts appear with a generic or 
- **[P3] Missing Twitter card** ⚪ LOW
  Your site is missing Twitter Card meta tags, which are small snippets of code that tell Twitter (now X) how to display your page when someone shares a link. Without them, the platform shows a plain te
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your "Areas We Serve" page is missing alt text—a short text description that screen readers use to describe images to visually impaired visitors, and that search engines use to understand

### https://greengeniusnyc.com/brands/dank-by-definition/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 🟡 MEDIUM
  When someone shares your product page on social media (Facebook, Instagram, LinkedIn), the platform needs to know what image and title to display in that share card. Without OpenGraph tags, social pla
- **[P3] Missing Twitter card** ⚪ LOW
  Your product pages (like the Dank by Definition brand page) are missing a Twitter Card meta tag. This is a small HTML snippet that tells Twitter how to display your link when someone shares it on that
- **[P3] 1 image(s) missing alt text** 🟡 MEDIUM
  One image on your Dank by Definition brand page lacks alt text — a text description that screen readers use to convey image content to blind and low-vision visitors. This also signals search engines a

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

- **[P2] 5 image(s) missing alt text** 
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

### https://greengeniusnyc.com/vapes/
_3 findings on this page_

- **[P2] 5 image(s) missing alt text** 🟠 HIGH
  Five product images on your vapes page lack alt text—a text description that tells both screen readers (used by visually impaired visitors) and search engines what each image shows. This means some cu
- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 

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

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/accessories/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/concentrates/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/tinctures/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/topicals/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

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

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

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

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/flower/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-alphabet-city-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-bowery-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-flatiron-district-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-greenwich-village/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-kips-bay-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-peter-cooper-village-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-stuytown-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/services/cannabis-delivery/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-gramercy-park-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-union-square-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-east-village-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-chelsea-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-nomad-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-west-village-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-murray-hill-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/about/service-areas/dispensary-in-lower-manhattan-ny/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/brands/jaunty/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 4 image(s) missing alt text** 

### https://greengeniusnyc.com/brands/hudson-cannabis/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 2 image(s) missing alt text** 

### https://greengeniusnyc.com/brands/holiday/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 2 image(s) missing alt text** 

### https://greengeniusnyc.com/brands/fernway/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/services/in-store-pickup/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 1 image(s) missing alt text** 

### https://greengeniusnyc.com/brands/back-home-cannabis-co/
_3 findings on this page_

- **[P3] Missing OpenGraph metadata** 
- **[P3] Missing Twitter card** 
- **[P3] 2 image(s) missing alt text** 

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

- **[P3] robots.txt does not reference sitemap** 🟡 MEDIUM
  Your robots.txt file (the file that tells search engines which pages to crawl) doesn't include a pointer to your XML sitemap. A sitemap is like a table of contents for your entire website. Without thi

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

- **[P0] Sensitive artifact exposed: /wp-login.php** 🔴 DO FIRST
  Your WordPress login page is publicly accessible at /wp-login.php. While this is WordPress's default, leaving it exposed makes it an easy target for automated attacks trying to guess passwords. Attack


---

_Generated by Apex Sentinel Monthly Audit · 2026-04-19T06:33:38.569Z · Powered by Bud Authority._