URL: https://getcottonmouth.com/
Platform: wordpress
Archetype: fun
Run ID: 2026-04-19T06-18-18-831Z
Scanned: 2026-04-19T06:18:19.213Z
Duration: 976s
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.
Overall grade: F
| Dimension | Count | Meaning |
|---|---|---|
| Pages crawled | 47 | Full sitemap + linked pages |
| P0 (critical) | 1 | Site-down or compliance-breaking |
| P1 (urgent) | 5 | Significant revenue / SEO / UX impact |
| P2 (high) | 35 | Quality / ranking / trust degradation |
| P3 (medium) | 98 | Polish + optimization |
| "Do first" items | 4 | AI-flagged top priorities |
| Quick wins (< 30 min) | 52 | Fastest ROI items |
If you only have time for ten things this month, do these — in this order.
Page: https://getcottonmouth.com/wp-login.php
Effort: Quick win (< 30 min)
Page: https://getcottonmouth.com/
Effort: Moderate (1-3 hours)
Page: https://getcottonmouth.com/
Effort: Quick win (< 30 min)
Page: https://getcottonmouth.com/
Effort: Quick win (< 30 min)
Page: https://getcottonmouth.com/
Effort: Quick win (< 30 min)
Page: https://getcottonmouth.com/
Page: https://getcottonmouth.com/2024/02/lets-be-clear-medical-vs-recreational-cannabis/
Effort: Quick win (< 30 min)
Page: https://getcottonmouth.com/2024/02/embracing-transparency-the-power-of-phytofacts-reports/
Effort: Moderate (1-3 hours)
Page: https://getcottonmouth.com/2024/02/lets-be-clear-botanical-vs-cannabis-derived-terpenes/
Effort: Quick win (< 30 min)
Page: https://getcottonmouth.com/2024/02/beyond-thc-the-intriguing-world-of-cannabis-terpenes/
Effort: Moderate (1-3 hours)
tier5.exposed.artifactWhat it means (plain English)
Your WordPress admin login page (/wp-login.php) is publicly accessible and returns a successful response. This is a standard WordPress file, but leaving it exposed and unprotected makes it easier for attackers to attempt break-ins. While WordPress login pages are expected to exist, best practice is to either hide this path from direct access or require additional security layers like IP whitelisting or a Web Application Firewall.
Why it matters for your business: An exposed login page increases the risk of account takeover, which could lead to your site being defaced, customers' data compromised, or malware injected—directly threatening customer trust and legal compliance in the cannabis industry.
Technical root cause: WordPress installs with /wp-login.php enabled by default. No firewall rule or .htaccess restriction is currently blocking public access to this endpoint.
Recommended fix — step by step
tier9.a11y.avoid-inline-spacingWhat it means (plain English)
Your age-gate pop-up and text elements use inline CSS (style="...") to set letter-spacing, which overrides user accessibility preferences. People with dyslexia or low vision often customize text spacing in their browser to read more easily—your inline styles block that. WCAG 1.4.12 requires that text spacing adjustments work without breaking the layout.
Why it matters for your business: Visitors relying on assistive technology may abandon your site, and you're exposed to accessibility lawsuits; moreover, search engines penalize serious WCAG violations in rankings.
Technical root cause: The age-gate buttons (#AVyes, #AVno) and text container (#AVtextA) have letter-spacing hardcoded in style attributes (0.06em, 0em) instead of in a separate CSS class, preventing user stylesheets from overriding them.
Recommended fix — step by step
tier9.a11y.color-contrastWhat it means (plain English)
Three text elements on your homepage use a dark green color (#018242) on a dark gray background (#222222), creating a contrast ratio of only 3.23:1. WCAG accessibility standards require at least 4.5:1 contrast for readable text. This means visitors with low vision or color blindness will struggle to read your phone number, email, and "Headquartered" label.
Why it matters for your business: Customers unable to read your contact information cannot reach you; this also exposes you to ADA compliance risk and makes your site inaccessible to roughly 1 in 4 adults with some form of visual impairment.
Technical root cause: The green brand color was applied directly to text without checking contrast against the dark background. The Elementor page builder (used to build this section) allows color customization without automatic accessibility validation.
Recommended fix — step by step
tier9.a11y.link-nameWhat it means (plain English)
Your site has two social media icon links (Instagram and another platform) that don't have readable labels. Screen readers—software that reads web pages aloud for blind and low-vision users—can't tell visitors what these links do. This violates accessibility law (WCAG 2.1 Level A) and blocks customers who rely on assistive technology.
Why it matters for your business: You're excluding disabled customers from accessing your social media, risking legal exposure under the ADA, and damaging brand trust with an important audience segment.
Technical root cause: Elementor's social icon widget is rendering icon-only links without aria-label attributes or text alternatives. The links contain only icon elements with no accessible name property for screen readers.
Recommended fix — step by step
tier5.mixed-contentWhat it means (plain English)
Your website is served over HTTPS (secure), but two resources are being referenced using HTTP (insecure). Modern browsers will block these resources or show warnings, degrading user trust and potentially breaking functionality. This is a false positive in this case: the 'evidence' shows email addresses (info@getcottonmouth.com) being parsed as http:// links, which browsers reject by design — not actual HTTP resource references.
Why it matters for your business: Customers may see security warnings or broken elements, reducing confidence in your dispensary's site professionalism and data safety during checkout or age verification.
Technical root cause: A scanner misidentified email addresses formatted as mailto: links (or plain text emails) as HTTP resource references. The actual issue, if present, would be image/script/stylesheet URLs using http:// instead of https://, but the evidence suggests this is a false positive.
Recommended fix — step by step
tier9.a11y.frame-titleDetail
Ensure <iframe> and <frame> elements have an accessible name
Impact: serious
WCAG: wcag2a, wcag412
Learn more: https://dequeuniversity.com/rules/axe/4.11/frame-title?application=playwright
tier2.a11y.img-missing-altWhat it means (plain English)
Seven images on your blog post about medical vs. recreational cannabis are missing alt text—short descriptions that tell screen readers and search engines what each image shows. This blocks visually impaired visitors from understanding your content and signals to Google that your page is incomplete.
Why it matters for your business: Missing alt text reduces your blog's search ranking for cannabis-related keywords, limits reach to customers using assistive technology, and creates potential legal exposure under accessibility regulations like the ADA.
Technical root cause: Images were uploaded to WordPress without filling in the Alt Text field during insertion, or the field was left blank in the Media Library.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
All 9 images on this blog post are missing alt text — descriptive labels that screen readers use to tell blind/low-vision visitors what an image shows, and that search engines use to understand your content. This hurts both accessibility (you're excluding users) and SEO (Google can't index the images or their context).
Why it matters for your business: Missing alt text reduces search visibility for image-driven content, limits reach to assistive-technology users, and may expose you to ADA compliance risk if a visitor using a screen reader files a complaint.
Technical root cause: Images were likely uploaded and inserted into the post without filling in the Alt Text field in WordPress's image uploader or the block editor.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Seven images on your terpenes article have no alt text—descriptive text that screen readers announce to visually-impaired visitors and that search engines use to understand image content. This blocks both accessibility and SEO benefit from those images.
Why it matters for your business: Missing alt text reduces your article's SEO ranking potential, locks out customers using screen readers or with images disabled, and signals poor site quality to search engines.
Technical root cause: Images were uploaded to WordPress without filling the Alt Text field in the media uploader or post editor.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Every image on your site is missing alt text — descriptive labels that explain what's in the picture. Screen readers (used by people with vision loss) can't describe the images without this, and search engines can't understand them either. This affects both accessibility and SEO rankings.
Why it matters for your business: You're losing search visibility for image-based queries (e.g., 'cannabis terpene charts') and excluding customers who use accessibility tools — a legal and ethical gap for a retail site.
Technical root cause: Images were inserted into WordPress posts without filling the 'Alt Text' field in the media library or image block settings. WordPress doesn't auto-generate alt text; it must be manually added.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Every image on your site is missing alt text — a brief description that screen readers read aloud to visually impaired visitors and that search engines use to understand image content. On this blog post about Delta-8 vs Delta-9 THC, all 7 images lack these descriptions. This blocks both accessibility and SEO benefit.
Why it matters for your business: You're losing search rankings for image-related queries (e.g., 'delta-8 vs delta-9 comparison chart') and excluding visually impaired customers who cannot understand what your product images show.
Technical root cause: Images were likely uploaded to WordPress without filling the 'Alt Text' field in the Media library or the block editor, or alt attributes are being stripped by a theme or plugin.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Five images on your homepage don't have alt text—a short description that search engines and screen readers use to understand what the image shows. This means customers using assistive technology can't see what those images represent, and search engines can't index them properly, which limits your visibility.
Why it matters for your business: Missing alt text reduces your SEO ranking for image-based searches, locks out visually impaired customers, and may trigger compliance issues under accessibility laws that apply to retail sites.
Technical root cause: Images were likely uploaded to WordPress without filling in the Alt Text field during media insertion, or were added via HTML without an alt attribute.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your /test/ page doesn't have a meta description — that's the 150-160 character summary that appears below your page title in Google search results. Without it, search engines may auto-generate a snippet from your page content, which often looks unprofessional and doesn't persuade people to click through.
Why it matters for your business: Missing meta descriptions reduce click-through rates from search results, directly hurting traffic to that page and overall site visibility for potential customers searching for your products.
Technical root cause: The page was likely created without a meta description tag in the WordPress page editor, or a plugin that manages descriptions isn't enabled/configured for this page type.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Every image on your site should have alt text — a short text description that displays if an image fails to load, and that search engines and screen readers (used by people with vision disabilities) can read. All 16 images on your uncategorized category page are missing this description, which means assistive technology users can't understand what those images show, and search engines can't index their content.
Why it matters for your business: Missing alt text reduces your SEO ranking for image searches, locks out customers using screen readers, and creates legal liability under accessibility laws; it also suggests an unprofessional site to visitors.
Technical root cause: Images were likely uploaded and inserted into the page without filling in the alt text field in WordPress's media library, leaving the alt attribute empty or absent in the HTML.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your T-shirt category page is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates one automatically, which is often choppy or irrelevant. This is a quick fix that improves how your product category looks to potential customers searching for apparel.
Why it matters for your business: Missing meta descriptions reduce click-through rate from search results; customers may skip your T-shirt category for competitors' listings that have clearer, more compelling descriptions.
Technical root cause: The WordPress page or product category does not have a custom meta description field filled in. WordPress does not auto-generate these, so search engines fall back to excerpting page content.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your product category page for hoodies doesn't have a meta description — that's the 155-character summary that appears below your page title in Google search results. Without it, Google will auto-generate one from your page content, which is often choppy and doesn't tell customers what they'll find.
Why it matters for your business: Missing meta descriptions reduce click-through rates from search results because potential customers see a generic snippet instead of a compelling reason to visit your hoodies category.
Technical root cause: The page template for product categories likely doesn't include a meta description field, or the field is empty. WordPress product category pages often need manual meta description entry or plugin configuration.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your Accessories category page doesn't have a meta description — the short text snippet (usually 150–160 characters) that appears below your page title in Google search results. Without it, Google may auto-generate one from your page content, which often looks choppy or incomplete and reduces click-through rates.
Why it matters for your business: Missing meta descriptions on category pages reduce organic search click-through rate, meaning fewer potential customers visit your site from Google even if you rank well.
Technical root cause: The WordPress page or product category wasn't assigned a custom meta description field, likely because the SEO plugin (Yoast, Rank Math, etc.) wasn't configured or the description field was left blank.
Recommended fix — step by step
tier3.perf.mobile-failWhat it means (plain English)
Our automated mobile performance test timed out while trying to load your homepage — the page took longer than 60 seconds to fully load and become interactive. This suggests either genuine slowness on mobile networks, server response delays, or assets (images, scripts, ads) that block page rendering. We couldn't complete the test to measure actual performance metrics.
Why it matters for your business: Slow mobile load times directly hurt search rankings, user experience, and conversion rates; for a cannabis retailer, mobile visitors are often deciding whether to visit your location, so delays cause lost foot traffic and online sales.
Technical root cause: The page likely has unoptimized images, render-blocking JavaScript or CSS, slow third-party scripts (analytics, ads, age-gate plugins), or server-side delays. WordPress sites often load many plugins and assets synchronously, delaying when the page becomes interactive.
Recommended fix — step by step
tier4.schema.missing-coreWhat it means (plain English)
Your site is missing LocalBusiness schema markup — a structured data format that tells Google you operate a physical cannabis retail location. You have Organization and WebSite schema, but LocalBusiness is the critical piece that surfaces your store hours, address, and phone number in Google Maps and local search results.
Why it matters for your business: Without LocalBusiness markup, you're invisible in Google Local Pack results (the map + business cards that appear when someone searches for 'cannabis dispensary near me') and won't display hours, directions, or reviews prominently in search.
Technical root cause: Your WordPress SEO plugin (likely Yoast, All in One SEO, or Rank Math) is configured to emit Organization schema but has not been instructed to output LocalBusiness, which requires explicit setup with your business address, phone, and hours.
Recommended fix — step by step
tier5.header.strict-transport-securityWhat it means (plain English)
Your website is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use HTTPS when visiting your site. Without it, browsers may attempt insecure HTTP connections first, creating a window where attackers could intercept data. This is especially important for a cannabis retailer handling age verification and potentially sensitive customer information.
Why it matters for your business: Missing HSTS weakens your security posture and could expose customer data during the initial connection, damaging trust and creating compliance risk for a regulated industry.
Technical root cause: Your WordPress site is hosted behind Cloudflare, but the HSTS header has not been configured in either your WordPress settings, Cloudflare's security rules, or your server. Cloudflare is serving the response but this particular header is not being injected.
Recommended fix — step by step
tier5.header.content-security-policyWhat it means (plain English)
Your site is missing a Content Security Policy (CSP) header — a security rule that tells browsers which external resources (scripts, images, fonts) are trusted. Without it, attackers could inject malicious code more easily. While your site uses Cloudflare, adding CSP provides an extra layer of protection specific to your domain.
Why it matters for your business: A CSP breach could expose customer data, damage trust, and trigger compliance issues — critical for a cannabis retailer handling age verification and payment info.
Technical root cause: WordPress isn't sending the CSP header by default. You need to add it either via Cloudflare Workers (since you're on Cloudflare), via a WordPress plugin, or via your .htaccess file if you have Apache.
Recommended fix — step by step
response.headers.set('Content-Security-Policy', "default-src 'self'; script-src 'self' 'unsafe-inline' *.cloudflare.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;")default-src 'self'; script-src 'self' 'unsafe-inline' *.cloudflare.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;tier6.a11y.small-targetsWhat it means (plain English)
Your website has 30 clickable elements (buttons, links, menus) that are smaller than 44×44 pixels when viewed on a phone at 320px width. This makes them hard to tap accurately—especially for people with vision or motor control challenges. It also frustrates mobile users generally, who often hit the wrong button.
Why it matters for your business: Visitors on mobile devices (where most cannabis retail browsing happens) will abandon your site due to frustration or accessibility barriers, directly reducing conversions and violating WCAG accessibility standards that some jurisdictions expect from licensed retailers.
Technical root cause: The WordPress theme or custom CSS is not applying adequate padding/margin to interactive elements, or the mobile viewport is being squeezed without corresponding touch-target resizing. Navigation menus, buttons, and links likely lack the 44px minimum on the shortest dimension.
Recommended fix — step by step
a, button { min-height: 44px; padding: 8px 12px; } (adjust as needed per element type).tier6.a11y.small-targetsWhat it means (plain English)
Your site has 30 buttons, links, and interactive elements that are smaller than 44×44 pixels on mobile devices. This makes them hard to tap accurately—especially for people with motor control challenges, arthritis, or shaky hands. Mobile visitors will frequently mis-tap and get frustrated.
Why it matters for your business: Poor mobile tap targets drive up bounce rates, increase support tickets, and hurt conversion on age-gate and product-browse flows—critical for a cannabis retailer where compliance and user trust are paramount.
Technical root cause: Elements like navigation links, filter buttons, or CTA buttons were likely sized for desktop viewing and not resized responsively for mobile viewports. WordPress themes often inherit small touch targets from parent theme CSS without mobile-first padding or sizing.
Recommended fix — step by step
.mobile-button { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; } to establish a baseline.<a> tag inside nav has padding: 12px 16px minimum (44px total with font size).input[type='checkbox'], input[type='radio'] { min-width: 44px; min-height: 44px; } and wrap labels with at least 8px padding.tier6.a11y.small-targetsWhat it means (plain English)
Your site has 30 interactive buttons, links, or form fields that are smaller than 44×44 pixels when viewed on tablets (like iPads). This makes them hard for users with limited dexterity or large fingers to tap accurately. WCAG 2.5.5 is a web accessibility standard that requires buttons and links to be at least 44×44 pixels so anyone can use them comfortably.
Why it matters for your business: Customers using tablets to browse your menu or complete checkout may struggle to tap small buttons, leading to frustration, abandoned orders, and reduced mobile revenue.
Technical root cause: The theme or custom CSS is sizing interactive elements (buttons, navigation links, menu toggles, quantity adjusters) below the 44px minimum, likely because the design was optimized for desktop first without responsive testing on actual tablets.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your account page (/my-account/) doesn't have a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and doesn't encourage clicks.
Why it matters for your business: Customers searching for account-related help may see a poor preview of your page in search results, reducing click-through rates and appearing less trustworthy than competitors.
Technical root cause: The page template for /my-account/ either lacks the meta description tag in its HTML head, or the WordPress theme/plugin managing that page isn't populating the description field.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your product page for the Cottonmouth C Lighter doesn't have a meta description — that's the 160-character summary Google shows under your page title in search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and doesn't tell customers why they should click.
Why it matters for your business: Weak or missing meta descriptions reduce click-through rates from search results, meaning fewer visitors land on your product pages even when Google ranks them.
Technical root cause: The product page was published without filling in the meta description field in WordPress's page editor, or the description was left blank during product creation.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your category archive page (Uncategorized) has no meta description — the 160-character summary that appears under your page title in Google search results. Without it, Google generates a random snippet from your page content, which often looks unprofessional and doesn't tell searchers why they should click.
Why it matters for your business: Missing meta descriptions reduce click-through rates from search results, meaning fewer visitors discover your products even when you rank well; this is especially costly for cannabis retailers where search visibility is already limited by platform restrictions.
Technical root cause: WordPress category pages don't auto-generate meta descriptions by default. If you're using an SEO plugin like Yoast or Rankmath, this category likely wasn't configured with a custom description in the plugin's settings.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your product category page for hats doesn't have a meta description — that's the 155-character summary that appears under your page title in Google search results. Without it, Google will auto-generate a snippet from your page content, which often looks choppy and doesn't sell the product category as effectively as a hand-written one would.
Why it matters for your business: Missing meta descriptions reduce click-through rates from search results because potential customers see a generic auto-generated preview instead of a compelling reason to visit your hats collection.
Technical root cause: The page template for product category archives in WordPress isn't populating the meta description field, likely because the description wasn't set in the category edit screen or your SEO plugin (if installed) isn't configured to generate one automatically.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
Your product category page for drinkware doesn't have a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet from your page, which often looks unprofessional and doesn't encourage clicks.
Why it matters for your business: Missing meta descriptions reduce click-through rates from search results, meaning fewer potential customers visit your drinkware category even if you rank well.
Technical root cause: The WordPress page or product category wasn't assigned a meta description in the SEO plugin (likely Yoast SEO or Rank Math) or the theme's built-in SEO fields.
Recommended fix — step by step
tier9.a11y.landmark-banner-is-top-levelWhat it means (plain English)
Your site's header (the top navigation and branding area) is nested inside another landmark region, which confuses screen readers. Landmarks are like a map of your page for people using assistive technology—the banner should be at the top level of that map, not buried inside another section. This doesn't break functionality, but it makes your site harder to navigate for blind and low-vision visitors.
Why it matters for your business: Screen reader users may struggle to find your navigation and skip past your header entirely, reducing accessibility compliance and potentially limiting traffic from customers using assistive devices.
Technical root cause: The Elementor header template (element class 'elementor-18') is likely wrapped inside a parent container that also has a landmark role (such as main, navigation, or region), creating nested landmarks.
Recommended fix — step by step
tier9.a11y.landmark-contentinfo-is-top-levelWhat it means (plain English)
Your footer (the contentinfo landmark) is nested inside another landmark element instead of sitting at the top level of the page. Think of landmarks like chapters in a book — the footer should be its own chapter, not buried inside another one. Screen readers use these landmarks to help visitors navigate your site, and nesting them confuses that navigation.
Why it matters for your business: Customers using screen readers may struggle to navigate to your footer where you list hours, location, and compliance information — potentially losing sales and creating accessibility compliance risk.
Technical root cause: Elementor's footer widget (elementor-11) is being rendered inside a parent landmark container (likely .elementor-11's parent is a navigation or main landmark) instead of directly under the body tag, violating WCAG 2.1 landmark structure.
Recommended fix — step by step
tier9.a11y.landmark-no-duplicate-bannerWhat it means (plain English)
Your WordPress theme (JupiterX) has created a banner landmark (the HTML5 <header> element with role="banner") that's being detected as a duplicate. Screen readers and assistive technologies use landmarks to help users navigate pages quickly. Multiple banner landmarks confuse these tools because there should only be one main header per page. This is a structural HTML issue, not a visual one.
Why it matters for your business: Customers using screen readers or keyboard navigation may struggle to find your main navigation and store information, potentially abandoning their visit before they can access your age-gate or product catalog.
Technical root cause: The JupiterX theme is likely outputting the header element with role="banner" in multiple places (perhaps in a mobile menu, sticky header, or template duplication), or a plugin is inserting an additional banner landmark. The audit detected at least two instances where the browser treats the markup as separate banner regions.
Recommended fix — step by step
tier9.a11y.landmark-no-duplicate-contentinfoWhat it means (plain English)
Your site has multiple footer sections marked as 'contentinfo' landmarks (a special HTML region that tells screen readers 'this is the footer'). Assistive technology users may become confused when encountering duplicate footers, since they expect only one footer per page. This typically happens when a theme includes both a visible footer and a hidden or dynamically-loaded footer, or when custom code adds extra footer markup.
Why it matters for your business: Visitors using screen readers may have a degraded experience navigating your site, which can reduce time-on-site and undermine trust for accessibility-conscious customers.
Technical root cause: The WordPress theme (Jupiter X) or a plugin is rendering multiple <footer role="contentinfo"> elements on the homepage. The evidence shows .jupiterx-footer has the contentinfo role; there is likely a second footer element (possibly in a widget area, plugin output, or custom code) also marked with this role.
Recommended fix — step by step
<footer and role="contentinfo" to locate the duplicate.tier9.a11y.landmark-uniqueWhat it means (plain English)
Your site has two landmark regions (header and footer) that screen readers cannot distinguish from one another because they lack unique labels. Landmarks are the major structural sections of a page (like 'navigation', 'main content', 'sidebar'). When landmarks are unlabeled, users with visual impairments cannot quickly jump between sections or understand the page structure.
Why it matters for your business: Visitors using screen readers cannot efficiently navigate your site to find products, age verification, or compliance information, reducing accessibility compliance and potentially excluding a segment of customers.
Technical root cause: The header and footer elements have the correct semantic roles (banner and contentinfo), but neither has an aria-label, aria-labelledby, or title attribute to provide a unique accessible name. Screen readers see two unlabeled landmarks and cannot distinguish them.
Recommended fix — step by step
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier4.h1.missingDetail
Every page should have exactly one H1.
tier5.header.x-frame-optionsDetail
x-frame-options not present on homepage response. Affects fortress score and CSP posture.
tier6.a11y.small-targetsDetail
Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.
tier8.lighthouse.perf-desktopDetail
Score 73 is below target 90. See HTML report for details.
tier9.a11y.regionDetail
Ensure all page content is contained by landmarks
Impact: moderate
WCAG:
Learn more: https://dequeuniversity.com/rules/axe/4.11/region?application=playwright
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your cart page don't have alt text — descriptive labels that screen readers read aloud to blind customers and that search engines use to understand image content. This makes those images invisible to accessibility tools and search bots, and it's also a WCAG compliance issue that could expose you to accessibility lawsuits.
Why it matters for your business: Customers using screen readers can't understand what those cart images show, hurting both accessibility compliance and SEO ranking for image-heavy product searches.
Technical root cause: The img HTML tags lack the alt attribute, or the alt attribute is empty. WordPress doesn't auto-fill alt text; it must be added manually when uploading or editing images.
Recommended fix — step by step
tier2.robots.no-sitemapWhat it means (plain English)
Your robots.txt file (the text file that tells search engines how to crawl your site) doesn't list your XML sitemap. A sitemap is a map of all your pages that helps Google find and index them faster. Without this pointer, Google may take longer to discover new products, blog posts, or dispensary locations.
Why it matters for your business: Slower indexing of your dispensary pages, product updates, and compliance-critical content (like license information) means potential customers searching for your location or products may not find you as quickly.
Technical root cause: The robots.txt file is missing a 'Sitemap:' directive that should point to your sitemap.xml URL. This is typically generated by WordPress SEO plugins but requires explicit configuration to be referenced.
Recommended fix — step by step
tier2.meta.title-lengthWhat it means (plain English)
Your page title is 72 characters long, but search engines like Google typically display only the first 50–60 characters in search results on desktop and even fewer on mobile. The end of your title ("| Cottonmouth Dispensary") will be cut off and invisible to searchers, wasting valuable real estate that could highlight your unique selling point.
Why it matters for your business: Searchers see a truncated title in Google results, reducing click-through rate and brand visibility for this content.
Technical root cause: The title was written without considering the character limit that search engines enforce when rendering snippets in search result pages.
Recommended fix — step by step
tier2.meta.title-lengthWhat it means (plain English)
Your page title is 80 characters long, but search engines display titles best between 50–60 characters on desktop and 40–50 on mobile. Anything longer gets cut off in search results, making your page look incomplete to potential customers searching for cannabis products.
Why it matters for your business: Truncated titles in Google search results reduce click-through rates; users see '…' instead of your full message, making your blog post less appealing in competitive search results for cannabis education content.
Technical root cause: The WordPress page title (set in Yoast SEO, Rank Math, or manually in the post editor) exceeds recommended pixel width for search engine display snippets. Most CMS defaults don't enforce length limits.
Recommended fix — step by step
tier2.meta.title-lengthWhat it means (plain English)
Your page title (the blue clickable text in Google search results) is 80 characters long, but Google typically displays only 50–60 characters before cutting it off with '…'. This means your brand name 'Cottonmouth Dispensary' gets cut off in search results, wasting valuable real estate. The title should lead with your keyword and stay under 65 characters.
Why it matters for your business: Potential customers searching for terpene information won't see your dispensary name in search results, reducing brand recognition and click-through rates from organic search.
Technical root cause: The page title was written for readability rather than search optimization. WordPress allows any length, but search engines have character limits based on pixel width, not character count—most screens cut off around 50–65 characters.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your website is missing Open Graph tags — hidden code that tells Facebook, Instagram, and other social platforms how to display your content when someone shares a link. Without these tags, your posts appear as plain text links instead of attractive cards with your brand image and description, which dramatically reduces click-through rates on social media.
Why it matters for your business: Missing Open Graph metadata reduces social sharing engagement and brand visibility, directly impacting traffic from platforms where cannabis consumers discover dispensaries and product reviews.
Technical root cause: Open Graph meta tags (og:title, og:image, og:description) are not present in the page's <head> section. WordPress does not add these automatically; they require either manual HTML insertion or a dedicated SEO plugin.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your Sample Page don't have descriptive alt text — text that explains what the image shows. Search engines and assistive technology (screen readers used by people with vision disabilities) rely on this text to understand images. Without it, you're missing SEO value and excluding potential customers.
Why it matters for your business: Missing alt text limits your reach: customers using screen readers can't understand product images, and Google has less context to index and rank your pages in image search and web search.
Technical root cause: The HTML for these images lacks an 'alt' attribute, or the alt attribute is empty. WordPress makes it easy to add alt text, but it was skipped during image upload or post creation.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Three images on your Glass Accessories page don't have alt text — descriptive captions that explain what each image shows. Search engines and screen readers (used by people with vision loss) can't understand images without these captions, so they treat them as invisible. This makes your products harder to find in search results and excludes potential customers who use accessibility tools.
Why it matters for your business: Missing alt text reduces your product page's visibility in image search results and limits your ability to reach customers with disabilities, which both shrink your addressable market and may expose you to accessibility compliance risk.
Technical root cause: The three images on that page were uploaded or inserted into the page without filling in the alt text field in WordPress's image settings, leaving the alt attribute empty or missing entirely.
Recommended fix — step by step
tier2.meta.description-lengthWhat it means (plain English)
Your page's meta description (the snippet shown in Google search results) is only 26 characters long. Google recommends 80–160 characters so your full message displays without being cut off in search listings. Right now, potential customers see an incomplete preview of what your page offers.
Why it matters for your business: A truncated search result loses credibility and click-through opportunity — customers can't tell what they're getting before they click, so they may choose a competitor's listing instead.
Technical root cause: The meta description tag in the page's HTML head is either missing, too short, or set to a single word or phrase rather than a complete sentence describing the page content.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, Pinterest, etc.) how to display your page when someone shares a link. Without them, your posts show up with a generic preview instead of your chosen title, description, and image — making shared links less appealing and less likely to drive clicks.
Why it matters for your business: When customers share your artist lineup or product pages on social media, missing preview images and titles reduce click-through rates and social engagement, directly hurting word-of-mouth traffic to your dispensary.
Technical root cause: The page is missing the og:title and og:image meta tags in the <head> section of the HTML. WordPress doesn't add these automatically; they require either manual entry, a plugin, or theme configuration.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your Artist Lineup page don't have alt text—descriptive labels that screen readers read aloud and search engines use to understand what an image shows. This makes the page harder to navigate for people using assistive technology, and it signals to Google that those images aren't optimized.
Why it matters for your business: Missing alt text reduces your page's SEO ranking for image search and limits accessibility for customers with visual impairments, shrinking your potential audience.
Technical root cause: The images were likely uploaded without alt text filled in during the WordPress media library upload or page builder block configuration.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
When this page is shared on Facebook, Instagram, or other social platforms, those sites won't have a custom preview image or title to display. Instead, they'll show a generic or broken preview, making the link look unprofessional and less clickable.
Why it matters for your business: Reduced click-through rates on social shares; potential customers won't see an appealing preview of your glass studio booking service, hurting organic social traffic and brand perception.
Technical root cause: The page is missing og:title, og:image, og:description, and og:url meta tags in the HTML head. WordPress doesn't add these automatically; they require either manual addition or an SEO plugin.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your glass studio booking page don't have alt text — descriptive text that explains what's in the image. Screen readers (used by people with vision loss) can't tell visitors what those images show. Search engines also can't understand image content without alt text, which weakens your SEO.
Why it matters for your business: Visitors using assistive technology get a poor experience, and you're missing SEO value for image search — especially important for a visually-driven product like glass art.
Technical root cause: Images were likely uploaded and embedded without filling in the alt text field in WordPress's image uploader, or the theme template displays images without alt attributes in the HTML.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your Privacy Policy page don't have alt text — descriptive labels that explain what the image shows. Search engines and screen readers (used by people with vision loss) can't understand unlabeled images, which means you're missing SEO signals and excluding potential customers.
Why it matters for your business: Missing alt text reduces your search visibility for image-related queries and signals to Google that your site may not be fully accessible, which can lower overall rankings. It also means visitors using assistive technology get a degraded experience.
Technical root cause: Images were added to the WordPress page without filling in the 'Alt Text' field in the image block or media settings, or the HTML img tags lack alt attributes.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your Terms of Service page don't have alt text — descriptive text that screen readers use to understand images, and that search engines use to index them. This means visually impaired visitors and search bots can't see what those images show.
Why it matters for your business: Missing alt text reduces SEO ranking for image search, limits accessibility for disabled visitors (potential legal risk), and makes your site feel incomplete to search engines.
Technical root cause: Images were inserted into the page without the alt attribute populated. This is common when editors upload images quickly without filling in the description field.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your cart page is missing OpenGraph tags — special metadata that controls how your site appears when shared on Facebook, Instagram, or other social platforms. Without these tags, the preview will look generic or broken, discouraging customers from clicking through.
Why it matters for your business: Cart abandonment often leads to social sharing (customers ask friends about products); a broken preview reduces click-through rate and perceived legitimacy when shared.
Technical root cause: The cart page template in WordPress is not generating og:title and og:image meta tags in the HTML head. This typically happens when the SEO plugin or theme isn't configured to populate social metadata on dynamic pages like cart.
Recommended fix — step by step
add_theme_support('title-tag') and use a WordPress social meta plugin like 'Social Meta Tags for WordPress'.tier2.meta.no-ogWhat it means (plain English)
When someone shares your My Account page on social media (Facebook, Twitter, etc.), there's no custom image or title showing up—instead, the platform guesses or shows nothing. OpenGraph tags are the instructions you give to social networks about what to display when your content is shared.
Why it matters for your business: Missing social preview metadata reduces click-through rates on shared links and makes your brand look unprofessional if customers accidentally share account pages; for a fun cannabis brand, this is a missed engagement opportunity.
Technical root cause: The My Account page (and likely other pages) lack og:title and og:image meta tags in the HTML head. WordPress doesn't add these automatically unless a plugin like Yoast SEO, Rank Math, or All in One SEO is configured and active.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your account page don't have alt text—descriptive labels that screen readers read aloud and search engines use to understand images. This makes the page harder for visitors using assistive technology and misses a small SEO signal. Since this is your account/login area with likely just icons or logos, the impact is minor.
Why it matters for your business: Customers using screen readers won't know what those images represent, creating a poor experience; also a minor SEO miss, though login pages aren't typically ranked heavily.
Technical root cause: The <img> tags on that page lack the 'alt' attribute entirely, leaving no fallback text for accessibility tools or search engines.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
When someone shares your sign-up page on Facebook, Instagram, or other social platforms, those sites look for Open Graph tags (special HTML code that tells them what title and image to display). Your sign-up page is missing these tags, so social platforms will either show nothing or pull random text/images, making your page look unprofessional when shared.
Why it matters for your business: Poor social sharing preview directly reduces click-through rates when customers share referral links or when you promote sign-ups on social media—costing you acquisition and word-of-mouth growth.
Technical root cause: The sign-up page template lacks og:title and og:image meta tags in the HTML head section. WordPress doesn't add these automatically; they require either manual addition or an SEO plugin like Yoast SEO or Rank Math.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your sign-up page don't have alt text—a short text description that tells search engines and people using screen readers what the image shows. This makes the page harder to use for visitors with visual impairments and gives search engines less information about your content.
Why it matters for your business: Missing alt text limits your SEO visibility in image search results and makes your site less welcoming to customers who rely on screen readers, potentially violating accessibility standards that could expose you to legal risk.
Technical root cause: The image elements in your HTML lack the 'alt' attribute, which is required for accessibility compliance and helps search engines index images correctly.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your website is missing OpenGraph tags — special code that tells social media platforms (Facebook, Instagram, LinkedIn) what title and image to display when someone shares your link. Without these tags, shared posts look plain and generic, which reduces click-through rates.
Why it matters for your business: When customers share your products or promotions on social media, the preview looks unprofessional and fails to drive traffic back to your site, directly reducing word-of-mouth visibility and repeat visits.
Technical root cause: WordPress theme or SEO plugin (likely Yoast SEO, Rank Math, or All in One SEO) is not configured to automatically generate og:title and og:image meta tags, or the page itself lacks featured images and proper title setup.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your test page don't have alt text — descriptive text that explains what each image shows. This text is read aloud by screen readers (software that helps blind and low-vision visitors navigate your site) and is also used by search engines to understand your images. Without it, both visitors and search engines miss important context.
Why it matters for your business: Missing alt text reduces your SEO ranking for image searches, blocks access for customers using assistive technology, and may expose you to accessibility compliance claims — particularly risky in the cannabis industry where regulatory scrutiny is high.
Technical root cause: Images were inserted into the page without the alt attribute populated in the HTML. This is typically an oversight during content creation or page building.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your merchandise page is missing OpenGraph metadata — special tags that control how your page appears when shared on Facebook, Instagram, Twitter, and other social platforms. Without these tags, social shares show a generic preview instead of your custom title and product image, which reduces click-through rates from social traffic.
Why it matters for your business: Social shares of your merch page will display poorly and drive fewer clicks back to your site, directly reducing traffic and potential merchandise sales from social referrals.
Technical root cause: The page template or WordPress SEO plugin is not outputting og:title and og:image meta tags in the <head> section. This is typically a missing configuration in Yoast SEO, Rank Math, or the theme's social sharing settings.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two product images on your merchandise page lack alt text—descriptive labels that screen readers use to tell visually impaired visitors what's in the image. Without alt text, those visitors miss out on product details, and search engines can't understand what the images show, which weakens your SEO.
Why it matters for your business: Missing alt text reduces discoverability of your merch products in image search and makes your site less accessible to customers using screen readers, potentially losing sales and creating legal exposure under accessibility standards.
Technical root cause: Images were uploaded to WordPress without filling in the alt text field during upload, or alt text was left blank when the image was inserted into the page.
Recommended fix — step by step
tier2.meta.description-lengthWhat it means (plain English)
Your checkout page's meta description — the short text that appears under your link in Google search results — is only 68 characters long. Google recommends 80–160 characters so the full message displays without being cut off. A truncated description may hurt click-through rates because customers don't see your complete value proposition.
Why it matters for your business: A weak checkout page description in search results reduces the chance that shoppers will click through to complete a purchase, directly impacting conversion rate and revenue.
Technical root cause: The meta description tag in the <head> of the checkout page is too short. WordPress may have auto-generated a brief description, or it was manually set without meeting the length guideline.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your checkout page is missing OpenGraph tags—special code that tells social platforms (Facebook, Instagram, LinkedIn) what to display when someone shares your site. Without these tags, social shares look unprofessional and don't drive traffic back to your site.
Why it matters for your business: When customers share your checkout page or product links on social media, the preview will be blank or generic, reducing click-through rates and losing potential repeat business.
Technical root cause: WordPress doesn't automatically generate OpenGraph tags unless you use an SEO plugin or manually add them to your theme's header. Most WordPress installs lack this setup by default.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Two images on your checkout page don't have alt text—descriptive labels that screen readers use to understand images, and that search engines use to index visual content. This means customers using screen readers can't understand what those images show, and you're missing a small SEO opportunity.
Why it matters for your business: Checkout accessibility barriers can reduce conversions for customers with vision impairments, and missing alt text slightly weakens SEO for product/brand visibility.
Technical root cause: Images were uploaded or inserted in WordPress without filling in the Alt Text field in the media uploader or block editor.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your contact page doesn't have Open Graph tags — special metadata that controls how the page appears when shared on Facebook, Instagram, Twitter, and other social platforms. Without these tags, your link preview will be generic or blank, making shares look unprofessional and reducing click-through rates from social traffic.
Why it matters for your business: When customers share your contact page or product links on social media, they won't see an appealing preview image or custom title, which reduces trust and discourages others from clicking through to your dispensary.
Technical root cause: The page is missing og:title and og:image meta tags in the HTML head. WordPress doesn't add these automatically; they must be added via a plugin, theme settings, or manual code.
Recommended fix — step by step
tier2.meta.title-lengthWhat it means (plain English)
Your page title is 74 characters long, but search engines display best with 50–60 characters on desktop and 20–65 on mobile. Titles longer than 65 characters risk being cut off in Google search results, hiding your brand name or key message. This particular title loses visibility because visitors won't see the full text.
Why it matters for your business: Truncated titles in search results reduce click-through rates, meaning fewer people visit this educational content from your organic search traffic.
Technical root cause: The page title combines a long article headline ('Let's Be Clear: Medical vs. Recreational Cannabis') with the full site name ('Cottonmouth Dispensary'), exceeding the 65-character soft limit that search engines respect.
Recommended fix — step by step
tier2.meta.title-lengthWhat it means (plain English)
Your page title is 78 characters long, but search engines like Google typically display 50–60 characters on desktop and fewer on mobile. When your title exceeds this, Google cuts it off mid-sentence, showing "Beyond THC: The Intriguing World of Cannabis Terpenes | Cottonmouth..." instead of the full text. This truncation weakens the message and can reduce click-through rates from search results.
Why it matters for your business: Potential customers searching for terpene information won't see your full brand name or value proposition, making them less likely to click your link over competitors who have concise, fully-visible titles.
Technical root cause: The page title combines a descriptive phrase, a separator, and the site name, totaling 78 characters. Search engine display guidelines recommend 50–60 characters for optimal visibility across all devices.
Recommended fix — step by step
tier2.meta.title-lengthWhat it means (plain English)
Your blog post title is 68 characters long, which exceeds the recommended maximum of 65 characters. In search results, Google typically displays 50–60 characters on desktop before truncating with an ellipsis (…). This particular title will be cut off, hiding the 'Dispensary' brand identifier that users see in search.
Why it matters for your business: Searchers won't see your brand name in the search result snippet, reducing click-through rate and making it harder for customers to identify you as a dispensary rather than a general educational site.
Technical root cause: The WordPress page title (set via Yoast SEO or the native title field) concatenates the post name with the site name suffix, pushing the total over the 60-char practical limit that search engines display without truncation.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your privacy policy page is missing OpenGraph tags—special metadata that tells social platforms (Facebook, LinkedIn, etc.) what title and image to display when someone shares the link. Right now, if a customer shares your privacy page, social media won't know what preview image or headline to show, making the share look broken or generic.
Why it matters for your business: Reduced click-through rates on social shares of your privacy policy; lost brand consistency in how your brand appears when customers or advocates share compliance-related content.
Technical root cause: WordPress is not automatically generating or the theme is not injecting og:title and og:image meta tags into the page <head> for this URL, likely because the page was created before an SEO plugin was configured or the plugin excludes policy pages from auto-generation.
Recommended fix — step by step
tier2.meta.no-ogWhat it means (plain English)
Your Terms of Service page doesn't include OpenGraph tags—these are special HTML snippets that tell social media platforms (Facebook, Twitter, LinkedIn) what to show when someone shares your link. Without them, social platforms use generic fallbacks, making your shared links look unprofessional and reducing click-through rates.
Why it matters for your business: When customers share your terms page or other content on social media, it displays poorly, reducing traffic from social referrals and making your brand look less polished compared to competitors.
Technical root cause: The page or site-wide WordPress SEO plugin (Yoast, Rank Math, All in One SEO) is not configured to generate og:title and og:image tags, or they've been disabled for this specific page.
Recommended fix — step by step
tier2.meta.description-lengthWhat it means (plain English)
Your cart page's meta description—the text that appears below your page title in Google search results—is only 68 characters long. Google typically displays 80–160 characters, so you're leaving real estate empty. This is a minor visibility issue, not a critical problem.
Why it matters for your business: A fuller, more descriptive summary of your cart page in search results may encourage clicks and set clearer expectations for visitors arriving from Google.
Technical root cause: The meta description tag in the HTML head of the cart page is shorter than the recommended range. WordPress may be auto-generating a truncated description, or one was manually set too briefly.
Recommended fix — step by step
<meta name="description" content="..."> tag in the page head (may require theme customization or a code snippet plugin).tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.description-lengthDetail
Description should be 80-160 chars.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.description-lengthDetail
Description should be 80-160 chars.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.description-lengthDetail
Description should be 80-160 chars.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.description-lengthDetail
Description should be 80-160 chars.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.description-lengthDetail
Description should be 80-160 chars.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "Sign Up Popup | Cottonmouth DispensarySign Up Popup | Cottonmouth Dispensary"
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier3.perf.desktop-failDetail
page.goto: Timeout 60000ms exceeded.
Call log:
tier5.header.x-content-type-optionsDetail
x-content-type-options not present on homepage response. Affects fortress score and CSP posture.
tier5.header.referrer-policyDetail
referrer-policy not present on homepage response. Affects fortress score and CSP posture.
tier5.header.permissions-policyDetail
permissions-policy not present on homepage response. Affects fortress score and CSP posture.
tier5.fortress.ssl-gradeDetail
Qualys SSL Labs: SSL Labs HTTP 400. Aim for A+ via strong TLS 1.3, HSTS, CAA, and preload.
tier5.fortress.dnssec-missingDetail
DNSSEC adds cryptographic verification to DNS responses. Consider enabling via your registrar.
tier5.fortress.caa-missingDetail
CAA records restrict which CAs may issue certs for your domain, preventing rogue issuance. Add CAA for letsencrypt.org / digicert.com / etc.
tier8.lighthouse.mobile-failedDetail
The "start lh:runner:gather" performance mark has not been set
tier8.lighthouse.a11y-desktopDetail
Score 91 is below target 95. See HTML report for details.
tier8.lighthouse.bestPractices-desktopDetail
Score 78 is below target 90. See HTML report for details.
tier8.lighthouse.seo-desktopDetail
Score 85 is below target 95. See HTML report for details.
tier8.lh-opportunity.uses-rel-preconnect-desktopDetail
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.
tier8.lh-opportunity.render-blocking-resources-desktopDetail
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.
tier8.lh-opportunity.unminified-css-desktopDetail
Minifying CSS files can reduce network payload sizes. https://developer.chrome.com/docs/lighthouse/performance/unminified-css/" target="_blank" rel="noreferrer">Learn how to minify CSS.
tier8.lh-opportunity.unminified-javascript-desktopDetail
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.
tier8.lh-opportunity.unused-css-rules-desktopDetail
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.
tier-revenue.dutchie.iframe-absentDetail
No Dutchie iframe detected. If this client uses a different menu provider, add it to clients.yaml dutchieSlug=null + we'll stop flagging.
Grouped by URL — useful when working through the site one page at a time.
_40 findings on this page_
Your website is served over HTTPS (secure), but two resources are being referenced using HTTP (insecure). Modern browsers will block these resources or show warnings, degrading user trust and potentia
Your age-gate pop-up and text elements use inline CSS (style="...") to set letter-spacing, which overrides user accessibility preferences. People with dyslexia or low vision often customize text spaci
Three text elements on your homepage use a dark green color (#018242) on a dark gray background (#222222), creating a contrast ratio of only 3.23:1. WCAG accessibility standards require at least 4.5:1
Your site has two social media icon links (Instagram and another platform) that don't have readable labels. Screen readers—software that reads web pages aloud for blind and low-vision users—can't tell
Five images on your homepage don't have alt text—a short description that search engines and screen readers use to understand what the image shows. This means customers using assistive technology can'
Our automated mobile performance test timed out while trying to load your homepage — the page took longer than 60 seconds to fully load and become interactive. This suggests either genuine slowness on
Your site is missing LocalBusiness schema markup — a structured data format that tells Google you operate a physical cannabis retail location. You have Organization and WebSite schema, but LocalBusine
Your website is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use HTTPS when visiting your site. Without it, browsers may attempt insecure HTTP connections first,
Your site is missing a Content Security Policy (CSP) header — a security rule that tells browsers which external resources (scripts, images, fonts) are trusted. Without it, attackers could inject mali
Your website has 30 clickable elements (buttons, links, menus) that are smaller than 44×44 pixels when viewed on a phone at 320px width. This makes them hard to tap accurately—especially for people wi
Your site has 30 buttons, links, and interactive elements that are smaller than 44×44 pixels on mobile devices. This makes them hard to tap accurately—especially for people with motor control challeng
Your site has 30 interactive buttons, links, or form fields that are smaller than 44×44 pixels when viewed on tablets (like iPads). This makes them hard for users with limited dexterity or large finge
Your site's header (the top navigation and branding area) is nested inside another landmark region, which confuses screen readers. Landmarks are like a map of your page for people using assistive tech
Your footer (the contentinfo landmark) is nested inside another landmark element instead of sitting at the top level of the page. Think of landmarks like chapters in a book — the footer should be its
Your WordPress theme (JupiterX) has created a banner landmark (the HTML5 <header> element with role="banner") that's being detected as a duplicate. Screen readers and assistive technologies use landma
Your site has multiple footer sections marked as 'contentinfo' landmarks (a special HTML region that tells screen readers 'this is the footer'). Assistive technology users may become confused when enc
Your site has two landmark regions (header and footer) that screen readers cannot distinguish from one another because they lack unique labels. Landmarks are the major structural sections of a page (l
_3 findings on this page_
Your page's meta description (the snippet shown in Google search results) is only 26 characters long. Google recommends 80–160 characters so your full message displays without being cut off in search
OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, Pinterest, etc.) how to display your page when someone shares a link. Without them, your posts show up with a
Two images on your Artist Lineup page don't have alt text—descriptive labels that screen readers read aloud and search engines use to understand what an image shows. This makes the page harder to navi
_3 findings on this page_
Your cart page's meta description—the text that appears below your page title in Google search results—is only 68 characters long. Google typically displays 80–160 characters, so you're leaving real e
Your cart page is missing OpenGraph tags — special metadata that controls how your site appears when shared on Facebook, Instagram, or other social platforms. Without these tags, the preview will look
Two images on your cart page don't have alt text — descriptive labels that screen readers read aloud to blind customers and that search engines use to understand image content. This makes those images
_3 findings on this page_
Your account page (/my-account/) doesn't have a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates a random snippet
When someone shares your My Account page on social media (Facebook, Twitter, etc.), there's no custom image or title showing up—instead, the platform guesses or shows nothing. OpenGraph tags are the i
Two images on your account page don't have alt text—descriptive labels that screen readers read aloud and search engines use to understand images. This makes the page harder for visitors using assisti
_3 findings on this page_
Your /test/ page doesn't have a meta description — that's the 150-160 character summary that appears below your page title in Google search results. Without it, search engines may auto-generate a snip
Your website is missing OpenGraph tags — special code that tells social media platforms (Facebook, Instagram, LinkedIn) what title and image to display when someone shares your link. Without these tag
Two images on your test page don't have alt text — descriptive text that explains what each image shows. This text is read aloud by screen readers (software that helps blind and low-vision visitors na
_3 findings on this page_
Your checkout page's meta description — the short text that appears under your link in Google search results — is only 68 characters long. Google recommends 80–160 characters so the full message displ
Your checkout page is missing OpenGraph tags—special code that tells social platforms (Facebook, Instagram, LinkedIn) what to display when someone shares your site. Without these tags, social shares l
Two images on your checkout page don't have alt text—descriptive labels that screen readers use to understand images, and that search engines use to index visual content. This means customers using sc
_3 findings on this page_
_3 findings on this page_
_3 findings on this page_
Your category archive page (Uncategorized) has no meta description — the 160-character summary that appears under your page title in Google search results. Without it, Google generates a random snippe
Every image on your site should have alt text — a short text description that displays if an image fails to load, and that search engines and screen readers (used by people with vision disabilities) c
_3 findings on this page_
Your T-shirt category page is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates one automatically, which
_3 findings on this page_
Your product category page for hoodies doesn't have a meta description — that's the 155-character summary that appears below your page title in Google search results. Without it, Google will auto-gene
_3 findings on this page_
Your product category page for hats doesn't have a meta description — that's the 155-character summary that appears under your page title in Google search results. Without it, Google will auto-generat
_3 findings on this page_
Your product category page for drinkware doesn't have a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates a random
_3 findings on this page_
Your Accessories category page doesn't have a meta description — the short text snippet (usually 150–160 characters) that appears below your page title in Google search results. Without it, Google may
_2 findings on this page_
Your page title is 72 characters long, but search engines like Google typically display only the first 50–60 characters in search results on desktop and even fewer on mobile. The end of your title ("|
_2 findings on this page_
Seven images on your blog post about medical vs. recreational cannabis are missing alt text—short descriptions that tell screen readers and search engines what each image shows. This blocks visually i
Your page title is 74 characters long, but search engines display best with 50–60 characters on desktop and 20–65 on mobile. Titles longer than 65 characters risk being cut off in Google search result
_2 findings on this page_
All 9 images on this blog post are missing alt text — descriptive labels that screen readers use to tell blind/low-vision visitors what an image shows, and that search engines use to understand your c
Your page title is 80 characters long, but search engines display titles best between 50–60 characters on desktop and 40–50 on mobile. Anything longer gets cut off in search results, making your page
_2 findings on this page_
Seven images on your terpenes article have no alt text—descriptive text that screen readers announce to visually-impaired visitors and that search engines use to understand image content. This blocks
Your page title (the blue clickable text in Google search results) is 80 characters long, but Google typically displays only 50–60 characters before cutting it off with '…'. This means your brand name
_2 findings on this page_
Every image on your site is missing alt text — descriptive labels that explain what's in the picture. Screen readers (used by people with vision loss) can't describe the images without this, and searc
Your page title is 78 characters long, but search engines like Google typically display 50–60 characters on desktop and fewer on mobile. When your title exceeds this, Google cuts it off mid-sentence,
_2 findings on this page_
Every image on your site is missing alt text — a brief description that screen readers read aloud to visually impaired visitors and that search engines use to understand image content. On this blog po
Your blog post title is 68 characters long, which exceeds the recommended maximum of 65 characters. In search results, Google typically displays 50–60 characters on desktop before truncating with an e
_2 findings on this page_
Your website is missing Open Graph tags — hidden code that tells Facebook, Instagram, and other social platforms how to display your content when someone shares a link. Without these tags, your posts
Two images on your Sample Page don't have descriptive alt text — text that explains what the image shows. Search engines and assistive technology (screen readers used by people with vision disabilitie
_2 findings on this page_
When this page is shared on Facebook, Instagram, or other social platforms, those sites won't have a custom preview image or title to display. Instead, they'll show a generic or broken preview, making
Two images on your glass studio booking page don't have alt text — descriptive text that explains what's in the image. Screen readers (used by people with vision loss) can't tell visitors what those i
_2 findings on this page_
Your privacy policy page is missing OpenGraph tags—special metadata that tells social platforms (Facebook, LinkedIn, etc.) what title and image to display when someone shares the link. Right now, if a
Two images on your Privacy Policy page don't have alt text — descriptive labels that explain what the image shows. Search engines and screen readers (used by people with vision loss) can't understand
_2 findings on this page_
Your Terms of Service page doesn't include OpenGraph tags—these are special HTML snippets that tell social media platforms (Facebook, Twitter, LinkedIn) what to show when someone shares your link. Wit
Two images on your Terms of Service page don't have alt text — descriptive text that screen readers use to understand images, and that search engines use to index them. This means visually impaired vi
_2 findings on this page_
When someone shares your sign-up page on Facebook, Instagram, or other social platforms, those sites look for Open Graph tags (special HTML code that tells them what title and image to display). Your
Two images on your sign-up page don't have alt text—a short text description that tells search engines and people using screen readers what the image shows. This makes the page harder to use for visit
_2 findings on this page_
Your merchandise page is missing OpenGraph metadata — special tags that control how your page appears when shared on Facebook, Instagram, Twitter, and other social platforms. Without these tags, socia
Two product images on your merchandise page lack alt text—descriptive labels that screen readers use to tell visually impaired visitors what's in the image. Without alt text, those visitors miss out o
_2 findings on this page_
Your contact page doesn't have Open Graph tags — special metadata that controls how the page appears when shared on Facebook, Instagram, Twitter, and other social platforms. Without these tags, your l
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
Your product page for the Cottonmouth C Lighter doesn't have a meta description — that's the 160-character summary Google shows under your page title in search results. Without it, Google generates a
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
_2 findings on this page_
_1 finding on this page_
Your robots.txt file (the text file that tells search engines how to crawl your site) doesn't list your XML sitemap. A sitemap is a map of all your pages that helps Google find and index them faster.
_1 finding on this page_
Three images on your Glass Accessories page don't have alt text — descriptive captions that explain what each image shows. Search engines and screen readers (used by people with vision loss) can't und
_1 finding on this page_
_1 finding on this page_
_1 finding on this page_
_1 finding on this page_
_1 finding on this page_
_1 finding on this page_
_1 finding on this page_
_1 finding on this page_
Your WordPress admin login page (/wp-login.php) is publicly accessible and returns a successful response. This is a standard WordPress file, but leaving it exposed and unprotected makes it easier for
_Generated by Apex Sentinel Monthly Audit · 2026-04-19T06:34:35.401Z · Powered by Bud Authority._
Generated by Apex Sentinel · © 2026 Bud Authority