Bud Authority — Sentinel
Monthly Deep Audit · Unified Command Center

Apex Sentinel — Luxury Leaf STL Monthly Audit

URL: https://luxuryleafstl.com/

Platform: unknown

Archetype: premium

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

Scanned: 2026-04-19T07:24:34.971Z

Duration: 581s

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 crawled23Full sitemap + linked pages
P0 (critical)1Site-down or compliance-breaking
P1 (urgent)5Significant revenue / SEO / UX impact
P2 (high)22Quality / ranking / trust degradation
P3 (medium)85Polish + optimization
"Do first" items5AI-flagged top priorities
Quick wins (< 30 min)55Fastest 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 — _Exposed login pages are a primary target for automated attacks that can lock you out of your own site, deface your storefront, or steal customer data — directly threatening sales, reputation, and compliance with state cannabis regulations._

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

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: ARIA dialog and alertdialog nodes should have an accessible name — _Inaccessible age gates can result in ADA compliance complaints, blocked traffic from accessibility-checking crawlers, and exclusion of disabled customers who use assistive technology._

Page: https://luxuryleafstl.com/

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Elements must meet minimum color contrast ratio thresholds — _Inaccessible buttons reduce conversion rates for customers with vision impairments, expose you to ADA compliance risk, and signal poor site quality to search engines, which may penalize rankings._

Page: https://luxuryleafstl.com/

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Links must have discernible text (×6) — _Cannabis retail sites must be legally accessible; inaccessible links violate WCAG 2.1 Level A compliance and expose you to ADA litigation risk, plus they lock out customers using assistive technology._

Page: https://luxuryleafstl.com/

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Scrollable region must have keyboard access (×11) — _Keyboard and screen reader users (including visually impaired customers and those with mobility disabilities) cannot read your customer reviews — a critical trust signal for a luxury dispensary — and you're at legal risk under ADA/WCAG compliance expectations._

Page: https://luxuryleafstl.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🟠 HIGH 12 broken internal link(s) — _Broken links reduce customer trust (they can't contact you or navigate to loyalty program pages), hurt your SEO visibility for local keywords like 'dispensary near Fox Theatre,' and may block conversions if those pages were meant to drive sales or sign-ups._

Page: https://luxuryleafstl.com/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 170 image(s) missing alt text — _Missing alt text reduces your organic search visibility for product and lifestyle imagery, hurts accessibility compliance (legal risk in some jurisdictions), and excludes vision-impaired customers from your site — a growing demographic for premium e-commerce._

Page: https://luxuryleafstl.com/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 163 image(s) missing alt text — _You're losing accessibility compliance (legal risk in some jurisdictions), missing image search traffic for your premium products, and excluding a customer segment that uses assistive technology._

Page: https://luxuryleafstl.com/about-us/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 16 image(s) missing alt text — _Missing alt text reduces your SEO visibility for image-based searches, limits your reach to customers using accessibility tools, and may expose you to legal risk under accessibility compliance standards (ADA)._

Page: https://luxuryleafstl.com/deliver-service-area/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 10 image(s) missing alt text — _You're excluding accessibility-conscious customers and losing SEO value from product/location images that could drive organic traffic to your service areas._

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

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 admin login page is publicly accessible at /wp-login.php. This means anyone on the internet can visit that URL and attempt to guess passwords or exploit known WordPress vulnerabilities. For a premium cannabis retailer, this is a critical security gap that should be closed immediately.

Why it matters for your business: Exposed login pages are a primary target for automated attacks that can lock you out of your own site, deface your storefront, or steal customer data — directly threatening sales, reputation, and compliance with state cannabis regulations.

Technical root cause: WordPress's default login path is not blocked by your firewall or web server configuration. The site is running WordPress (platform confirmed by the /wp-login.php endpoint), but no access restrictions are in place at the server or CDN level.

Recommended fix — step by step

  1. Log into your hosting provider's control panel (cPanel, Plesk, or equivalent) and locate the .htaccess file for luxuryleafstl.com, or request your host's firewall/WAF dashboard.
  2. Add a rule to block all public access to /wp-login.php, /wp-admin/, and /xmlrpc.php by IP whitelist (allow only your office / team IPs) or by requiring a VPN connection.
  3. If your site uses Cloudflare or similar CDN: Log in → Select domain → Security → WAF Rules → Create rule: IF URI path contains '/wp-login.php' THEN Block.
  4. Alternatively, use a WordPress security plugin (Wordfence or iThemes Security): Install plugin → Firewall → Block access to /wp-login.php except whitelisted IPs.
  5. Rename the WordPress login to a custom URL (e.g., /admin-panel-secret/) using Wordfence Rename Login feature or manually via code, then block /wp-login.php entirely.
  6. Test the fix: Try visiting https://luxuryleafstl.com/wp-login.php in an incognito browser — you should see a 403 Forbidden error, not a login form.
  7. Document which IPs are whitelisted for your team; provide this list to your hosting provider for their records.

P1 — 5 findings

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

What it means (plain English)

Your age-gate dialog (the overlay that asks visitors to confirm they're 21+) doesn't have a label that screen readers can announce. Screen reader users won't know what the dialog is for, and they can't navigate it properly. This is a WCAG accessibility violation that could expose you to legal liability.

Why it matters for your business: Inaccessible age gates can result in ADA compliance complaints, blocked traffic from accessibility-checking crawlers, and exclusion of disabled customers who use assistive technology.

Technical root cause: The dialog element with id 'baag3-gate' has role='dialog' and aria-modal='true' but lacks an aria-label, aria-labelledby, or title attribute. Screen readers have no accessible name to announce.

Recommended fix — step by step

  1. Inspect the age-gate HTML in your browser's developer tools (F12 → Inspector → find the #baag3-gate div)
  2. Add aria-label="Age verification" directly to the <div id="baag3-gate" role="dialog"> tag, or add aria-labelledby="dialog-heading" and ensure a matching id on the heading inside the dialog
  3. If using a third-party age-gate plugin (baag3 appears to be a vendor), contact the provider's support and request they add aria-label or aria-labelledby to comply with WCAG 2.1 Level AA
  4. Re-test using axe DevTools (Chrome/Firefox extension) or WebAIM's WAVE tool to confirm the dialog now has an accessible name
  5. Document the fix in your accessibility statement or remediation log for compliance records

2. A11y: Elements must meet minimum color contrast ratio thresholds

What it means (plain English)

A button on your homepage has white text (#ffffff) on a light green background (#6fad54) that fails to meet accessibility standards. The contrast ratio is 2.69:1, but WCAG AA requires at least 3:1 for normal text. This means visitors with low vision or color blindness may struggle to read the button.

Why it matters for your business: Inaccessible buttons reduce conversion rates for customers with vision impairments, expose you to ADA compliance risk, and signal poor site quality to search engines, which may penalize rankings.

Technical root cause: The button's CSS uses a light green background color that is too close in brightness to white text. The contrast calculation shows the foreground and background colors do not meet the 3:1 minimum ratio required by WCAG 2 AA.

Recommended fix — step by step

  1. Open your browser's Inspector (F12 → Elements tab) and locate the .baag3-btn-yes button selector
  2. Note the current background color (#6fad54) and text color (#ffffff)
  3. Darken the background color to #5a8c40 or darker, OR lighten the text color to ensure 3:1 contrast; test both options in Inspector's Styles panel
  4. If using a CSS framework or theme, find the source stylesheet (likely in /css/ or /assets/) and update the .baag3-btn-yes rule
  5. Use a contrast checker tool (WebAIM Contrast Checker or axe DevTools) to confirm the new ratio meets 3:1 minimum
  6. Clear browser cache and test the button on desktop and mobile to confirm the change is visible
  7. If this is WordPress, check the theme customizer (Appearance → Customize) for button color settings before editing files directly

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

What it means (plain English)

Your site has 6 links that screen readers cannot identify — they contain images or are completely empty. When a visually impaired customer uses a screen reader to navigate, these links will be announced as blank or inaccessible, preventing them from clicking through to product pages or key destinations.

Why it matters for your business: Cannabis retail sites must be legally accessible; inaccessible links violate WCAG 2.1 Level A compliance and expose you to ADA litigation risk, plus they lock out customers using assistive technology.

Technical root cause: Links are built as empty anchor tags or contain only images with no alt text or aria-label attribute. Screen readers have nothing to announce.

Recommended fix — step by step

  1. Open your page in a browser and use Ctrl+F to find all <a> tags; inspect each one in DevTools (right-click → Inspect) and note which ones have no visible text.
  2. For image-only links: add an aria-label="[descriptive text]" attribute to each <a> tag (e.g., aria-label="Browse Flower Products").
  3. For links with images: ensure the <img> inside has descriptive alt text (e.g., alt="Flower - Click to shop") — do NOT use alt="" or alt="image".
  4. If using Elementor page builder (detected via class names): go to each affected widget → Advanced tab → Accessibility section → add Title or ARIA Label.
  5. Test fixes with a screen reader (use NVDA on Windows, free; or Narrator) by tabbing through the page and confirming each link is announced with meaningful text.
  6. Re-run an accessibility audit tool (WAVE, Axe, or Lighthouse) to confirm all 6 links now pass.

4. A11y: Scrollable region must have keyboard access (×11)

What it means (plain English)

Your website has 11 scrollable sections (primarily in review carousels) that keyboard users cannot navigate. When someone uses Tab to move through your site with a keyboard or screen reader, they can't access or scroll through these review sections. This is a serious accessibility violation that locks out keyboard and assistive technology users from key content.

Why it matters for your business: Keyboard and screen reader users (including visually impaired customers and those with mobility disabilities) cannot read your customer reviews — a critical trust signal for a luxury dispensary — and you're at legal risk under ADA/WCAG compliance expectations.

Technical root cause: The scrollable divs (likely Swiper carousel containers with class .gr-inner-body inside review slides) lack tabindex and keyboard event handlers. Swiper carousels by default are touch/mouse-only unless explicitly configured with keyboard navigation and focus management.

Recommended fix — step by step

  1. Inspect the carousel markup: right-click the reviews section → Inspect → locate the .swiper-container or .swiper-wrapper parent; note its ID or data attribute.
  2. Check if Swiper is initialized in your site's JavaScript (likely in a bundled file or <script> tag); search for new Swiper( or Swiper.use( in DevTools Console or your source.
  3. If using Swiper v8+: add keyboard: { enabled: true } and a11y: { enabled: true } to the Swiper config object; if v6–7, use keyboard: true and a11y: true.
  4. Add tabindex="0" to the .swiper-wrapper div or each .swiper-slide to make them focusable.
  5. Test with keyboard: navigate to the reviews → press Tab repeatedly to confirm focus lands on review slides → press arrow keys to scroll through reviews; confirm Tab + Shift+Tab cycles focus properly.
  6. Run axe DevTools again (same URL) to verify the 11 violations are resolved.
  7. If you do not have direct access to the JavaScript config, contact your web host or developer with the Swiper version number and these settings.

5. 12 broken internal link(s)

What it means (plain English)

Your website has 12 broken internal links—URLs pointing to pages that no longer exist or return a 404 error. Most of these are email addresses obscured by Cloudflare's anti-spam protection (the cdn-cgi/l/email-protection URLs), but one is a genuine missing page: /luxeliteclub. Broken links frustrate visitors, damage search engine rankings, and waste crawl budget—the 'allowance' Google gives to index your site.

Why it matters for your business: Broken links reduce customer trust (they can't contact you or navigate to loyalty program pages), hurt your SEO visibility for local keywords like 'dispensary near Fox Theatre,' and may block conversions if those pages were meant to drive sales or sign-ups.

Technical root cause: The /luxeliteclub page has been deleted or moved without a redirect in place. The Cloudflare email protection links are false positives—they're obfuscated email addresses that audit tools misinterpret as broken URLs, not actual navigation problems.

Recommended fix — step by step

  1. Log in to your website CMS or hosting control panel and search for 'luxeliteclub' in your site files or pages; if it was deleted, either restore it or create a 301 redirect from /luxeliteclub to the correct loyalty/membership page.
  2. Check whether /luxeliteclub should exist; if it's a legitimate loyalty program, recreate the page with content, then test it by visiting https://luxuryleafstl.com/luxeliteclub in a browser—you should see the page, not a 404.
  3. For the Cloudflare email-protection false positives: these are safe to ignore in this audit. However, if you want to eliminate the noise, ask your developer to replace Cloudflare's JavaScript email obfuscation with a contact form instead—better for UX and SEO anyway.
  4. Run a full internal link audit using Screaming Frog (free version) or Ahrefs to confirm all other links are working; prioritize fixing any that point to high-traffic pages like /contact or location pages.
  5. Set up a 404 monitoring alert in Google Search Console (Coverage → Errors) so you catch broken pages automatically in the future.

P2 — 22 findings

1. 170 image(s) missing alt text

What it means (plain English)

Your site has 170 images without alt text — descriptive labels that screen readers use to tell visually-impaired visitors what an image shows. This makes your site harder to use for people with vision loss, and it also signals to Google that you haven't optimized images for search. When Google can't understand an image, it can't rank that page as highly for related searches.

Why it matters for your business: Missing alt text reduces your organic search visibility for product and lifestyle imagery, hurts accessibility compliance (legal risk in some jurisdictions), and excludes vision-impaired customers from your site — a growing demographic for premium e-commerce.

Technical root cause: Images were likely added to the site without alt attributes being filled in during upload or page creation. This is common when using page builders, galleries, or bulk image imports without enforcing alt text fields.

Recommended fix — step by step

  1. Audit the site structure: identify which page templates (product pages, home, gallery, blog) have the most untagged images using your browser's Inspector (right-click → Inspect → search for <img without alt).
  2. If using WordPress: install Yoast SEO plugin, go to Tools → Image SEO, and use its bulk alt-text generator to create placeholder descriptions, then manually refine high-value product images.
  3. If using a page builder (Elementor, Divi, Webflow): open each section with images → Image settings → fill in alt text field. Prioritize product showcase and homepage hero images first.
  4. For product pages specifically: write alt text that includes product name, type, and key visual detail (e.g., 'Luxury Leaf Watermelon OG 28g flower package in green packaging').
  5. Set a process rule: require alt text in your CMS before publishing. If using WordPress, add a custom admin notice via Settings → All in One SEO → go live checklist to remind editors.
  6. Test with a screen reader (NVDA free, or Mac VoiceOver) on 5–10 updated pages to verify alt text reads naturally.
  7. Re-run accessibility audit in 2 weeks to confirm progress; aim for 95%+ coverage before launch of any major marketing campaign.

2. 163 image(s) missing alt text

What it means (plain English)

Your website has 163 images without alt text—descriptions that screen readers use to understand images, and that search engines use to index visual content. This means blind and low-vision visitors cannot understand your product photos, and Google cannot index them for image search. Nearly every image on your site is affected.

Why it matters for your business: You're losing accessibility compliance (legal risk in some jurisdictions), missing image search traffic for your premium products, and excluding a customer segment that uses assistive technology.

Technical root cause: Images were uploaded to the site without descriptive alt attributes in the HTML. This is typically a content management or image upload workflow issue where alt text entry was never required or enforced.

Recommended fix — step by step

  1. Audit your top 20 product pages: export a list of images (screenshare or manually document) and note which are missing alt text using a browser inspector (right-click image → Inspect → look for 'alt=' in the img tag).
  2. Create an alt text standard for your dispensary: e.g., 'Luxury Leaf Sunset Haze indica flower, 3.5g container' rather than 'image123.jpg'. Include strain name, product type, and key attribute.
  3. If using WordPress: install the plugin 'WP Accessibility' or 'Yoast SEO' (free tier), which highlights missing alt text in the media library. Go to Media → Library and bulk-edit alt fields.
  4. If platform is custom/unknown: work with your hosting provider or webmaster to access image upload templates and enforce alt text as a required field before publishing.
  5. Prioritize product pages first (About Us can wait): start with /products, /shop, or category pages where product images drive conversion.
  6. Use bulk-edit tools if available (WordPress Media → select all → Edit → Add alt text in bulk fields) or schedule 10–15 images per day if manual.
  7. After fixes, re-run accessibility audit using WAVE browser extension or axe DevTools to confirm alt text is applied.

3. 16 image(s) missing alt text

What it means (plain English)

Every image on your delivery service area page lacks descriptive text (called 'alt text'). This text is read aloud by screen readers for customers with visual impairments, and it also helps search engines understand what your images show. Right now, Google can't tell what's in these 16 images, and neither can visually impaired visitors.

Why it matters for your business: Missing alt text reduces your SEO visibility for image-based searches, limits your reach to customers using accessibility tools, and may expose you to legal risk under accessibility compliance standards (ADA).

Technical root cause: Images were added to the page without alt attribute values. This is commonly caused by CMS drag-and-drop image uploads that don't prompt for descriptive text, or direct HTML/code edits that omitted the alt attribute entirely.

Recommended fix — step by step

  1. Audit the /deliver-service-area/ page: open it in your browser, right-click each image, and note what it shows (e.g., 'map of St. Louis delivery zones', 'delivery driver with package', 'product photo')
  2. If using WordPress: go to Media Library, find each image used on that page, click 'Edit', fill in the 'Alt Text' field with a short, descriptive phrase (5–10 words, no keyword stuffing), and save
  3. If using Wix/Squarespace: open page editor, click each image, locate the alt text or description field in the sidebar, and enter descriptive text
  4. If editing HTML directly: add alt="[description]" to each <img> tag, e.g., <img src="delivery-zone.jpg" alt="Map showing Luxury Leaf delivery coverage across St. Louis">
  5. Test with a screen reader (NVDA on Windows or VoiceOver on Mac) to confirm alt text reads naturally
  6. Repeat this process for all other pages with images—not just this one—to build a compliant site

4. 10 image(s) missing alt text

What it means (plain English)

Every image on your Areas We Serve page lacks alternative text (alt text) — a text description that screen readers speak aloud for visually impaired visitors. This also prevents search engines from understanding what's in those images, which weakens your ability to rank for visual search queries.

Why it matters for your business: You're excluding accessibility-conscious customers and losing SEO value from product/location images that could drive organic traffic to your service areas.

Technical root cause: Images were inserted into the page without alt attributes populated in the HTML. This is typically a content management or theme configuration issue where alt fields were left blank during upload.

Recommended fix — step by step

  1. Open https://luxuryleafstl.com/areas-we-serve/ in your browser and inspect the HTML (right-click → Inspect) to confirm which images lack alt attributes (look for <img> tags with no alt="" or empty alt="").
  2. Log in to your site backend (WordPress admin, Shopify admin, or equivalent) and navigate to the Areas We Serve page editor.
  3. For each of the 10 images, click to select it and locate the Alt Text field (usually in a sidebar or image properties panel).
  4. Write descriptive alt text for each: e.g., 'Premium cannabis selection in downtown St. Louis dispensary' or 'Luxury Leaf location in Clayton, Missouri' — 8–12 words that describe what's shown and include your service area.
  5. Save and publish the page.
  6. Re-run an accessibility scan (use WAVE browser extension or axe DevTools to confirm all images now have alt text).

5. 5 image(s) missing alt text

What it means (plain English)

Five images on your delivery areas page have no descriptive text attached to them. Alt text is a short description that helps both visually-impaired visitors (using screen readers) and search engines understand what an image shows. Without it, those visitors can't access the content, and Google has less information to rank your page.

Why it matters for your business: Missing alt text limits your SEO visibility for image-based searches (local customers looking for "luxury cannabis delivery near me") and excludes potential customers using accessibility tools.

Technical root cause: Images were uploaded to the page without alt attribute text being filled in during upload or page editing.

Recommended fix — step by step

  1. Log into your website CMS/admin panel and navigate to https://luxuryleafstl.com/delivery-areas-we-serve/
  2. Edit the page and locate each image element
  3. For each of the 5 images, add alt text in the Alt Text field (usually found in the image properties or media library) — use descriptive phrases like "Luxury Leaf delivery area map covering downtown St. Louis" or "cannabis delivery zone boundary in Clayton"
  4. Ensure alt text describes what the image shows and includes relevant location/service keywords naturally
  5. Save and publish the page
  6. Run the page through an accessibility checker (axe DevTools browser extension, free) to confirm all 5 images now show alt text

6. 153 image(s) missing alt text

What it means (plain English)

Your website has 153 images that lack descriptive alt text (alternative text shown to screen readers and search engines when images don't load). This blocks visually impaired customers from understanding product photos and details, and tells Google's crawlers nothing about what those images contain—meaning they won't appear in image search results or contribute to page ranking.

Why it matters for your business: You're losing potential customers who use assistive technology, facing legal accessibility risk, and missing image search traffic that could drive discovery of your premium products and medical offerings.

Technical root cause: Images were likely uploaded without alt attributes populated in the image manager, or a page builder template was used without enforcing alt text during publication.

Recommended fix — step by step

  1. Install a free accessibility plugin (if WordPress: use Yoast SEO Free or Accessibility Checker) and run an audit to generate a report of all missing alt attributes on the medical-card/ page
  2. Prioritize product images and hero images first—edit each and add concise, descriptive alt text (e.g., 'premium hybrid cannabis strain in glass jar' rather than 'image123')
  3. For batch processing: use your page builder's media library to add alt text in bulk; if WordPress, use a plugin like Image SEO or WP Smush to batch-edit missing alts
  4. Create an editorial guideline requiring alt text at upload (e.g., 'All product photos must include strain name + primary effect in alt text')
  5. Audit the /medical-card/ page specifically since that's where the evidence was found—this page likely has high traffic and conversion importance
  6. Test using a screen reader (free: NVDA for Windows, built-in VoiceOver on Mac) on 5–10 product images to confirm alt text reads naturally

7. 170 image(s) missing alt text

What it means (plain English)

Your site has 170 images without alt text — descriptive labels that tell search engines and visually impaired visitors what an image shows. This is both an accessibility issue (some customers can't see your product photos) and an SEO miss (Google can't read those images to rank them or understand your page content).

Why it matters for your business: Missing alt text limits your visibility in Google Images for product searches, reduces time-on-site for customers using screen readers, and leaves SEO value on the table for high-intent product keywords like 'premium cannabis strains STL'.

Technical root cause: Images are likely inserted via Elementor (a page builder) or directly in HTML without the alt attribute populated. Elementor's media upload interface has an optional 'alt text' field that was skipped during content creation.

Recommended fix — step by step

  1. Install the free WordPress plugin 'Yoast SEO' or 'All in One SEO' — both scan for missing alt text and flag images in the editor.
  2. In the WordPress Dashboard, go to Media Library and filter by 'Missing alt text' (if using Yoast) or use the bulk editor to add alt text to high-priority product images first (strains, concentrates, edibles).
  3. For each product image, write alt text in this format: '[Product type] — [strain/product name] — [key visual detail]' (example: 'Cannabis flower — Gelato strain — dense purple buds in glass jar').
  4. If images are embedded in Elementor pages, edit each page, select the image widget, and fill the 'Alt Text' field in the element settings panel.
  5. Prioritize alt text for images above the fold and all product gallery images; add alt text to banner/hero images next.
  6. Run a new audit via Screaming Frog or Google Search Console after updating 20–30 images to verify the fix is live.

8. 170 image(s) missing alt text

What it means (plain English)

Your site has 170 images missing alt text—the text that describes an image to search engines and screen readers (software used by people with vision loss). This means search engines can't understand what those images show, and customers using assistive technology get a poor experience. Because cannabis retail is heavily visual, this is a significant miss.

Why it matters for your business: Missing alt text reduces your SEO visibility for product images, strains, and dispensary photos, and excludes customers with disabilities—both a compliance risk and a lost revenue opportunity.

Technical root cause: Images were likely added to pages (especially via page builders like Elementor) without the alt attribute being filled in during upload or page creation.

Recommended fix — step by step

  1. Log in to your WordPress admin, install the plugin 'WP Rocket' or 'Yoast SEO' (if not already active), then run the built-in alt-text audit tool to identify all missing alt text.
  2. If using Elementor: navigate to each page, select an image widget, and open the 'Advanced' tab → fill the 'Alt Text (Accessibility)' field with a clear, product-specific description (e.g., 'Premium Sativa strain in sealed container' instead of 'Product').
  3. For high-volume fixes: install 'Bulk Alt Text' plugin → upload a CSV mapping image URLs to descriptions, then batch-apply.
  4. Prioritize product images and hero images first (highest SEO + UX impact); then do secondary imagery (brand photos, process shots).
  5. Set a team rule: before publishing, require alt text in image upload dialog; assign one person to audit existing pages weekly.
  6. Test with a screen reader (free: NVDA on Windows, or Safari + VoiceOver on Mac) to confirm descriptions make sense aloud.

9. 170 image(s) missing alt text

What it means (plain English)

Your website has 170 images without alt text—descriptive text that explains what's in each image. This matters for two reasons: customers using screen readers (accessibility software) can't understand those images, and search engines can't index what's in them either. When Google can't read an image, it can't help your site rank for relevant searches.

Why it matters for your business: Missing alt text costs you SEO visibility for product photos and lifestyle imagery, and excludes customers with vision impairments—both of which reduce sales and risk legal exposure under accessibility laws.

Technical root cause: Most likely cause is bulk image uploads (especially through Elementor or a page builder) without filling in the alt text field during or after upload. If images are added via a gallery or slider plugin, the default behavior is to leave alt text blank unless manually populated.

Recommended fix — step by step

  1. Identify the page builder in use (visit https://luxuryleafstl.com/elementor-hf/header/ and check the HTML source or admin panel for 'Elementor' or 'Divi' or 'Beaver Builder' references in <script> tags or admin notices)
  2. If using Elementor: log in → click the image/gallery element → open the Advanced tab → fill in the 'Alt Text' field with a clear, descriptive phrase (e.g., 'Premium cannabis flower strain in glass jar' not 'image123')
  3. For product images specifically, use a formula: [Product Name] + [Key Attribute]. Example: 'Sunset OG Cannabis Flower 3.5g Jar'
  4. Audit the 11 images that DO have alt text (181 total, 170 missing) to use them as quality reference examples; ensure your additions match that standard
  5. After batch-updating, run a re-scan using a free tool like WAVE (wave.webaim.org) to confirm alt text is now present and not redundant (avoid 'image of' or 'picture' in the alt text itself)
  6. If you have 50+ product images, consider exporting your product catalog to a CSV, bulk-adding alt text in a spreadsheet, then re-importing if your platform supports it (check your CMS admin docs)

10. No H1 on homepage

What it means (plain English)

Your homepage is missing an H1 tag, which is the main headline that tells search engines (and visitors) what your page is about. Think of it like the title of a newspaper article—every article has one, and yours doesn't. This makes it harder for Google to understand what your site does.

Why it matters for your business: Without a clear H1, search engines struggle to rank your homepage for key phrases like 'luxury cannabis dispensary St. Louis' or 'premium weed delivery STL,' which directly reduces organic traffic and new customer discovery.

Technical root cause: The homepage HTML either lacks an <h1> tag entirely, or uses only lower-level headings (h2, h3, etc.). This is often caused by design-first builds where headlines are styled as images or divs instead of semantic HTML.

Recommended fix — step by step

  1. Open your homepage HTML source (Ctrl+U or Cmd+U in browser) and search for '<h1' to confirm none exists.
  2. Identify the main headline on your homepage visually (likely your brand name or tagline like 'Premium Cannabis, Carefully Curated').
  3. Add a single <h1> tag wrapping that headline. Example: <h1>Premium Cannabis Dispensary in St. Louis</h1>
  4. If using a page builder (WordPress, Webflow, Wix, etc.), edit the homepage and set the top visual heading to 'Heading 1' style instead of 'Heading 2' or 'Title'.
  5. If headline is currently an image, replace or supplement it with HTML text + alt text, or add an invisible <h1> above the image with the same text.
  6. Test using Google's Mobile-Friendly Test (search.google.com/test/mobile-friendly) to confirm the H1 is now present and readable.
  7. Submit the updated homepage to Google Search Console → URL Inspection → 'Request Indexing' to re-crawl.

11. Missing core schema types: LocalBusiness

What it means (plain English)

Your site includes structured data (a machine-readable format search engines use to understand your business) for Organization and WebSite, but is missing LocalBusiness schema. LocalBusiness tells Google key details like your physical address, phone number, hours, and ratings in a standardized format. For a dispensary with a physical location, this is a significant gap.

Why it matters for your business: Without LocalBusiness schema, Google is less likely to display your business prominently in local search results and Google Maps, directly reducing foot traffic and phone inquiries from customers searching 'cannabis dispensary near me' or 'luxury dispensaries in STL.'

Technical root cause: The site's JSON-LD markup was configured to include Organization and WebSite but omitted LocalBusiness, which is the schema type specifically designed for businesses with physical locations. This is a configuration oversight in the structured data implementation.

Recommended fix — step by step

  1. Audit your site's JSON-LD schema by viewing page source (Ctrl+F or Cmd+F, search for '<script type="application/ld+json"'), identify the existing Organization block, and note its location.
  2. Add a LocalBusiness schema block within the same <head> section, including: name, address (streetAddress, addressLocality, addressRegion, postalCode, addressCountry), telephone, openingHoursSpecification (day + opens/closes times), url, and image.
  3. Include geo coordinates (latitude/longitude) for your physical location to improve Google Maps visibility.
  4. If using a CMS (WordPress, Shopify, etc.), install a schema plugin (e.g., Yoast SEO, RankMath) and configure LocalBusiness under their schema settings rather than hand-coding.
  5. Test the updated schema using Google's Structured Data Testing Tool (schema.org test tool) to confirm LocalBusiness validates without errors.
  6. Monitor Google Search Console (Manage > Settings > Verification) for any schema errors or coverage issues in the next 2–4 weeks.
  7. Consider adding AggregateRating schema if you have customer reviews, to increase click-through rates from search results.

12. Missing security header: strict-transport-security

What it means (plain English)

Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use encrypted HTTPS connections when visiting your domain. Without it, visitors could accidentally connect via unencrypted HTTP, exposing their data to interception. This is especially critical for a cannabis retailer handling customer data and payments.

Why it matters for your business: Missing HSTS weakens your security posture, increases vulnerability to data theft during checkout, and signals to search engines and security auditors that your site has gaps—potentially hurting trust and SEO ranking.

Technical root cause: The HTTP response headers from your server (or Cloudflare intermediary) do not include the Strict-Transport-Security directive. This is a server/hosting configuration that must be explicitly enabled; it is not set by default.

Recommended fix — step by step

  1. Log in to your Cloudflare dashboard → Select your domain → Security → Headers → Custom Headers
  2. Click 'Add header' and set Name='Strict-Transport-Security' and Value='max-age=31536000; includeSubDomains; preload'
  3. Save and wait 5–10 minutes for the header to propagate to all Cloudflare edge servers
  4. Verify the header is present by visiting https://securityheaders.com and entering https://luxuryleafstl.com
  5. If Cloudflare does not offer Custom Headers in your plan, contact your hosting provider (appears to be LiteSpeed-backed) and request HSTS header configuration in their control panel or server config

13. 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 on other websites. Without it, attackers could potentially wrap your site in a hidden frame to trick users into clicking on malicious content (called clickjacking). This header is a basic security control that takes seconds to enable.

Why it matters for your business: A clickjacking attack could redirect customers to phishing sites or unauthorized retailers, damaging trust, compliance standing, and exposing the business to legal liability in a regulated industry.

Technical root cause: The server (LiteSpeed cache engine behind Cloudflare) is not configured to send the X-Frame-Options header in HTTP responses. This is a server/hosting configuration issue, not a code problem.

Recommended fix — step by step

  1. Log into your hosting control panel or contact your hosting provider (you are using LiteSpeed cache + Cloudflare).
  2. Add X-Frame-Options: DENY to your server headers via LiteSpeed WebAdmin Console (if self-managed) or request your host add it to the global HTTP response headers.
  3. If using Cloudflare, an alternative: log into Cloudflare dashboard → Rules → Transform Rules → Modify Response Headers → add X-Frame-Options with value DENY.
  4. Test the fix by running a curl command: curl -I https://luxuryleafstl.com/ and verify X-Frame-Options appears in the response.
  5. Re-run your security audit tool to confirm the header is now present.

14. Missing security header: content-security-policy

What it means (plain English)

Your site is missing a Content Security Policy (CSP) header — a security directive that tells browsers which sources of code and content are trusted. Without it, attackers could inject malicious scripts or load dangerous resources. This is especially important for a cannabis retail site handling customer data and payments.

Why it matters for your business: A missing CSP increases risk of data breaches, payment fraud, and customer trust erosion — critical vulnerabilities for a premium dispensary handling sensitive transactions and customer information.

Technical root cause: The server (LiteSpeed cache + Cloudflare) is not configured to emit a Content-Security-Policy HTTP response header. WordPress itself does not set CSP by default; it must be added via server config, a security plugin, or Cloudflare rules.

Recommended fix — step by step

  1. Log in to Cloudflare dashboard → Security → Content Security Policy → enable the CSP managed ruleset or create a custom rule to append a basic CSP header (start with 'default-src \"self\"; script-src \"self\" \"unsafe-inline\" cdn.jsdelivr.net; style-src \"self\" \"unsafe-inline\"').
  2. If you have access to your LiteSpeed server config, add 'setenv CSPPOLICY "default-src 'self'; script-src 'self' 'unsafe-inline' cdn.jsdelivr.net; style-src 'self' 'unsafe-inline'"' to .htaccess or server config, then test in Chrome DevTools → Network → Response Headers.
  3. Install and activate a WordPress security plugin such as Wordfence or Sucuri — go to Plugins → Add New → search 'Wordfence' → Install → Activate → Settings → Firewall → enable CSP header generation.
  4. After deploying CSP, test at https://csp-evaluator.withgoogle.com/ to ensure it is present and not overly permissive.
  5. Monitor Cloudflare → Analytics → DDoS / Security for any CSP violations after one week; adjust whitelist if legitimate scripts are blocked.

15. 44 tap targets under 44px at mobile-320

What it means (plain English)

Your website has 44 interactive buttons, links, and touch elements that are smaller than the minimum recommended size of 44×44 pixels when viewed on mobile devices at 320px width (like older iPhones or small Android phones). This makes them hard to tap accurately, especially for customers with larger fingers or accessibility needs. When users miss their target, they either tap the wrong link or abandon the interaction entirely.

Why it matters for your business: Mobile visitors—particularly older adults or those with dexterity challenges—will struggle to browse products, navigate menus, or complete age-verification steps, directly reducing completed purchases and increasing cart abandonment on phones.

Technical root cause: The page uses interactive elements (buttons, navigation links, product filters, checkout controls) with widths or heights below 44 pixels, either from tight CSS sizing or inadequate padding around touch targets. At narrow mobile viewports, the layout compresses these further.

Recommended fix — step by step

  1. Open your site in Chrome DevTools (F12 → Toggle Device Toolbar → select iPhone SE or 320px width), then inspect each interactive element with the Inspect tool and note those with computed width/height below 44px
  2. For navigation menu items, increase padding (CSS padding property) to at least 12–16px on all sides; target a final button size of 44×44px minimum
  3. For product/category filters and checkboxes, ensure the clickable label wraps the input or has adjacent padding so the tap zone is 44×44px
  4. For age-gate confirm/deny buttons, explicitly set min-width: 44px; min-height: 44px in CSS
  5. For any icon-only buttons (menu toggles, close icons, search), wrap with a 44×44px transparent hit area using CSS or add aria-label to clarify purpose
  6. Test on real mobile devices or use Chrome DevTools device emulation to verify all buttons are easily tappable
  7. Use axe DevTools (free browser extension) to re-run the accessibility scan and confirm the target count drops below 10

16. 45 tap targets under 44px at mobile-375

What it means (plain English)

Your website has 45 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately, especially for customers with larger fingers, arthritis, or vision impairments. It's a legal accessibility standard (WCAG 2.5.5) that most modern sites are expected to meet.

Why it matters for your business: Customers on mobile devices—your largest traffic segment—may abandon checkout, age verification, or menu browsing due to frustration with tiny tap targets, directly reducing sales and increasing cart abandonment.

Technical root cause: The site's CSS likely sets button and link padding/sizing for desktop (where they appear larger) without responsive breakpoints that increase touch targets for mobile viewports below 600px width.

Recommended fix — step by step

  1. Audit the mobile site at 375px width using Chrome DevTools (F12 → Device Toolbar → iPhone SE) and take screenshots of every button, link, and form input
  2. In your CSS, add a mobile-first media query: @media (max-width: 600px) { button, a, input[type='button'], .tap-target { min-height: 44px; min-width: 44px; padding: 12px 16px; } } to ensure all interactive elements meet the 44×44 minimum
  3. Increase padding and line-height on mobile navigation, age-gate buttons, 'Add to Cart', checkout links, and menu toggles specifically
  4. Test with mobile Chrome DevTools' device emulation, then on an actual iPhone/Android phone by trying to tap every button one-handed
  5. Audit form fields (search, login, product filters) to ensure inputs are at least 44×44 with adequate spacing between them
  6. If using a CMS (WordPress, Shopify, etc.), check if your theme or plugin has a mobile spacing setting; if not, request custom CSS from your developer or hosting support

17. 45 tap targets under 44px at mobile-414

What it means (plain English)

Your website has 45 interactive buttons, links, and form fields that are smaller than 44×44 pixels when viewed on mobile phones. This violates WCAG accessibility guidelines because users—especially those with tremors, vision impairments, or large fingers—struggle to tap such small targets accurately.

Why it matters for your business: Customers on mobile devices (likely 50%+ of your traffic) experience frustration during checkout, age verification, or menu navigation, leading to abandoned carts and lost sales; you may also face ADA liability complaints.

Technical root cause: The site's responsive design either inherits desktop button sizes on mobile without scaling, or uses CSS/HTML that sets fixed pixel dimensions too small for touch interfaces.

Recommended fix — step by step

  1. Open your site inspector (F12 in Chrome) → tap the mobile toggle (iPhone 14 or 414px width) → identify the smallest tap targets (typically menu icons, quantity +/− buttons, 'Add to Cart', age-gate buttons) by hovering and reading computed dimensions in DevTools
  2. For each undersized target, increase padding (not just font-size) so the clickable area reaches 44×44px; if the element is a button, add min-width: 44px; min-height: 44px; in CSS, plus padding: 8px or more
  3. On mobile menus: ensure hamburger icon is 44×44px with tap-friendly padding; if using a CMS (WordPress, Shopify), check the theme's mobile menu settings or use a mobile-first CSS breakpoint override
  4. On product quantity selectors (−/+): set each button to min-width: 44px; min-height: 44px; and add margin between them (at least 8px spacing) so adjacent targets don't merge
  5. On age-gate or checkout buttons: test that every interactive element has at least 44×44px of touch space; use responsive units (em or %) rather than fixed px to scale on smaller devices
  6. After changes, re-test at 414px width in DevTools to confirm no target is under 44×44; use WAVE (wave.webaim.org) or axe DevTools (free browser extension) to scan for any remaining violations
  7. If your site uses a page builder (Elementor, Divi, Beaver Builder), check theme settings for 'mobile touch spacing' or 'min button height' and set to at least 44px

18. 38 tap targets under 44px at tablet-768

What it means (plain English)

Your website has 38 buttons, links, and interactive elements that are smaller than 44×44 pixels when viewed on tablets. This makes them hard to tap accurately, especially for customers with limited dexterity or on touchscreens. WCAG 2.5.5 is an accessibility standard that requires interactive elements to meet a minimum touch-friendly size.

Why it matters for your business: Customers using tablets or mobile devices may struggle to complete purchases, navigate your menu, or access age verification—directly affecting conversion rates and potentially frustrating your demographic.

Technical root cause: Interactive elements (buttons, product links, navigation items) were likely designed for desktop and not resized responsively for tablet viewports, or padding/margin around clickable areas is insufficient.

Recommended fix — step by step

  1. Audit the site using Chrome DevTools: open Inspector, toggle device emulation to 'iPad' (768px width), and identify elements with gray tap-target overlays (DevTools → Rendering → Show potential tap targets).
  2. For each undersized element, increase the CSS padding, width, or height so the clickable area reaches 44×44 pixels minimum.
  3. If using WordPress, check for custom CSS in Appearance → Customize → Additional CSS or a custom theme; increase button sizes and link padding for tablet breakpoints using @media (min-width: 768px) rules.
  4. If elements are part of your CMS template, request the theme developer add responsive button sizing, or edit the theme's CSS file (typically style.css) to add: button, a { min-width: 44px; min-height: 44px; } for touch targets.
  5. Test the fix using DevTools device emulation on iPad (768px) to confirm all interactive elements now show 44×44 or larger tap targets.
  6. Prioritize age-verification buttons and checkout/purchase links first, as these are critical for revenue and compliance.

19. Lighthouse perf (mobile): 56/100

What it means (plain English)

Your mobile site takes about 32 seconds for the largest visual element (like a hero image or product card) to appear on screen. Industry standard is under 2.5 seconds. This delay happens because images, scripts, or stylesheets are loading slowly or are too large. Visitors on phones will see a blank or incomplete page, frustrating the buying experience.

Why it matters for your business: Mobile shoppers abandon sites that take longer than 3 seconds to load; slow mobile performance directly reduces conversion rates and harms search ranking visibility for cannabis product searches.

Technical root cause: The Largest Contentful Paint (LCP) metric of 31.9 seconds indicates unoptimized or render-blocking resources—likely uncompressed hero images, critical CSS/JavaScript loaded synchronously, or slow server response times on mobile networks.

Recommended fix — step by step

  1. Audit images in the Lighthouse HTML report (/Users/markwallace/BKH/apex-sentinel/runs/2026-04-19T06-18-18-831Z/lighthouse/luxury-leaf/lighthouse-mobile.html) and identify the largest one; convert to WebP format and compress with tools like TinyPNG or ImageOptim, then re-upload.
  2. Check if CSS or JavaScript files are blocking page load; defer non-critical JavaScript by adding 'defer' or 'async' attributes in HTML, or ask your hosting/dev team to move render-blocking scripts to <footer>.
  3. Enable Gzip compression on your server (ask hosting provider to enable it in control panel or server config), which typically reduces transfer size by 70%.
  4. Implement lazy loading for below-fold images: add 'loading="lazy"' to <img> tags, or install a plugin if using WordPress/CMS.
  5. Set up a Content Delivery Network (CDN) like Cloudflare Free tier to cache images globally and serve them from locations near your visitors.
  6. Re-run Lighthouse after each change and target LCP under 2.5 seconds.

20. A11y: All page content should be contained by landmarks (×111)

What it means (plain English)

Your site has 111 pieces of content (headings, text blocks, etc.) that aren't wrapped in semantic landmark regions like <main>, <nav>, <aside>, or <section> tags. Screen reader users rely on landmarks to navigate and understand page structure — without them, they have to read through every element linearly. This is an accessibility issue that may expose you to compliance complaints.

Why it matters for your business: Screen reader users (including disabled customers and employees) cannot efficiently navigate your dispensary site, reducing inclusivity and creating potential ADA liability — especially important for a luxury brand positioning itself as customer-centric.

Technical root cause: Elementor page builder is wrapping content in generic <div> elements instead of semantic HTML landmarks. The page likely has no <main> wrapper, and content sections lack proper <article>, <section>, or role="region" attributes.

Recommended fix — step by step

  1. Log in to WordPress admin → Elementor → edit the home page (or primary template)
  2. Check if your page has a global <main> container; if not, select the top-level page wrapper and assign it role="main" in the Advanced settings
  3. For each major content section (hero, product listings, about, contact), wrap in a Section widget and assign a descriptive aria-label (e.g., aria-label="Featured Products") in Advanced → Accessibility
  4. Run the Elementor Pro accessibility checker (Elementor → Tools → Accessibility Checker) to auto-flag unmarked content
  5. If using custom code or third-party Elementor add-ons, audit them for missing <nav>, <aside>, or <footer> tags — ensure header/navigation uses <nav> role
  6. After edits, re-run axe DevTools (browser extension, free version) on the published page to confirm the count drops below 20 orphaned elements
  7. Repeat for all template pages (product pages, checkout, about, contact)

21. Layout shift (desktop): 0.082

What it means (plain English)

Your homepage is experiencing cumulative layout shift (CLS) of 0.082, meaning elements on the page are moving around after they initially load. This happens when images, ads, or fonts load after the page structure is already rendered, pushing content down. While it's only slightly above Google's 0.05 threshold, users notice this jank—especially on slower connections or mobile devices.

Why it matters for your business: Layout shift frustrates customers browsing your product menu and age gate, potentially causing accidental clicks on wrong items or abandonment before they even see your menu.

Technical root cause: Your page is likely missing explicit dimensions on images or relying on web fonts that load asynchronously after layout is computed. With 1.65 MB of image data and 91 requests, unoptimized asset loading is the culprit.

Recommended fix — step by step

  1. Audit your largest images (likely product photos and hero) in Chrome DevTools (F12 → Performance tab → record a page load) to identify which assets shift layout; note their filenames and positions.
  2. For all product/hero images in your HTML, add explicit width and height attributes (e.g., <img src='product.jpg' width='400' height='300' alt='...'>) to reserve space before load.
  3. If using web fonts (Google Fonts, Adobe Fonts), add font-display:swap to your @font-face rules to prevent text reflow; for Google Fonts, append &display=swap to the URL (e.g., https://fonts.googleapis.com/css2?family=Lato&display=swap).
  4. Enable lazy loading on below-fold images by adding loading='lazy' to <img> tags to delay their paint and reduce initial shift.
  5. Run https://pagespeed.web.dev/ with the URL, review the 'Avoid large layout shifts' section, and fix any third-party scripts (ads, chat widgets, analytics) that load late by deferring or placing them in containers with defined height.

22. A11y: Heading levels should only increase by one

What it means (plain English)

Your site has a heading hierarchy problem: an H5 (smallest heading level) is being used without proper H2, H3, or H4 headings above it first. Screen readers and search engines expect headings to follow a logical ladder—like an outline in a document. When you skip levels, it confuses assistive technology users and weakens your content structure for search engines.

Why it matters for your business: Visitors using screen readers may struggle to navigate your location pages, reducing accessibility compliance and potentially exposing you to ADA legal risk; search engines also use heading hierarchy to understand page topics, which can slightly diminish SEO for location-based queries.

Technical root cause: The Elementor page builder (detected from the HTML class) is rendering an H5 element without preceding H2, H3, or H4 levels. This typically happens when a template or section is reused without adjusting the heading hierarchy for the page context.

Recommended fix — step by step

  1. Log into your WordPress admin → Edit the affected page (https://luxuryleafstl.com/) with Elementor
  2. Find the 'The Fox' heading widget (search the page for 'The Fox' text in the Elementor editor)
  3. Click the heading widget and change its HTML tag dropdown from 'H5' to 'H3' (or 'H2' if it's a top-level section heading)
  4. Check if there is an H1 or H2 above this section in the page hierarchy; if not, restructure the section to start with an H2 for the location name, then use H3 for sub-headings
  5. Publish the changes and run a quick accessibility check using a browser extension like Axe DevTools (free Chrome/Firefox) to confirm the heading order now flows correctly

P3 — 85 findings

1. 4 image(s) missing alt text

What it means (plain English)

Four images on your Fox Theatre location page lack descriptive text (called 'alt text'). Screen readers—software that reads web pages aloud for blind or low-vision customers—cannot describe these images. Search engines also cannot understand what the images show, missing an SEO opportunity.

Why it matters for your business: Customers using assistive technology cannot see product photos or location details; you're also leaving search ranking power on the table for location-based queries like 'cannabis near Fox Theatre.'

Technical root cause: Images were inserted into the page without alt attributes—HTML metadata that describes the image content to machines and accessibility tools.

Recommended fix — step by step

  1. Open https://luxuryleafstl.com/dispensary-near-fox-theatre-st-louis/ in your browser and inspect the page source (right-click → Inspect) to identify which four images lack alt text.
  2. For each image, add a short, descriptive alt attribute (e.g., alt='Premium cannabis flower selection at Luxury Leaf STL' or alt='Dispensary interior near Fox Theatre'). Avoid 'image of' or 'photo of'; start with the subject.
  3. If using a CMS (WordPress, Webflow, Squarespace), find each image in the media editor and fill in the 'Alt Text' field before saving.
  4. If editing raw HTML, change <img src='photo.jpg'> to <img src='photo.jpg' alt='descriptive text here'>.
  5. Test using a browser accessibility checker (free: WAVE browser extension or axe DevTools) to confirm all images now have alt text.

2. 4 image(s) missing alt text

What it means (plain English)

Four images on your Botanical Garden location page lack alt text—descriptive labels that search engines and screen readers use to understand what images show. Without alt text, search engines can't index the image content, and customers using screen readers miss important visual information about your products or store.

Why it matters for your business: Missing alt text reduces your search ranking for image-based queries (customers searching 'cannabis near botanical garden st louis' with Google Images won't find you) and creates accessibility barriers that may violate ADA compliance expectations for retail sites.

Technical root cause: Images were inserted into the page without the alt attribute populated. This is typically an oversight during content upload or page creation, where the CMS or HTML editor allows images to be added without requiring alt text.

Recommended fix — step by step

  1. Navigate to https://luxuryleafstl.com/dispensary-near-botanical-garden-st-louis/ and identify the 4 images on the page
  2. For each image, write a short, descriptive alt text (e.g., 'Premium cannabis flower display at Luxury Leaf STL' or 'Modern dispensary interior with product shelving')
  3. If using WordPress: go to Media Library → click each image → fill the 'Alt Text' field under 'Attachment Details' → save
  4. If using another CMS: locate the page editor, click each image, and populate the alt text field (usually labeled 'Alternative Text' or 'Alt Text')
  5. If direct HTML access: add alt='[description]' attribute to each <img> tag
  6. After saving, re-test using a free tool like WAVE (wave.webaim.org) or axe DevTools browser extension to confirm all 4 images now have alt text

3. 4 image(s) missing alt text

What it means (plain English)

Four product or lifestyle images on your dispensary location page lack alt text—descriptive labels that search engines and assistive technology (screen readers used by blind/low-vision customers) rely on. Without these labels, Google cannot understand what those images show, and customers using screen readers get no context.

Why it matters for your business: Missing alt text reduces your page's relevance for image search (a key discovery channel for cannabis products) and excludes accessibility-conscious customers who use assistive devices—both harmful to traffic and brand reputation.

Technical root cause: Images were uploaded or embedded without manually adding alt attributes in the HTML code, or the CMS failed to auto-populate them during upload.

Recommended fix — step by step

  1. Log into your website CMS or hosting control panel and navigate to the page https://luxuryleafstl.com/dispensary-near-busch-stadium-st-louis/
  2. Identify each of the 4 images (likely product photos or storefront shots)
  3. For each image, open its properties/settings and locate the 'Alt Text' or 'Alternative Text' field
  4. Write descriptive alt text for each: e.g., 'Premium cannabis flower in branded packaging' or 'Luxury Leaf storefront near Busch Stadium' (be specific about the product/location, not just 'image' or 'photo')
  5. Save and republish the page
  6. Use a free browser tool like WAVE (wave.webaim.org) to re-check the page and confirm all 4 images now have alt text

4. 4 image(s) missing alt text

What it means (plain English)

Four images on your dispensary location page don't have alt text—descriptive labels that screen readers use to tell blind and low-vision customers what the image shows. Google also uses alt text to understand your images for search results, so missing it costs you SEO visibility.

Why it matters for your business: Customers using assistive technology can't see what your products or dispensary look like, and search engines can't index these images—losing potential local SEO traffic from 'cannabis near St. Louis' searches.

Technical root cause: Images were added to the page without the HTML alt attribute being populated, either during initial build or through a CMS that didn't enforce alt text on upload.

Recommended fix — step by step

  1. Open https://luxuryleafstl.com/dispensary-near-st-louis-aquarium/ in your browser and right-click each image → Inspect (or press F12) to find <img> tags
  2. For each <img> tag, check if it has an alt="" attribute; if missing or empty, note the image's visual content
  3. If you use WordPress: go to Media Library → find each image → click Edit → add descriptive alt text (e.g., 'Premium cannabis flower selection at Luxury Leaf dispensary' or 'Modern checkout counter at our St. Louis location')
  4. If you edit HTML directly: add alt="[description]" to each <img> tag before the closing >
  5. Alt text should be 5–10 words, specific to what the image shows, and include relevant keywords like 'cannabis' or 'dispensary' where natural
  6. Save changes and run a follow-up accessibility scan to confirm all 4 images now have alt text

5. robots.txt does not reference sitemap

What it means (plain English)

Your robots.txt file (the instruction manual you give to Google's crawlers) doesn't tell them where to find your sitemap—an organized list of all your pages. Without this pointer, search engines have to discover pages more slowly and may miss some content, especially if your site structure is complex or pages are buried deep.

Why it matters for your business: Missing the sitemap reference in robots.txt slows down how quickly Google indexes your product pages, menus, and compliance information, delaying when customers can find you in local search results.

Technical root cause: The robots.txt file exists but lacks a 'Sitemap:' line pointing to your XML sitemap URL. This is a simple configuration omission—the sitemap likely exists, but robots.txt isn't advertising it.

Recommended fix — step by step

  1. Access your robots.txt file via https://luxuryleafstl.com/robots.txt (check if it's editable in your web hosting control panel or CMS)
  2. Add a new line at the end: 'Sitemap: https://luxuryleafstl.com/sitemap.xml' (adjust the URL if your sitemap is named differently)
  3. Verify your XML sitemap exists and is valid by visiting it in a browser and confirming it's an XML file listing your pages
  4. Save and redeploy robots.txt
  5. Submit your sitemap directly to Google Search Console (if not already done) to ensure indexing

6. Title length 18 chars

What it means (plain English)

Your homepage title—the text that appears in browser tabs and search results—is only 18 characters long. Search engines prefer titles between 20 and 65 characters because longer titles give potential customers more context about what your site offers. Your current title is just barely under the minimum and doesn't mention key details like your location or that you're a cannabis dispensary.

Why it matters for your business: A weak title reduces click-through rate from search results; customers searching for 'cannabis dispensary near me' or 'luxury cannabis STL' are less likely to click your link if the preview doesn't clearly tell them what you offer.

Technical root cause: The title tag in your HTML head contains only 'Home | Luxury Leaf' without descriptive keywords or location information. Search engines use this to rank and display your site in results.

Recommended fix — step by step

  1. Open your site's HTML source (View > Page Source in any browser) and find the <title> tag in the <head> section.
  2. Replace 'Home | Luxury Leaf' with a 50-60 character title such as: 'Luxury Leaf STL | Premium Cannabis Dispensary in St. Louis'
  3. If using a CMS (WordPress, Shopify, etc.), log into the admin dashboard and edit the homepage SEO settings (look for 'Page Title' or 'Meta Title' field).
  4. If unsure how to edit HTML, contact your web host or developer and provide them the new title text.
  5. After updating, wait 24-48 hours and search 'luxury leaf stl cannabis' in Google to verify the new title appears in the search result preview.

7. Missing OpenGraph metadata

What it means (plain English)

Your homepage is missing OpenGraph tags — special code that tells Facebook, Instagram, and other social platforms how to display your site when someone shares a link. Without these tags, social shares show generic or broken previews, which damages trust and click-through rates.

Why it matters for your business: When customers share your products or promotions on social media, a missing or ugly preview reduces click-throughs and makes your brand look unprofessional compared to competitors.

Technical root cause: The page's HTML <head> section is missing og:title, og:image, og:description, and og:url meta tags that social platforms use to generate preview cards.

Recommended fix — step by step

  1. Open your site's homepage HTML and locate the <head> section.
  2. Add these four meta tags before the closing </head>: <meta property="og:title" content="Luxury Leaf STL – Premium Cannabis Dispensary"> <meta property="og:description" content="[Your homepage tagline here]"> <meta property="og:image" content="https://luxuryleafstl.com/[path-to-logo-or-hero-image.jpg]"> <meta property="og:url" content="https://luxuryleafstl.com/">
  3. Use a square image (1200×1200px minimum) for og:image — ideally your logo or a branded hero image.
  4. Test the result using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) — paste your URL and verify the preview displays correctly.
  5. Repeat for key pages (product pages, promotions, about) so all shareable content has proper previews.

8. Missing OpenGraph metadata

What it means (plain English)

When this page is shared on Facebook, Instagram, or other social platforms, those sites won't know what title or image to display. Instead of showing your dispensary name and a professional photo, the link will appear as a generic, unattractive preview. This looks unprofessional and reduces click-through rates from social traffic.

Why it matters for your business: Missing social preview images directly reduce engagement and sharing of your content on platforms where your customers discover local dispensaries and promotions.

Technical root cause: The page HTML is missing OpenGraph meta tags (og:title, og:image, og:description, og:url) in the <head> section, which social platforms use to generate rich preview cards when links are shared.

Recommended fix — step by step

  1. Open the affected page (/hello-world/) in your site editor or CMS admin panel.
  2. Locate the page metadata/SEO settings section (often labeled 'Head Tags', 'Meta Tags', or 'Social Settings').
  3. Add og:title set to your page title (e.g., 'Hello World | Luxury Leaf STL').
  4. Add og:image pointing to a high-quality image URL (at least 1200×630px; recommend a professional product or dispensary photo).
  5. Add og:description with a 2–3 sentence summary of the page content.
  6. Add og:url set to the full page URL (https://luxuryleafstl.com/hello-world/).
  7. Save and republish the page, then test the preview using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) or LinkedIn Post Inspector to confirm the card displays correctly.

9. Missing Twitter card

What it means (plain English)

Your site is missing Twitter Card meta tags, which are small code snippets that tell Twitter how to display your content when someone shares a link. Without them, Twitter shows a plain text preview instead of a rich card with your image, headline, and description. For a premium cannabis retailer, this means missed opportunities to make your brand look polished when customers or influencers share your posts on social.

Why it matters for your business: Weak social sharing appearance reduces click-through rates and brand perception when customers share your product pages or blog content on Twitter/X, directly impacting traffic and brand authority.

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

Recommended fix — step by step

  1. Log into your site's admin/CMS and navigate to the page editor for the affected URL (/hello-world/)
  2. Locate the SEO or meta tags section (often labeled 'SEO Settings', 'Head Tags', or 'Social Share Settings')
  3. Add the Twitter Card meta tag: <meta name="twitter:card" content="summary_large_image"> to the page head
  4. Add <meta name="twitter:title" content="Your Page Title"> using the actual page headline
  5. Add <meta name="twitter:description" content="Brief description"> (160 characters max)
  6. Add <meta name="twitter:image" content="https://luxuryleafstl.com/path-to-image.jpg"> pointing to a high-quality image (minimum 200x200px, recommended 1200x628px)
  7. Repeat for all key product and blog pages, or use your CMS's social meta template feature to apply globally
  8. Test the result using Twitter's Card Validator (cards-dev.twitter.com/validator) and verify the preview looks professional

10. 4 image(s) missing alt text

What it means (plain English)

Four images on your blog post page lack descriptive alt text — the hidden labels that screen readers use to describe images to visually impaired visitors, and that search engines use to understand image content. This means some customers cannot access your content, and search engines cannot index those images.

Why it matters for your business: Missing alt text reduces your site's accessibility compliance risk, harms your ability to rank in Google Images (a source of premium cannabis retail traffic), and creates a poor experience for customers using assistive technology.

Technical root cause: Images were uploaded to the page without filling in the alt text field during upload or post editing. This is a common oversight when content is added quickly without an accessibility checklist.

Recommended fix — step by step

  1. Log into your content management system and navigate to the 'hello-world' blog post
  2. Click into edit mode and identify the 4 images on the page
  3. For each image, click the image, then the edit/settings icon, and fill the 'Alt Text' field with a concise description (e.g., 'Premium cannabis flower display' or 'Staff member assisting customer at counter')
  4. Write alt text that is descriptive but under 125 characters; avoid 'image of' or 'picture of' phrasing
  5. Save the post and verify each image now has alt text by inspecting with a browser extension like WAVE (wave.webaim.org)
  6. Establish a content publishing checklist: require alt text on all future image uploads before post publication

11. Missing OpenGraph metadata

What it means (plain English)

When someone shares your 'About Us' page on Facebook, Instagram, or other social platforms, those sites need specific metadata tags to know what image and text to display in the preview card. Without these tags, the preview looks unprofessional or blank, and visitors are less likely to click through.

Why it matters for your business: Poor social media preview cards reduce click-through rates on shares, limiting word-of-mouth discovery and brand perception among potential customers who encounter your content on social platforms.

Technical root cause: The page is missing og:title and og:image meta tags in the HTML head section. Social platforms read these tags to generate rich preview cards; without them, they fall back to generic or missing content.

Recommended fix — step by step

  1. Open the HTML source of https://luxuryleafstl.com/about-us/ and locate the <head> section.
  2. Add <meta property="og:title" content="About Luxury Leaf STL — Premium Cannabis Dispensary"> with a compelling, brand-aligned title.
  3. Add <meta property="og:image" content="https://luxuryleafstl.com/path-to-your-hero-image.jpg"> pointing to a high-quality 1200×630px image that represents the page.
  4. Also add <meta property="og:description" content="..."> with a 160-character summary.
  5. Add <meta property="og:url" content="https://luxuryleafstl.com/about-us/"> to specify the canonical URL for social sharing.
  6. If using WordPress, install Yoast SEO or All in One SEO, open the page editor, scroll to the SEO section, and fill in the Social Preview fields.
  7. Test the fix using Facebook's Open Graph Debugger (https://developers.facebook.com/tools/debug/og/) by entering the URL and clicking 'Scrape Again'.

12. Missing Twitter card

What it means (plain English)

Your About Us page doesn't have a Twitter Card meta tag — a small piece of code that tells Twitter (now X) how to display a preview when someone shares your link on that platform. Without it, the link appears as plain text rather than a rich preview with your logo, headline, and description.

Why it matters for your business: Missing Twitter Cards reduce click-through rates on social shares and make your brand look less polished compared to competitors; for a luxury cannabis retailer, this undermines perceived professionalism and discourages engagement on a key social platform.

Technical root cause: The page's HTML head section lacks the <meta name="twitter:card" content="summary_large_image"> tag and related Open Graph properties (og:image, og:title, og:description) that Twitter uses to construct rich previews.

Recommended fix — step by step

  1. Open your web hosting control panel or CMS admin and locate the About Us page HTML editor (or header template if using WordPress/Drupal).
  2. Add these meta tags to the <head> section: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:site" content="@YourTwitterHandle">, <meta property="og:title" content="About Luxury Leaf STL">, <meta property="og:description" content="[Your 160-char description]">, and <meta property="og:image" content="[URL to 1200x630px brand image]".
  3. If using WordPress, install Yoast SEO or The SEO Framework plugin → Social Settings → Twitter tab → toggle on and set card type to 'Summary Large Image'.
  4. Test the fix at https://cards-dev.twitter.com/validator by pasting your About Us URL.
  5. Repeat for homepage, product pages, and any other high-traffic pages (Product, Contact, Loyalty/Rewards if applicable).

13. Missing OpenGraph metadata

What it means (plain English)

When someone shares your delivery service area page on social media (Facebook, Instagram, etc.), the platform doesn't know what title or image to display. Instead of showing your branded content, it falls back to a generic preview. This is especially visible on dispensary reviews and word-of-mouth sharing.

Why it matters for your business: Missing social preview images and titles reduce click-through rates on shared links and weaken brand consistency when customers recommend your delivery area to friends on social platforms.

Technical root cause: The page is missing the Open Graph meta tags (og:title, og:image, og:description) in the HTML <head> section that social networks use to generate link previews.

Recommended fix — step by step

  1. In your HTML template or page editor, locate the <head> section of the delivery service area page
  2. Add these four lines before the closing </head> tag: <meta property="og:title" content="Luxury Leaf STL - Cannabis Delivery Service Area"> <meta property="og:image" content="[URL to your 1200x630px branded image]"> <meta property="og:description" content="Check our delivery zones in the St. Louis area."> <meta property="og:url" content="https://luxuryleafstl.com/deliver-service-area/">
  3. Use a branded image (logo + delivery map, or service area graphic) sized to 1200×630 pixels
  4. Test the preview using Facebook's Share Debugger (facebook.com/developers/tools/debug/sharing) by pasting the URL
  5. Repeat this fix for your homepage, product pages, and any other high-traffic pages

14. Missing Twitter card

What it means (plain English)

Your website is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter how to display your page when someone shares the link on that platform. Without it, Twitter will show a generic preview instead of a custom one with your branding, product images, or key information — making shared links less appealing and less likely to drive clicks.

Why it matters for your business: Missing Twitter Cards reduce click-through rates on social shares, especially important for a premium dispensary building brand awareness and driving delivery orders through social channels.

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

Recommended fix — step by step

  1. Add this line to the <head> section of your delivery service area page (and replicate across all key pages): <meta name="twitter:card" content="summary_large_image">
  2. Add <meta name="twitter:title" content="Your Page Title Here"> with a compelling 70-character title
  3. Add <meta name="twitter:description" content="Brief description"> with a 200-character summary
  4. Add <meta name="twitter:image" content="https://luxuryleafstl.com/path/to/image.jpg"> pointing to a 1200×630px image
  5. If using WordPress, install the Yoast SEO plugin (free version), go to Settings → Social, enable Twitter and fill in your Twitter handle — it will auto-generate these tags
  6. Test the result at card-validator.twitter.com by pasting your URL to confirm the preview displays correctly
  7. Repeat for product pages, menu pages, and any high-traffic landing pages (delivery area, about, promotions)

15. Missing OpenGraph metadata

What it means (plain English)

When your page is shared on Facebook, Instagram, or other social platforms, those sites look for Open Graph tags—special metadata that tells them what image and title to display in the preview. Without them, social platforms show a generic or broken preview, which looks unprofessional and reduces click-through rates from social traffic.

Why it matters for your business: Missing Open Graph tags lower engagement when customers share your service area pages on social media, reducing organic referral traffic and brand perception among potential customers discovering you through social shares.

Technical root cause: The page's HTML <head> section is missing og:title and og:image meta tags that social platforms use to generate rich previews when the URL is shared.

Recommended fix — step by step

  1. Log into your site's admin panel and navigate to the page editor for /areas-we-serve/
  2. In the page settings or SEO plugin (e.g., Yoast SEO, Rank Math, All in One SEO), locate the 'Social' or 'Open Graph' section
  3. Set og:title to match or enhance your page title (e.g., 'Service Areas - Luxury Leaf STL')
  4. Upload or select a compelling og:image (recommended 1200×630px) showing your storefront or service map
  5. Repeat steps 1–3 for all other service area pages and key landing pages
  6. Use Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) to paste the URL and verify the preview renders correctly

16. Missing OpenGraph metadata

What it means (plain English)

When your delivery page is shared on Facebook, Instagram, or other social platforms, those sites use special metadata tags (called OpenGraph tags) to display a preview—title, image, description. Without these tags, the preview looks broken or generic, which discourages clicks and makes your brand appear unprofessional.

Why it matters for your business: Missing preview images on social shares reduces click-through rates from social traffic and weakens brand perception when customers share your delivery service area with friends.

Technical root cause: The page HTML does not include og:title and og:image meta tags in the <head> section, so social platforms cannot extract rich preview data and fall back to generic or missing visuals.

Recommended fix — step by step

  1. Inspect the page source (right-click → View Page Source) and search for '<meta property="og:' to confirm og:title and og:image are missing.
  2. Add the following meta tags to the <head> section of /delivery-areas-we-serve/: <meta property="og:title" content="Delivery Areas – Luxury Leaf STL"> and <meta property="og:image" content="[URL to a 1200x630px image showing your service map or delivery zones]">
  3. Add og:description with a brief summary of your delivery coverage, e.g., 'Fast, compliant cannabis delivery to St. Louis City and County.'
  4. Audit all other pages (homepage, product pages, menus) for the same missing tags using a social preview tool (e.g., Facebook Sharing Debugger or heymeta.com).
  5. If using a CMS (WordPress, Webflow, etc.), install Yoast SEO or All in One SEO plugin and enable automatic OpenGraph generation, then manually set images for key landing pages.
  6. Test the fix by pasting the URL into Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) and Instagram's Link Preview validator.

17. Title length 19 chars

What it means (plain English)

The page title — the text that appears in browser tabs and search results — is only 19 characters long. Search engines and users expect titles between 20 and 65 characters. A longer, more descriptive title helps search engines understand the page and encourages clicks from potential customers browsing results.

Why it matters for your business: A weak title on your Deals page means fewer clicks from Google search results, directly reducing traffic to your promotions and damaging conversion opportunities.

Technical root cause: The current title 'Deals | Luxury Leaf' is truncated and lacks keyword context that would describe what deals are available (e.g., discounts, products, location).

Recommended fix — step by step

  1. Log in to your website admin (CMS, WordPress, Shopify, or equivalent)
  2. Navigate to the Deals page settings or edit page meta/SEO section
  3. Replace 'Deals | Luxury Leaf' with a 50–60 character title such as 'Premium Cannabis Deals & Discounts | Luxury Leaf STL'
  4. Verify the new title displays correctly in a browser tab and Google's mobile preview tool (search 'site:luxuryleafstl.com/deals/' in Google, then click to see the snippet)
  5. Repeat this audit for all pages to ensure titles are 20–65 characters and include relevant keywords

18. Missing OpenGraph metadata

What it means (plain English)

When someone shares your deals page on social media (Facebook, Instagram, LinkedIn), the platform doesn't have a custom image or title to display—so it falls back to a generic preview or shows nothing appealing. OpenGraph tags are snippets of code in your page header that tell social networks exactly what image and headline to show when your link is shared.

Why it matters for your business: Shared deals pages get fewer clicks and engagement on social media, reducing foot traffic from word-of-mouth promotion and organic social discovery.

Technical root cause: The page HTML is missing <meta property="og:title"> and <meta property="og:image"> tags in the <head> section, so social platforms have no instruction on how to present the content.

Recommended fix — step by step

  1. Open the HTML source of https://luxuryleafstl.com/deals/ and locate the <head> section
  2. Add <meta property="og:title" content="Current Deals | Luxury Leaf STL"> with your actual deals headline
  3. Add <meta property="og:image" content="https://luxuryleafstl.com/path-to-deals-image.jpg"> pointing to a 1200×630px image of your best current deal or storefront
  4. Also add <meta property="og:description" content="..."> and <meta property="og:url" content="https://luxuryleafstl.com/deals/"> for completeness
  5. If using a CMS (WordPress, Shopify, etc.), install Yoast SEO or similar plugin → Social → enable Open Graph → set title/image per page
  6. Test the result using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) and Pinterest's validator to confirm the preview looks professional
  7. Repeat for other key pages: homepage, product pages, and contact page

19. 4 image(s) missing alt text

What it means (plain English)

Four images on your Deals page have no alternative text descriptions. Alt text is read aloud by screen readers (tools that help blind and low-vision visitors navigate your site) and also helps search engines understand what images show. Without it, those images are invisible to both assistive technology users and search algorithms.

Why it matters for your business: Missing alt text reduces your Deals page's search visibility for image-based queries, excludes disabled customers from accessing promotions, and creates legal accessibility liability under ADA/WCAG standards—especially risky for a retail site.

Technical root cause: The four images on the Deals page were added without descriptive alt attributes in the HTML. This is a common content gap when images are uploaded via CMS without populating the alt field.

Recommended fix — step by step

  1. Log into your site's admin panel and navigate to the Deals page editor
  2. Identify each of the 4 images (likely promotional deal graphics or product photos)
  3. Click on each image and locate the 'Alt Text' or 'Alternative Text' field
  4. Write concise, descriptive alt text for each: e.g., 'Half-price eighths on Tuesday,' 'New customer 20% discount,' 'Limited-time flower bundle deal,' or specific product/strain names shown
  5. Avoid keyword stuffing—alt text should describe what the image shows, not be a keyword list
  6. Save and publish the page
  7. Test with a screen reader (use NVDA on Windows or VoiceOver on Mac) to confirm the alt text reads correctly

20. Missing OpenGraph metadata

What it means (plain English)

When someone shares a link to your medical card page on social media or messaging apps, it won't display a custom preview image or headline — instead, it shows a generic or blank card. OpenGraph tags are snippets of code that tell Facebook, Twitter, LinkedIn, and other platforms exactly what image and text to display when your page is shared.

Why it matters for your business: Reduced click-through rates on social shares; patients discovering your dispensary through word-of-mouth social posts are less likely to click through if the preview looks unprofessional or unclear.

Technical root cause: The page's HTML header is missing og:title and og:image meta tags, which are optional but strongly recommended for shareability and brand control.

Recommended fix — step by step

  1. Open the medical card page source code (View → Page Source in browser)
  2. Locate the <head> section
  3. Add these four lines before </head>: <meta property="og:title" content="Medical Card - Luxury Leaf STL"> <meta property="og:image" content="https://luxuryleafstl.com/assets/medical-card-preview.jpg"> <meta property="og:type" content="website"> <meta property="og:url" content="https://luxuryleafstl.com/medical-card/">
  4. Create or upload a 1200×630px branded preview image and save the URL in og:image
  5. Test the fix using Facebook's Open Graph Debugger (facebook.com/tools/debug) and paste the page URL
  6. Repeat this process for any other high-traffic pages (product pages, homepage)

21. Missing OpenGraph metadata

What it means (plain English)

When your contact page is shared on social media (Facebook, LinkedIn, etc.), there's no custom preview—no branded image or headline. Instead, social platforms show a generic or broken preview, which looks unprofessional and reduces click-through rates from social traffic.

Why it matters for your business: Lost social media referral traffic and weakened brand presentation when customers or partners share your contact page; particularly damaging for a premium dispensary relying on word-of-mouth and social proof.

Technical root cause: The contact page HTML is missing og:title, og:description, and og:image meta tags in the <head> section. Social platforms rely on these tags to generate attractive preview cards.

Recommended fix — step by step

  1. Inspect the contact page source code (right-click → View Page Source) and scroll to the <head> section.
  2. Add these four lines before the closing </head> tag: <meta property="og:title" content="Contact Luxury Leaf STL"> <meta property="og:description" content="[Your 160-char contact summary]"> <meta property="og:image" content="https://luxuryleafstl.com/[path-to-1200x630px-image.jpg]"> <meta property="og:url" content="https://luxuryleafstl.com/contact/">
  3. Use a 1200×630px branded image (logo + background) saved to your server or CDN.
  4. Test the fix at facebook.com/sharer/debugger (paste your contact URL) and confirm the preview displays correctly.
  5. Repeat for all other key pages (home, product listing, about).

22. 4 image(s) missing alt text

What it means (plain English)

Four images on your contact page don't have alt text—descriptive text that explains what each image shows. Search engines and screen readers (used by people with vision impairments) can't understand these images without it. This means you're missing SEO signals and excluding potential customers.

Why it matters for your business: Missing alt text reduces your search ranking for product/strain images, and visitors using assistive technology can't understand your product photos—shrinking your addressable audience.

Technical root cause: Images were inserted into the HTML without an 'alt' attribute, or the alt attribute is empty. This is common in page builders and CMS systems when media is uploaded without description fields being filled in.

Recommended fix — step by step

  1. Visit https://luxuryleafstl.com/contact/ and screenshot or note which 4 images appear
  2. Log into your site backend (WordPress, Shopify, custom CMS) and navigate to the contact page editor
  3. For each image, click to select it and locate the 'Alt Text' or 'Alternative Text' field
  4. Write 5–10 word descriptions for each: e.g., 'Premium cannabis flower in glass jar' or 'Luxury Leaf storefront entrance'; be specific about what's shown
  5. Save and republish the page
  6. Run the page through WebAIM's WAVE tool (wave.webaim.org) to verify alt text is now present

23. Missing OpenGraph metadata

What it means (plain English)

When someone shares a link to your dispensary page on social media or messaging apps, the platforms don't know what image or title to display. Instead of showing your branded cannabis product photo and store name, they show a generic preview or nothing at all. This makes shared links look unprofessional and reduces click-through rates from social traffic.

Why it matters for your business: Lost social media visibility and referral traffic; when customers share your location or product pages, they generate weak previews that hurt engagement and brand perception among peers.

Technical root cause: The page is missing og:title, og:image, og:url, and og:description meta tags in the HTML head. Social platforms rely on these Open Graph tags to know what to display when content is shared.

Recommended fix — step by step

  1. Audit all page templates to identify which pages lack Open Graph tags (at minimum: homepage, product/menu pages, location pages like the Fox Theatre location).
  2. Add these four og: meta tags to every page's <head>: og:title (brand + location/product), og:image (1200×630px product or store photo), og:url (full page URL), og:description (50–160 chars).
  3. For product/menu pages, ensure og:image points to a high-quality photo of the specific product or strain, not a generic logo.
  4. For location/dispensary pages (like Fox Theatre), use og:image showing the storefront or your best-selling products.
  5. Test each page by pasting the URL into Facebook Sharing Debugger (facebook.com/sharing/debugger) and LinkedIn Post Inspector to confirm the preview renders correctly.
  6. Consider using a plugin (if WordPress) like Yoast SEO or All in One SEO, which auto-generate og: tags; if custom-built, add them to your page template or header include file.
  7. Re-test after 48 hours, as social platforms cache metadata.

24. Missing OpenGraph metadata

What it means (plain English)

When someone shares your dispensary page on Facebook, Instagram, or other social platforms, the preview that appears is generated from special HTML tags called OpenGraph metadata. Without og:title and og:image tags, social shares show a generic preview instead of an attractive, branded one that encourages clicks.

Why it matters for your business: Poor social media previews reduce click-through rates on shares, which means fewer customers discovering your location and products through word-of-mouth sharing on social platforms.

Technical root cause: The page HTML is missing the og:title and og:image meta tags in the <head> section. These are required by social platforms to generate rich preview cards.

Recommended fix — step by step

  1. Inspect the affected URL in your browser (right-click → View Page Source) and search for '<meta property="og:title"' and '<meta property="og:image"' — if absent, proceed to next step
  2. If platform is WordPress: Install Yoast SEO plugin (if not present), go to WordPress admin → Yoast SEO → Social → Facebook tab, and ensure 'Add OpenGraph meta tags' is enabled
  3. Set og:title to your page headline (e.g., 'Premium Cannabis Dispensary Near Gateway Arch, St. Louis') and og:image to a high-quality branded image (1200×630px minimum, showing your storefront or featured product)
  4. If not WordPress, or if manual edit needed: Add these lines to the <head> of the page template: <meta property="og:title" content="Your Page Title"> and <meta property="og:image" content="https://yoursite.com/image.jpg">
  5. Test the fix using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) — paste the URL and verify the preview displays correctly
  6. Repeat for all high-traffic pages: location pages, product landing pages, and blog posts

25. Missing Twitter card

What it means (plain English)

Your product pages are missing Twitter Card meta tags—a snippet of code that tells Twitter how to display your content when someone shares a link. Without it, Twitter shows a plain text preview instead of an attractive card with your image, headline, and description. This reduces click-through rates from social media.

Why it matters for your business: Lost social sharing visibility and engagement; customers sharing your dispensary location or product pages on Twitter will see a less compelling preview, reducing traffic from that channel.

Technical root cause: The page HTML lacks the <meta name="twitter:card" content="summary_large_image"> tag and related Open Graph meta properties (og:image, og:description) that social platforms use to generate rich previews.

Recommended fix — step by step

  1. Open your page HTML editor or WordPress theme customizer (if WordPress: Appearance → Customize → Additional CSS or use a plugin like Yoast SEO)
  2. Add these meta tags to the <head> section: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:site" content="@YourTwitterHandle">, and <meta property="og:image" content="https://luxuryleafstl.com/image.jpg"> (replace with actual image URL)
  3. Ensure the og:image URL points to a high-quality 1200×630px image (ideally your dispensary storefront or a product highlight)
  4. Add og:title, og:description, and og:url meta tags with your page headline, short description, and full URL
  5. Test the card rendering using Twitter's Card Validator (cards-dev.twitter.com/validator) and paste your page URL
  6. If using WordPress, install Yoast SEO or All in One SEO, go to Social → Twitter, and toggle Card Settings on; it auto-generates these tags

26. 4 image(s) missing alt text

What it means (plain English)

Four images on your Gateway Arch location page lack alt text — descriptive captions that screen reader users and search engines use to understand what an image shows. Without alt text, customers using assistive technology cannot see product or location photos, and search engines cannot index that visual content to help people find you.

Why it matters for your business: Missing alt text reduces your page's search ranking for location-based queries (especially important for a dispensary competing in a local market) and blocks visually impaired customers from experiencing your storefront and product photos.

Technical root cause: Images were added to the page without alt text attributes in the HTML, or the CMS/site builder did not require or capture alt text during upload.

Recommended fix — step by step

  1. Open the Gateway Arch location page in your CMS or site editor and locate each image element.
  2. For each of the 4 images, right-click or click Edit and add an alt attribute describing what the image shows (e.g., 'Luxury Leaf storefront near Gateway Arch' or 'Cannabis flower display case').
  3. Keep alt text 100–125 characters; be descriptive but concise—avoid 'image1' or 'photo'.
  4. Verify alt text does not duplicate the visible page caption if one already exists; alt should add context, not repeat.
  5. Save and republish the page.
  6. Test using a free tool like WAVE (wave.webaim.org) to confirm all 4 images now have alt text.

27. Missing OpenGraph metadata

What it means (plain English)

When someone shares a link to your dispensary page on social media (Facebook, LinkedIn, etc.), the platform doesn't know what title or image to show. Instead of your professional branding, it defaults to a plain link or generic preview. This looks unprofessional and reduces click-through rates from social referrals.

Why it matters for your business: Lost social media traffic and weak brand presentation when customers share your location pages with friends or post about visiting your dispensary.

Technical root cause: The page is missing og:title and og:image meta tags in the HTML <head> section. These tags tell social platforms exactly what text and image to display when the page is shared.

Recommended fix — step by step

  1. Open the page source (right-click → View Page Source) and locate the <head> section
  2. Add <meta property="og:title" content="Luxury Leaf STL - Cannabis Dispensary Near Botanical Garden"> before the closing </head> tag
  3. Add <meta property="og:image" content="https://luxuryleafstl.com/images/og-botanical-garden-location.jpg"> (use a 1200×630px image of your storefront or product display)
  4. Also add <meta property="og:description" content="Premium cannabis, lab-tested products, and expert staff near downtown St. Louis.">
  5. Add <meta property="og:url" content="https://luxuryleafstl.com/dispensary-near-botanical-garden-st-louis/">
  6. Test the fix using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) and LinkedIn's Post Inspector to confirm the title and image appear correctly
  7. Repeat for all other location and product pages on the site

28. Missing OpenGraph metadata

What it means (plain English)

When this page is shared on Facebook, Instagram, or other social platforms, those platforms don't have a preview image or custom title to display. Instead, they show a generic or broken preview, making your post look unprofessional and less likely to be clicked.

Why it matters for your business: Social sharing is a key driver of foot traffic to cannabis dispensaries; a poor preview reduces click-through rates and brand perception when customers share your location or products on social media.

Technical root cause: The page is missing og:title and og:image meta tags in the HTML <head> section. These Open Graph tags tell social platforms exactly what title and image to show when the page is shared.

Recommended fix — step by step

  1. Open the HTML source of https://luxuryleafstl.com/dispensary-near-st-louis-zoo/ and locate the <head> section.
  2. Add <meta property="og:title" content="Luxury Leaf STL – Premium Cannabis Dispensary Near St. Louis Zoo"> (customize the text to match your brand voice).
  3. Add <meta property="og:image" content="https://luxuryleafstl.com/path/to/social-preview-image.jpg"> (use a 1200×630px image of your storefront, logo, or a product showcase).
  4. Also add <meta property="og:description" content="..."> with 150–160 characters describing the page.
  5. Add <meta property="og:url" content="https://luxuryleafstl.com/dispensary-near-st-louis-zoo/"> to lock the URL.
  6. Test the fix using Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing/) and LinkedIn's Post Inspector to verify the preview renders correctly.
  7. If your site is WordPress, install the Yoast SEO plugin, go to Yoast SEO → Social → Facebook, and enable the Social meta tags feature; Yoast will auto-generate og:title and og:image from your post content and featured image.

29. Missing Twitter card

What it means (plain English)

Your product pages lack Twitter Card markup—special HTML tags that tell Twitter how to display your content when someone shares a link. Without this, Twitter shows only a plain text preview instead of an attractive card with your image and description.

Why it matters for your business: Lost opportunity to drive traffic and brand awareness from social sharing; competitors with rich Twitter cards get more clicks from social feeds.

Technical root cause: The page is missing the <meta name="twitter:card" content="summary_large_image"> tag and related open graph meta tags in the HTML <head> section.

Recommended fix — step by step

  1. Open the affected page's HTML source and locate the <head> section.
  2. Add this block before the closing </head> tag: <meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="[PAGE_TITLE]"><meta name="twitter:description" content="[PAGE_META_DESCRIPTION]"><meta name="twitter:image" content="[URL_TO_HIGH_QUALITY_IMAGE]"> (replace bracketed values with your actual content).
  3. Also add Open Graph tags for better sharing across all platforms: <meta property="og:title" content="[PAGE_TITLE]"><meta property="og:description" content="[PAGE_META_DESCRIPTION]"><meta property="og:image" content="[URL_TO_IMAGE]"><meta property="og:type" content="website">.
  4. Test the fix using Twitter's Card Validator (https://cards-dev.twitter.com/validator) and Facebook's Sharing Debugger (https://developers.facebook.com/tools/debug/).
  5. Apply the same tags to all other product/dispensary pages on your site.

30. 4 image(s) missing alt text

What it means (plain English)

Four images on your dispensary location page lack alt text—descriptive text that tells search engines and screen readers what each image shows. This means visually impaired customers using assistive technology can't understand those images, and search engines can't index them for image search results.

Why it matters for your business: Missing alt text reduces discoverability in Google Images (lost organic traffic), limits accessibility for disabled visitors (legal/reputation risk), and signals to Google that your page is less high-quality.

Technical root cause: Images are embedded in HTML without the 'alt' attribute populated. This is likely a content upload oversight rather than a technical architecture problem.

Recommended fix — step by step

  1. Navigate to https://luxuryleafstl.com/dispensary-near-st-louis-zoo/ and inspect the page source (right-click → View Page Source) to identify the four img tags
  2. For each image, note its filename and visual content (e.g., 'storefront', 'product display', 'staff')
  3. Log into your CMS or hosting control panel and edit that page's HTML/content editor
  4. Locate each <img> tag and add an alt attribute with a concise, descriptive phrase (e.g., alt='Luxury Leaf storefront on Main Street, St. Louis')
  5. For product/cannabis images, include strain name or product type if relevant (e.g., alt='Indoor cannabis cultivation environment')
  6. Save and publish the page
  7. Run the page through an accessibility checker (WAVE.webaim.org) to confirm all images now have alt text

31. Missing OpenGraph metadata

What it means (plain English)

When someone shares a link to your dispensary page on social media or messaging apps, platforms like Facebook and Instagram don't know what title or image to display. Instead of showing your dispensary name and a professional photo, they might show a generic preview or nothing at all. This metadata (called OpenGraph tags) is read by social platforms to create rich, clickable previews.

Why it matters for your business: Poor social sharing appearance reduces click-through rates when customers share your location pages with friends, lowering foot traffic and online visibility among your target audience.

Technical root cause: The page HTML is missing og:title and og:image meta tags in the <head> section. These tags are not being generated automatically by the platform or template.

Recommended fix — step by step

  1. Open the HTML source of https://luxuryleafstl.com/dispensary-near-st-louis-science-center/ and locate the <head> section
  2. Add this meta tag for title: <meta property="og:title" content="Luxury Leaf STL - Premium Cannabis Dispensary Near Science Center">
  3. Add this meta tag for image: <meta property="og:image" content="https://luxuryleafstl.com/images/dispensary-hero.jpg"> (replace URL with path to a 1200x630px branded image of your storefront or product)
  4. Add og:description: <meta property="og:description" content="Explore our curated selection of premium cannabis products. Visit Luxury Leaf STL near the Science Center.">
  5. Add og:url: <meta property="og:url" content="https://luxuryleafstl.com/dispensary-near-st-louis-science-center/">
  6. If using a CMS (WordPress, Shopify, etc.), install Yoast SEO or All in One SEO and fill in the Social tab for this page
  7. Test the result at facebook.com/sharer/debugger or linkedin.com/feed/debug/ by pasting the URL to verify the preview displays correctly

32. 4 image(s) missing alt text

What it means (plain English)

Four images on your St. Louis Science Center location page lack alt text — descriptive text that screen readers use to understand images, and that search engines use to index image content. This means visually impaired customers cannot understand what those images show, and Google cannot properly rank them in image search results.

Why it matters for your business: Customers using screen readers or assistive technology cannot experience your product photography, reducing accessibility and potentially losing sales; also, you're missing ranking opportunities in Google Images, which drives traffic to local dispensary pages.

Technical root cause: The images were added to the page without alt attributes in their HTML code, a common oversight when uploading images via a CMS editor without explicitly filling in the alt text field.

Recommended fix — step by step

  1. Log into your website CMS and navigate to /dispensary-near-st-louis-science-center/
  2. Identify and click on each of the four images to edit them
  3. In the image properties dialog, find the 'Alt Text' or 'Alternative Text' field
  4. Write descriptive alt text for each image (e.g., 'Premium cannabis flower display case' or 'Budtender assisting customer at counter'); keep it under 125 characters
  5. Save each image edit
  6. Run the page through WebAIM's WAVE tool (wave.webaim.org) to confirm alt text is now detected

33. Missing OpenGraph metadata

What it means (plain English)

OpenGraph metadata tells social media platforms (Facebook, Instagram, Twitter) how to display your content when someone shares a link. Without og:title and og:image tags, your dispensary page will show a generic preview instead of an attractive, branded snapshot. This matters especially for Instagram and Facebook, where cannabis dispensaries often run ads and share promotions.

Why it matters for your business: Missing social preview metadata reduces click-through rates on paid social campaigns and organic shares, potentially costing revenue on promotions or new customer acquisition.

Technical root cause: The page <head> section lacks og:title, og:image, og:description, and og:url meta tags that social platforms scrape to generate rich previews.

Recommended fix — step by step

  1. Log into your site admin/CMS and navigate to the page settings for 'Dispensary Near Busch Stadium'
  2. Add these meta tags to the page <head>: <meta property="og:title" content="Luxury Leaf STL – Premium Cannabis Near Busch Stadium"> and <meta property="og:image" content="[URL to a 1200×630px branded image]">
  3. Include og:description (120–160 characters) and og:url pointing to the full page URL
  4. Use Facebook's Sharing Debugger (facebook.com/tools/debug/) to paste the URL and verify the preview renders correctly
  5. Repeat for other key landing pages (menu, home, about) to ensure consistent social branding

34. Missing Twitter card

What it means (plain English)

Your product pages lack a Twitter card meta tag, which is a snippet of code that tells Twitter (now X) how to display your content when someone shares a link. Without it, social shares appear plain and unbranded, reducing click-through rates from social media.

Why it matters for your business: Missed social sharing amplification—when customers or influencers share your dispensary location pages on X, the posts look generic instead of showcasing your premium brand, products, or location details, reducing traffic from social referrals.

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

Recommended fix — step by step

  1. Audit your page templates to identify where meta tags are inserted (check the <head> section of /dispensary-near-busch-stadium-st-louis/ and other product/location pages).
  2. Add Twitter card meta tags to your template: include <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="[page title]">, <meta name="twitter:description" content="[page description]">, and <meta name="twitter:image" content="[image URL]"> in the page head.
  3. If using a CMS (WordPress, Shopify, etc.), install a plugin like Yoast SEO or RankMath and enable Twitter card output in their settings.
  4. Test the fix using Twitter's Card Validator (cards-dev.twitter.com/validator) by pasting your URL to confirm the card displays correctly.
  5. Apply the same tags to all location, product, and promotional pages for consistent social sharing.

35. Missing OpenGraph metadata

What it means (plain English)

When this page is shared on Facebook, Instagram, or other social platforms, those sites don't have a preview image or headline to display. Instead, visitors see a generic or broken preview, making your post look unprofessional and reducing click-through rates. OpenGraph tags are snippets of code in the page header that tell social platforms what to show.

Why it matters for your business: Premium cannabis retailers rely on word-of-mouth and social sharing; a broken social preview signals carelessness and reduces traffic from social referrals, especially damaging for a luxury brand positioning.

Technical root cause: The page is missing og:title and og:image meta tags in the HTML <head> section. Social platforms fall back to generic extraction, which rarely looks polished.

Recommended fix — step by step

  1. Open the page source (Ctrl+U or Cmd+U in browser) and scroll to <head> to confirm og:title and og:image are absent.
  2. Add og:title (e.g., 'Luxury Cannabis Near St. Louis Aquarium | Luxury Leaf STL') and og:image (URL to a high-quality 1200×630px hero image) to the <head> of this page.
  3. Also add og:url, og:type (set to 'website'), and og:description for completeness.
  4. If using a CMS: check for an SEO/social meta plugin (Yoast, Rank Math, All in One SEO). If installed, enable OpenGraph output and set og:image for this page.
  5. Test the fix using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) — paste the URL and verify the preview displays correctly.
  6. Apply the same og:image and og:title pattern to other high-traffic pages like /menu and /about-us for consistency.

36. Missing Twitter card

What it means (plain English)

Your product pages don't have Twitter card tags, which are snippets of code that tell Twitter (now X) how to display your link when someone shares it. Without them, shared links appear as plain text instead of showing your product image, description, and brand name—missing an opportunity to make shares look professional and drive clicks back to your site.

Why it matters for your business: When customers share your dispensary location or product pages on social media, missing cards result in ugly, text-only posts that get fewer clicks and lower engagement, reducing free word-of-mouth traffic.

Technical root cause: The page is missing the <meta name="twitter:card" content="summary_large_image"> and related OpenGraph/Twitter meta tags in the HTML head section.

Recommended fix — step by step

  1. Open your page HTML source (View → Page Source in browser) and locate the <head> section.
  2. Add these four meta tags before the closing </head>: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="[Page Title]">, <meta name="twitter:description" content="[Product/Location Description]">, and <meta name="twitter:image" content="[URL to high-quality image]"> (use a 1200×630px product or storefront photo).
  3. If using WordPress, install the Yoast SEO plugin (free) → go to any product page → scroll to 'Social' preview tab → add Twitter image and title there; Yoast will auto-inject the meta tags.
  4. If on a headless CMS or custom platform, ask your developer to add Twitter card generation to the page template for all product/location pages.
  5. Test the fix using the X Card Validator (cards-dev.twitter.com/validator) — paste your page URL and confirm the image and text render correctly.
  6. Repeat for all dispensary location and product pages to maximize social sharing impact.

37. Missing OpenGraph metadata

What it means (plain English)

OpenGraph metadata tells social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares a link. Without og:title and og:image tags, your dispensary page will show a generic preview instead of an attractive branded image and headline — making shared links less compelling and lowering click-through rates.

Why it matters for your business: Lost social media engagement and reduced referral traffic; when customers share your location page on Facebook or Instagram, it won't display your logo or a professional photo, making your dispensary look less credible than competitors.

Technical root cause: The page's HTML head section is missing <meta property="og:title" content="..."> and <meta property="og:image" content="..."> tags that social platforms use to generate rich previews.

Recommended fix — step by step

  1. Inspect the page source (right-click → View Page Source) and search for "og:title" and "og:image" to confirm they are absent.
  2. Add <meta property="og:title" content="Luxury Leaf STL - Premium Cannabis Dispensary Near Forest Park"> to the <head> section.
  3. Add <meta property="og:image" content="https://luxuryleafstl.com/images/social-preview-forest-park.jpg"> (use a 1200×630px branded image).
  4. Also add og:description, og:url, and og:type="website" for complete social preview coverage.
  5. Test the updated preview using Facebook's Sharing Debugger (facebook.com/tools/debug/) and LinkedIn Post Inspector.

38. Missing Twitter card

What it means (plain English)

Your product pages are missing Twitter Card markup — metadata that tells Twitter how to display your content when someone shares a link. Without it, Twitter shows a plain text preview instead of a rich card with your image, headline, and description. This reduces click-through rates from social sharing.

Why it matters for your business: Lost social traffic and weaker brand presence when customers share your dispensary pages on Twitter/X; competitors with rich cards get better engagement and more clicks back to their sites.

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

Recommended fix — step by step

  1. Audit your current Open Graph setup: view page source (Ctrl+U) and search for <meta property="og: tags — these often power Twitter cards if twitter: tags are missing.
  2. If Open Graph tags exist and are complete (og:title, og:description, og:image), add <meta name="twitter:card" content="summary_large_image"> to the head; Twitter will auto-populate from og: tags.
  3. If Open Graph tags are incomplete or missing, add all of: twitter:card, twitter:title, twitter:description, twitter:image, twitter:image:alt pointing to a high-quality image (1200×630px minimum) of your dispensary or product.
  4. Test the fix using Twitter's Card Validator (cards.twitter.com); paste the URL and verify the preview shows your image, headline, and description.
  5. Repeat for all product/dispensary landing pages (especially /dispensary-near-forest-park-st-louis/ and similar location pages).

39. Missing Twitter card

What it means (plain English)

Your homepage doesn't have a Twitter Card meta tag, which is a small piece of code that tells Twitter how to display your link when someone shares it on that platform. Without it, Twitter uses basic information and may not show your branding, product images, or custom description—making shared links look generic and less inviting to click.

Why it matters for your business: When customers or influencers share your dispensary's link on Twitter/X, the preview will be bland instead of showcasing your premium brand identity, potentially reducing click-through rates and brand recall on social platforms.

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

Recommended fix — step by step

  1. Open your site's homepage HTML source code or template header file
  2. Add the following meta tags to the <head> section: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:site" content="@YourTwitterHandle">, <meta name="twitter:title" content="Your Homepage Title">, <meta name="twitter:description" content="Your brand description">, and <meta name="twitter:image" content="https://luxuryleafstl.com/path-to-high-res-logo-or-hero-image.jpg">
  3. Use an image that is at least 1200×628 pixels and represents your premium brand (logo, hero image, or product shot)
  4. Test the implementation at twitter.com/login, paste your URL into a tweet draft, and verify the preview shows your branding and image
  5. Ensure the twitter:site handle matches your actual Twitter account username

40. Missing Twitter card

What it means (plain English)

Your site is missing a Twitter Card meta tag, which tells Twitter how to display your content when someone shares a link on that platform. Without it, Twitter shows a generic preview that may not showcase your products or branding effectively.

Why it matters for your business: Shared links to your product pages and service areas on Twitter get less visual appeal, reducing click-through rates and brand recognition among potential customers on social media.

Technical root cause: The page lacks the <meta name="twitter:card" content="summary_large_image"> tag in its HTML head section, and likely missing associated og:image or twitter:image tags for preview images.

Recommended fix — step by step

  1. Open the HTML source of https://luxuryleafstl.com/areas-we-serve/ and locate the <head> section
  2. Add this line before the closing </head> tag: <meta name="twitter:card" content="summary_large_image">
  3. Add this line to specify the preview image: <meta name="twitter:image" content="https://luxuryleafstl.com/[path-to-logo-or-hero-image]">
  4. Add this line for the page title on Twitter: <meta name="twitter:title" content="[Your Page Title]">
  5. Add this line for description: <meta name="twitter:description" content="[50-160 character description]">
  6. Test the fix using Twitter's Card Validator (https://cards-dev.twitter.com/validator) — paste your URL and verify the preview displays correctly
  7. Repeat steps 1–6 for all high-traffic pages (homepage, product/service pages, blog posts)

41. Missing Twitter card

What it means (plain English)

Your pages are missing Twitter Card meta tags, which are snippets of code that tell Twitter how to display your content when someone shares a link. Without them, Twitter shows a basic preview instead of a rich, branded one with your image and description — making shared posts look less professional.

Why it matters for your business: When customers share your delivery areas or product pages on Twitter/X, they appear generic instead of branded, reducing click-through rates and perceived legitimacy for a luxury cannabis brand.

Technical root cause: The page HTML lacks <meta name="twitter:card" content="summary_large_image"> and related Twitter Card meta tags in the document head.

Recommended fix — step by step

  1. Add the following meta tags to the <head> section of your page template (or every page if hand-coded): <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:site" content="@YourTwitterHandle">, <meta name="twitter:title" content="Page Title">, <meta name="twitter:description" content="Brief description">, <meta name="twitter:image" content="https://luxuryleafstl.com/path-to-image.jpg">
  2. Validate the tags using Twitter's Card Validator (cards-dev.twitter.com/validator) — paste your URL and confirm the preview displays correctly with your brand image
  3. If using WordPress, install Yoast SEO or All in One SEO Pack, go to Social, enable Twitter, and fill in your Twitter handle and default sharing image
  4. Ensure the twitter:image URL points to a high-quality image at least 1200×630 pixels for the summary_large_image card type

42. Missing Twitter card

What it means (plain English)

Your /deals/ page is missing a Twitter Card meta tag — a snippet of code that tells Twitter how to display your content when someone shares the link. Without it, Twitter will generate a generic preview instead of showing your curated product image, headline, and description, making shared links less eye-catching.

Why it matters for your business: Fewer clicks and engagement when customers share your deals on social media, reducing organic reach and traffic to your promotions.

Technical root cause: The page's HTML head section lacks the <meta name="twitter:card" content="summary_large_image"> tag and related Open Graph properties needed for social preview optimization.

Recommended fix — step by step

  1. Open the HTML or page template for https://luxuryleafstl.com/deals/ in your editor or CMS.
  2. Add these four meta tags to the <head> section: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="Luxury Leaf STL Deals">, <meta name="twitter:description" content="[your deal description]">, and <meta name="twitter:image" content="[URL to a 1200x630px image]">.
  3. Ensure the image URL points to a high-quality product or promotion image (minimum 1200×630 pixels).
  4. Test the card using Twitter's Card Validator (https://cards-dev.twitter.com/validator) — paste your deals page URL and confirm the preview displays correctly.
  5. Repeat for other key pages (product pages, homepage) using the same pattern.

43. Missing Twitter card

What it means (plain English)

Your site is missing a Twitter Card meta tag, which tells Twitter how to display your content when someone shares a link to your site on Twitter or X. Without this tag, Twitter shows a plain text preview instead of a rich preview with your brand imagery and description, making shared links less visually appealing and less likely to drive clicks.

Why it matters for your business: Missing Twitter Cards reduce social media engagement and click-through rates when customers share your product pages or medical card information on social platforms, limiting organic reach.

Technical root cause: The page lacks the meta tag <meta name="twitter:card" content="summary_large_image"> (or another valid Twitter Card type) in the HTML head section.

Recommended fix — step by step

  1. Add this line to the <head> section of your page template: <meta name="twitter:card" content="summary_large_image">
  2. Add <meta name="twitter:title" content="Page Title"> with your page title
  3. Add <meta name="twitter:description" content="Brief description"> with a 200-character max description
  4. Add <meta name="twitter:image" content="https://luxuryleafstl.com/path-to-image.jpg"> pointing to a 1200x630px image
  5. Test the card at https://cards-dev.twitter.com/validator to confirm it displays correctly
  6. Repeat for other high-traffic pages (product pages, home, about)

44. Missing Twitter card

What it means (plain English)

Your contact page is missing a Twitter Card meta tag, which tells Twitter how to display your page when someone shares the link on that platform. Without it, Twitter will use a generic preview that may not show your branding or the most relevant information.

Why it matters for your business: Lost opportunity to control how your dispensary appears when customers or industry partners share your contact page on Twitter/X, potentially reducing click-through rates and brand consistency.

Technical root cause: The page's HTML head section lacks the <meta name="twitter:card" tag, which is a standardized but optional enhancement that social platforms check for when generating link previews.

Recommended fix — step by step

  1. Identify your site's CMS or static HTML editor (WordPress, custom HTML, page builder, etc.)
  2. If WordPress: Install Yoast SEO or Rank Math plugin → go to plugin settings → Social → Twitter and enable Twitter Card with card type 'summary_large_image'
  3. If custom HTML/static site: Add this line to the <head> of /contact/ page: <meta name="twitter:card" content="summary_large_image"> and optionally add <meta name="twitter:title" content="Contact Luxury Leaf STL"> and <meta name="twitter:description" content="Reach out to our premium cannabis dispensary"> and <meta name="twitter:image" content="[URL to 1200x630px brand logo or hero image]">
  4. Test the fix using Twitter's Card validator (cards-dev.twitter.com/validator) — paste your contact page URL and confirm the preview displays correctly
  5. Apply the same Twitter Card tags to other key pages (home, product pages, about) for consistency

45. Missing Twitter card

What it means (plain English)

Your product pages don't include Twitter Card meta tags, which are small code snippets that tell Twitter how to display your content when someone shares a link on that platform. Without them, Twitter shows a plain text preview instead of an attractive card with your image and description, making shared links less engaging.

Why it matters for your business: Missing Twitter Cards reduce click-through rates when customers or advocates share your dispensary location pages on Twitter/X, limiting organic social discovery and foot traffic referrals.

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

Recommended fix — step by step

  1. Audit your current Open Graph tags (og:title, og:description, og:image) — these should already exist; Twitter Cards can reuse them.
  2. Add <meta name="twitter:card" content="summary_large_image"> to the <head> of your dispensary location pages.
  3. Add <meta name="twitter:title" content="[Page Title]"> and <meta name="twitter:description" content="[Meta Description]"> matching your OG tags.
  4. Add <meta name="twitter:image" content="[URL to 1200x630px image]"> pointing to a high-quality product or storefront photo.
  5. Test the result using Twitter's Card Validator (https://cards-dev.twitter.com/validator) — paste your page URL and verify the preview renders correctly.
  6. If using WordPress with Yoast SEO or All in One SEO, enable Twitter Card output in plugin settings (usually under Social Media tabs) — the plugin will auto-generate these tags from your OG data.

46. Missing Twitter card

What it means (plain English)

Your product pages lack Twitter Card metadata, which tells Twitter how to display your content when someone shares a link on that platform. Without this, Twitter shows a plain text preview instead of an attractive card with your image and description, reducing click-through rates from social sharing.

Why it matters for your business: Missed social amplification opportunity—customers sharing your dispensary location or product pages on Twitter/X will generate less engaging previews, lowering traffic from social referrals.

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

Recommended fix — step by step

  1. Open the page source (View > Source in browser) and locate the <head> section
  2. Add these four meta tags before the closing </head>: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="[Page Title]">, <meta name="twitter:description" content="[Page Description]">, <meta name="twitter:image" content="[URL to 1200x630px image]"> — use the same image and description as your Open Graph tags if they exist
  3. Use a high-quality product photo or dispensary storefront image (minimum 1200×630 pixels)
  4. Validate the fix at https://cards-dev.twitter.com/ — paste your URL and confirm the card preview renders correctly
  5. Deploy the change to production and test sharing on Twitter/X from a test account

47. Missing Twitter card

What it means (plain English)

Your product pages are missing Twitter Card metadata—special HTML tags that control how your content looks when shared on Twitter/X. Without these tags, your links appear as plain text without preview images or formatted descriptions, making them less likely to be clicked or shared.

Why it matters for your business: Missing Twitter Cards reduce click-through rates on social shares and make your dispensary look less professional compared to competitors when customers share your product pages on social media.

Technical root cause: The page lacks <meta name="twitter:card"> and related tags (twitter:title, twitter:description, twitter:image) in the HTML head section. These are optional but improve social sharing appearance.

Recommended fix — step by step

  1. Add this meta tag block to the <head> of your product page template: <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="[Page Title]"> <meta name="twitter:description" content="[Page Description]"> <meta name="twitter:image" content="[High-quality product/dispensary image URL]">
  2. Use the same image URL you're already using for Open Graph (og:image) if it exists—aim for 1200×630px minimum
  3. Test your Twitter Card using Twitter's Card Validator (cards-dev.twitter.com/validator) by pasting your product page URL
  4. Apply the same meta tags to all product and category pages using your site's template system or CMS

48. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

49. Missing OpenGraph metadata

Detail

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

50. Missing Twitter card

Detail

No twitter:card meta tag.

51. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

52. Missing OpenGraph metadata

Detail

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

53. Missing Twitter card

Detail

No twitter:card meta tag.

54. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

55. Title length 18 chars

Detail

Title should be 20-65 chars. Got: "Home | Luxury Leaf"

56. Missing OpenGraph metadata

Detail

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

57. Missing Twitter card

Detail

No twitter:card meta tag.

58. Title length 18 chars

Detail

Title should be 20-65 chars. Got: "Home | Luxury Leaf"

59. Missing OpenGraph metadata

Detail

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

60. Missing Twitter card

Detail

No twitter:card meta tag.

61. Title length 18 chars

Detail

Title should be 20-65 chars. Got: "Home | Luxury Leaf"

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 18 chars

Detail

Title should be 20-65 chars. Got: "Blog | Luxury Leaf"

65. Description length 18 chars

Detail

Description should be 80-160 chars.

66. Missing OpenGraph metadata

Detail

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

67. Missing Twitter card

Detail

No twitter:card meta tag.

68. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

69. Heavy page weight (mobile): 4034KB

Detail

Total transfer exceeds 2500KB budget.

70. Heavy page weight (desktop): 4029KB

Detail

Total transfer exceeds 2500KB budget.

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

Detail

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

72. Missing security header: referrer-policy

Detail

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

73. Missing security header: permissions-policy

Detail

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

74. SSL Labs grade: unknown

Detail

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

75. DNSSEC not enabled

Detail

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

76. 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.

77. DMARC policy is p=none (monitoring only)

Detail

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

78. Lighthouse a11y (mobile): 89/100

Detail

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

79. Lighthouse seo (mobile): 85/100

Detail

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

80. LH mobile: Preconnect to required origins (Est savings of 330 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.

81. LH mobile: Eliminate render-blocking resources (Est savings of 450 ms)

Detail

Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/" target="_blank" rel="noreferrer">Learn how to eliminate render-blocking resources.

82. LH mobile: 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.

83. LH mobile: Reduce unused CSS (Est savings of 12 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.

84. LH mobile: Reduce unused JavaScript (Est savings of 169 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.

85. 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://luxuryleafstl.com/

_39 findings on this page_

Your website has 12 broken internal links—URLs pointing to pages that no longer exist or return a 404 error. Most of these are email addresses obscured by Cloudflare's anti-spam protection (the cdn-cg

Your age-gate dialog (the overlay that asks visitors to confirm they're 21+) doesn't have a label that screen readers can announce. Screen reader users won't know what the dialog is for, and they can'

A button on your homepage has white text (#ffffff) on a light green background (#6fad54) that fails to meet accessibility standards. The contrast ratio is 2.69:1, but WCAG AA requires at least 3:1 for

Your site has 6 links that screen readers cannot identify — they contain images or are completely empty. When a visually impaired customer uses a screen reader to navigate, these links will be announc

Your website has 11 scrollable sections (primarily in review carousels) that keyboard users cannot navigate. When someone uses Tab to move through your site with a keyboard or screen reader, they can'

Your site has 170 images without alt text — descriptive labels that screen readers use to tell visually-impaired visitors what an image shows. This makes your site harder to use for people with vision

Your homepage is experiencing cumulative layout shift (CLS) of 0.082, meaning elements on the page are moving around after they initially load. This happens when images, ads, or fonts load after the p

Your homepage is missing an H1 tag, which is the main headline that tells search engines (and visitors) what your page is about. Think of it like the title of a newspaper article—every article has one

Your site includes structured data (a machine-readable format search engines use to understand your business) for Organization and WebSite, but is missing LocalBusiness schema. LocalBusiness tells Goo

Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use encrypted HTTPS connections when visiting your domain. Without it, visitors could accidentally conn

Your site is missing the X-Frame-Options security header, which tells browsers whether your pages can be embedded inside frames on other websites. Without it, attackers could potentially wrap your sit

Your site is missing a Content Security Policy (CSP) header — a security directive that tells browsers which sources of code and content are trusted. Without it, attackers could inject malicious scrip

Your website has 44 interactive buttons, links, and touch elements that are smaller than the minimum recommended size of 44×44 pixels when viewed on mobile devices at 320px width (like older iPhones o

Your website has 45 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately, especially for customers with larger finger

Your website has 45 interactive buttons, links, and form fields that are smaller than 44×44 pixels when viewed on mobile phones. This violates WCAG accessibility guidelines because users—especially th

Your website has 38 buttons, links, and interactive elements that are smaller than 44×44 pixels when viewed on tablets. This makes them hard to tap accurately, especially for customers with limited de

Your mobile site takes about 32 seconds for the largest visual element (like a hero image or product card) to appear on screen. Industry standard is under 2.5 seconds. This delay happens because image

Your site has a heading hierarchy problem: an H5 (smallest heading level) is being used without proper H2, H3, or H4 headings above it first. Screen readers and search engines expect headings to follo

Your site has 111 pieces of content (headings, text blocks, etc.) that aren't wrapped in semantic landmark regions like <main>, <nav>, <aside>, or <section> tags. Screen reader users rely on landmarks

Your homepage title—the text that appears in browser tabs and search results—is only 18 characters long. Search engines prefer titles between 20 and 65 characters because longer titles give potential

Your homepage is missing OpenGraph tags — special code that tells Facebook, Instagram, and other social platforms how to display your site when someone shares a link. Without these tags, social shares

Your homepage doesn't have a Twitter Card meta tag, which is a small piece of code that tells Twitter how to display your link when someone shares it on that platform. Without it, Twitter uses basic i

https://luxuryleafstl.com/category/blog/

_5 findings on this page_

https://luxuryleafstl.com/deals/

_4 findings on this page_

The page title — the text that appears in browser tabs and search results — is only 19 characters long. Search engines and users expect titles between 20 and 65 characters. A longer, more descriptive

When someone shares your deals page on social media (Facebook, Instagram, LinkedIn), the platform doesn't have a custom image or title to display—so it falls back to a generic preview or shows nothing

Your /deals/ page is missing a Twitter Card meta tag — a snippet of code that tells Twitter how to display your content when someone shares the link. Without it, Twitter will generate a generic previe

Four images on your Deals page have no alternative text descriptions. Alt text is read aloud by screen readers (tools that help blind and low-vision visitors navigate your site) and also helps search

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

_4 findings on this page_

Your site has 170 images without alt text — descriptive labels that tell search engines and visually impaired visitors what an image shows. This is both an accessibility issue (some customers can't se

https://luxuryleafstl.com/elementor-hf/footer/

_4 findings on this page_

Your site has 170 images missing alt text—the text that describes an image to search engines and screen readers (software used by people with vision loss). This means search engines can't understand w

https://luxuryleafstl.com/elementor-hf/header/

_4 findings on this page_

Your website has 170 images without alt text—descriptive text that explains what's in each image. This matters for two reasons: customers using screen readers (accessibility software) can't understand

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

_3 findings on this page_

When this page is shared on Facebook, Instagram, or other social platforms, those sites won't know what title or image to display. Instead of showing your dispensary name and a professional photo, the

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

Four images on your blog post page lack descriptive alt text — the hidden labels that screen readers use to describe images to visually impaired visitors, and that search engines use to understand ima

https://luxuryleafstl.com/about-us/

_3 findings on this page_

Your website has 163 images without alt text—descriptions that screen readers use to understand images, and that search engines use to index visual content. This means blind and low-vision visitors ca

When someone shares your 'About Us' page on Facebook, Instagram, or other social platforms, those sites need specific metadata tags to know what image and text to display in the preview card. Without

Your About Us page doesn't have a Twitter Card meta tag — a small piece of code that tells Twitter (now X) how to display a preview when someone shares your link on that platform. Without it, the link

https://luxuryleafstl.com/deliver-service-area/

_3 findings on this page_

Every image on your delivery service area page lacks descriptive text (called 'alt text'). This text is read aloud by screen readers for customers with visual impairments, and it also helps search eng

When someone shares your delivery service area page on social media (Facebook, Instagram, etc.), the platform doesn't know what title or image to display. Instead of showing your branded content, it f

Your website is missing a Twitter Card meta tag, which is a snippet of code that tells Twitter how to display your page when someone shares the link on that platform. Without it, Twitter will show a g

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

_3 findings on this page_

Every image on your Areas We Serve page lacks alternative text (alt text) — a text description that screen readers speak aloud for visually impaired visitors. This also prevents search engines from un

When your page is shared on Facebook, Instagram, or other social platforms, those sites look for Open Graph tags—special metadata that tells them what image and title to display in the preview. Withou

Your site is missing a Twitter Card meta tag, which tells Twitter how to display your content when someone shares a link on that platform. Without it, Twitter shows a generic preview that may not show

https://luxuryleafstl.com/delivery-areas-we-serve/

_3 findings on this page_

Five images on your delivery areas page have no descriptive text attached to them. Alt text is a short description that helps both visually-impaired visitors (using screen readers) and search engines

When your delivery page is shared on Facebook, Instagram, or other social platforms, those sites use special metadata tags (called OpenGraph tags) to display a preview—title, image, description. Witho

Your pages are missing Twitter Card meta tags, which are snippets of code that tell Twitter how to display your content when someone shares a link. Without them, Twitter shows a basic preview instead

https://luxuryleafstl.com/medical-card/

_3 findings on this page_

Your website has 153 images that lack descriptive alt text (alternative text shown to screen readers and search engines when images don't load). This blocks visually impaired customers from understand

When someone shares a link to your medical card page on social media or messaging apps, it won't display a custom preview image or headline — instead, it shows a generic or blank card. OpenGraph tags

Your site is missing a Twitter Card meta tag, which tells Twitter how to display your content when someone shares a link to your site on Twitter or X. Without this tag, Twitter shows a plain text prev

https://luxuryleafstl.com/contact/

_3 findings on this page_

When your contact page is shared on social media (Facebook, LinkedIn, etc.), there's no custom preview—no branded image or headline. Instead, social platforms show a generic or broken preview, which l

Your contact page is missing a Twitter Card meta tag, which tells Twitter how to display your page when someone shares the link on that platform. Without it, Twitter will use a generic preview that ma

Four images on your contact page don't have alt text—descriptive text that explains what each image shows. Search engines and screen readers (used by people with vision impairments) can't understand t

https://luxuryleafstl.com/dispensary-near-fox-theatre-st-louis/

_3 findings on this page_

When someone shares a link to your dispensary page on social media or messaging apps, the platforms don't know what image or title to display. Instead of showing your branded cannabis product photo an

Your product pages don't include Twitter Card meta tags, which are small code snippets that tell Twitter how to display your content when someone shares a link on that platform. Without them, Twitter

Four images on your Fox Theatre location page lack descriptive text (called 'alt text'). Screen readers—software that reads web pages aloud for blind or low-vision customers—cannot describe these imag

https://luxuryleafstl.com/dispensary-near-gateway-arch-st-louis/

_3 findings on this page_

When someone shares your dispensary page on Facebook, Instagram, or other social platforms, the preview that appears is generated from special HTML tags called OpenGraph metadata. Without og:title and

Your product pages are missing Twitter Card meta tags—a snippet of code that tells Twitter how to display your content when someone shares a link. Without it, Twitter shows a plain text preview instea

Four images on your Gateway Arch location page lack alt text — descriptive captions that screen reader users and search engines use to understand what an image shows. Without alt text, customers using

https://luxuryleafstl.com/dispensary-near-botanical-garden-st-louis/

_3 findings on this page_

When someone shares a link to your dispensary page on social media (Facebook, LinkedIn, etc.), the platform doesn't know what title or image to show. Instead of your professional branding, it defaults

Your product pages lack Twitter Card metadata, which tells Twitter how to display your content when someone shares a link on that platform. Without this, Twitter shows a plain text preview instead of

Four images on your Botanical Garden location page lack alt text—descriptive labels that search engines and screen readers use to understand what images show. Without alt text, search engines can't in

https://luxuryleafstl.com/dispensary-near-st-louis-zoo/

_3 findings on this page_

When this page is shared on Facebook, Instagram, or other social platforms, those platforms don't have a preview image or custom title to display. Instead, they show a generic or broken preview, makin

Your product pages lack Twitter Card markup—special HTML tags that tell Twitter how to display your content when someone shares a link. Without this, Twitter shows only a plain text preview instead of

Four images on your dispensary location page lack alt text—descriptive text that tells search engines and screen readers what each image shows. This means visually impaired customers using assistive t

https://luxuryleafstl.com/dispensary-near-st-louis-science-center/

_3 findings on this page_

When someone shares a link to your dispensary page on social media or messaging apps, platforms like Facebook and Instagram don't know what title or image to display. Instead of showing your dispensar

Your product pages are missing Twitter Card metadata—special HTML tags that control how your content looks when shared on Twitter/X. Without these tags, your links appear as plain text without preview

Four images on your St. Louis Science Center location page lack alt text — descriptive text that screen readers use to understand images, and that search engines use to index image content. This means

https://luxuryleafstl.com/dispensary-near-busch-stadium-st-louis/

_3 findings on this page_

OpenGraph metadata tells social media platforms (Facebook, Instagram, Twitter) how to display your content when someone shares a link. Without og:title and og:image tags, your dispensary page will sho

Your product pages lack a Twitter card meta tag, which is a snippet of code that tells Twitter (now X) how to display your content when someone shares a link. Without it, social shares appear plain an

Four product or lifestyle images on your dispensary location page lack alt text—descriptive labels that search engines and assistive technology (screen readers used by blind/low-vision customers) rely

https://luxuryleafstl.com/dispensary-near-st-louis-aquarium/

_3 findings on this page_

When this page is shared on Facebook, Instagram, or other social platforms, those sites don't have a preview image or headline to display. Instead, visitors see a generic or broken preview, making you

Your product pages don't have Twitter card tags, which are snippets of code that tell Twitter (now X) how to display your link when someone shares it. Without them, shared links appear as plain text i

Four images on your dispensary location page don't have alt text—descriptive labels that screen readers use to tell blind and low-vision customers what the image shows. Google also uses alt text to un

https://luxuryleafstl.com/dispensary-near-forest-park-st-louis/

_3 findings on this page_

OpenGraph metadata tells social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares a link. Without og:title and og:image tags, your dispensary page will show

Your product pages are missing Twitter Card markup — metadata that tells Twitter how to display your content when someone shares a link. Without it, Twitter shows a plain text preview instead of a ric

https://luxuryleafstl.com/dispensary-near-st-louis-art-museum/

_3 findings on this page_

https://luxuryleafstl.com/dispensary-near-city-winery-st-louis/

_3 findings on this page_

https://luxuryleafstl.com/robots.txt

_1 finding on this page_

Your robots.txt file (the instruction manual you give to Google's crawlers) doesn't tell them where to find your sitemap—an organized list of all your pages. Without this pointer, search engines have

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

_1 finding on this page_

Your WordPress admin login page is publicly accessible at /wp-login.php. This means anyone on the internet can visit that URL and attempt to guess passwords or exploit known WordPress vulnerabilities.


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


Generated by Apex Sentinel · © 2026 Bud Authority