Bud Authority — Sentinel
Monthly Deep Audit · Unified Command Center

Apex Sentinel — HappyLeaf Dispensary NJ Monthly Audit

URL: https://happyleafdispensarynj.com/

Platform: wordpress

Archetype: lifestyle

Run ID: 2026-04-19T06-18-18-831Z

Scanned: 2026-04-19T06:40:35.193Z

Duration: 791s

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

DimensionCountMeaning
Pages crawled39Full sitemap + linked pages
P0 (critical)1Site-down or compliance-breaking
P1 (urgent)4Significant revenue / SEO / UX impact
P2 (high)33Quality / ranking / trust degradation
P3 (medium)124Polish + optimization
"Do first" items3AI-flagged top priorities
Quick wins (< 30 min)58Fastest 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 — _Attackers can repeatedly attempt to guess staff passwords, potentially gaining access to your dispensary's inventory system, customer data, and compliance records—putting your license at risk and exposing customer information._

Page: https://happyleafdispensarynj.com/wp-login.php

Effort: Moderate (1-3 hours)

  1. [P1] 🔴 DO FIRST A11y: ARIA dialog and alertdialog nodes should have an accessible name — _Disabled visitors cannot use your age gate, meaning they may be unable to access your site at all—or you're at risk of ADA lawsuit exposure if they file a complaint._

Page: https://happyleafdispensarynj.com/

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Links must have discernible text (×2) — _Inaccessible links expose HappyLeaf to ADA compliance risk, reduce discoverability for assistive technology users (a growing demographic), and may trigger search engine penalties for poor accessibility signals._

Page: https://happyleafdispensarynj.com/

Effort: Quick win (< 30 min)

  1. [P1] 6 broken internal link(s)

Page: https://happyleafdispensarynj.com/

  1. [P1] A11y: Elements must meet minimum color contrast ratio thresholds (×12)

Page: https://happyleafdispensarynj.com/

  1. [P2] 🟠 HIGH 6 image(s) missing alt text — _Missing alt text reduces your organic search visibility for image-based queries (e.g., 'dispensary interior NJ', 'cannabis products') and makes your site inaccessible to customers with visual disabilities—both hurt revenue and create potential ADA compliance risk._

Page: https://happyleafdispensarynj.com/dispensary-drive-thru-in-somerdale-nj/

Effort: Quick win (< 30 min)

  1. [P2] 🟠 HIGH 9 image(s) missing alt text — _Losing alt text cuts your reach: visually impaired customers hit a wall, you miss local search traffic for product images, and you risk ADA compliance complaints._

Page: https://happyleafdispensarynj.com/dispensary-near-runnemede-nj/

Effort: Quick win (< 30 min)

  1. [P2] 🟠 HIGH 5 image(s) missing alt text — _Missing alt text reduces your visibility in Google Images (where cannabis customers often search for product photos and dispensary locations), limits access for customers using screen readers, and signals to search engines that your page is incomplete—all of which cost you potential customers._

Page: https://happyleafdispensarynj.com/areas-we-serve/

Effort: Quick win (< 30 min)

  1. [P2] 🟠 HIGH 8 image(s) missing alt text — _Customers using screen readers can't see product photos or location imagery, reducing accessibility compliance exposure and losing potential traffic from Google Images search, which drives discovery for cannabis products._

Page: https://happyleafdispensarynj.com/dispensaries-near-me/voorhees-nj/

Effort: Quick win (< 30 min)

  1. [P2] 🟠 HIGH 6 image(s) missing alt text — _Customers using assistive technology may struggle to browse your locations; you're also leaving ranking signals on the table for local search queries like 'dispensary near me' where images often drive clicks._

Page: https://happyleafdispensarynj.com/dispensaries-near-me/

Effort: Quick win (< 30 min)


Findings by Severity

P0 — 1 finding

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

What it means (plain English)

Your WordPress login page (/wp-login.php) is publicly accessible and returns a success response. This is a security risk because attackers can find and target this page to attempt breaking into your site. Even though WordPress login pages exist by default, exposing them without protection makes your site an easy target for automated attacks.

Why it matters for your business: Attackers can repeatedly attempt to guess staff passwords, potentially gaining access to your dispensary's inventory system, customer data, and compliance records—putting your license at risk and exposing customer information.

Technical root cause: WordPress login pages are publicly accessible by default. The site lacks either an edge-level block (via firewall/CDN rules) or a .htaccess/server rule preventing direct access to wp-login.php from unknown IP addresses.

Recommended fix — step by step

  1. Log in to your WordPress dashboard → Settings → General and note your actual admin login URL (e.g., /wp-admin/); verify you are using a non-standard path via a plugin like 'WPS Hide Login' if not already done
  2. Contact your hosting provider and request they block /wp-login.php and /wp-admin/ at the firewall level, allowing access only from your staff's known IP addresses or a whitelist
  3. If your hosting supports .htaccess (Apache): add a rule to deny access to /wp-login.php from all IPs except your office/VPN (ask your host for the exact syntax); if using Nginx, request the host add a similar directive to your server config
  4. Install and activate 'Wordfence Security' (free tier) → Tools → All Options → Two-Factor Authentication → enable for all staff accounts to add a second layer even if the login page is found
  5. Enable login notifications: Wordfence → Alerts → Email me about failed logins so you are alerted to attack attempts in real-time

P1 — 4 findings

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

What it means (plain English)

Your age-gate popup (the dialog that appears to verify visitors are 21+) is missing a label that screen readers can announce. Screen reader users won't know what the dialog is for, making it impossible for them to understand or navigate it. This is a serious accessibility barrier that may expose your business to legal liability under the ADA.

Why it matters for your business: Disabled visitors cannot use your age gate, meaning they may be unable to access your site at all—or you're at risk of ADA lawsuit exposure if they file a complaint.

Technical root cause: The dialog element (id="baag3-gate") has role="dialog" and aria-modal="true" but lacks an aria-label, aria-labelledby, or title attribute that would give it a name for assistive technology.

Recommended fix — step by step

  1. Log into WordPress admin → Appearance → Customize (or use a page builder if BAAG3 is injected via plugin) to locate the age-gate dialog markup.
  2. If BAAG3 Gate is a plugin: Dashboard → Plugins → search 'BAAG3' or 'age gate' → click Settings/Options on the active plugin.
  3. In the dialog HTML or plugin settings, add aria-label="Age verification dialog" to the div with id="baag3-gate".
  4. Alternatively, if there is a heading inside the dialog (e.g., 'Are you 21 or older?'), add aria-labelledby="heading-id" pointing to that heading's ID.
  5. Save and test with a screen reader (NVDA free on Windows, or VoiceOver on Mac) by tabbing to the dialog and confirming it announces its purpose.
  6. Re-run axe accessibility checker (via axe DevTools browser extension) on the homepage to confirm the error is resolved.

2. A11y: Links must have discernible text (×2)

What it means (plain English)

Your website has 2 links that lack descriptive text for screen readers — tools used by people with vision impairments to navigate websites. One is a menu link with no visible or hidden label; the other is a social media icon (Instagram) with no alt text or aria-label. Screen reader users will hear "link" with no context, making the link unusable.

Why it matters for your business: Inaccessible links expose HappyLeaf to ADA compliance risk, reduce discoverability for assistive technology users (a growing demographic), and may trigger search engine penalties for poor accessibility signals.

Technical root cause: The Elementor page builder has created links without visible text or ARIA labels. The menu link is an empty <a> tag, and the social icon relies on a CSS class to display an icon but provides no accessible name for the link.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → edit the homepage (or affected page) in Elementor.
  2. Locate the menu link element (.elementor-element-1891c08): click it, open the Advanced tab, find the 'Link' section, and add descriptive text like 'View our full menu' inside the link or in the 'Accessibility' → 'ARIA Label' field.
  3. Locate the Instagram social icon (.elementor-element-6c418351): click it, open Advanced → Accessibility, and add aria-label='Follow us on Instagram' (or similar).
  4. Alternatively, in Elementor's Social Icons widget settings, ensure each icon has a descriptive label or title attribute set via the widget's 'Label' field if available.
  5. Save and publish the changes.
  6. Run a free accessibility checker (e.g., axe DevTools browser extension or WAVE) to confirm both links now have discernible names.
  7. Test with a screen reader (free: NVDA on Windows, VoiceOver on Mac) to hear the link text read aloud.

3. 6 broken internal link(s)

Detail

Broken internal links degrade UX + crawl equity.

4. A11y: Elements must meet minimum color contrast ratio thresholds (×12)

Detail

Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds

Impact: serious

WCAG: wcag2aa, wcag143

Learn more: https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=playwright


P2 — 33 findings

1. 6 image(s) missing alt text

What it means (plain English)

Six images on your Somerdale dispensary page don't have alt text—descriptive labels that explain what's in each image. When images lack alt text, people using screen readers (assistive technology for the visually impaired) can't understand them, and search engines can't index the image content to rank your site for relevant searches.

Why it matters for your business: Missing alt text reduces your organic search visibility for image-based queries (e.g., 'dispensary interior NJ', 'cannabis products') and makes your site inaccessible to customers with visual disabilities—both hurt revenue and create potential ADA compliance risk.

Technical root cause: Images were uploaded to WordPress without alt text filled in during the media upload process, or alt fields were left blank in the image block settings.

Recommended fix — step by step

  1. Log in to WordPress → navigate to https://happyleafdispensarynj.com/wp-admin/upload.php (Media Library)
  2. Find and click the Somerdale dispensary post in your posts list → Edit
  3. Locate each image in the page editor; click on it to open the image block sidebar
  4. In the 'Alt text' field, write a short descriptive phrase (e.g., 'Somerdale dispensary interior with product display', 'cannabis flower products on shelf', 'drive-thru pickup window'); aim for 5–10 words per image
  5. For product images, include product type + distinguishing details (e.g., 'blue dream strain in glass jar')
  6. Click 'Update' or 'Publish' to save changes
  7. Repeat for all 6 images on that page, then check other high-traffic pages (homepage, product pages) for the same issue

2. 9 image(s) missing alt text

What it means (plain English)

Nine images on your Runnemede dispensary page lack alt text — hidden descriptive labels that screen readers (used by blind/low-vision visitors) read aloud, and that search engines use to understand image content. This means some customers cannot access product photos, and Google cannot index those images for search results.

Why it matters for your business: Losing alt text cuts your reach: visually impaired customers hit a wall, you miss local search traffic for product images, and you risk ADA compliance complaints.

Technical root cause: Images were uploaded to WordPress without filling the Alt Text field in the media library, or were added via HTML without alt attributes.

Recommended fix — step by step

  1. Log in to WordPress dashboard → Media Library → filter by the Runnemede page URL or upload date.
  2. For each missing-alt image, click it → edit → fill the Alt Text field with a concise, descriptive phrase (e.g., 'Purple Haze cannabis flower package' or 'HappyLeaf dispensary storefront in Runnemede').
  3. If images are embedded via shortcodes or custom HTML blocks, edit those blocks → add alt='' attributes to each <img> tag.
  4. Install the free plugin 'WP Accessibility' or 'Accessibility Checker' → run a scan on that page to verify all alt text is present.
  5. Republish the Runnemede page to force a cache clear and re-index.
  6. Test with a screen reader (free: NVDA or JAWS trial) by navigating to the page and confirming image descriptions are read aloud.

3. 5 image(s) missing alt text

What it means (plain English)

Your Areas We Serve page has 5 images without alt text — descriptive labels that screen readers use to tell visually impaired visitors what each image shows. Search engines also rely on alt text to understand your images, which helps them appear in image search results and boosts your page's ranking for relevant searches.

Why it matters for your business: Missing alt text reduces your visibility in Google Images (where cannabis customers often search for product photos and dispensary locations), limits access for customers using screen readers, and signals to search engines that your page is incomplete—all of which cost you potential customers.

Technical root cause: Images were uploaded to the page without filling in the Alt Text field in WordPress's image uploader. This is a common oversight during content creation, especially when batch-adding images.

Recommended fix — step by step

  1. Log in to WordPress as an admin → go to Pages → Areas We Serve → scroll to the first image without alt text
  2. Click the image to select it, then click Edit (pencil icon) or access the image details panel on the right
  3. In the Alt Text field, write a clear 5–10 word description (e.g., 'Dispensary storefront in Newark' or 'Map showing service area coverage')
  4. Repeat for all 5 images on that page, ensuring each alt text describes what's shown and includes relevant keywords if natural (e.g., 'Jersey City cannabis dispensary location')
  5. Click Update on each image, then Save/Publish the page
  6. Test using a free tool like WAVE (wave.webaim.org) to confirm all images now have alt text

4. 8 image(s) missing alt text

What it means (plain English)

Eight images on your Voorhees location page don't have alt text—short descriptions that tell search engines and screen readers what each image shows. This means blind customers using assistive technology can't understand those images, and Google can't index them for image search. It's a double hit: you're excluding customers and losing SEO value.

Why it matters for your business: Customers using screen readers can't see product photos or location imagery, reducing accessibility compliance exposure and losing potential traffic from Google Images search, which drives discovery for cannabis products.

Technical root cause: Images were likely uploaded to WordPress Media Library and inserted into the page without filling in the Alt Text field during the upload or insertion process.

Recommended fix — step by step

  1. Log into WordPress admin → navigate to the affected page (Dispensaries → Voorhees NJ)
  2. In the editor, click each image → in the right sidebar, find the Alt Text field
  3. For product images, write 1–2 sentence descriptions: e.g., 'Rainbow flower strain in clear glass jar' or 'HappyLeaf Voorhees storefront entrance with green awning'
  4. For decorative images that don't convey meaning, leave Alt Text blank but ensure it's intentional (not forgotten)
  5. Click Update to save each image's alt text
  6. Run a quick audit: use the free WAVE browser extension (wave.webaim.org) → paste the Voorhees page URL → check that alt text errors drop to zero
  7. Repeat this process on other location pages (use Site Health or a plugin like Broken Link Checker to find all pages with images)

5. 6 image(s) missing alt text

What it means (plain English)

Your dispensary location page has 6 images without alt text — descriptive text that screen readers use to understand images, and that search engines use to index them. This makes the page harder for customers with vision impairments to navigate, and it wastes SEO potential because Google can't read the image content.

Why it matters for your business: Customers using assistive technology may struggle to browse your locations; you're also leaving ranking signals on the table for local search queries like 'dispensary near me' where images often drive clicks.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field in the Media Library, or alt attributes were not added to img tags in the page HTML.

Recommended fix — step by step

  1. Log into WordPress admin → go to the /dispensaries-near-me/ page → click Edit
  2. In the page editor, identify each image block (look for image thumbnail previews)
  3. Click each image block → in the right sidebar, find 'Alt Text' field → write a short, descriptive phrase (e.g., 'HappyLeaf store front in Newark' or 'Product display shelf')
  4. If images are in an older classic editor or embedded via HTML, go to Media Library → click each image → scroll to 'Alt Text' field under 'Attachment Details' → fill it in
  5. Publish/update the page
  6. Use a free tool like WAVE (wave.webaim.org) or the WordPress Accessibility Checker plugin to verify all images now have alt text

6. 5 image(s) missing alt text

What it means (plain English)

Your website has 5 images without alt text — descriptive text that screen readers read aloud to visually impaired visitors, and that search engines use to understand what images show. This makes your site harder to navigate for people with disabilities and slightly reduces SEO value because Google can't 'see' those images.

Why it matters for your business: Customers using screen readers (including seniors and people with vision loss) cannot understand product images, which reduces their ability to browse and purchase. Google also ranks accessible sites higher, so this is a small SEO penalty.

Technical root cause: Images in Elementor (WordPress page builder) were inserted without filling in the Alt Text field during upload or insertion. This is the most common cause when using drag-and-drop builders.

Recommended fix — step by step

  1. Log in to WordPress and navigate to the page https://happyleafdispensarynj.com/?elementor_library=phasal-homepage-08-01-24 (or find it in Pages or Elementor Library).
  2. Click Edit with Elementor to open the page builder.
  3. For each of the 5 images: click the image → in the right sidebar, locate the Advanced tab → find the Alt Text field and enter a short, descriptive phrase (e.g., 'Green cannabis flower buds close-up', 'HappyLeaf Dispensary storefront', 'Staff member in white coat smiling').
  4. Avoid keyword stuffing; keep alt text 10–15 words maximum, natural language.
  5. Click Update to save.
  6. Use a free tool like WAVE (wave.webaim.org) or your browser's accessibility inspector to verify all images now have alt text.

7. 5 image(s) missing alt text

What it means (plain English)

Five images on your store template page don't have alt text — descriptive text that explains what's in the image. Search engines can't read images, so without alt text they don't know what your products or store look like. Visitors using screen readers (accessibility tools for blind/low-vision customers) also can't understand those images.

Why it matters for your business: Missing alt text reduces your search ranking for product-related keywords, blocks potential customers with disabilities from browsing your inventory, and signals to Google that your site isn't well-maintained.

Technical root cause: Images were added to the Elementor page builder without filling in the alt text field during upload or insertion. Elementor stores alt data in image block settings, but they were left blank.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → edit the page containing 'our-store-template'
  2. Switch to Elementor editor mode (click 'Edit with Elementor' button)
  3. Click each image element one at a time in the editor
  4. In the right panel under 'Advanced', locate the 'Alt Text' field
  5. For product images, write descriptive alt text (e.g., 'Blue Dream cannabis flower in glass jar' or 'HappyLeaf storefront exterior')
  6. Avoid keyword stuffing; keep alt text 8–15 words, natural-sounding
  7. Save and publish the page
  8. Test by right-clicking an image → 'Inspect' → verify alt attribute now contains your text

8. 5 image(s) missing alt text

What it means (plain English)

Five images on your contact form template don't have alt text — descriptive labels that screen readers read aloud to visitors with visual impairments. This blocks accessibility compliance and signals to Google's crawler that your images aren't optimized, which slightly reduces search visibility.

Why it matters for your business: Visitors using screen readers cannot understand your product or brand imagery, creating legal liability under ADA/WCAG 2.1 AA standards; missing alt text also means you're losing minor SEO value on product or lifestyle photos that could rank in Google Images.

Technical root cause: Elementor template elements (likely product images or hero images in the contact-us-template) were inserted without filling the alt text field in Elementor's image block settings.

Recommended fix — step by step

  1. Log into WordPress admin → go to Pages → find the page using the contact-us-template (or search for 'contact-us-template' in your template library)
  2. Click 'Edit with Elementor' to open the visual builder
  3. Find each image block (you'll see 5 images total) and click to select it
  4. In the right-side panel, scroll to the 'Image' section and look for the 'Alt Text' field
  5. For each image, write a short, descriptive alt text (e.g., 'HappyLeaf indoor cannabis flower selection' or 'Customer consultation at NJ dispensary counter')
  6. Click 'Update' to save changes
  7. Run a quick accessibility check at wave.webaim.org by pasting your contact page URL to confirm all 5 images now have alt text

9. 5 image(s) missing alt text

What it means (plain English)

Your website has 5 images without alt text — that's descriptive text that appears when images don't load and helps screen readers (used by visually impaired customers) understand what's shown. This breaks accessibility compliance and causes search engines to ignore those images when indexing your site.

Why it matters for your business: Customers using assistive technology can't navigate your loyalty program page, and Google can't index those images in search results, reducing your organic visibility for product/lifestyle imagery that drives traffic.

Technical root cause: Images in the Elementor page builder template were inserted without filling in the alt text field during creation or import, leaving the alt attribute empty or missing entirely.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → find the Loyalty Program Template page → click Edit with Elementor
  2. In the Elementor canvas, select each image widget one by one (look for image elements in the template)
  3. In the right panel under Advanced tab → Accessibility section, fill in the 'Alt Text' field with a clear, concise description (e.g., 'Customer holding HappyLeaf loyalty card' or 'Cannabis product bundle discount offer')
  4. For product/cannabis images, include key attributes in alt text where relevant (strain type, effect category, etc.) to aid both accessibility and SEO
  5. Click Update to save changes
  6. Test using WAVE browser extension (free) to verify all 6 images now have alt text: install it, revisit the page, and confirm no alt text errors appear

10. 5 image(s) missing alt text

What it means (plain English)

Five images on your landing page don't have alt text — descriptive labels that explain what the image shows to people using screen readers and to search engines. This creates barriers for customers with vision loss and makes your product images invisible to Google's image search, which is a significant source of discovery traffic for retail sites.

Why it matters for your business: Missing alt text reduces organic traffic from Google Images (where cannabis product photos drive high-intent searches), and excludes disabled customers from your site, shrinking your addressable market and exposing you to accessibility complaints.

Technical root cause: Images were likely added via Elementor's visual editor without filling in the alt text field, or images were imported from an old site without metadata. Elementor doesn't enforce alt text on upload, so it's easy to skip.

Recommended fix — step by step

  1. Log into WordPress admin → Dashboard → Media Library, filter by 'Unused' or search the affected landing page slug 'dispensary-near-landing-page'
  2. For each of the 5 images, click Edit → scroll to Alt Text field → write descriptive text like 'CBD tincture bottle on wooden table' or 'HappyLeaf flower packaging' (be specific, ~8–12 words)
  3. If images are embedded in Elementor, go to Pages → dispensary-near-landing-page → Edit with Elementor → click each Image widget → Advanced tab → Alt Text field → paste the same descriptions
  4. Save each change, then refresh the front-end page in a new browser tab to confirm images display
  5. Run a free alt text checker (WAVE browser extension or axe DevTools) on the same URL to confirm all 6 images now have alt text
  6. Optional: use Yoast SEO (if installed) → Analyze → check 'Images in your post should have alt text' is now passing

11. 5 image(s) missing alt text

What it means (plain English)

Five images on your site don't have alt text—text descriptions that appear when images fail to load and that screen readers read aloud to blind visitors. This hurts both accessibility (people using assistive tech can't understand the images) and search engine optimization (Google can't index what those images show).

Why it matters for your business: You're losing organic search traffic for product queries, and excluding customers with visual disabilities who use screen readers—a growing segment and a legal exposure under ADA compliance.

Technical root cause: Images were likely inserted via Elementor's visual builder without filling in the alt text field, or were added directly to the Media Library and embedded in posts/pages without alt attributes.

Recommended fix — step by step

  1. Log into WordPress → go to Media Library and review all images to identify which lack alt text (look for blank 'Alt Text' fields).
  2. For each missing alt: click the image → in the right panel under 'Attachment Details,' fill the 'Alt Text' field with a clear 1–2 sentence description (e.g., 'Premium indica flower in glass jar' instead of 'image1').
  3. If images are in Elementor: go to Pages → edit the page with Elementor → click each image widget → in the 'Advanced' tab, ensure the 'Alt' field is filled.
  4. Audit the affected URL (elementor_library=default-kit) by checking if it's a template file; if so, update alt text in the Elementor template editor.
  5. After updates, run a free accessibility check using axe DevTools (browser extension) to confirm the 5 images now pass.

12. 5 image(s) missing alt text

What it means (plain English)

Five images on your homepage banner lack alt text—descriptive labels that screen readers use to describe images to visually impaired visitors, and that search engines use to understand what images contain. This creates both an accessibility barrier and a missed SEO opportunity, since Google can't index what these images show.

Why it matters for your business: Visually impaired customers cannot navigate your site independently, reducing potential sales and exposing you to ADA compliance risk; additionally, missing alt text means Google can't rank you for image searches (e.g., 'cannabis flower NJ'), costing you organic traffic.

Technical root cause: Images in the Elementor homepage banner widget were inserted without alt text fields being populated during upload or design.

Recommended fix — step by step

  1. Log into WordPress → Dashboard → Pages → find and edit the Homepage (likely titled 'Home' or similar)
  2. Click Edit with Elementor (green button) to open the page builder
  3. In the homepage banner section, click each image element one at a time
  4. In the right panel under Image → Alt Text, add a short descriptive phrase (e.g., 'Premium cannabis flower selection', 'HappyLeaf dispensary storefront', 'Cannabis edibles product display')
  5. Ensure each alt text is 5–12 words and describes what's actually in the image without keyword stuffing
  6. Click Update to save the page
  7. In WordPress admin, go to Media Library → find each of these 5 images → click → scroll to Alt Text field → add the same description there for consistency

13. 5 image(s) missing alt text

What it means (plain English)

Five images on your Careers page don't have descriptive text (called 'alt text') attached to them. Alt text describes what an image shows to people using screen readers and helps search engines understand your images. Without it, visitors who are blind or visually impaired can't access that content, and Google can't index those images for image search.

Why it matters for your business: Missing alt text reduces your search visibility for image queries, limits your audience to sighted visitors only (a legal and ethical risk), and may trigger ADA compliance complaints for a cannabis business operating in a regulated state.

Technical root cause: Images were uploaded and inserted into the Elementor page builder without filling in the 'Alt Text' field during upload or page editing. This is a common oversight when using visual builders that don't enforce alt text as a required field.

Recommended fix — step by step

  1. Log in to WordPress admin → navigate to Pages → Careers (or find the Elementor page with the missing alt text)
  2. Click 'Edit with Elementor' to open the page builder
  3. For each image widget on the page, click the image → in the right panel under 'Image' settings, locate the 'Alt Text' field
  4. Write descriptive alt text for each image (e.g., 'Team member smiling in HappyLeaf uniform' or 'Hiring candidates reviewing cannabis compliance materials')
  5. Ensure each alt text is 100–125 characters, descriptive but concise, and includes job/brand context where relevant
  6. Click 'Update' to save changes
  7. In WordPress admin, go to Tools → Site Health and re-run the accessibility scan to verify all images now have alt text

14. 5 image(s) missing alt text

What it means (plain English)

Five images on your site don't have alt text — descriptions that appear when images fail to load and help search engines understand what's pictured. This hurts both accessibility (screen reader users can't tell what the image shows) and SEO (Google can't index image content without it). The affected page is your SEO-optimized drive-thru landing page, which makes this especially costly.

Why it matters for your business: Search engines rank pages partly on image SEO signals; missing alt text means you're losing ranking potential on a high-intent page. Screen reader users (including older customers) can't engage with your product imagery, reducing conversions and limiting your market reach.

Technical root cause: Images in your Elementor-built page lack the alt attribute in their HTML. This commonly happens when images are added via Elementor's media uploader without filling the alt field, or when legacy images were imported without alt data.

Recommended fix — step by step

  1. Log in to WordPress → open the page editor for the SEO drive-thru landing page → switch to Elementor edit mode
  2. Click each image element → open the Advanced tab → locate the 'Alt Text' field (under 'Image' section)
  3. For product/strain photos, write 1-2 sentence descriptions: e.g., 'Sativa hybrid strain in glass jar with green buds' (be specific; avoid generic 'image')
  4. For decorative images (logos, backgrounds), enter brief descriptive text like 'HappyLeaf Dispensary storefront sign'
  5. Hover over 'Update' at bottom-right and click to save the page
  6. Use WordPress's built-in media library to batch-check: go to Media → Library, click each untagged image, and add alt text in the 'Alt Text' field on the right sidebar
  7. Install the free Yoast SEO plugin if not already active → run a page audit on this landing page to confirm all images now pass the alt-text check

15. 5 image(s) missing alt text

What it means (plain English)

Your website has 5 images without alt text—these are descriptions that appear when images don't load and help search engines understand what's in your photos. This hurts both accessibility (customers using screen readers can't tell what the images show) and SEO (Google can't index the images or the keywords you'd want them to rank for).

Why it matters for your business: Missing alt text reduces your search visibility for product photos and brand imagery, and makes your site unusable for visitors with visual impairments—both of which shrink traffic and customer base.

Technical root cause: The Elementor page builder (used on the drive-thru consultation template) has images inserted without the alt text field filled in during creation or editing.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → find 'drive-thru-consultation-template' → click Edit with Elementor
  2. In the Elementor editor, click each image element one at a time
  3. In the right sidebar under 'Image' settings, find the 'Alt Text' field and fill it with a clear, keyword-rich description (e.g., 'NJ cannabis drive-thru window' or 'HappyLeaf consultation room interior')
  4. Repeat for all 5 images—hover over each to verify alt text is now populated
  5. Click 'Update' to save the page
  6. Optional: install the free plugin 'SEO by Yoast' (WordPress.org plugin library) and run its image audit to catch any future missing alt text

16. 5 image(s) missing alt text

What it means (plain English)

Your website has 5 images without alt text — descriptive text that explains what each image shows. Search engines and screen readers (tools that read websites aloud for visually impaired visitors) can't understand images without this text. This hurts both accessibility for disabled customers and your search ranking, since Google can't tell what those images are about.

Why it matters for your business: Inaccessible sites risk legal liability under the ADA, lose customers who use assistive technology, and rank lower in Google search results — directly reducing foot traffic and online sales.

Technical root cause: Images in the Elementor page template were inserted without alt text attributes. Elementor allows images to be added without requiring the alt field to be filled in.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library → filter by 'Unattached' to find orphaned images, or navigate to the page at /?elementor_library=three-sections
  2. Click 'Edit with Elementor' on that page to open the visual editor
  3. Identify each of the 5 images missing alt text (they will often be placeholder or product images)
  4. Click each image → in the right panel under 'Image' → scroll to 'Alt Text' field → write a clear, concise description (e.g., 'Indica flower strain in glass jar' or 'HappyLeaf storefront exterior')
  5. Repeat for all 5 images, then click 'Update' to save
  6. Use a free online tool like axe DevTools (axe.deque.com) or WAVE (wave.webaim.org) to verify all alt text is now present

17. 5 image(s) missing alt text

What it means (plain English)

Five product images on your site lack alt text — descriptive labels that screen readers read aloud to blind users, and that search engines use to understand image content. This breaks accessibility compliance and wastes SEO value since Google can't index what the images show.

Why it matters for your business: Inaccessible sites expose you to legal risk (ADA complaints) and lose organic search traffic, especially important for product discovery in cannabis retail where visual browsing drives conversions.

Technical root cause: Images were likely added via Elementor's image widget without filling the alt text field. WordPress stores this in the attachment metadata, but Elementor bypasses it if left blank during upload.

Recommended fix — step by step

  1. Log in to WordPress → Dashboard → Media Library
  2. Find each of the 5 images referenced in the audit (check the elementor-header-80 template context — likely product or hero images)
  3. Click each image → scroll to Alt Text field → write a 5–10 word description (e.g., 'Premium hybrid cannabis flower strain package')
  4. Click Save; repeat for all 5
  5. Alternatively, in Elementor editor, select the Image widget → Advanced → Accessibility → fill Alt Text field with the same descriptions
  6. After saving, run a free alt-text checker (e.g., WAVE or Siteimprove) on that header template to confirm all 6 images now have alt

18. 5 image(s) missing alt text

What it means (plain English)

Five images on your site don't have alt text — short descriptions that explain what the image shows. Screen readers (used by visually impaired customers) can't describe these images, and search engines can't understand them either. This means some visitors can't fully experience your site, and you're losing SEO signals.

Why it matters for your business: Visually impaired customers may leave your site if they hit inaccessible images, and Google ranks sites with proper accessibility higher — missing alt text costs you both customer reach and search visibility.

Technical root cause: Images were likely uploaded to Elementor (your page builder) without filling in the alt text field during upload, or were added via HTML without the alt attribute.

Recommended fix — step by step

  1. Log in to WordPress dashboard → go to Media Library
  2. Search for images used on the footer page (use filter or search by date uploaded)
  3. For each of the 5 images, click to open the media edit screen
  4. Fill in the 'Alt Text' field with a clear, descriptive 1–2 sentence description (e.g., 'Cannabis flower buds in glass jar' instead of 'image123')
  5. Alternatively, if images are in Elementor blocks: go to Pages → edit the footer page with Elementor → click each image widget → scroll to 'Advanced' tab → fill 'Alt Text' field
  6. Save and publish
  7. Test with a screen reader (free: NVDA for Windows or VoiceOver on Mac) to confirm images are now announced

19. No H1 on homepage

What it means (plain English)

Your homepage doesn't have a main heading (H1 tag). Search engines and accessibility tools use H1 to understand what a page is about — it's like the title of a newspaper article. Without it, both machines and people using screen readers have a harder time grasping your page's purpose.

Why it matters for your business: Missing H1 weakens your homepage's SEO signal, making it less likely to rank for key terms like 'cannabis dispensary near me' or 'weed delivery NJ,' and blocks screen reader users from quickly understanding your site.

Technical root cause: The homepage HTML lacks an <h1> tag, or the H1 is hidden via CSS (display:none) or positioned off-screen. WordPress themes sometimes omit H1 from the hero section or rely only on logo text.

Recommended fix — step by step

  1. Log into WordPress Admin → Pages → Homepage (or Appearance → Customize if using a site builder).
  2. Inspect the hero/banner section and confirm no visible <h1> tag exists; use browser DevTools (F12 → Inspect) to verify the HTML structure.
  3. If using a page builder (Elementor, Divi, etc.), add a Heading block set to 'H1' with text like 'Premium Cannabis Dispensary in New Jersey' — make it visible, not hidden.
  4. If editing via block editor, add a Heading block → set level to H1 → enter your main value proposition (e.g., 'Welcome to HappyLeaf — Licensed NJ Cannabis Dispensary').
  5. Save and publish, then re-run an accessibility checker (WAVE extension, axe DevTools) to confirm the H1 is present and visible.
  6. Verify the H1 text is unique across your site and describes the page's main topic (avoid generic 'Welcome' if possible; prefer 'Licensed Cannabis & Hemp Products | HappyLeaf Dispensary NJ').

20. Missing core schema types: LocalBusiness

What it means (plain English)

Your site includes schema markup (structured data) that helps Google understand your business, but it's missing the LocalBusiness type. LocalBusiness tells search engines key details like your address, phone, hours, and that you're a physical location—critical for a dispensary that relies on local foot traffic and map visibility.

Why it matters for your business: Without LocalBusiness schema, you're less likely to appear in Google Maps results, local search results ('cannabis dispensaries near me'), and knowledge panels—direct paths for customers to find your location, hours, and contact info.

Technical root cause: Your WordPress schema plugin (likely Yoast SEO, All in One SEO, or RankMath) is configured to output Organization and WebSite but not LocalBusiness. This is usually a checkbox or template setting that wasn't enabled during initial setup.

Recommended fix — step by step

  1. Log into WordPress admin → open your active SEO plugin (Yoast SEO, RankMath, or All in One SEO)
  2. Navigate to the schema/structured data settings (typically under 'SEO' or 'Integrations' in the main menu)
  3. Look for 'Organization' or 'Schema Type' settings and change the organization type from 'Organization' to 'LocalBusiness' OR enable both Organization and LocalBusiness
  4. Fill in required LocalBusiness fields: business type (e.g., 'CannabisDispensary' or 'RetailBusiness'), address, phone number, opening hours, and service area (NJ)
  5. If your plugin doesn't offer LocalBusiness directly, add a custom JSON-LD block: install 'Schema & Structured Data for WP & AMP' plugin → go to its settings → add a LocalBusiness schema snippet with your name, address, phone, hours, license number (if displayable)
  6. Test the result using Google's Rich Results Test (search.google.com/test/rich-results) → paste your homepage URL → verify LocalBusiness appears in the output
  7. Save and clear any caching plugins (WP Super Cache, W3 Total Cache, etc.) to ensure Google crawls the new schema

21. Missing security header: strict-transport-security

What it means (plain English)

Your site is not sending the Strict-Transport-Security (HSTS) header, which tells browsers to always use HTTPS when visiting your domain. This is a security best practice that prevents attackers from forcing visitors onto unencrypted connections. Since you're already using HTTPS, adding this header is a straightforward configuration that strengthens your security posture.

Why it matters for your business: Without HSTS, customer data during checkout or account login could be intercepted on repeat visits if an attacker performs a network-level downgrade attack; for a cannabis retailer handling age verification and payment info, this is a meaningful compliance and trust risk.

Technical root cause: WP Engine (your hosting provider) is not configured to inject the Strict-Transport-Security header into responses. This is a server-side setting, not a WordPress plugin configuration.

Recommended fix — step by step

  1. Log in to your WP Engine account dashboard and navigate to the site's Settings → Security → Headers
  2. Look for 'Strict-Transport-Security' or 'HSTS' option and enable it with a minimum max-age of 31536000 (one year)
  3. If the option is not visible in the dashboard, contact WP Engine support (support@wpengine.com) and request they add the header: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  4. After enabling, verify the header is present by visiting https://securityheaders.com and entering your URL
  5. Confirm the A+ rating appears (or at minimum that HSTS shows as enabled)

22. Missing security header: x-frame-options

What it means (plain English)

Your site is missing the X-Frame-Options security header, which tells browsers whether your pages can be embedded inside frames or iframes on other websites. This header is a standard security control that prevents clickjacking attacks (where attackers trick users into clicking hidden elements). Without it, someone could theoretically embed your dispensary pages in a malicious site without your knowledge.

Why it matters for your business: A missing X-Frame-Options header increases your risk of account compromise, credential theft, or unauthorized transactions—particularly serious for a cannabis retailer where age verification and compliance tracking are critical.

Technical root cause: Your WordPress hosting (WP Engine) is not configured to automatically send this header, and it has not been manually added via WordPress configuration, htaccess, or a security plugin.

Recommended fix — step by step

  1. Log in to your WordPress admin dashboard and install the free 'WP Security – Hide My WP' or 'All In One WP Security & Firewall' plugin (both have built-in header controls).
  2. If using 'All In One WP Security', go to Admin → Security → Response Headers and enable 'X-Frame-Options' set to 'SAMEORIGIN'.
  3. Alternatively, contact WP Engine support directly: go to your WP Engine account dashboard → Site Overview → Settings → HTTP Headers (if available) or submit a support ticket requesting they add 'X-Frame-Options: SAMEORIGIN' to your response headers.
  4. After implementation, verify using curl -I https://happyleafdispensarynj.com/ in terminal or an online header checker (e.g., securityheaders.com) to confirm the header appears.
  5. Set a calendar reminder to re-check this header quarterly as part of your security audit routine.

23. 22 tap targets under 44px at mobile-414

What it means (plain English)

Your website has 22 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile phones. This makes them difficult to tap accurately, especially for people with limited dexterity, older adults, or anyone using a phone in poor lighting. Users may accidentally tap the wrong element or miss entirely, leading to frustration and abandoned visits.

Why it matters for your business: Smaller tap targets increase bounce rates on mobile, reduce menu navigation and product filtering clicks, and may lower your search ranking since Google considers mobile usability a ranking factor—directly affecting discovery of your dispensary.

Technical root cause: CSS padding, margins, or button sizing rules are too tight to meet the 44×44 pixel minimum. This often happens when a site is designed for desktop first and mobile constraints are not properly applied, or when theme/plugin defaults are not overridden.

Recommended fix — step by step

  1. Use Chrome DevTools (F12 → mobile 414px view) and Lighthouse (Accessibility tab) to pinpoint the 22 undersize targets—take screenshots of each and note their location (header, product filters, footer, etc.).
  2. In WordPress admin, go to Appearance → Customize → Additional CSS and add a global rule: button, a, input[type='button'], input[type='checkbox'], input[type='radio'] { min-height: 44px; min-width: 44px; padding: 12px 16px; } to establish a baseline.
  3. If targets are in menus, check Appearance → Menus and increase padding on menu items via Customize → Menus → Display settings; if using a page builder (Elementor, Divi), edit each button widget and set Height ≥44px + Padding ≥12px.
  4. For product filter checkboxes or age-gate inputs (critical for compliance), use a plugin like 'Accessible Custom Checkboxes' or manually wrap inputs in larger clickable labels with <label style='display: block; min-height: 44px; min-width: 44px;'> in the template.
  5. Test the fix on an actual mobile device (or Chrome DevTools) at 414px width and confirm all tappable elements are ≥44×44; re-run Lighthouse to verify the count drops to zero.
  6. If a third-party plugin (e.g., WooCommerce add-to-cart, age-verification) is the culprit, check its settings panel first for padding/sizing options; if none exist, escalate to the plugin vendor or consider a more accessible alternative.

24. 7 image(s) missing alt text

What it means (plain English)

Seven images on your About page don't have alt text — descriptive text that explains what each image shows. Screen readers (used by people with vision impairments) can't tell visitors what these images are, and search engines can't index them either. This means you're losing both accessibility and a ranking opportunity.

Why it matters for your business: You're excluding a segment of potential customers who use assistive technology, and you're leaving SEO value on the table — search engines reward sites that serve all users equally.

Technical root cause: The WordPress media library entries for these 7 images have empty or missing 'Alt Text' fields, likely because they were uploaded without this metadata populated.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media library
  2. Filter or search for images used on the /about/ page
  3. For each of the 7 images, click to open, then fill in the 'Alt Text' field with a clear, concise description (e.g., 'HappyLeaf team smiling in dispensary' or 'Cannabis budtender assisting customer')
  4. Avoid keyword stuffing; write naturally as if describing the image to someone on the phone
  5. Click 'Update' for each image
  6. Visit https://happyleafdispensarynj.com/about/ in your browser and refresh to confirm the images still load correctly

25. Missing meta description

What it means (plain English)

Your category archive page (/category/uncategorized/) doesn't have a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page, which often looks broken and doesn't encourage clicks.

Why it matters for your business: Missing descriptions reduce click-through rate from search results, meaning fewer potential customers visit your site even when you rank well for cannabis product searches in New Jersey.

Technical root cause: WordPress category pages default to no meta description unless explicitly set per category, or a plugin auto-generates them. The 'Uncategorized' category is often overlooked during initial SEO setup.

Recommended fix — step by step

  1. Log into WordPress admin → Posts → Categories
  2. Click 'Uncategorized' to edit it
  3. Scroll to the SEO section (if using Yoast SEO or Rank Math, it appears below the editor; if native WordPress, install Yoast SEO free plugin first)
  4. Write a unique meta description under 160 characters. Example: 'Shop premium cannabis products at HappyLeaf Dispensary NJ. Licensed & compliant. Flower, edibles, concentrates & more.'
  5. Click 'Update' to save
  6. Repeat for any other category archive pages (check Settings → Reading to see if 'Uncategorized' is actively used; if not, consider hiding it entirely in Yoast SEO → Titles & Metas → Categories → toggle 'Show category in search results' off)

26. 22 tap targets under 44px at mobile-375

What it means (plain English)

Your website has 22 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile devices. This makes them difficult to tap accurately, especially for visitors with larger fingers, tremors, or accessibility needs. WCAG (Web Content Accessibility Guidelines) requires all clickable elements to be at least 44×44 pixels to comply with accessibility standards.

Why it matters for your business: Visitors—particularly older customers or those with motor control challenges—may struggle to place orders, navigate your menu, or access age-verification on mobile, leading to abandoned carts and reduced conversion rates.

Technical root cause: CSS styling on buttons, links, and input fields is setting padding, font-size, or minimum dimensions below the 44px threshold. Mobile stylesheets may be compressing these elements to fit narrow viewports without adequate spacing.

Recommended fix — step by step

  1. Install the WAVE accessibility plugin (wordpress.org/plugins/wave-accessibility-toolbar/) and run an audit on your homepage to identify which elements fail the 44px rule.
  2. Open each affected element in the WordPress Customizer (Appearance → Customize) or edit the theme CSS; increase padding and min-height/min-width on buttons to at least 44px (e.g., padding: 12px 20px; min-height: 44px).
  3. For link text inside navigation or product listings, wrap in a <span> or adjust the parent container's padding so the clickable area expands to 44×44.
  4. Test on a physical iPhone or Android device at 375px width (use Chrome DevTools → Toggle Device Toolbar) and tap each button to confirm it responds easily.
  5. If you use a page builder like Elementor or Gutenberg, adjust the 'Min Height' setting on buttons to 44px and 'Padding' to at least 12px top/bottom.
  6. Consider a mobile-first responsive review: ensure that font sizes and spacing scale correctly at 375px without sacrificing usability at desktop.

27. A11y: Heading levels should only increase by one (×7)

What it means (plain English)

Your site uses heading tags (like <h4>) in an order that doesn't follow a logical hierarchy. Screen readers and assistive technology rely on heading levels (h1, h2, h3, etc.) to navigate pages like a table of contents. When you jump from h1 directly to h4, or use h4 for content that should be h2 or h3, users relying on assistive technology get confused about page structure.

Why it matters for your business: Visitors using screen readers cannot properly navigate your product pages or promotions, reducing accessibility for disabled customers and creating potential ADA compliance risk.

Technical root cause: Elementor (the page builder) is generating h4 tags for promotional statistics (like '35%' discount badges) without proper h1, h2, h3 hierarchy established first on the page.

Recommended fix — step by step

  1. Log in to WordPress → Pages → edit the homepage with Elementor
  2. In the Elementor canvas, identify the section with '35%' and '20%' discount badges
  3. Select the first badge → inspect the heading widget settings (look for 'Heading' or 'Title' in the left panel)
  4. Change its HTML tag from h4 to h2 (or h3 if already an h2 on page)
  5. For each subsequent statistic badge, ensure heading levels increase by only 1 (e.g., h2 → h3 → h4, never h2 → h4)
  6. Verify the page has a single h1 tag at the top (usually page title); if missing, add one in Elementor's heading widget before all other headings
  7. Click Elementor's Preview button, then re-run accessibility audit to confirm fix

28. A11y: Landmarks should have a unique role or role/label/title (i.e. accessible name) combination

What it means (plain English)

Your site has a navigation menu (a landmark in web accessibility terms) that isn't uniquely labeled. Screen reader users can't tell this navigation apart from any others on the page because it only says 'Menu' — the same label other menus might use. This makes it harder for disabled visitors to navigate your site.

Why it matters for your business: Inaccessible navigation reduces usability for customers with disabilities, harms SEO rankings (Google rewards accessibility), and exposes you to potential ADA compliance complaints.

Technical root cause: The Elementor navigation widget is using a generic aria-label='Menu' without a distinguishing identifier. When multiple navigational landmarks exist on a page, each needs a unique, descriptive label so assistive technology can differentiate them.

Recommended fix — step by step

  1. Log in to your WordPress dashboard → Elementor Dashboard → Edit the page containing this navigation
  2. Click on the navigation widget (the menu element at the top of your page)
  3. In the right panel, scroll to the Advanced tab → Accessibility section
  4. Change the aria-label from 'Menu' to a unique, descriptive name such as 'Main Navigation' or 'Primary Site Navigation'
  5. If no Accessibility section exists in Elementor, manually edit via WordPress: go to HTML view of the page and change aria-label="Menu" to aria-label="Main Navigation" in the nav element
  6. Save and publish the page
  7. Test with a free tool like WAVE (wave.webaim.org) to confirm the landmark is now unique

29. 5 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

30. No JSON-LD schema

Detail

Page has no JSON-LD structured data blocks.

31. Missing security header: content-security-policy

Detail

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

32. 21 tap targets under 44px at mobile-320

Detail

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

33. 27 tap targets under 44px at tablet-768

Detail

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


P3 — 124 findings

1. robots.txt does not reference sitemap

What it means (plain English)

Your robots.txt file (the rule book that tells Google's crawlers what pages to index) doesn't include a link to your XML sitemap. A sitemap is like a directory of all your pages. Without this reference, Google may take longer to discover new product pages, promotions, or content updates on your site.

Why it matters for your business: Slower indexing of new inventory, menu updates, or promotional pages means customers searching for your products on Google may not see your latest offerings for days or weeks.

Technical root cause: WordPress does not automatically add the sitemap directive to robots.txt during setup. Most WordPress SEO plugins (like Yoast or Rank Math) generate the sitemap, but the robots.txt file must be manually edited or configured to point to it.

Recommended fix — step by step

  1. Log into WordPress admin → Settings → Reading and confirm 'Search Engine Visibility' is checked (enabled).
  2. Install Yoast SEO plugin (free version) if not already active: Plugins → Add New → search 'Yoast SEO' → Install and Activate.
  3. Go to Yoast SEO → Tools → File Editor, then navigate to the robots.txt editor.
  4. Add this line to robots.txt (if not present): 'Sitemap: https://happyleafdispensarynj.com/sitemap_index.xml'
  5. Save the file and test by visiting https://happyleafdispensarynj.com/robots.txt in your browser to confirm the line appears.
  6. Go to Google Search Console (console.google.com) → your property → Sitemaps, then submit https://happyleafdispensarynj.com/sitemap_index.xml if not already submitted.

2. Missing OpenGraph metadata

What it means (plain English)

Your homepage is missing Open Graph tags — small code snippets that tell social media platforms (Facebook, Instagram, LinkedIn) what to display when someone shares your link. Without them, social shares show a generic preview instead of your chosen title, description, and image, making your posts look less professional and less clickable.

Why it matters for your business: Poor social sharing appearance reduces click-through rates from Facebook and Instagram — key channels for cannabis lifestyle marketing — and weakens brand perception when customers share your site with friends.

Technical root cause: WordPress theme or site configuration has not added og:title and og:image meta tags to the <head> section of the homepage. This is typically handled by an SEO plugin or manual theme customization.

Recommended fix — step by step

  1. Install Yoast SEO or Rank Math (free versions both include Open Graph support): go to Plugins → Add New, search 'Yoast SEO', click Install and Activate
  2. Log in to WordPress admin and go to Yoast SEO → Dashboard → Social (or Rank Math → Settings → Social Media if using Rank Math)
  3. Enable Facebook/Instagram integration and set a default social image (upload a 1200×630px branded image of your storefront or product display)
  4. Go to Posts → All Posts, click your homepage, scroll to the Yoast/Rank Math meta box, and manually set og:title to 'HappyLeaf Dispensary NJ | Premium Cannabis' and confirm og:image is set to your branded social image
  5. Clear any caching plugin (WP Super Cache, W3 Total Cache) by going to Settings → [Plugin Name] → Purge Cache, then test the share preview on Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing)

3. Missing OpenGraph metadata

What it means (plain English)

When your pages are shared on Facebook, Instagram, or other social platforms, those sites look for OpenGraph tags (og:title, og:image, og:description) to know what preview to show. Without them, the preview looks broken or shows only a URL. This affects how often people click through from social media to your site.

Why it matters for your business: Social sharing is a primary discovery channel for dispensaries; missing preview images reduce click-through rates on Facebook and Instagram, directly hurting foot traffic and online visibility.

Technical root cause: The WordPress theme or a required SEO plugin is not automatically generating or manually populating OpenGraph meta tags in the page head. The affected 'hello-world' post is a default WordPress post that was never configured with social preview metadata.

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 → Yoast SEO → General → Features and enable 'Social Media Features'.
  3. In WordPress admin → Yoast SEO → Social → go to 'Facebook' and tick 'Show Facebook meta box in all applicable post types'.
  4. Edit the 'Hello World' post (or any product/menu post) → scroll to Yoast SEO meta box → click 'Social' tab → upload a featured image (og:image) and verify og:title is set.
  5. Install the free Meta Pixel Helper Chrome extension and test by pasting your post URL into the debugger (facebook.com/tools/debug/) to confirm og:image and og:title now render.
  6. For all future posts/products, set a featured image before publishing — Yoast will auto-populate og:image and og:title from it.

4. 3 image(s) missing alt text

What it means (plain English)

Three images on your Hello World page don't have alt text — descriptive text that screen readers use to tell visually impaired visitors what an image shows. This makes those images invisible to both assistive technology users and search engines, which means Google can't understand what your product photos depict.

Why it matters for your business: Missing alt text reduces your chances of ranking in Google Image Search (a traffic driver for dispensaries) and excludes customers with visual impairments, shrinking your addressable market.

Technical root cause: Images were uploaded to WordPress without filling in the Alt Text field during upload or editing. WordPress doesn't auto-generate meaningful alt text.

Recommended fix — step by step

  1. Log in to WordPress admin → Posts → Hello World
  2. Scroll to the image block or gallery that contains the 3 images without alt
  3. Click each image → in the sidebar panel, find 'Alt text' field (below the image preview)
  4. Write concise, descriptive alt text for each (e.g., 'Blue Dream cannabis flower in glass jar' instead of 'product photo')
  5. Save the post
  6. Repeat for any other product or lifestyle images across the site; consider adding a team process: always fill Alt Text before publishing

5. Missing OpenGraph metadata

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 show up as blank or with generic previews instead of your chosen title and image. This affects how your content looks when customers share your dispensary on social media.

Why it matters for your business: When customers can't see an appealing preview of your content on social platforms, they're less likely to click through, reducing organic social traffic and brand visibility for HappyLeaf.

Technical root cause: The WordPress theme or a plugin is not automatically generating or the site owner has not manually added og:title and og:image meta tags to the page head. Most WordPress SEO plugins (Yoast, Rank Math, All in One SEO) add these automatically when configured.

Recommended fix — step by step

  1. Log into WordPress admin dashboard and install the free plugin 'Yoast SEO' or 'Rank Math' (both are popular and beginner-friendly).
  2. Activate the plugin and go through the setup wizard (it will ask you to connect your site to Search Console and social accounts).
  3. Go to Posts/Pages → Edit the Sample Page → scroll to the SEO plugin section at the bottom → ensure 'Add to search results' is enabled.
  4. In that same SEO box, look for 'Social Preview' or 'Facebook' tab and upload a featured image (1200×630px works best) and confirm the og:title matches your page title.
  5. Click 'Update' to save. The plugin will auto-inject og:title, og:image, og:url, and og:type into the page head.
  6. Repeat for all other pages that matter for sharing (product pages, blog posts, About page).
  7. Test by pasting your URL into Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing/) to confirm the preview now displays correctly.

6. Missing Twitter card

What it means (plain English)

Your website is missing Twitter Card tags, which are special HTML codes that tell Twitter (now X) how to display your pages when someone shares a link. Without them, shared links appear as plain text instead of showing a preview with your image, title, and description.

Why it matters for your business: When customers share your product pages or blog posts on social media, missing preview cards reduce click-through rates and make your brand look unprofessional compared to competitors who have them set up.

Technical root cause: The page lacks <meta name="twitter:card" content="..."> and related og: meta tags in the HTML head. Most WordPress SEO plugins (Yoast, Rank Math, All in One SEO) can auto-generate these, but either the plugin is not enabled or its social card feature is switched off.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins. Search for and activate one of: Yoast SEO, Rank Math, or All in One SEO Pack (if not already active).
  2. Go to the plugin's settings (e.g., Yoast: SEO → Integrations → Social Media, or Rank Math: Rank Math → Social → Twitter).
  3. Enable Twitter Card / X Card generation and select card type (typically 'Summary with Large Image' for product/lifestyle content).
  4. Upload your brand logo or a default image (1200×630px minimum) in the social image setting so it displays in previews.
  5. Re-save the sample page (or any page) to trigger meta tag generation, then inspect the page source (Ctrl+U) to confirm <meta name="twitter:card"...> now appears in the <head> section.
  6. Test the URL using Twitter's Card Validator (cards-dev.twitter.com/validator) to confirm markup is valid.

7. 3 image(s) missing alt text

What it means (plain English)

Three images on your Sample Page are missing alt text — descriptive text that appears when an image fails to load and that screen readers (tools used by people with vision disabilities) read aloud. Search engines also use alt text to understand what images show, which helps your site rank for relevant searches.

Why it matters for your business: Missing alt text reduces your search visibility for image-based queries (e.g., 'cannabis flower strains') and makes your site inaccessible to customers using screen readers, potentially exposing you to accessibility complaints.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field in the media library, or the alt attribute was left blank in the image block settings.

Recommended fix — step by step

  1. Log in to WordPress admin → go to Media Library and find the 3 images used on the Sample Page
  2. Click each image and scroll to the 'Alt Text' field; fill it with a clear, concise description (e.g., 'Northern Lights cannabis flower close-up', not 'image123')
  3. Alternatively, edit the Sample Page → click each image block → in the right sidebar under 'Image Settings', paste alt text into the 'Alt Text' field
  4. Verify the fixes by viewing the page in a browser and using the WAVE accessibility checker (wave.webaim.org) to confirm alt text is now present

8. 3 image(s) missing alt text

What it means (plain English)

Three images on your FAQ page don't have alt text — descriptive text that tells search engines and screen readers (used by visually impaired visitors) what each image shows. This makes those images invisible to both Google's crawlers and accessibility tools, which means some of your audience can't see or understand that content.

Why it matters for your business: Missing alt text reduces your FAQ's SEO ranking for image-related searches, and blocks visitors using screen readers from understanding your product or brand imagery — a compliance risk under ADA accessibility standards.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field in the media library or image block editor, leaving the alt attribute blank in the underlying HTML.

Recommended fix — step by step

  1. Log into WordPress admin → go to https://happyleafdispensarynj.com/wp-admin/upload.php
  2. Find and click each image file that appears on the FAQ page (check file names or upload date)
  3. In the image details panel on the right, fill in the 'Alt Text' field with a brief, descriptive phrase (e.g., 'HappyLeaf CBD tincture bottle' or 'Employee behind dispensary counter')
  4. Alternatively, navigate to the FAQ page itself in the editor (Pages → FAQ → Edit) and select each image block, then add alt text in the 'Advanced' section of the block inspector
  5. Click 'Update' or 'Publish' to save changes
  6. Test: use a screen reader tool like NVDA (free, Windows) or VoiceOver (Mac) to confirm the alt text reads aloud, or use the WAVE browser extension to scan for remaining missing alt attributes

9. Missing OpenGraph metadata

What it means (plain English)

Your consultation page is missing OpenGraph tags — metadata that tells Facebook, Instagram, and other social platforms how to display your page when someone shares a link. Without them, your link appears as plain text with no image or custom title, making it less likely people will click.

Why it matters for your business: When customers share your consultation booking page on social media, it won't stand out visually, reducing click-through rates and lost appointment bookings from social referrals.

Technical root cause: The page lacks og:title, og:image, and og:url meta tags in the HTML head. WordPress plugins or manual header code typically add these; they're either not installed or not configured for this page.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins → search 'Yoast SEO' or 'All in One SEO Pack'. If not installed, click 'Add New' and install one (Yoast is standard for cannabis retailers).
  2. Activate the plugin, then go to its settings dashboard (usually under 'SEO' in the left sidebar).
  3. In the plugin, find 'Social Media' or 'Open Graph' settings and enable Facebook & Instagram integration.
  4. Navigate to Pages → Consultation (or the consultation page) and open its SEO settings panel at the bottom.
  5. Fill in 'Social Title' (e.g. 'Book Your Cannabis Consultation — HappyLeaf NJ') and upload a 'Social Image' (1200×630px, showing your brand or a welcoming dispensary photo).
  6. Publish/update the page, then test using Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) — paste the consultation URL to confirm og:title and og:image appear.

10. 3 image(s) missing alt text

What it means (plain English)

Three images on your consultation page don't have descriptive alt text—the hidden labels that tell screen readers and search engines what each image shows. This makes the page harder for visually impaired visitors to navigate and gives search engines less information to rank and display your content.

Why it matters for your business: Missing alt text reduces your pages' chances of appearing in Google Image Search (which drives discovery traffic) and excludes customers using screen readers, limiting your reach and creating legal liability under accessibility laws.

Technical root cause: Images were likely uploaded to WordPress without filling in the Alt Text field in the media library, or added via HTML/block editor without the alt attribute populated.

Recommended fix — step by step

  1. Log into WordPress admin → Media Library → filter by 'Consultation' page or search for images used on /consultation/
  2. Open each of the 3 images without alt text and click 'Edit'
  3. In the right panel under 'Alt Text', write a brief, descriptive phrase (e.g., 'Cannabis flower close-up' or 'HappyLeaf staff member in consultation room')
  4. Click 'Update' to save each image
  5. Alternatively, navigate to Pages → Consultation, open the page editor, click each image, and fill in the Alt Text field in the image settings panel
  6. After saving, run a free audit tool like WAVE (wave.webaim.org) on the /consultation/ URL to confirm all 4 images now have alt text

11. Missing OpenGraph metadata

What it means (plain English)

When someone shares a link to your EULA page on Facebook, Instagram, or other social platforms, there's no custom preview image or title to display. Instead, social media shows a generic or broken preview, making the share look unprofessional and reducing click-through rates when customers try to share your content.

Why it matters for your business: Lost social traffic and reduced shareability of your legal pages; potential customers who encounter broken previews are less likely to click through, hurting referral visits from social platforms.

Technical root cause: The EULA page lacks og:title and og:image meta tags in the HTML head. WordPress doesn't automatically generate these for all pages unless configured via a plugin like Yoast SEO or All in One SEO.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins → search 'Yoast SEO' (if not already installed, install and activate it).
  2. Go to the EULA page editor (Pages → EULA) and scroll to the Yoast SEO panel at the bottom.
  3. Under 'Social' tab, upload a branded image (1200×630px minimum) for the og:image preview.
  4. Set og:title to something like 'End User License Agreement – HappyLeaf Dispensary NJ'.
  5. Repeat for any other legal/policy pages (Terms, Privacy Policy) that lack OG tags.
  6. Verify the fix by pasting the EULA URL into Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) — confirm the preview now shows your custom title and image.

12. 3 image(s) missing alt text

What it means (plain English)

Three images on your EULA page don't have descriptive text alternatives (called 'alt text'). This means screen readers used by visually impaired visitors can't describe those images, and search engines can't understand what's in them. Alt text is a small text field you add to every image.

Why it matters for your business: Missing alt text reduces accessibility for disabled customers (a legal risk under ADA), and weakens your SEO because search engines can't index image content—you're losing potential organic traffic from image searches.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field in the media settings, or the image blocks/elements don't reference an alt attribute.

Recommended fix — step by step

  1. Log in to WordPress admin → navigate to Media Library → find each image used on the /eula/ page
  2. Click 'Edit' on each of the 3 images missing alt text
  3. In the 'Alt Text' field, write a short descriptive phrase (e.g., 'HappyLeaf logo', 'New Jersey cannabis license seal', 'Terms of use document header') — 5–10 words is ideal
  4. Click 'Update' for each image
  5. Go to Pages → EULA and visually inspect the page to confirm all images now have alt text in the HTML (optional: use browser inspector or run a quick accessibility check at wave.webaim.org)

13. Description length 45 chars

What it means (plain English)

Your menu page's search engine description is only 45 characters long, when search engines prefer 80–160 characters. This means Google may truncate or rewrite your description in search results, missing an opportunity to tell potential customers what they'll find on that page.

Why it matters for your business: A weak description in search results reduces click-through rate from Google; customers may click a competitor's listing instead if yours doesn't clearly explain your menu offerings.

Technical root cause: The meta description tag in the HTML head of the /menu/ page contains too little text. WordPress may be using a default or auto-truncated excerpt instead of a custom, full description.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → find 'Menu' page
  2. Scroll to the 'Yoast SEO' or 'All in One SEO' panel below the editor (whichever plugin you use)
  3. Locate the 'Meta description' field
  4. Replace the current text with a 100–150 character description, e.g., 'Browse HappyLeaf's full cannabis menu: flower, edibles, concentrates, and more. Browse strains and prices online.'
  5. Click 'Update' and wait for the change to save
  6. After 2–3 weeks, check Google Search Console (GSC) to confirm Google has re-crawled and indexed the new description

14. 2 image(s) missing alt text

What it means (plain English)

Two images on your menu page don't have alt text—descriptions that appear when images won't load and help screen readers describe what's shown. This hurts both accessibility for customers using assistive technology and search engine visibility, since Google can't understand unlabeled images.

Why it matters for your business: Missing alt text reduces your menu's searchability in Google Images, limits reach to visually impaired customers (a legal accessibility concern), and may hurt overall menu page SEO ranking.

Technical root cause: Images were likely uploaded to WordPress without filling in the Alt Text field in the image block or media library settings during insertion.

Recommended fix — step by step

  1. Log into WordPress admin → Go to Pages → Menu
  2. Scroll to the affected images (compare against the 2 of 4 images noted in the audit)
  3. Click the first image → In the sidebar, locate the 'Alt Text' field under Image Settings
  4. Write a concise, descriptive alt text (e.g., 'Indica flower strain in glass jar' or 'HappyLeaf edibles product lineup'—avoid 'image of' or 'picture')
  5. Repeat for the second unlabeled image
  6. Click 'Update' to save the page changes
  7. Run a quick test: open the page in a browser, right-click each image, and select 'Inspect' to confirm alt="[your text]" now appears in the HTML

15. Missing OpenGraph metadata

What it means (plain English)

Your store page is missing Open Graph tags — special metadata that tells Facebook, Instagram, and other social platforms what image and headline to display when someone shares your link. Without these tags, the platform picks a random image or shows nothing, making your posts look unprofessional and less clickable.

Why it matters for your business: When customers share your store page on social media, it won't show an attractive preview, reducing click-through rates and lowering the chance new customers discover your dispensary through word-of-mouth sharing.

Technical root cause: WordPress theme or SEO plugin (likely Yoast, Rank Math, or All in One SEO) is not configured to auto-generate og:title and og:image meta tags on that page, or the page template is missing manual tag injection.

Recommended fix — step by step

  1. Log in to WordPress admin → Dashboard → check which SEO plugin is active (check Plugins → Installed Plugins for Yoast SEO, Rank Math, or All in One SEO Pack).
  2. If using Yoast SEO: go to your Store page editor → scroll to Yoast SEO box → click 'Social' tab → upload a featured image for that page if missing, and verify og:title field is populated.
  3. If using Rank Math: edit the Store page → scroll to Rank Math → click 'Social' → set Social Image and Social Title fields explicitly.
  4. If using All in One SEO: edit the Store page → scroll to All in One SEO → Social tab → upload Social Image and confirm Social Title.
  5. If no SEO plugin is active: install Yoast SEO (free version) → activate → go to Store page → set Featured Image → Yoast will auto-generate tags.
  6. After saving, test the page using Facebook Sharing Debugger (facebook.com/sharedebugger) by pasting the URL to confirm og:title and og:image now appear.

16. 3 image(s) missing alt text

What it means (plain English)

Three images on your store page don't have alt text — a brief text description that appears if the image fails to load and helps search engines understand what the image shows. This affects both customers using screen readers (who can't see the image) and your search engine rankings, since Google uses alt text to index images.

Why it matters for your business: Missing alt text reduces your visibility in Google Images search and limits accessibility for visually impaired customers, shrinking your potential customer base and risking ADA compliance issues.

Technical root cause: Images were uploaded to WordPress without alt text filled in during the media upload process, or alt fields were left blank when images were inserted into the page.

Recommended fix — step by step

  1. Log into WordPress admin → go to Pages → Edit 'Our Store' page
  2. In the editor, click each image to open its settings panel
  3. Fill in the 'Alt Text' field with a clear, descriptive phrase (e.g., 'HappyLeaf store front exterior' or 'budtender assisting customer at counter')
  4. Click 'Update' to save each image's alt text
  5. Alternatively, go to Media Library → find each image → click Edit → fill 'Alternative Text' field → Update
  6. Once all 3 images have alt text, re-test the page using a free tool like WAVE (wave.webaim.org) to confirm fix

17. Missing OpenGraph metadata

What it means (plain English)

Your privacy policy page is missing OpenGraph tags—special metadata that tells social media platforms (Facebook, Instagram, etc.) what title and image to display when someone shares the link. Without these tags, the preview will look unprofessional or blank, and cannabis-sensitive platforms may flag the content incorrectly.

Why it matters for your business: When customers or advocates share your privacy policy on social media, a missing or broken preview reduces click-through rates and makes your brand look incomplete; for cannabis retail, this also risks automatic platform suppression if meta-data looks incomplete or suspicious.

Technical root cause: The WordPress page or theme is not outputting og:title and og:image meta tags in the <head> section. This typically happens when an SEO plugin isn't configured, the theme doesn't include OpenGraph support, or those specific tags were never added to the template.

Recommended fix — step by step

  1. Install and activate Yoast SEO or Rank Math (free version). Both auto-generate OpenGraph tags for all pages.
  2. In WordPress admin, go to the installed SEO plugin settings (usually SEO → Social or Rank Math → Titles & Meta → OpenGraph).
  3. Enable 'Add Open Graph meta tags' or equivalent toggle.
  4. Navigate to Pages → Privacy Policy in WordPress admin.
  5. Scroll to the SEO plugin's meta box at the bottom; set 'Social Title' to 'HappyLeaf Dispensary NJ — Privacy Policy' and upload or select a Social Image (use your logo or a professional branded image, minimum 1200×630 px).
  6. Click Publish/Update.
  7. Use Facebook Sharing Debugger (facebook.com/tools/debug/) to paste the privacy policy URL and verify the preview now displays correctly.

18. 3 image(s) missing alt text

What it means (plain English)

Three images on your privacy policy page don't have alt text — descriptive labels that explain what each image shows. Screen readers (used by customers with visual impairments) can't describe these images, and search engines can't understand their content either. This creates both an accessibility barrier and a missed SEO opportunity.

Why it matters for your business: Customers using assistive technology may have a degraded experience on your site, which hurts both inclusivity and your reputation; search engines also rank alt-text-rich pages higher, so you're leaving organic traffic on the table.

Technical root cause: Images were inserted into the page without the alt attribute being filled in during upload or page creation. WordPress allows this by default — the field is optional unless enforced by a plugin.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → find and edit the Privacy Policy page
  2. In the page editor, locate each of the 3 images (scroll through the page content)
  3. Click each image → in the right panel, find the 'Alt Text' field and describe what the image shows (e.g., 'Happy Leaf storefront exterior' or 'Product shelf display')
  4. Make alt text 8–125 characters; be specific and avoid 'image of' or 'picture'
  5. Click Update to save changes
  6. Optional: Install the free plugin 'WP Clarify' or 'Alt Text' to highlight missing alt text site-wide and prevent future gaps

19. Missing OpenGraph metadata

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 blank or with generic placeholder images, making them less likely to be clicked.

Why it matters for your business: When customers share your rewards page on social media, it looks unprofessional and incomplete, reducing click-through rates and missing an opportunity to drive traffic back to your site.

Technical root cause: The WordPress theme or SEO plugin (Yoast, RankMath, etc.) is not generating or has not been configured to output og:title and og:image meta tags in the page <head> section.

Recommended fix — step by step

  1. Log in to WordPress admin → install or activate Yoast SEO (if not already active)
  2. Go to Yoast SEO → Site Connections → verify Google Search Console and social profiles are linked
  3. Navigate to the /rewards/ page in WordPress editor → scroll to Yoast SEO metabox at bottom → under 'Social' tab, upload a branded image (800×600px minimum) and confirm og:title is auto-populated
  4. If using RankMath instead: go to that page → RankMath panel → Social tab → set Featured Image and verify og:title mirrors your page title
  5. Save and publish; inspect the live page using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) to confirm og:title and og:image now appear
  6. Repeat for other key pages: /menu/, /about/, /contact/ to ensure consistent social sharing

20. 4 image(s) missing alt text

What it means (plain English)

Your rewards page has 4 out of 5 images missing alt text—alternative text that describes what an image shows. This text is read aloud by screen readers that visually impaired customers use, and it also helps search engines understand your images. Missing alt text makes your page less accessible and slightly less visible in Google Images.

Why it matters for your business: Customers using screen readers cannot understand your rewards imagery, reducing inclusivity; search engines cannot index those images, losing potential organic traffic from image search.

Technical root cause: Images were uploaded to WordPress without descriptive alt text entered in the Image Details panel, or images are injected via CSS background properties rather than <img> tags.

Recommended fix — step by step

  1. Log into WordPress admin → Media Library → filter by 'Rewards' page uploads
  2. For each image missing alt text, click Edit → scroll to 'Alt Text' field → enter a brief, keyword-aware description (e.g., 'HappyLeaf loyalty rewards tier badge' rather than just 'image')
  3. If any images are CSS backgrounds, convert them to <img> tags: Edit page in block editor → find the image block → ensure Alt Text field is populated
  4. Use the free Weglot or All in One SEO audit tool (WordPress plugin, free tier) to re-scan the Rewards page and confirm all images now have alt text
  5. Test with a screen reader (use NVDA, free, or macOS VoiceOver) to confirm alt text reads naturally

21. 3 image(s) missing alt text

What it means (plain English)

Three images on your Terms of Service page don't have alt text — descriptive labels that tell screen readers (used by people with vision loss) and search engines what the images show. This makes those images invisible to assistive technology and search crawlers, reducing their SEO value and excluding customers who rely on screen readers.

Why it matters for your business: Missing alt text reduces your search ranking for image-based queries, blocks accessibility for disabled customers (a legal exposure under ADA), and signals poor site quality to Google.

Technical root cause: Images were uploaded to WordPress without filling in the 'Alt Text' field during insertion, or were added via HTML without alt attributes.

Recommended fix — step by step

  1. Log into WordPress → Media Library → filter by 'Unattached' to find orphaned images, or go to Pages → Terms of Service and click Edit
  2. In the block editor, click each image block and look for the 'Alt text (alternative text)' field in the right sidebar
  3. For each image, write a brief, descriptive alt text (e.g., 'HappyLeaf dispensary storefront' or 'Cannabis product shelf display') — 5–10 words, no keyword stuffing
  4. Click 'Update' to save changes
  5. Install the free Yoast SEO plugin if not present (Plugins → Add New → search 'Yoast SEO') and run a site audit to flag remaining missing alt text across the entire site

22. Missing Twitter card

What it means (plain English)

Your About page is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter (now X) how to display your page when someone shares a link. Without it, the platform shows a plain, generic preview instead of your custom image, headline, and description—making your content less visually appealing and less likely to get clicks when shared.

Why it matters for your business: Missed opportunity to drive traffic and brand awareness when customers or advocates share your About page on social media; a polished preview increases click-through rates by 20–40% compared to plain text links.

Technical root cause: The WordPress head section lacks the <meta name="twitter:card" content="summary_large_image"> tag and related properties (twitter:image, twitter:title, twitter:description), which are not automatically generated by most WordPress SEO plugins without explicit configuration.

Recommended fix — step by step

  1. Install or activate Yoast SEO (free version) if not already active: Dashboard → Plugins → Search 'Yoast SEO' → Install and Activate.
  2. Go to Yoast SEO → Integrations → Social Media → enable Twitter/X integration.
  3. Edit the About page: Dashboard → Pages → About → scroll to Yoast SEO box at bottom → click 'Social' tab.
  4. Set 'Twitter Card Type' to 'Summary with Large Image'.
  5. Upload or select a high-quality image (1200×630px minimum) for the Twitter preview.
  6. Fill in the Twitter preview title and description fields (120 characters max for description).
  7. Click 'Update' to save the page.
  8. Repeat steps 3–7 for your Homepage, Product/Menu pages, and Blog landing page (highest-traffic pages first).

23. Missing Twitter card

What it means (plain English)

Your homepage is missing a Twitter Card meta tag, which tells Twitter how to display your content when someone shares your site on that platform. Without it, Twitter shows a plain text preview instead of a formatted card with your logo, description, and image. This is a minor cosmetic issue that doesn't affect search rankings or user experience on your own site.

Why it matters for your business: Shared links to your site will look less professional and attract fewer clicks on Twitter/X, reducing referral traffic from social platforms where cannabis consumers and industry professionals gather.

Technical root cause: The <meta name="twitter:card" content="summary_large_image"> tag and related Twitter Card properties (twitter:title, twitter:description, twitter:image) are not present in the page's HTML head section.

Recommended fix — step by step

  1. Install and activate the Yoast SEO plugin if not already active (Plugins → Add New → search 'Yoast SEO' → Install Now → Activate)
  2. Go to Yoast SEO → Social → Twitter and toggle the Twitter card feature on
  3. Upload your dispensary's logo or a branded image (at least 1024×512 px) in the Twitter image field
  4. Set the Twitter Card type to 'Summary Large Image' in Yoast's dropdown
  5. Verify by visiting a post URL in Twitter's Card Validator (cards-dev.twitter.com/validator), pasting your site URL, and confirming the preview renders with image and branding

24. Missing Twitter card

What it means (plain English)

Your FAQ page doesn't include a Twitter Card meta tag—a snippet of code that tells Twitter (now X) how to display your page when someone shares it. Without it, the platform shows a plain text preview instead of a formatted card with your logo, description, and image. This is purely cosmetic on social media.

Why it matters for your business: Shared links to your FAQ appear less polished on Twitter/X, which may slightly reduce click-through rates from social traffic, though the impact is minimal for a local dispensary.

Technical root cause: The WordPress theme or SEO plugin (likely Yoast, Rank Math, or All in One SEO) is not configured to auto-generate Twitter Card meta tags, or the plugin is disabled for this post type.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins → search for your installed SEO plugin (Yoast SEO, Rank Math, or All in One SEO).
  2. If using Yoast SEO: Go to Yoast SEO → Integrations → Social Media → Twitter and enable 'Add Twitter card meta tags', then save.
  3. If using Rank Math: Go to Rank Math → Integrations → Social Networks → Twitter and toggle 'Enable Twitter Card' to ON.
  4. If using All in One SEO: Go to All in One SEO → Social Media → Twitter and check 'Enable Twitter Card'.
  5. Edit the FAQ page and ensure the 'Featured Image' is set (this becomes the card image); save the page.
  6. Open https://cards-dev.twitter.com/validator and paste the FAQ URL to confirm the card now displays correctly.

25. Missing Twitter card

What it means (plain English)

Your site is missing Twitter Card meta tags, which are small pieces of code that tell Twitter how to display your content when someone shares a link to your site. Without them, Twitter shows a plain, unformatted preview instead of an attractive image and description. This is a social amplification opportunity, not a critical issue.

Why it matters for your business: When customers share your consultation page or product pages on Twitter/X, your brand appears less professional and gets fewer clicks because the preview lacks an image and formatted text.

Technical root cause: WordPress SEO plugins (like Yoast SEO or Rank Math) have Twitter Card generation disabled, or the site is not using a plugin that adds these tags automatically.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins → search 'Yoast SEO' or 'Rank Math' (if not already installed, install Rank Math Free)
  2. Activate the plugin and go to Rank Math → Titles & Meta → Social
  3. Enable 'Twitter Card' and set 'Card Type' to 'Summary with Large Image'
  4. Upload a default social image (1200×630px, showing your dispensary branding) to use as the fallback
  5. Go to Rank Math → General Settings → Social Profiles → add your Twitter/X handle
  6. Save settings and clear any caching plugin cache (if you use WP Super Cache, go to Settings → WP Super Cache → Delete Cache)
  7. Test the fix using Twitter's Card Validator (https://cards-dev.twitter.com/validator) — paste your consultation URL and verify the preview displays correctly

26. Missing OpenGraph metadata

What it means (plain English)

OpenGraph metadata are HTML tags that control how your pages appear when shared on Facebook, Instagram, and other social platforms. Without them, these sites show a generic preview (or none at all) instead of your chosen title and image. This is purely cosmetic—it doesn't affect search rankings or site function.

Why it matters for your business: When customers share your dispensary location pages on social media, the post looks unprofessional or blank, reducing click-through rates and missing an opportunity for free word-of-mouth marketing.

Technical root cause: The page template or WordPress theme does not include og:title and og:image meta tags in the page header, or the SEO plugin managing these tags has not been configured to populate them.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins → search 'Yoast SEO' or 'Rank Math' (whichever is active); if neither is installed, install Yoast SEO (free version is sufficient).
  2. Activate the plugin and navigate to the affected page (Dispensary Drive-Thru in Somerdale).
  3. In the plugin's sidebar, find the 'Social' or 'OpenGraph' settings section and ensure 'Add OpenGraph tags' is toggled ON.
  4. For that page, set a custom og:title (e.g., 'HappyLeaf Dispensary Drive-Thru | Somerdale, NJ') and upload a custom og:image (minimum 1200×630 px, ideally a photo of the location or storefront).
  5. Save/publish the page and use Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) to verify the preview renders correctly.
  6. Repeat for other location or product pages identified in the audit.

27. Missing Twitter card

What it means (plain English)

Your EULA page is missing a Twitter Card meta tag, which is an optional metadata instruction that tells Twitter (now X) how to display your page if someone shares the link on that platform. Without it, X will use basic fallback formatting instead of a custom preview with your chosen image, title, and description.

Why it matters for your business: Missing Twitter Cards reduces click-through rates on social shares and makes your brand look less polished when customers or industry accounts share your content on X.

Technical root cause: The page's HTML head section does not include a <meta name="twitter:card" content="summary_large_image"> tag or similar Twitter Card declaration. This is likely because your WordPress theme or SEO plugin (if used) was not configured to auto-generate Twitter Card meta tags.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins → search 'Yoast SEO' (or 'Rank Math') and activate if not already enabled
  2. Go to the plugin's settings → Social → Twitter and toggle 'Add Twitter Card tags' to ON
  3. Return to Pages → EULA → edit → scroll to the plugin's SEO panel → fill in 'Twitter Title' and 'Twitter Image' fields (or leave blank to auto-use post title/featured image)
  4. Save and republish the page
  5. Optional: Validate the fix by visiting https://cards-dev.twitter.com/validator and pasting the EULA URL to confirm the tag is now present

28. Missing Twitter card

What it means (plain English)

Your product pages are missing Twitter card metadata—small code snippets that tell Twitter (now X) how to display your content when someone shares a link. Without them, shares appear plain and generic instead of showing your product image, description, and branding.

Why it matters for your business: Missed social sharing visibility; when customers share your dispensary or products on X/Twitter, the post won't stand out, reducing click-through rates and organic reach from social platforms.

Technical root cause: The twitter:card, twitter:title, twitter:description, and twitter:image meta tags are not present in the page head. WordPress SEO plugins (Yoast, Rank Math, All in One SEO) can inject these automatically, but none are configured or active.

Recommended fix — step by step

  1. Install Yoast SEO free plugin: WordPress admin → Plugins → Add New → search 'Yoast SEO' → Install and Activate.
  2. Go to Yoast SEO → Social → scroll to 'X (formerly Twitter)' section and enable it.
  3. Enter your X account username (e.g., @HappyLeafNJ) in the 'X account' field.
  4. Edit the affected page (/our-store/) → Yoast SEO box → Social tab → manually set X card image and preview if you want custom override (optional but recommended for product pages).
  5. Publish/update the page to apply the tags.
  6. Test by pasting the URL into Twitter's Card Validator tool (cards-dev.twitter.com/validator) to confirm the card renders.

29. Missing Twitter card

What it means (plain English)

Your rewards page is missing a Twitter Card—a small piece of code that tells Twitter how to display your page if someone shares it. Without it, Twitter shows a plain, unformatted preview instead of your branded image and description. This is a low-impact cosmetic issue; it doesn't hurt SEO or functionality.

Why it matters for your business: When customers share your rewards program on Twitter, the preview will look generic and less professional, reducing click-through rates on social shares.

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

Recommended fix — step by step

  1. Log into WordPress admin → Settings → Social Media (or use Yoast SEO/Rank Math if installed).
  2. Look for a 'Twitter Card' or 'Social Sharing' section; if unavailable, install the free Rank Math SEO plugin.
  3. In Rank Math → Settings → Integrations → Twitter, enable Twitter Card and set card type to 'Summary with Large Image'.
  4. Edit the /rewards/ page and ensure the page has a featured image set (used as twitter:image).
  5. Add custom meta tags via Rank Math's page editor: twitter:card=summary_large_image, twitter:site=@yourhandle (replace with actual Twitter handle).
  6. Test the page at https://cards-dev.twitter.com/validator using the /rewards/ URL to confirm the card renders.

30. Missing Twitter card

What it means (plain English)

Your Terms of Service page (and likely other pages) is missing a Twitter Card meta tag. This is a snippet of code that tells Twitter how to display your page when someone shares it on that platform — what image, title, and description to show. Without it, Twitter picks defaults that may look unprofessional.

Why it matters for your business: When customers or staff share your dispensary content on Twitter/X, the preview will be plain or misaligned with your brand, reducing click-through rates and brand consistency.

Technical root cause: WordPress sites with SEO plugins (Yoast, Rank Math, All in One SEO) often leave Twitter Cards disabled by default, or the plugin configuration was never completed during setup.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins and confirm you have Yoast SEO, Rank Math, or All in One SEO installed.
  2. If using Yoast: go to Yoast SEO → Integrations → Social → Twitter and enable 'Add Twitter card meta tag'; set Default Card Type to 'Summary with Large Image'.
  3. If using Rank Math: go to Rank Math → Social → Twitter and toggle 'Enable Twitter Card'; upload a default image (1200×630px) for fallback.
  4. If using All in One SEO: go to All in One SEO → Social Networks → Twitter and check 'Enable Twitter Card' under Card Type settings.
  5. If no SEO plugin exists, install Yoast SEO (free tier sufficient) and follow step 2 above.
  6. Test the fix by visiting https://twitter.com/i/web/status/1234567890 and pasting your Terms page URL into the Card Validator (search 'twitter card validator').
  7. Repeat the validator test for 3–5 other key pages (homepage, product pages, blog) to confirm Twitter Cards display correctly site-wide.

31. Missing Twitter card

Detail

No twitter:card meta tag.

32. Missing OpenGraph metadata

Detail

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

33. Missing Twitter card

Detail

No twitter:card meta tag.

34. Missing Twitter card

Detail

No twitter:card meta tag.

35. Missing Twitter card

Detail

No twitter:card meta tag.

36. Missing OpenGraph metadata

Detail

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

37. Missing OpenGraph metadata

Detail

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

38. Missing OpenGraph metadata

Detail

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

39. Missing Twitter card

Detail

No twitter:card meta tag.

40. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

41. Missing OpenGraph metadata

Detail

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

42. Missing Twitter card

Detail

No twitter:card meta tag.

43. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

44. Missing OpenGraph metadata

Detail

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

45. Missing Twitter card

Detail

No twitter:card meta tag.

46. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

47. Missing OpenGraph metadata

Detail

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

48. Missing Twitter card

Detail

No twitter:card meta tag.

49. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

50. Title length 80 chars

Detail

Title should be 20-65 chars. Got: "The Ultimate Guide to the Happy Leaf Cannabis Drive-Thru | Happy Leaf Dispensary"

51. Missing OpenGraph metadata

Detail

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

52. Missing Twitter card

Detail

No twitter:card meta tag.

53. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

54. Title length 67 chars

Detail

Title should be 20-65 chars. Got: "The Top-Rated Dispensary Near Runnemede, NJ | Happy Leaf Dispensary"

55. Missing OpenGraph metadata

Detail

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

56. Missing Twitter card

Detail

No twitter:card meta tag.

57. Title length 72 chars

Detail

Title should be 20-65 chars. Got: "The Most Convenient Dispensary Near Bellmawr, NJ | Happy Leaf Dispensary"

58. Missing OpenGraph metadata

Detail

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

59. Missing Twitter card

Detail

No twitter:card meta tag.

60. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

61. Title length 89 chars

Detail

Title should be 20-65 chars. Got: "The Premier Cannabis Destination for South Jersey & Camden County | Happy Leaf Dispensary"

62. Missing OpenGraph metadata

Detail

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

63. Missing Twitter card

Detail

No twitter:card meta tag.

64. Title length 92 chars

Detail

Title should be 20-65 chars. Got: "Recreational Marijuana and Exterior Vehicle Pickup Near Voorhees, NJ | Happy Leaf Dispensary"

65. Missing OpenGraph metadata

Detail

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

66. Missing Twitter card

Detail

No twitter:card meta tag.

67. Title length 92 chars

Detail

Title should be 20-65 chars. Got: "Finding the Closest Recreational Cannabis Dispensary in South Jersey | Happy Leaf Dispensary"

68. Missing OpenGraph metadata

Detail

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

69. Missing Twitter card

Detail

No twitter:card meta tag.

70. Missing OpenGraph metadata

Detail

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

71. Missing Twitter card

Detail

No twitter:card meta tag.

72. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

73. Missing OpenGraph metadata

Detail

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

74. Missing Twitter card

Detail

No twitter:card meta tag.

75. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

76. Missing OpenGraph metadata

Detail

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

77. Missing Twitter card

Detail

No twitter:card meta tag.

78. Missing OpenGraph metadata

Detail

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

79. Missing Twitter card

Detail

No twitter:card meta tag.

80. Missing OpenGraph metadata

Detail

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

81. Missing Twitter card

Detail

No twitter:card meta tag.

82. Missing OpenGraph metadata

Detail

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

83. Missing Twitter card

Detail

No twitter:card meta tag.

84. Missing OpenGraph metadata

Detail

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

85. Missing Twitter card

Detail

No twitter:card meta tag.

86. Missing OpenGraph metadata

Detail

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

87. Missing Twitter card

Detail

No twitter:card meta tag.

88. Missing OpenGraph metadata

Detail

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

89. Missing Twitter card

Detail

No twitter:card meta tag.

90. Missing OpenGraph metadata

Detail

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

91. Missing Twitter card

Detail

No twitter:card meta tag.

92. Missing OpenGraph metadata

Detail

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

93. Missing Twitter card

Detail

No twitter:card meta tag.

94. Missing OpenGraph metadata

Detail

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

95. Missing Twitter card

Detail

No twitter:card meta tag.

96. Missing OpenGraph metadata

Detail

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

97. Missing Twitter card

Detail

No twitter:card meta tag.

98. Missing OpenGraph metadata

Detail

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

99. Missing Twitter card

Detail

No twitter:card meta tag.

100. Missing OpenGraph metadata

Detail

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

101. Missing Twitter card

Detail

No twitter:card meta tag.

102. Missing OpenGraph metadata

Detail

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

103. Missing Twitter card

Detail

No twitter:card meta tag.

104. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

105. Heavy JS payload (mobile): 255KB

Detail

JavaScript transfer exceeds 250KB budget.

106. Heavy page weight (mobile): 7904KB

Detail

Total transfer exceeds 2500KB budget.

107. Heavy JS payload (desktop): 341KB

Detail

JavaScript transfer exceeds 250KB budget.

108. Heavy page weight (desktop): 7693KB

Detail

Total transfer exceeds 2500KB budget.

109. Missing security header: x-content-type-options

Detail

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

110. Missing security header: referrer-policy

Detail

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

111. Missing security header: permissions-policy

Detail

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

112. SSL Labs grade: unknown

Detail

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

113. DNSSEC not enabled

Detail

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

114. No CAA DNS records

Detail

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

115. Lighthouse mobile audit failed to run

Detail

The "start lh:driver:navigate" performance mark has not been set

116. Lighthouse perf (desktop): 77/100

Detail

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

117. Lighthouse a11y (desktop): 88/100

Detail

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

118. Lighthouse bestPractices (desktop): 81/100

Detail

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

119. LH desktop: Preconnect to required origins (Est savings of 140 ms)

Detail

Consider adding preconnect or dns-prefetch resource hints to establish early connections to important third-party origins. https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/" target="_blank" rel="noreferrer">Learn how to preconnect to required origins.

120. LH desktop: Preload Largest Contentful Paint image

Detail

If the LCP element is dynamically added to the page, you should preload the image in order to improve LCP. https://web.dev/articles/optimize-lcp#optimize_when_the_resource_is_discovered" target="_blank" rel="noreferrer">Learn more about preloading LCP elements.

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

Detail

Minifying JavaScript files can reduce payload sizes and script parse time. https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/" target="_blank" rel="noreferrer">Learn how to minify JavaScript.

122. LH desktop: Reduce unused CSS (Est savings of 63 KiB)

Detail

Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/" target="_blank" rel="noreferrer">Learn how to reduce unused CSS.

123. LH desktop: Reduce unused JavaScript (Est savings of 133 KiB)

Detail

Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/" target="_blank" rel="noreferrer">Learn how to reduce unused JavaScript.

124. Dutchie menu iframe not found on /, /menu, or /shop

Detail

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


Findings by Page

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

https://happyleafdispensarynj.com/

_38 findings on this page_

Your age-gate popup (the dialog that appears to verify visitors are 21+) is missing a label that screen readers can announce. Screen reader users won't know what the dialog is for, making it impossibl

Your website has 2 links that lack descriptive text for screen readers — tools used by people with vision impairments to navigate websites. One is a menu link with no visible or hidden label; the othe

Your homepage doesn't have a main heading (H1 tag). Search engines and accessibility tools use H1 to understand what a page is about — it's like the title of a newspaper article. Without it, both mach

Your site includes schema markup (structured data) that helps Google understand your business, but it's missing the LocalBusiness type. LocalBusiness tells search engines key details like your address

Your site is not sending the Strict-Transport-Security (HSTS) header, which tells browsers to always use HTTPS when visiting your domain. This is a security best practice that prevents attackers from

Your site is missing the X-Frame-Options security header, which tells browsers whether your pages can be embedded inside frames or iframes on other websites. This header is a standard security control

Your website has 22 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile devices. This makes them difficult to tap accurately, especially for visitors with larger f

Your website has 22 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile phones. This makes them difficult to tap accurately, especially for people with limited dex

Your site uses heading tags (like <h4>) in an order that doesn't follow a logical hierarchy. Screen readers and assistive technology rely on heading levels (h1, h2, h3, etc.) to navigate pages like a

Your site has a navigation menu (a landmark in web accessibility terms) that isn't uniquely labeled. Screen reader users can't tell this navigation apart from any others on the page because it only sa

Your homepage is missing Open Graph tags — small code snippets that tell social media platforms (Facebook, Instagram, LinkedIn) what to display when someone shares your link. Without them, social shar

Your homepage is missing a Twitter Card meta tag, which tells Twitter how to display your content when someone shares your site on that platform. Without it, Twitter shows a plain text preview instead

https://happyleafdispensarynj.com/menu/

_4 findings on this page_

Your menu page's search engine description is only 45 characters long, when search engines prefer 80–160 characters. This means Google may truncate or rewrite your description in search results, missi

Two images on your menu page don't have alt text—descriptions that appear when images won't load and help screen readers describe what's shown. This hurts both accessibility for customers using assist

https://happyleafdispensarynj.com/dispensary-drive-thru/

_4 findings on this page_

https://happyleafdispensarynj.com/dispensary-near-runnemede-nj/

_4 findings on this page_

Nine images on your Runnemede dispensary page lack alt text — hidden descriptive labels that screen readers (used by blind/low-vision visitors) read aloud, and that search engines use to understand im

https://happyleafdispensarynj.com/dispensary-near-bellmawr-nj/

_4 findings on this page_

https://happyleafdispensarynj.com/areas-we-serve/

_4 findings on this page_

Your Areas We Serve page has 5 images without alt text — descriptive labels that screen readers use to tell visually impaired visitors what each image shows. Search engines also rely on alt text to un

https://happyleafdispensarynj.com/dispensaries-near-me/voorhees-nj/

_4 findings on this page_

Eight images on your Voorhees location page don't have alt text—short descriptions that tell search engines and screen readers what each image shows. This means blind customers using assistive technol

https://happyleafdispensarynj.com/dispensaries-near-me/

_4 findings on this page_

Your dispensary location page has 6 images without alt text — descriptive text that screen readers use to understand images, and that search engines use to index them. This makes the page harder for c

https://happyleafdispensarynj.com/category/uncategorized/

_4 findings on this page_

Your category archive page (/category/uncategorized/) doesn't have a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google genera

https://happyleafdispensarynj.com/hello-world/

_3 findings on this page_

When your pages are shared on Facebook, Instagram, or other social platforms, those sites look for OpenGraph tags (og:title, og:image, og:description) to know what preview to show. Without them, the p

Three images on your Hello World page don't have alt text — descriptive text that screen readers use to tell visually impaired visitors what an image shows. This makes those images invisible to both a

https://happyleafdispensarynj.com/sample-page/

_3 findings on this page_

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 show up as blank or with

Your website is missing Twitter Card tags, which are special HTML codes that tell Twitter (now X) how to display your pages when someone shares a link. Without them, shared links appear as plain text

Three images on your Sample Page are missing alt text — descriptive text that appears when an image fails to load and that screen readers (tools used by people with vision disabilities) read aloud. Se

https://happyleafdispensarynj.com/faq/

_3 findings on this page_

Your FAQ page doesn't include a Twitter Card meta tag—a snippet of code that tells Twitter (now X) how to display your page when someone shares it. Without it, the platform shows a plain text preview

Three images on your FAQ page don't have alt text — descriptive text that tells search engines and screen readers (used by visually impaired visitors) what each image shows. This makes those images in

https://happyleafdispensarynj.com/consultation/

_3 findings on this page_

Your consultation page is missing OpenGraph tags — metadata that tells Facebook, Instagram, and other social platforms how to display your page when someone shares a link. Without them, your link appe

Your site is missing Twitter Card meta tags, which are small pieces of code that tell Twitter how to display your content when someone shares a link to your site. Without them, Twitter shows a plain,

Three images on your consultation page don't have descriptive alt text—the hidden labels that tell screen readers and search engines what each image shows. This makes the page harder for visually impa

https://happyleafdispensarynj.com/dispensary-drive-thru-in-somerdale-nj/

_3 findings on this page_

Six images on your Somerdale dispensary page don't have alt text—descriptive labels that explain what's in each image. When images lack alt text, people using screen readers (assistive technology for

OpenGraph metadata are HTML tags that control how your pages appear when shared on Facebook, Instagram, and other social platforms. Without them, these sites show a generic preview (or none at all) in

https://happyleafdispensarynj.com/eula/

_3 findings on this page_

When someone shares a link to your EULA page on Facebook, Instagram, or other social platforms, there's no custom preview image or title to display. Instead, social media shows a generic or broken pre

Your EULA page is missing a Twitter Card meta tag, which is an optional metadata instruction that tells Twitter (now X) how to display your page if someone shares the link on that platform. Without it

Three images on your EULA page don't have descriptive text alternatives (called 'alt text'). This means screen readers used by visually impaired visitors can't describe those images, and search engine

https://happyleafdispensarynj.com/our-store/

_3 findings on this page_

Your store page is missing Open Graph tags — special metadata that tells Facebook, Instagram, and other social platforms what image and headline to display when someone shares your link. Without these

Your product pages are missing Twitter card metadata—small code snippets that tell Twitter (now X) how to display your content when someone shares a link. Without them, shares appear plain and generic

Three images on your store page don't have alt text — a brief text description that appears if the image fails to load and helps search engines understand what the image shows. This affects both custo

https://happyleafdispensarynj.com/privacy-policy/

_3 findings on this page_

Your privacy policy page is missing OpenGraph tags—special metadata that tells social media platforms (Facebook, Instagram, etc.) what title and image to display when someone shares the link. Without

Three images on your privacy policy page don't have alt text — descriptive labels that explain what each image shows. Screen readers (used by customers with visual impairments) can't describe these im

https://happyleafdispensarynj.com/rewards/

_3 findings on this page_

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 blank or with gene

Your rewards page is missing a Twitter Card—a small piece of code that tells Twitter how to display your page if someone shares it. Without it, Twitter shows a plain, unformatted preview instead of yo

Your rewards page has 4 out of 5 images missing alt text—alternative text that describes what an image shows. This text is read aloud by screen readers that visually impaired customers use, and it als

https://happyleafdispensarynj.com/terms-of-service/

_3 findings on this page_

Your Terms of Service page (and likely other pages) is missing a Twitter Card meta tag. This is a snippet of code that tells Twitter how to display your page when someone shares it on that platform —

Three images on your Terms of Service page don't have alt text — descriptive labels that tell screen readers (used by people with vision loss) and search engines what the images show. This makes those

https://happyleafdispensarynj.com/about/

_3 findings on this page_

Seven images on your About page don't have alt text — descriptive text that explains what each image shows. Screen readers (used by people with vision impairments) can't tell visitors what these image

Your About page is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter (now X) how to display your page when someone shares a link. Without it, the platform shows a plain, g

https://happyleafdispensarynj.com/deals-discounts/

_3 findings on this page_

https://happyleafdispensarynj.com/dispensary-in-somerdale-nj/

_3 findings on this page_

https://happyleafdispensarynj.com/contact/

_3 findings on this page_

https://happyleafdispensarynj.com/review-videos/

_3 findings on this page_

https://happyleafdispensarynj.com/blog/

_3 findings on this page_

https://happyleafdispensarynj.com/careers/

_3 findings on this page_

https://happyleafdispensarynj.com/?elementor_library=phasal-homepage-08-01-24

_3 findings on this page_

Your website has 5 images without alt text — descriptive text that screen readers read aloud to visually impaired visitors, and that search engines use to understand what images show. This makes your

https://happyleafdispensarynj.com/?elementor_library=our-store-template

_3 findings on this page_

Five images on your store template page don't have alt text — descriptive text that explains what's in the image. Search engines can't read images, so without alt text they don't know what your produc

https://happyleafdispensarynj.com/?elementor_library=contact-us-template

_3 findings on this page_

Five images on your contact form template don't have alt text — descriptive labels that screen readers read aloud to visitors with visual impairments. This blocks accessibility compliance and signals

https://happyleafdispensarynj.com/?elementor_library=loyalty-program-template

_3 findings on this page_

Your website has 5 images without alt text — that's descriptive text that appears when images don't load and helps screen readers (used by visually impaired customers) understand what's shown. This br

https://happyleafdispensarynj.com/?elementor_library=dispensary-near-landing-page

_3 findings on this page_

Five images on your landing page don't have alt text — descriptive labels that explain what the image shows to people using screen readers and to search engines. This creates barriers for customers wi

https://happyleafdispensarynj.com/?elementor_library=default-kit

_3 findings on this page_

Five images on your site don't have alt text—text descriptions that appear when images fail to load and that screen readers read aloud to blind visitors. This hurts both accessibility (people using as

https://happyleafdispensarynj.com/?elementor_library=home-banner

_3 findings on this page_

Five images on your homepage banner lack alt text—descriptive labels that screen readers use to describe images to visually impaired visitors, and that search engines use to understand what images con

https://happyleafdispensarynj.com/?elementor_library=careers

_3 findings on this page_

Five images on your Careers page don't have descriptive text (called 'alt text') attached to them. Alt text describes what an image shows to people using screen readers and helps search engines unders

https://happyleafdispensarynj.com/?elementor_library=seo-drive-thru

_3 findings on this page_

Five images on your site don't have alt text — descriptions that appear when images fail to load and help search engines understand what's pictured. This hurts both accessibility (screen reader users

https://happyleafdispensarynj.com/?elementor_library=drive-thru-consultation-template

_3 findings on this page_

Your website has 5 images without alt text—these are descriptions that appear when images don't load and help search engines understand what's in your photos. This hurts both accessibility (customers

https://happyleafdispensarynj.com/?elementor_library=three-sections

_3 findings on this page_

Your website has 5 images without alt text — descriptive text that explains what each image shows. Search engines and screen readers (tools that read websites aloud for visually impaired visitors) can

https://happyleafdispensarynj.com/?elementor_library=elementor-header-80

_3 findings on this page_

Five product images on your site lack alt text — descriptive labels that screen readers read aloud to blind users, and that search engines use to understand image content. This breaks accessibility co

https://happyleafdispensarynj.com/?elementor_library=elementor-footer-84

_3 findings on this page_

Five images on your site don't have alt text — short descriptions that explain what the image shows. Screen readers (used by visually impaired customers) can't describe these images, and search engine

https://happyleafdispensarynj.com/robots.txt

_1 finding on this page_

Your robots.txt file (the rule book that tells Google's crawlers what pages to index) doesn't include a link to your XML sitemap. A sitemap is like a directory of all your pages. Without this referenc

https://happyleafdispensarynj.com/wp-login.php

_1 finding on this page_

Your WordPress login page (/wp-login.php) is publicly accessible and returns a success response. This is a security risk because attackers can find and target this page to attempt breaking into your s


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


Generated by Apex Sentinel · © 2026 Bud Authority