Bud Authority — Sentinel
Monthly Deep Audit · Unified Command Center

Apex Sentinel — Sage Seeds NY Monthly Audit

URL: https://sageseedsny.com/

Platform: wordpress

Archetype: wellness

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

Scanned: 2026-04-19T06:33:38.571Z

Duration: 1015s

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

Top 10 Actions (Ranked)

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

  1. [P0] 🔴 DO FIRST Sensitive artifact exposed: /wp-login.php — _An attacker gaining admin access could modify your site content, inject malware, steal customer data, deface your licensing information, or take the site offline—directly harming customer trust, compliance, and revenue._

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

Effort: Moderate (1-3 hours)

  1. [P1] 🔴 DO FIRST 1 mixed-content references (http://) — _Visitors may see security warnings, lose trust in your site, and search engines may penalize your ranking—critical for a cannabis retailer where compliance and trust directly affect sales._

Page: https://sageseedsny.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🔴 DO FIRST Lighthouse perf (mobile): 39/100 — _Slow mobile load times cause visitors to abandon your site before they can browse products or place orders, directly reducing revenue. Google also ranks slower sites lower in search results, shrinking your organic traffic and making it harder for customers to find you._

Page: https://sageseedsny.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🔴 DO FIRST A11y: ARIA dialog and alertdialog nodes should have an accessible name — _Blind and low-vision visitors cannot pass your age gate, blocking them from viewing products and making purchases—creating legal liability under ADA/WCAG and excluding a market segment._

Page: https://sageseedsny.com/

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Elements must meet minimum color contrast ratio thresholds (×20) — _Poor color contrast can trigger ADA complaints, reduce conversions from customers with visual impairments (a meaningful portion of any audience), and signal to search engines that your site may not be well-maintained, potentially harming your organic rankings._

Page: https://sageseedsny.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🔴 DO FIRST Journey failed: default: homepage → age gate → menu visible — _Visitors cannot pass your age verification gate, blocking access to your product menu and preventing sales—this is a revenue-blocking issue for a cannabis retailer._

Page: https://sageseedsny.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🟠 HIGH Lighthouse bestPractices (desktop): 59/100 — _A low Best Practices score signals to search engines and users that your site may have security or reliability issues—critical for a cannabis retailer where age verification and payment trust are essential to conversions._

Page: https://sageseedsny.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🟠 HIGH A11y: Links must have discernible text (×2) — _Cannabis retailers must ensure compliance with accessibility standards to avoid discrimination lawsuits, and accessible sites rank better in search engines and convert more visitors—especially important for building community trust in a regulated industry._

Page: https://sageseedsny.com/

Effort: Quick win (< 30 min)

  1. [P2] 🟠 HIGH 28 image(s) missing alt text — _You're losing potential customers who use assistive technology, exposing yourself to accessibility lawsuits, and missing SEO traffic from Google Images—especially important for a cannabis retailer where product photos drive discovery and trust._

Page: https://sageseedsny.com/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 15 image(s) missing alt text — _Customers with visual impairments may leave your site, and you're losing SEO value from Google Images — a significant traffic source for cannabis retail product discovery and lifestyle content._

Page: https://sageseedsny.com/home-vimeo-bg/

Effort: Moderate (1-3 hours)


Findings by Severity

P0 — 1 finding

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

What it means (plain English)

Your WordPress login page (/wp-login.php) is publicly accessible and returns a successful response. This is a standard WordPress path that attackers routinely scan for. While WordPress login pages are expected to exist, leaving them openly accessible without protection makes your site a target for brute-force attacks—where attackers automatically try thousands of password combinations to gain admin access.

Why it matters for your business: An attacker gaining admin access could modify your site content, inject malware, steal customer data, deface your licensing information, or take the site offline—directly harming customer trust, compliance, and revenue.

Technical root cause: WordPress login is enabled by default and not restricted. The wp-login.php file responds normally to all visitors without IP allowlisting, rate-limiting, or Web Application Firewall (WAF) rules to block or slow automated login attempts.

Recommended fix — step by step

  1. Install Wordfence Security (free version): Go to WordPress Admin → Plugins → Add New, search 'Wordfence', install and activate.
  2. Open Wordfence → Login Security → enable 'Protect /wp-login.php' and set Aggressive rate-limiting to block brute-force attempts.
  3. In Wordfence → Firewall → Block IP → enter known attacker IPs if your access logs show repeated failed login attempts.
  4. Enable two-factor authentication for all admin accounts: Wordfence → Two-Factor Authentication → require it for all users with Editor or Admin role.
  5. If using Cloudflare (check your DNS provider): add a WAF rule to rate-limit POST requests to /wp-login.php to 5 attempts per minute per IP.
  6. Review hosting control panel (cPanel, Plesk, etc.) for built-in IP allowlist or ModSecurity rules, and enable WordPress-specific DDoS/brute-force protection if available.

P1 — 7 findings

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

What it means (plain English)

Your website is served over HTTPS (secure), but it's loading at least one resource from an HTTP (non-secure) address. Modern browsers will block these mixed resources or show security warnings to visitors, reducing trust and potentially breaking functionality.

Why it matters for your business: Visitors may see security warnings, lose trust in your site, and search engines may penalize your ranking—critical for a cannabis retailer where compliance and trust directly affect sales.

Technical root cause: A theme file, plugin, or custom code is hardcoding an HTTP:// URL instead of using a protocol-relative URL (// or https://) or letting WordPress handle the protocol dynamically.

Recommended fix — step by step

  1. In WordPress admin, go to Settings → General and confirm both 'WordPress Address' and 'Site Address' are set to https://sageseedsny.com (with https).
  2. Install and activate the 'Really Simple SSL' plugin (free version) to auto-fix mixed-content issues and force HTTPS site-wide.
  3. In WordPress admin, go to Tools → Really Simple SSL → Enable SSL and let it scan and rewrite embedded URLs.
  4. Use the browser Developer Tools (F12) → Console tab on your home page, reload, and check for 'Mixed Content' errors; note the specific resource URL.
  5. Search your WordPress database for hardcoded 'http://' references: In admin, use a plugin like 'Better Search Replace' to find and replace the offending URL with its HTTPS equivalent.
  6. If an external service (e.g., ad network, font CDN) only offers HTTP, contact the vendor and request HTTPS support or switch to an alternative.

2. Lighthouse perf (mobile): 39/100

What it means (plain English)

Your mobile homepage takes 86 seconds for the largest content element (like a banner image or product card) to become visible to visitors. This is extremely slow — most users expect a page to load in under 3 seconds. The Lighthouse performance score of 39 indicates serious speed issues that are likely caused by unoptimized images, render-blocking code, or slow server response times.

Why it matters for your business: Slow mobile load times cause visitors to abandon your site before they can browse products or place orders, directly reducing revenue. Google also ranks slower sites lower in search results, shrinking your organic traffic and making it harder for customers to find you.

Technical root cause: The LCP (Largest Contentful Paint) metric of 86 seconds suggests either very large uncompressed images, missing image lazy-loading, render-blocking JavaScript in the page head, or a slow Time to First Byte from your WordPress host. WordPress also loads many scripts and stylesheets by default that may not be optimized.

Recommended fix — step by step

  1. Install the Smush image compression plugin (WordPress admin → Plugins → Add New → search 'Smush' → activate) and run it on all existing images to reduce file sizes without visible quality loss.
  2. Enable lazy loading in Smush settings (WordPress admin → Smush → Settings → toggle 'Native Lazy Loading') to defer off-screen image loads.
  3. Install Rocket.net (or WP Super Cache if budget-constrained) to enable server-level caching and minify CSS/JavaScript (WordPress admin → WP Super Cache → toggle on → Settings → check 'Compress CSS/JS').
  4. Open WordPress admin → Plugins → Add New → install 'Autoptimize' and enable 'Optimize JavaScript Code' and 'Optimize CSS Code' to defer non-critical scripts.
  5. Check your WordPress host speed: run a speed test at tools.pingdom.com and note the 'Wait time' (time to first byte). If > 2 seconds, contact your host or upgrade to WP Engine / Kinsta, which optimize for WordPress.
  6. Install the Lighthouse plugin (WordPress admin → Plugins → Add New → search 'Lighthouse' → enable) to get in-plugin speed feedback and re-test after each change.

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

What it means (plain English)

Your age-gate dialog (the popup that appears to verify visitor age) is missing a text label that screen readers can announce. Screen reader users cannot understand the purpose of the dialog, making it impossible for them to complete age verification and access your site.

Why it matters for your business: Blind and low-vision visitors cannot pass your age gate, blocking them from viewing products and making purchases—creating legal liability under ADA/WCAG and excluding a market segment.

Technical root cause: The dialog div with id='baag3-gate' has role='dialog' and aria-modal='true' but lacks aria-label, aria-labelledby, or title attribute. Screen readers require one of these to announce the dialog's purpose.

Recommended fix — step by step

  1. Log into WordPress admin → Plugins and confirm the age-gate plugin (likely 'Age Verification', 'BAAG3', or similar) is active
  2. Open the plugin settings (usually under Settings or Tools in the left menu)
  3. Locate the dialog content or heading text (e.g., 'Verify your age' or 'You must be 21+'); note the exact text
  4. If the plugin has an accessibility or HTML settings section, add aria-label='Verify your age - You must be 21 years old to enter this site' to the dialog element
  5. If the plugin lacks this option, edit the plugin file directly: Dashboard → Plugins → Plugin File Editor (or use SFTP) → find the age-gate template file (usually in the plugin folder) → add aria-label to the main dialog div
  6. Alternatively, add a hidden h1 tag inside the dialog with id='age-gate-title' and the heading text, then add aria-labelledby='age-gate-title' to the dialog div
  7. Test with a free screen reader (NVDA on Windows or VoiceOver on Mac) to confirm the dialog purpose is announced
  8. If you cannot access plugin code, contact the plugin vendor with this finding and request an accessibility update

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

What it means (plain English)

Your website has 20 instances where text and background colors don't provide enough contrast for people with low vision or color blindness to read easily. For example, white text on a gold/tan button (#ffffff on #cda641) only meets a 2.3:1 contrast ratio, but accessibility standards require at least 3:1 for normal text. This is a legal and usability issue under WCAG 2 AA, the standard most US states reference in cannabis compliance.

Why it matters for your business: Poor color contrast can trigger ADA complaints, reduce conversions from customers with visual impairments (a meaningful portion of any audience), and signal to search engines that your site may not be well-maintained, potentially harming your organic rankings.

Technical root cause: The Elementor page builder and Dutchie menu embed are using brand colors (golds, greens) and text colors that were chosen for aesthetics rather than accessibility. The contrast math: WCAG AA requires a minimum ratio of 3:1 for regular text and 4.5:1 for small text; your current palette doesn't meet those thresholds.

Recommended fix — step by step

  1. Install the free plugin 'Equalize Digital Accessibility Checker' (WordPress → Plugins → Add New → search 'Equalize' → Install & Activate). This will highlight contrast failures on your live site in real time.
  2. Open WordPress Dashboard → Pages → Edit the home page with Elementor. Click the 'Shop Now' button → Style tab → Change the background color from #cda641 to #b8860b or darker (test in Equalize to hit 3:1+). For text, confirm it stays #ffffff or switch to #000000 if needed.
  3. For the Dutchie embed (menu carousel), the contrast issue (#29a571 green text on white) is inside an external iframe you don't fully control. Contact Dutchie support (support@dutchie.com) to request a darker green option, or ask your Dutchie account manager about CSS override settings.
  4. Audit all buttons, links, and labels site-wide: WordPress → Appearance → Customize → Colors. Document current hex values and test each against https://webaim.org/resources/contrastchecker/ to ensure 4.5:1 for body text, 3:1 for large text (18pt+).
  5. Update your brand color palette document to include WCAG AA-compliant alternatives (e.g., if gold is your brand, use #8B7500 instead of #cda641 for backgrounds behind white text).
  6. Re-run an accessibility scan after changes: use Elementor's free accessibility checker (Elementor → Tools → Accessibility → Run Scan) or Chrome's Lighthouse (DevTools → Lighthouse → Accessibility).

5. Journey failed: default: homepage → age gate → menu visible

What it means (plain English)

Your site is trying to load JavaScript files, but the server is sending them with the wrong file type label (MIME type). Modern browsers reject this for security reasons, treating them as HTML documents instead of executable code. This breaks your age-gate functionality and any dependent scripts.

Why it matters for your business: Visitors cannot pass your age verification gate, blocking access to your product menu and preventing sales—this is a revenue-blocking issue for a cannabis retailer.

Technical root cause: JavaScript files (likely .js module scripts referenced in your theme or plugins) are being served with Content-Type: text/html instead of application/javascript. This typically happens when a plugin or theme is loading scripts from a URL that doesn't resolve to the actual .js file, or a CDN/hosting misconfiguration is stripping the correct MIME type.

Recommended fix — step by step

  1. Log into WordPress admin → Tools → Site Health and check for any JavaScript/MIME type warnings; note any flagged plugins.
  2. Visit your site in Chrome/Edge, open DevTools (F12) → Console tab, and record the exact URLs of the 4 failed module scripts (they'll show in red).
  3. For each failed URL, open it directly in a new browser tab—if you see HTML instead of JavaScript code, the file path is wrong or the server is misconfigured.
  4. If files are from a plugin: go to Plugins → check for any recently activated age-gate or security plugins (common culprits: age-verify, royal-elementor-addons, divi-builder); disable them one at a time and test the age gate.
  5. If files are from your theme: go to Appearance → Themes, switch to a default theme (e.g., Twenty Twenty-Three) for 30 seconds to test; if age gate loads, the custom theme has the issue.
  6. Contact your hosting provider and ask them to verify that .js files are served with Content-Type: application/javascript; provide them the exact URLs from step 2.
  7. If you use a CDN (Cloudflare, etc.): log in to its dashboard → Rules/Caching, ensure .js files are not cached as HTML or minified incorrectly.

6. Lighthouse bestPractices (desktop): 59/100

What it means (plain English)

Your site's Lighthouse Best Practices score is 59 out of 100, well below the healthy threshold of 90. This score reflects several technical issues that erode visitor trust and can harm your search ranking. Common culprits on cannabis sites include outdated libraries, mixed HTTP/HTTPS content, missing security headers, or third-party scripts that aren't properly vetted.

Why it matters for your business: A low Best Practices score signals to search engines and users that your site may have security or reliability issues—critical for a cannabis retailer where age verification and payment trust are essential to conversions.

Technical root cause: Lighthouse flagged multiple best-practice violations in the full HTML report. These typically stem from outdated WordPress plugins, unencrypted third-party embeds, missing Content Security Policy headers, or browser APIs being used unsafely.

Recommended fix — step by step

  1. Download and open the full Lighthouse HTML report at /Users/markwallace/BKH/apex-sentinel/runs/2026-04-19T06-18-18-831Z/lighthouse/sage-seeds/lighthouse-desktop.html in a browser to see the exact failures listed under 'Best Practices'.
  2. In WordPress Admin → Plugins, audit all active plugins for outdated versions; update any that are more than two minor versions behind (e.g., Yoast SEO, WooCommerce, security plugins).
  3. Check WordPress Admin → Settings → General: ensure your Site URL and WordPress URL both use https:// (not http://).
  4. Install Wordfence Security (free tier) via Plugins → Add New → search 'Wordfence' → activate. Run a full scan to detect malware or insecure configurations.
  5. Review any embedded third-party scripts (e.g., payment gateways, age-gate providers, analytics) in WordPress Admin → Appearance → Theme File Editor or via a page builder. Confirm each uses https:// and is from a reputable vendor.
  6. If using a cache plugin (WP Super Cache, W3 Total Cache), clear all caches: Admin → Settings → [Plugin Name] → Purge All.
  7. Rerun Lighthouse (PageSpeed Insights or Lighthouse in Chrome DevTools) after updates to confirm score improvement.

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

What it means (plain English)

Your website has two social media icon links (Facebook and Instagram) that don't have any text label associated with them. Screen readers—software that blind and low-vision users rely on to navigate the web—can't tell visitors what these links do. This makes your site inaccessible to a significant audience and creates legal risk under accessibility laws.

Why it matters for your business: Cannabis retailers must ensure compliance with accessibility standards to avoid discrimination lawsuits, and accessible sites rank better in search engines and convert more visitors—especially important for building community trust in a regulated industry.

Technical root cause: The social icons are styled as images-only links within Elementor (WordPress's page builder) without accompanying text or ARIA labels. Screen readers have nothing to announce when users encounter these links.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → edit the homepage
  2. In the Elementor editor, click the Facebook icon link element to select it
  3. Open the Advanced tab in the left panel → scroll to Accessibility section
  4. Add aria-label="Follow us on Facebook" in the Accessibility Label field
  5. Repeat steps 2–4 for the Instagram icon, using aria-label="Follow us on Instagram"
  6. Click Update and test using a free tool like WAVE (wave.webaim.org) or axe DevTools browser extension to confirm the icons are now labeled

P2 — 32 findings

1. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alt text (descriptive text that describes what an image shows). Screen readers—tools used by people with vision disabilities—cannot describe those images to users. This also means search engines cannot understand what those images contain, which reduces your ability to appear in image search results and hurts your overall SEO.

Why it matters for your business: You're losing potential customers who use assistive technology, exposing yourself to accessibility lawsuits, and missing SEO traffic from Google Images—especially important for a cannabis retailer where product photos drive discovery and trust.

Technical root cause: Images were added to pages (likely via WordPress editor or theme) without filling in the Alt Text field, which is a required field in WordPress's image block settings.

Recommended fix — step by step

  1. Log in to WordPress admin → go to Media Library → filter by 'Unattached' or review all media; check each image's Alt Text field (click the image, check the right panel labeled 'Alt Text')
  2. For product images, write descriptive alt text like 'Premium cannabis flower Sage OG strain in glass jar' instead of leaving blank
  3. For decorative images (backgrounds, dividers), you can leave alt text empty—just don't skip the field entirely
  4. Use the Yoast SEO or All in One SEO free plugin → run its alt text report → it will flag missing alt on your pages and let you fix directly from the post editor
  5. After fixing, re-submit your XML sitemap to Google Search Console (Settings → Sitemap) to re-index with new alt text
  6. Set a team rule: before publishing any post, check the Media settings panel and fill Alt Text before inserting the image

2. 15 image(s) missing alt text

What it means (plain English)

Your site has 15 images without alt text (descriptive text that tells screen readers and search engines what the image shows). This makes the site harder for people using assistive technology to navigate, and search engines can't index those images, which means you're missing potential traffic from image search results.

Why it matters for your business: Customers with visual impairments may leave your site, and you're losing SEO value from Google Images — a significant traffic source for cannabis retail product discovery and lifestyle content.

Technical root cause: Images were likely uploaded to WordPress without filling in the Alt Text field during upload, or inserted via shortcodes/custom blocks without alt attributes defined in the code.

Recommended fix — step by step

  1. Log into WordPress admin → Media Library. Filter or search for images used on https://sageseedsny.com/home-vimeo-bg/ and similar pages.
  2. For each image missing alt text, click Edit → scroll to Alt Text field and write a brief, accurate description (e.g., 'Cannabis flower close-up on wooden surface' instead of just 'flower.jpg').
  3. If images are embedded in Gutenberg blocks, edit the page → click the image block → check the Image settings sidebar (right panel) and add alt text there.
  4. For hero/background images (like the vimeo-bg class suggests), consider if they're purely decorative; if so, leave alt text empty but ensure the page title and heading text clearly convey the content.
  5. Install the free plugin 'WP Accessibility' or 'Accessibility Checker' to auto-flag future uploads missing alt text.
  6. Audit the remaining 15 images (of 30 total) and apply the same alt text process to all product photos, lifestyle images, and illustrations.
  7. Run a re-scan using Lighthouse (Chrome DevTools → Lighthouse → Accessibility) or WAVE browser extension to confirm fixes.

3. 18 image(s) missing alt text

What it means (plain English)

Your site has 18 images without alt text (descriptive text that explains what an image shows). Search engines and accessibility tools rely on this text to understand your images. When alt text is missing, those images become invisible to search rankings and to visitors using screen readers.

Why it matters for your business: Missing alt text reduces your search visibility for product images and reduces accessibility for disabled customers — both of which limit your potential customer base and revenue.

Technical root cause: Images were likely added to the WordPress media library and inserted into pages without filling in the 'Alt Text' field in the image block or image settings, which is optional but critical for compliance and SEO.

Recommended fix — step by step

  1. In WordPress admin, go to Media Library and filter by 'Unattached' or browse to the /home-staging/ page in the editor.
  2. For each image without alt text, click the image and open the Image Block settings panel on the right side.
  3. In the 'Alt Text' field, write a short, descriptive phrase (5–10 words) describing what the image shows and its context — e.g., 'Cannabis flower buds in glass jar' or 'Sage Seeds NY storefront entrance'.
  4. For product images, include the product name or type in alt text (e.g., 'Indica strain product packaging').
  5. After adding alt text to all 18 images, install the free plugin 'WP Accessibility' or use the built-in Yoast SEO → Media Optimization tool to scan and report any remaining gaps.
  6. Set a WordPress user role policy: require alt text before images are published (use a plugin like 'Image Attributes from Filename' to auto-populate as a fallback).

4. Missing meta description

What it means (plain English)

Your Events page is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates its own excerpt from your page content, which may not highlight what makes your events compelling to customers looking for cannabis product releases, educational sessions, or promotions.

Why it matters for your business: A missing meta description reduces click-through rate from search results; potential customers see a generic snippet instead of your sales-focused message, directly impacting foot traffic to your dispensary.

Technical root cause: The page template or post does not have a meta description field populated in WordPress's SEO plugin (if one is installed) or in the page's raw HTML head tag.

Recommended fix — step by step

  1. Log in to WordPress admin → Pages → Events
  2. Install Yoast SEO (if not already active) via Plugins → Add New, search 'Yoast SEO', click Install & Activate
  3. Scroll to the Yoast SEO panel below the page editor and locate the 'SEO title & meta description' field
  4. In the meta description box, write: 'Upcoming cannabis events, product launches & educational sessions at Sage Seeds NY. Reserve your spot for exclusive dispensary events.'
  5. Ensure the description is 150–160 characters (Yoast shows a character counter)
  6. Click Update to save the page
  7. Verify the description appears in Google Search Console within 24–48 hours (Search Console → Performance → click the Events URL)

5. 5 image(s) missing alt text

What it means (plain English)

Five images on your delivery page don't have alt text — the short descriptive text that appears when an image fails to load and that screen readers use to describe images to visually impaired visitors. This creates an accessibility barrier for customers using assistive technology and also means search engines can't understand what those images show, losing you SEO value.

Why it matters for your business: Customers using screen readers or those in areas with slow connections may struggle to navigate your products, and you're missing keyword opportunities that image descriptions provide to Google — especially important for visual-heavy product pages in competitive cannabis retail.

Technical root cause: Images were inserted into the page without the alt attribute being populated. This commonly happens when images are uploaded directly through WordPress media without filling in the 'Alt Text' field in the image properties.

Recommended fix — step by step

  1. Log in to WordPress admin → go to Media Library → search for images used on /weed-delivery/
  2. For each image, open its properties and fill in the 'Alt Text' field with a concise description (e.g., 'Sage Seeds Indica flower strain in amber glass jar')
  3. If images are embedded directly in a post, edit the post (https://sageseedsny.com/wp-admin/post.php?action=edit&post=...), click each image, select 'Edit' → fill in alt text in the right panel
  4. Alternatively, install the WordPress plugin 'WP Accessibility' (free) → run its built-in alt text checker to identify all missing alt attributes across the site in one scan
  5. Once updated, test using WAVE browser extension (Chrome/Firefox) on the delivery page to confirm all images now have alt text
  6. Add alt text to any new product images before uploading by filling the Alt Text field in the WordPress Media uploader

6. 6 image(s) missing alt text

What it means (plain English)

Your website has 6 images without alt text (descriptive text that appears if an image fails to load). This makes those images invisible to screen readers used by people with vision disabilities, and it also means search engines can't understand what those images show. When search engines can't read your images, you miss opportunities to rank for related searches.

Why it matters for your business: Customers using assistive technology may have a poor experience on your site, reducing trust and sales. Additionally, you're losing SEO value — images with proper alt text rank in Google Images and help your pages rank higher for relevant searches like 'weed delivery Queens Bayside.'

Technical root cause: Images on the Queens Bayside delivery page were uploaded to WordPress without alt text filled in. WordPress allows alt text to be left blank by default, so images get published without this critical metadata.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library → filter by 'Queens Bayside' or the affected page
  2. For each of the 6 images without alt text, click Edit → scroll to 'Alternative Text' field
  3. Write concise, descriptive alt text (e.g., 'Cannabis flower assortment in Queens Bayside' or 'Sage Seeds delivery bag on customer doorstep') — 1-2 sentences max
  4. Click Update for each image
  5. Go to Pages → edit the Queens Bayside page → scroll to the image blocks and verify alt text displays in the Image block settings (some blocks show alt text inline)
  6. Use a free tool like WAVE (wave.webaim.org) to audit the page again and confirm all 6 images now have alt text

7. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alt text—descriptive text that appears when images don't load and is read aloud by screen readers. This affects visitors using assistive technology and also tells search engines what your product photos show, which boosts visibility for image search and helps Google understand your pages better.

Why it matters for your business: Missing alt text hurts SEO rankings for product discovery and reduces accessibility for disabled customers—both translate to lost traffic and potential compliance risk under ADA standards.

Technical root cause: Images uploaded to Elementor or WordPress media library often skip the alt text field during upload. The Elementor page builder doesn't enforce alt text, allowing images to be published without it.

Recommended fix — step by step

  1. Go to WordPress Admin → Media Library, filter by 'Unattached' or use a bulk alt-text audit tool like Yoast SEO Premium (Premium → Analysis) to identify all missing alt fields
  2. For each product image on the delivery page, add concise, descriptive alt text: e.g., 'Premium sativa flower strain in glass jar' instead of leaving blank or using 'image1'
  3. In Elementor, click each image widget → Image tab → Image Title / Alt Text field, and fill in a 5–10 word description of what the image shows
  4. Use a free WordPress plugin like 'WP Accessibility Helper' or enable Yoast SEO's free version → Settings → Readability → Image alt text reminders to flag missing alts on publish
  5. Test with a screen reader (free: NVDA on Windows, or built-in VoiceOver on Mac) by visiting a product page and confirming alt text is read aloud
  6. Audit Elementor library templates: Admin → Elementor → My Templates → edit each template used on your site and repeat alt-text review

8. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images missing alt text—descriptions that tell screen readers and search engines what an image shows. This breaks accessibility for blind and visually impaired visitors, and search engines can't understand or rank those images.

Why it matters for your business: Missing alt text reduces search visibility for product images, lowers accessibility compliance (risking legal exposure), and frustrates customers using assistive technology who can't understand your product offerings.

Technical root cause: Images were likely added to Elementor pages without filling in the Alt Text field during upload or image insertion. Elementor makes this optional, so images publish without it by default.

Recommended fix — step by step

  1. Log into WordPress admin → go to Media Library → filter by 'Unattached' or bulk-view all images
  2. For each image missing alt text, click it → Edit → scroll to 'Alt Text' field → write a brief, descriptive phrase (e.g., 'Green cannabis flower, close-up' or 'Premium sativa strain packaging')
  3. For Elementor pages specifically, navigate to each affected page (including https://sageseedsny.com/?elementor_library=delivery-page-10-30-2025) → click 'Edit with Elementor' → select each image widget → in the left panel under 'Image' section, fill the 'Alt Text' field
  4. Install the plugin 'WP Accessibility' (free) → Settings → Image Alt Text → enable 'Check for missing alt text on publish' to prevent future uploads without alt
  5. Run a final audit using the free tool WAVE (wave.webaim.org) to verify all 28 images now have alt text

9. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alt text—these are descriptions that appear when images fail to load and help screen readers (tools used by people with visual impairments) understand what each image shows. Search engines also use alt text to index images, so missing descriptions hurt both accessibility and image SEO.

Why it matters for your business: Visitors using assistive technology or on slow connections may not understand product images or dispensary location photos, reducing trust and conversions; Google also ranks image-heavy pages lower when alt text is missing.

Technical root cause: Images were likely uploaded to Elementor (your page builder) or added via WordPress media without filling in the alt text field during upload or in the image block settings.

Recommended fix — step by step

  1. In WordPress admin, go to Media Library and filter by images used on your site.
  2. For each image, click it and check the 'Alt Text' field in the right panel; if blank, add a short descriptive phrase (e.g., 'Cannabis flower display' or 'Sage Seeds storefront entrance').
  3. Alternatively, open the affected page (https://sageseedsny.com/?elementor_library=transparent-header) in Elementor editor, click each image block, and fill the 'Alt Text' field in the right settings panel.
  4. Prioritize product images and compliance-related visuals (licenses, disclaimers) first.
  5. After updating 10–15 images, run a free accessibility scan at wave.webaim.org to verify progress.
  6. Set a team reminder to always fill alt text when uploading images going forward; add a note to your WordPress upload checklist.

10. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alt text—descriptions that screen readers use to understand images, and that search engines use to index visual content. This means visually impaired customers can't understand product photos, and Google can't properly index those images in search results.

Why it matters for your business: Missing alt text reduces SEO rankings for product images, blocks accessibility for disabled customers (legal risk under ADA), and limits your ability to rank in image search where cannabis product discovery often happens.

Technical root cause: Images were likely inserted into Elementor page builder without filling in the alt text field, or were uploaded via media library without alt metadata. WordPress doesn't auto-generate alt text.

Recommended fix — step by step

  1. In WordPress admin, go to Media Library and filter for images used on your site.
  2. Click each image and scroll to the 'Alt Text' field; write a short, descriptive phrase (e.g., 'Purple Haze cannabis flower product image' or 'Sage Seeds NY storefront exterior').
  3. For Elementor pages, open each page in edit mode, select an image widget, and fill the 'Alt Text' field under the Image settings panel.
  4. Prioritize product images first (highest SEO + compliance impact), then hero images and banner photos.
  5. Use Elementor's 'Alt Text' field rather than 'Title'—they are different; alt is for accessibility and SEO.
  6. After updating, run a free alt-text audit using WAVE (wave.webaim.org) or Lighthouse (Chrome DevTools) to confirm fixes.

11. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alt text—descriptive labels that explain what each image shows. Search engines and screen readers (used by visually impaired customers) can't interpret these images, which means potential customers may miss product information and Google can't index your visual content for search results.

Why it matters for your business: Missing alt text reduces your organic search visibility for product images, blocks disabled customers from browsing your inventory, and signals to Google that your site lacks accessibility—all of which shrink your addressable market and traffic.

Technical root cause: Images were likely inserted via Elementor (your page builder) or uploaded to WordPress without the alt text field being filled in during upload or element configuration.

Recommended fix — step by step

  1. In WordPress admin, go to Media Library and filter by 'Unattached' or view all images; click each image and fill the 'Alt Text' field with a 1–10 word description (e.g., 'Sage Seeds premium indoor grow kit').
  2. Alternatively, use Elementor to edit pages with images: click each image widget → Image tab → fill the 'Alt Text' field before saving.
  3. For Elementor Header (affected URL), log in as admin → Elementor → Templates → find 'elementor-header-14' → open in editor → click each image → Image settings → add alt text → update.
  4. Prioritize alt text for product images first (seeds, grow supplies, packaging) as these drive the most SEO and customer value.
  5. Install the free plugin Yoast SEO (if not active) and run a site audit: Dashboard → Yoast SEO → Site Audit → filter for alt text issues to catch any remaining gaps.
  6. After adding alt text, re-save each page containing images to refresh the sitemap and signal updates to Google.

12. 28 image(s) missing alt text

What it means (plain English)

Your website has 28 images without alt text—descriptive labels that tell screen readers and search engines what an image shows. This breaks accessibility for blind and low-vision customers, and search engines can't index those images for image search traffic. Since 28 out of 39 images are affected, this is a widespread issue.

Why it matters for your business: Customers using screen readers cannot understand your product images, which risks legal liability under the ADA and excludes a customer segment; you also miss image search traffic (Google Images) and rank lower in regular search results.

Technical root cause: Images were added to the Elementor page builder without filling in the alt text field. Elementor allows publishing images without alt text, so they default to empty.

Recommended fix — step by step

  1. Log into WordPress → Dashboard → go to Pages and find the affected page (New Homepage)
  2. Click Edit with Elementor to open the page builder
  3. For each image widget, click the image → in the right panel, find the 'Alt Text' field under Image settings
  4. Write a short, descriptive alt text (e.g., 'Cannabis flower product in glass jar' or 'Sage Seeds NY storefront exterior') for each image; focus on what customers need to know
  5. Repeat for all 28 images; prioritize hero/product images first if time is limited
  6. After each batch, click Update to save changes
  7. Once complete, run a free accessibility checker (WAVE browser extension or axe DevTools) to confirm all images now have alt text

13. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alt text—short descriptions that describe what each image shows. When alt text is missing, screen readers used by visually impaired visitors can't explain the images, and search engines can't understand what those images contain. This hurts both accessibility and your ability to rank for image-based searches.

Why it matters for your business: Customers using screen readers cannot navigate your product images or understand your dispensary visuals, reducing accessibility for disabled visitors and potentially exposing you to ADA compliance complaints; search engines also rank image-rich content lower when alt text is absent, reducing organic traffic.

Technical root cause: Images inserted via Elementor (WordPress page builder) or uploaded directly to WordPress likely lack alt text attributes in their HTML. This commonly happens when images are added quickly without filling the 'Alt Text' field during upload or in the image block settings.

Recommended fix — step by step

  1. Log in to WordPress → Media Library → filter by 'Unattached' or review recent uploads; click each image and fill the 'Alt Text' field with a concise, descriptive phrase (e.g., 'Cannabis flower strain display' not 'image123').
  2. For images already placed in Elementor pages, go to WordPress Admin → Pages → edit the affected page in Elementor → click each image widget → Image panel → Alt Text field → add alt text and save.
  3. Prioritize product images and compliance-related visuals (license, age-gate graphics) first, as these drive revenue and trust.
  4. Install the free plugin 'WP Accessibility' (Plugins → Add New → search 'WP Accessibility') to highlight unalt'd images during editing.
  5. Establish a workflow: before publishing any page, use Accessibility Checker (built into newer WordPress versions) to scan for missing alt text.
  6. Test with a screen reader (NVDA for Windows, free) or use the WAVE browser extension to verify alt text is readable and descriptive.

14. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alternative text (alt text). Alt text is a short description that appears if an image doesn't load and is read aloud to visitors using screen readers. Search engines also use alt text to understand what your images show, which helps them rank your pages correctly.

Why it matters for your business: Missing alt text reduces your SEO visibility for image searches and product discovery, and excludes customers with visual impairments from accessing your content — both revenue and brand reputation risks.

Technical root cause: Images were likely uploaded to WordPress or added via Elementor without filling in the alt text field during upload or element configuration. This is a common oversight when bulk-importing or quickly adding media.

Recommended fix — step by step

  1. Log into WordPress Admin → Media Library, filter by images used on your site, and review each image.
  2. For product images, add descriptive alt text like 'Sativa hybrid strain in glass jar' or 'CBD tincture 1500mg bottle'; for logos/decorative, use empty alt='' in Elementor settings.
  3. If using Elementor, go to each page, click an image widget, open Image settings panel, and fill the 'Alt Text' field.
  4. For bulk images, install the free plugin 'Bulk Image Alt Text' and use its admin interface to add descriptions in batch.
  5. Run a re-check using a free tool like WebAIM WAVE browser extension on your homepage to confirm all visible images now have alt text.
  6. Set a team rule: before publishing any page, click each image and confirm alt text is filled in Elementor or the WordPress Media modal.

15. 28 image(s) missing alt text

What it means (plain English)

Your site has 28 images without alt text — descriptions that screen readers use to understand images, and that search engines use to index visual content. This affects both customers using assistive technology and your search rankings. When Google can't read an image, it can't rank your site for relevant visual searches.

Why it matters for your business: Missing alt text hurts SEO visibility for product images and dispensary photos, and excludes customers using screen readers — a legal liability under ADA compliance.

Technical root cause: Images were likely uploaded or inserted via Elementor (a page builder plugin) without filling the alt text field during upload, or legacy images predate alt text best practices.

Recommended fix — step by step

  1. Log into WordPress admin → Media Library, filter by 'Unattached' or search for high-traffic pages (home, product pages, about).
  2. Open each image detail page and fill the 'Alt Text' field with a short, descriptive phrase (e.g., 'Sage Seeds NY storefront on Main Street' or 'Premium cannabis flower strain showcase').
  3. For product images, use: '[Product Name] cannabis flower strain at Sage Seeds NY' — include strain name + type for SEO.
  4. If using Elementor, open each page in Elementor editor → click image → open Image tab → fill 'Alt Text' field, then save.
  5. Install Yoast SEO plugin (if not present) → go to SEO → Readability → check 'Images' report, which will highlight missing alt on pages you care about most.
  6. Export a CSV of remaining images via Media Library → assign to team member for batch updating over 1 week.
  7. After updating, run a re-crawl using Google Search Console → Coverage report to ensure indexing improves.

16. 28 image(s) missing alt text

What it means (plain English)

Your website has 28 images without alt text — descriptive labels that screen readers use to understand images, and that search engines use to index visual content. This means visually impaired visitors can't understand product photos, and Google can't properly index your product imagery for search results.

Why it matters for your business: Missing alt text reduces SEO visibility for product searches, blocks visually impaired customers from browsing your catalog, and may expose you to accessibility compliance risk under ADA standards.

Technical root cause: Images were likely inserted into Elementor templates or WordPress without filling in the alt text field during upload. WordPress allows alt text to be skipped, so it requires deliberate entry.

Recommended fix — step by step

  1. Log into WordPress admin → Media Library → filter by 'Unattached' and review all product/category images
  2. For each image, click Edit → scroll to 'Alternative Text' field → enter a concise, keyword-relevant description (e.g., 'Purple cannabis flower strain in glass jar' not just 'image')
  3. In Elementor, edit the header template at /wp-admin/edit.php?post_type=elementor_library → click each image widget → Image tab → Alt Text field → add descriptive text
  4. For product pages, navigate to each product in WooCommerce/post editor → edit featured image and gallery images via the Image block → Alt Text field
  5. Use a plugin like WP Accessibility Checker (free) to scan and report remaining missing alt text: install from Plugins → Add New, search 'WP Accessibility Checker', activate, run scan
  6. Prioritize alt text for above-the-fold images and product photos first; batch-edit lower-priority images (backgrounds, decorative elements) second

17. Missing meta description

What it means (plain English)

Your blog category page doesn't have a meta description — the short text snippet that appears under your site name in Google search results. Search engines will generate one automatically, but it's often incomplete or poorly written. This hurts click-through rates because visitors don't see your most compelling summary before deciding to visit.

Why it matters for your business: A missing meta description on your blog category page means fewer clicks from organic search, reducing traffic to content that could educate customers and build trust with your brand.

Technical root cause: The /category/blog/ archive page is likely generated automatically by WordPress without a custom meta description field. WordPress category archives default to empty unless explicitly filled in per-category.

Recommended fix — step by step

  1. Log in to WordPress admin → go to Posts → Categories
  2. Click 'Blog' category (or whichever category is assigned to that page)
  3. Scroll to the bottom of the category edit form and look for 'Yoast SEO' or 'SEO' section (if installed); if not installed, install the free Yoast SEO plugin via Plugins → Add New
  4. In the SEO metabox, find the 'Meta description' field and write a 150–160 character description, e.g. 'Discover cannabis wellness tips, product guides, and industry news from Sage Seeds NY. Stay informed on safe consumption and strain education.'
  5. Click 'Update' to save the category
  6. Repeat for any other category or archive pages (Products, Resources, etc.) that lack descriptions

18. Mobile perf measurement failed

What it means (plain English)

Our automated performance testing tool timed out trying to load your homepage on a mobile connection — it waited 60 seconds and the page never fully loaded. This suggests either the site is extremely slow on mobile networks, or there's a resource (image, script, or plugin) that's stalling indefinitely and blocking the page from becoming interactive.

Why it matters for your business: Customers on mobile devices — your primary traffic source for a dispensary site — may see a blank screen, leave before placing an order, and report poor reviews; search engines also penalize slow mobile sites in rankings.

Technical root cause: A heavy plugin, unoptimized images, render-blocking JavaScript, or a third-party integration (chat widget, compliance tool, payment processor) is likely loading synchronously and preventing the page from reaching a 'network idle' state where all resources have finished downloading.

Recommended fix — step by step

  1. Open Chrome DevTools on a mobile device (or mobile emulation) → Network tab → reload homepage → sort by size and duration; screenshot any request over 2 MB or taking >10 seconds
  2. Log in to WordPress admin → Plugins → deactivate all non-essential plugins one at a time, testing homepage load time after each deactivation via Google PageSpeed Insights mobile tab; note which plugin(s) cause slowdown
  3. Check Appearance → Customize → homepage settings; ensure no heavy video backgrounds or sliders are set to autoplay
  4. Navigate to Media Library in WordPress admin; identify any images over 500 KB; use a tool like TinyPNG or Imagify to compress them, then re-upload
  5. Install and activate WP Rocket or W3 Total Cache plugin → enable lazy loading for images and defer non-critical JavaScript → clear cache
  6. Check if you're using a third-party widget (age gate, live chat, compliance banner); if so, open its settings and set it to load asynchronously or after page render

19. Missing core schema types: LocalBusiness

What it means (plain English)

Your homepage is missing LocalBusiness schema markup, which is structured data that tells Google your business's location, hours, phone, and services. You have Organization and WebSite data, but LocalBusiness is the missing piece that helps Google understand you're a physical place people can visit.

Why it matters for your business: Without LocalBusiness schema, your dispensary won't appear correctly in Google Maps results or local search panels, reducing foot traffic from customers searching for 'cannabis dispensary near me' or 'Sage Seeds NY hours.'

Technical root cause: Your WordPress SEO plugin (likely Yoast or Rank Math) is configured to output Organization schema but has not been set to also output LocalBusiness schema, or the local business settings are incomplete.

Recommended fix — step by step

  1. Log in to WordPress admin → SEO plugin settings (Yoast: Search Appearance; Rank Math: Titles & Meta). Look for 'Knowledge Graph' or 'Organization' section.
  2. If using Yoast: Expand 'Knowledge Graph' section and set Company Type to 'Local Business' instead of just 'Company,' then fill in Address, Phone, and Service Area fields.
  3. If using Rank Math: Go to Titles & Meta → Knowledge Graph and toggle 'Add Local Business' option to ON, then populate Name, Address, Phone, Hours, and Service Areas.
  4. Ensure your business name, full street address, city, state, zip, and phone number match your Google Business Profile exactly—mismatches prevent schema from working.
  5. If you don't see these options in your plugin, install Rank Math Free (it has robust LocalBusiness support) or use the Schema plugin by Validation Lab, then configure LocalBusiness there.
  6. Save changes and use Google's Rich Results Test (search.google.com/test/rich-results) to paste your homepage URL and confirm LocalBusiness schema now appears in the output.
  7. Submit the updated page to Google Search Console via the URL Inspection tool to expedite re-crawl.

20. Missing security header: strict-transport-security

What it means (plain English)

Your website is missing the HSTS (HTTP Strict Transport Security) header, which is a security instruction that tells browsers to always use encrypted connections (HTTPS) when visiting your site. Without it, visitors could be tricked into using unencrypted connections, exposing their data. This is especially important for a cannabis retailer handling customer orders and compliance documentation.

Why it matters for your business: Missing HSTS reduces trust signals for search rankings, increases risk of customer data interception during checkout or age verification, and signals to compliance auditors that security practices may be incomplete.

Technical root cause: The server response headers do not include 'Strict-Transport-Security' directive. While WP Engine and Cloudflare are configured, the HSTS header has not been explicitly set at the server or CDN level.

Recommended fix — step by step

  1. Log into Cloudflare dashboard → select sageseedsny.com domain → navigate to Rules → Transform Rules → HTTP Response Header Modification
  2. Create a new rule: add response header 'Strict-Transport-Security' with value 'max-age=31536000; includeSubDomains; preload'
  3. Deploy and test using curl -I https://sageseedsny.com/ in terminal — confirm 'strict-transport-security' appears in response headers
  4. If WP Engine account is accessible, verify no conflicting headers in WP Engine admin → Site Settings → Custom HTTP Headers
  5. Wait 24 hours, then monitor Google Search Console → Security & Manual Actions for any SSL certificate warnings (should clear)

21. Missing security header: content-security-policy

What it means (plain English)

Your website is missing a Content Security Policy (CSP) header — a security instruction that tells browsers which external resources (scripts, images, stylesheets) are allowed to load. Without it, malicious code can be injected into your pages more easily. This is especially important for cannabis retailers handling customer data and payments.

Why it matters for your business: A CSP breach could expose customer information, damage trust, trigger payment processor penalties, and harm your SEO ranking since security headers are a ranking factor.

Technical root cause: WordPress (especially managed hosting like WP Engine) doesn't set CSP headers by default. Cloudflare is configured on your domain but CSP rules haven't been created there or in your server config.

Recommended fix — step by step

  1. Log into Cloudflare dashboard → Security → Content Security Policy → click 'Create policy'
  2. Start with a report-only mode policy: set 'script-src self; style-src self; img-src *; connect-src self;' to test without breaking the site
  3. Monitor for 48–72 hours via Cloudflare's reporting dashboard to catch any blocked legitimate resources
  4. Once stable, contact WP Engine support (Help → Support Chat) and ask them to add CSP headers to your origin server as a backup (in case Cloudflare is bypassed)
  5. Alternatively, use a WordPress security plugin like Wordfence (free) → Tools → Security Headers → enable CSP and let it auto-generate a baseline policy
  6. Re-test homepage with securityheaders.com to confirm CSP header is present and valid

22. 37 tap targets under 44px at mobile-320

What it means (plain English)

Your homepage has 37 buttons, links, and interactive elements that are smaller than 44×44 pixels when viewed on mobile phones. This makes them hard to tap accurately—especially for people with low vision, arthritis, or anyone on a small screen. Apple and Google both recommend 44×44px as the minimum touch target size.

Why it matters for your business: Customers frustrated by tiny tap targets on mobile will abandon your site before placing orders or signing up; this directly reduces conversion and customer satisfaction, particularly for older demographics who may be more price-sensitive.

Technical root cause: Your theme or custom CSS is likely applying padding/margin constraints to buttons and links, or navigation elements are inheriting overly small font sizes without adequate spacing around them. Mobile viewport CSS may not be expanding targets proportionally.

Recommended fix — step by step

  1. Open WordPress Admin → Customize (or Appearance → Customize) → Additional CSS and search for button, a, and input[type] selectors to audit their padding and min-height values.
  2. For any interactive element under 44px, add min-width: 44px; min-height: 44px; and padding: 12px; to its CSS rule—update via Additional CSS or the theme editor.
  3. If you use a page builder (Elementica, Divi, Beaver Builder, etc.), edit each button element and set minimum dimensions to 44×44px in the element settings.
  4. Test at 320px viewport width using Chrome DevTools (F12 → toggle device toolbar → set width to 320) and click each link to confirm it's easy to tap without accidentally hitting neighbors.
  5. Prioritize navigation menu items, 'Add to Cart' buttons, age-gate buttons (critical for compliance), and footer links first.
  6. If your theme is custom-coded, ask your developer to add a mobile-first media query: @media (max-width: 600px) { button, a { min-height: 44px; min-width: 44px; } }
  7. Run your homepage through WebAIM contrast checker and WAVE (wave.webaim.org) after changes to confirm no new issues introduced.

23. 37 tap targets under 44px at mobile-375

What it means (plain English)

Your website has 37 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile devices. This makes them hard to tap accurately, especially for people with larger fingers, tremors, or vision impairments. Mobile visitors will struggle to click menus, add-to-cart buttons, or navigation links without accidentally hitting the wrong target.

Why it matters for your business: Customers browsing on phones will abandon carts or leave your site due to frustration, directly reducing mobile conversions and revenue — particularly critical for a dispensary where age verification and checkout are mobile-heavy flows.

Technical root cause: WordPress themes often inherit button and link styling from CSS frameworks that don't meet WCAG 2.5.5 (44×44px minimum). This is compounded by custom CSS that overrides padding/sizing, or plugins injecting undersized UI elements without accessible spacing.

Recommended fix — step by step

  1. Audit all interactive elements on mobile: use Chrome DevTools (F12 → Toggle device toolbar → 375px width) and hover over buttons/links to check computed size; screenshot or list any under 44×44.
  2. In WordPress admin, go to Appearance → Customize → Additional CSS and add a global rule: button, a[role='button'], input[type='submit'], .wp-block-button__link { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  3. Check your active theme's CSS file (Appearance → Theme File Editor → style.css or child-theme stylesheet) for hardcoded button heights; increase any under 44px and test on mobile.
  4. Review critical user journeys on 375px viewport: age-gate button, 'Add to Bag' on product pages, menu toggle, checkout buttons — ensure each is at least 44×44 with no padding reduction on mobile.
  5. If using WooCommerce, go to WooCommerce → Settings → Products and verify button sizing; if buttons remain small, add to theme's mobile media query: @media (max-width: 768px) { button.single_add_to_cart_button { min-height: 48px; min-width: 100%; } }
  6. Test with actual touch on an iPhone/Android device at 375px to confirm targets are easy to tap without hitting adjacent elements.
  7. Use WAVE (browser extension: wave.webaim.org/extension) on mobile view to flag remaining target-size violations before launch.

24. 37 tap targets under 44px at mobile-414

What it means (plain English)

Your website has 37 buttons, links, and clickable elements on mobile that are smaller than 44×44 pixels. This is the minimum size recommended by accessibility standards (WCAG 2.5.5) to ensure people with dexterity challenges, tremors, or using touch on mobile devices can tap them reliably without accidentally hitting the wrong target. Customers will experience higher error rates and frustration on phones.

Why it matters for your business: Smaller tap targets increase cart abandonment and order errors on mobile, where a significant portion of cannabis retail customers browse and purchase; they also expose you to accessibility complaints and potential ADA litigation risk.

Technical root cause: Mobile CSS is either not scaling interactive elements proportionally, or the design was built for desktop-first without mobile touch considerations. WordPress themes often ship with button padding and spacing that meet desktop mouse targets but fail mobile touch thresholds.

Recommended fix — step by step

  1. Use Chrome DevTools (F12 → device toolbar, set to 414px width) to inspect and list which elements are undersized (common culprits: product add-to-cart buttons, quantity spinners, navigation links, search icon).
  2. In your WordPress theme customizer (Appearance → Customize) or child theme CSS, add a mobile breakpoint rule: @media (max-width: 768px) { button, a.btn, input[type='button'] { min-height: 44px; min-width: 44px; padding: 12px 16px !important; } } to ensure all interactive elements meet the minimum.
  3. For form controls (quantity selectors, radio buttons), increase padding: in your theme's mobile CSS add input[type='radio'], input[type='checkbox'] { width: 44px; height: 44px; margin: 8px; }.
  4. Test spacing between tap targets—use a ruler or Chrome DevTools measurement to confirm 8px minimum gap between interactive elements to prevent mis-taps.
  5. If using a page builder (Elementor, Divi, etc.), select each small button widget and manually set min-height: 44px and min-width: 44px in the responsive mobile settings.
  6. Use WAVE browser extension (wave.webaim.org) or axe DevTools to re-scan mobile view and confirm count drops to 0 undersized targets.
  7. Test on a physical mobile device (or use Android emulator in DevTools) by attempting to tap navigation and cart buttons; confirm no accidental taps.

25. 37 tap targets under 44px at tablet-768

What it means (plain English)

Your website has 37 clickable buttons, links, and form fields that are smaller than 44×44 pixels when viewed on a tablet. This makes them hard to tap accurately, especially for people with tremors, vision problems, or using touch devices. WCAG 2.5.5 is a web accessibility standard that requires minimum tap target sizes to ensure all visitors can use your site.

Why it matters for your business: Customers browsing on tablets (a common device in retail) will struggle to click menu items, product links, and checkout buttons, leading to abandoned visits and lost sales—plus you're exposed to accessibility lawsuit risk.

Technical root cause: CSS padding, margins, or button dimensions are set too small, or interactive elements lack sufficient spacing. This is often due to a responsive design that didn't account for touch targets at medium breakpoints (768px width).

Recommended fix — step by step

  1. Install and activate the 'WAVE' accessibility checker plugin (free in WordPress plugin repository) and run a scan of your homepage to identify which specific elements are too small.
  2. Open WordPress → Appearance → Customize → (or edit your active theme's CSS). Add a rule for button and link tap targets: 'min-height: 44px; min-width: 44px; padding: 12px 16px;' and test on a tablet-width browser window (768px).
  3. For mobile menu toggles and social icons in headers/footers, inspect them with Chrome DevTools (F12 → Device Toolbar → Tablet mode) and increase padding or size until each is at least 44×44.
  4. Check your product grid and any category filters—ensure buttons have min-height: 44px and add vertical margin between items to prevent overlapping tap zones.
  5. Test the updated site at tablet width (768px) using a real iPad or browser DevTools emulation, tapping each button to confirm it's now easy to activate.
  6. If you use a page builder (Elementica, Divi, etc.), adjust button settings in the builder UI to set minimum height and padding rather than editing raw CSS.

26. Lighthouse bestPractices (mobile): 61/100

What it means (plain English)

Your site's mobile best practices score is 61 out of 100—well below the healthy threshold of 90. This score reflects issues like outdated browser APIs, missing security headers, or unoptimized third-party scripts that could expose visitors to risks or slow down their experience. The Lighthouse report in your audit files lists the specific culprits.

Why it matters for your business: A low best practices score signals to search engines and users that your site may have security or stability problems, which can suppress mobile search rankings and increase bounce rates—especially critical for a cannabis retailer where trust and compliance perception directly affect conversion.

Technical root cause: WordPress sites commonly accumulate issues through outdated plugins, poorly configured security settings, missing HTTP security headers (like X-Frame-Options or Content-Security-Policy), and unvetted third-party scripts (analytics, ads, chat widgets) that Lighthouse flags as risky or deprecated.

Recommended fix — step by step

  1. Download the full Lighthouse HTML report from your audit files, open it in a browser, and scroll to 'Best Practices' section to identify the 3–5 specific failures (e.g., 'Avoid deprecated APIs', 'Missing security headers')
  2. Install the free plugin 'WP Security Audit Log' (WordPress plugin directory) and run a security scan to surface missing headers and outdated code
  3. Go to your WordPress admin → Plugins → Inactive Plugins and deactivate any you don't actively use; check each active plugin's last update date—update or remove any not updated in 6+ months
  4. Add security headers via your hosting control panel (cPanel / Plesk) or by installing 'Really Simple SSL' plugin and enabling its 'Security Headers' option (Dashboard → SSL → Security Headers)
  5. Audit third-party scripts (Google Analytics, Facebook Pixel, chat widgets) in your page source; ensure each is from an official CDN and not injected by malware—use 'Sucuri Scanner' plugin to detect malicious code
  6. Test again with Google PageSpeed Insights after each fix; re-run Lighthouse mobile report when complete to confirm score rises above 80

27. Lighthouse perf (desktop): 63/100

What it means (plain English)

Your homepage takes 12.9 seconds for the largest visual element to appear on screen, well above the 2.5-second target that keeps visitors engaged. This slow load is driven by unoptimized images, render-blocking scripts, and possibly third-party embeds. While your SEO score is strong (92), performance directly affects how many visitors stay long enough to convert.

Why it matters for your business: Slow pages cause cart abandonment and reduce search ranking in Google's algorithm; visitors on mobile or slower connections will bounce before seeing your products, costing direct sales.

Technical root cause: Large, uncompressed image files and JavaScript that runs before the page displays are the primary culprits. WordPress plugins (analytics, pop-ups, ads) often load synchronously, blocking the browser from rendering content.

Recommended fix — step by step

  1. Install ShortPixel or Imagify plugin (WordPress → Plugins → Add New) and compress all images on the homepage; set to lossy WebP format and enable lazy loading.
  2. Open Lighthouse report at the HTML path shown; identify 'Eliminate render-blocking resources' and 'Defer unused CSS' — note which scripts/stylesheets are listed.
  3. In WordPress admin, go to Settings → WPRocket (or Autoptimize if WPRocket not installed) → enable 'Defer JavaScript execution' and 'Optimize CSS Delivery'.
  4. Check Plugins → Active Plugins for unnecessary tools (analytics, social widgets, pop-ups); deactivate any not essential to your business, then re-test with Lighthouse.
  5. If using Google Fonts or Typekit, add 'font-display: swap' in your theme's functions.php or use the plugin Bunny Fonts (self-hosted) instead to avoid external requests.
  6. Audit third-party embeds (maps, chat widgets, social feeds) on your homepage — move below-the-fold content to a separate page if possible, or load asynchronously.

28. Missing meta description

What it means (plain English)

Your /category/events/ page doesn't have a meta description — that's the 160-character summary that appears below your page title in Google search results. Without it, Google may generate its own, which often looks unprofessional and may not mention what makes your events stand out. This is especially important for a cannabis business where trust and clarity matter.

Why it matters for your business: Missing descriptions reduce click-through rates from search results; potential customers see a generic snippet instead of a compelling reason to visit your events page, directly impacting foot traffic and event attendance.

Technical root cause: The WordPress events category page likely has no custom meta description assigned in the SEO plugin (Yoast, Rank Math, or The SEO Framework) or in theme settings, so search engines default to auto-generation.

Recommended fix — step by step

  1. Log into WordPress admin → Posts → Categories, find 'Events', and open the edit page
  2. Scroll to the SEO plugin section (Yoast/Rank Math/etc.) and locate the 'Meta Description' field
  3. Write a description like: 'Join Sage Seeds NY for cannabis education, tastings, and community events. Discover exclusive offerings and connect with fellow enthusiasts.'
  4. Keep it between 150–160 characters so it displays fully in Google results
  5. Click Save/Update
  6. Wait 24–48 hours, then search 'site:sageseedsny.com events' in Google to verify the new description appears

29. Missing security header: x-frame-options

What it means (plain English)

The X-Frame-Options header tells browsers whether your site can be displayed inside an iframe (a frame within another website). This header is missing from your homepage, which means someone could embed your site inside their own malicious site without restriction — a technique called clickjacking. You're behind Cloudflare, which adds some protection, but the header should be explicitly set at the application level.

Why it matters for your business: A clickjacking attack could trick customers into taking unintended actions (like placing orders or sharing payment info) while viewing your site inside a hidden frame on an attacker's page, damaging trust and creating liability.

Technical root cause: WordPress and WP Engine do not set X-Frame-Options by default. Cloudflare provides some mitigations but does not replace the need for server-side header configuration.

Recommended fix — step by step

  1. Log in to your WP Engine account → Environments → select your production environment → Cache Settings → check if 'Cache for Logged-In Users' is enabled; if so, disable it to ensure headers are sent consistently
  2. Install the 'Security Headers' plugin (search 'Security Headers' in WordPress admin → Plugins → Add New) and activate it
  3. Go to Settings → Security Headers → set 'X-Frame-Options' to 'SAMEORIGIN' (allows your site to frame itself but prevents external embedding)
  4. If using a custom header plugin, alternatively contact WP Engine support and request they add 'X-Frame-Options: SAMEORIGIN' to your .htaccess or nginx config (vendor-escalate path)
  5. Verify the header is present by running a test at https://securityheaders.com — enter your homepage URL and confirm X-Frame-Options appears in the report
  6. For maximum security, also add 'X-Content-Type-Options: nosniff' via the same Security Headers plugin to prevent MIME-type sniffing attacks

30. 4 console errors on homepage

Detail

High console error volume suggests hydration or runtime problems.

31. Missing meta description

Detail

Page has no meta description.

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

Detail

Ensure landmarks are unique

Impact: moderate

WCAG:

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


P3 — 140 findings

1. robots.txt does not reference sitemap

What it means (plain English)

Your robots.txt file (the instruction sheet you give to Google's crawlers) doesn't tell them where to find your XML sitemap — a complete list of all your pages. Without this pointer, Google has to discover your pages the hard way, which is slower and may miss some content, especially newer product pages or location listings.

Why it matters for your business: Missing sitemap references delay Google's indexing of new products, menus, or license updates, which means slower visibility in search results for customers looking for your strains or location info.

Technical root cause: The robots.txt file exists but lacks a 'Sitemap:' directive. WordPress typically auto-generates an XML sitemap (usually at /sitemap.xml), but robots.txt must explicitly point to it.

Recommended fix — step by step

  1. Log into WordPress admin → Settings → Reading and confirm that 'Search engine visibility' is NOT checked (should be checked to allow indexing).
  2. Verify your XML sitemap exists by visiting https://sageseedsny.com/sitemap.xml in your browser — you should see a list of pages in XML format.
  3. Access your robots.txt file via FTP/SFTP or WordPress file manager (if your host provides one). If using a plugin like Yoast SEO: go to Yoast SEO → Tools → File Editor → robots.txt.
  4. Add a new line at the end: Sitemap: https://sageseedsny.com/sitemap.xml
  5. Save and verify the change by refreshing https://sageseedsny.com/robots.txt — you should see the Sitemap line.
  6. Wait 24–48 hours, then log into Google Search Console → Sitemaps → and manually submit your sitemap URL to confirm Google fetches it.

2. Title length 17 chars

What it means (plain English)

Your homepage title is only 17 characters long. Search engines like Google use page titles as a ranking signal and to display in search results. A title that's too short misses an opportunity to include keywords and context that helps both search engines and potential customers understand what your page is about.

Why it matters for your business: Customers searching for cannabis products in New York are less likely to click your listing in Google results because your title doesn't clearly communicate what you offer (products, location, or value proposition).

Technical root cause: The WordPress site title or homepage-specific SEO title field is either set to just the site name or a generic 'Home' prefix without descriptive keywords about the business.

Recommended fix — step by step

  1. Log in to WordPress admin → go to Settings → General and note your current Site Title
  2. Install Yoast SEO (if not already active) via Plugins → Add New → search 'Yoast SEO' → Install & Activate
  3. Go to the homepage edit screen (Pages → Homepage or Dashboard → Home post)
  4. Scroll to the Yoast SEO metabox at the bottom and click the 'Edit snippet' preview
  5. In the SEO title field, replace 'Home | Sage Seeds' with something like 'Cannabis Dispensary & Wellness Products | Sage Seeds NY' (aim for 50–60 characters)
  6. Make sure the title includes: (1) what you sell, (2) location or 'NY', and (3) your brand name
  7. Click 'Save' or 'Publish' and verify the title change takes effect

3. Missing OpenGraph metadata

What it means (plain English)

OpenGraph metadata is code in your page header that tells social media platforms (Facebook, Instagram, LinkedIn) what image and text to show when someone shares your link. Without it, social posts look bland and may not display your branding—just a generic preview or nothing at all.

Why it matters for your business: When customers share your product pages or homepage on social media, poor preview images reduce click-through rates and brand perception, directly limiting word-of-mouth traffic and social referral sales.

Technical root cause: WordPress theme or site configuration is not generating og:title and og:image meta tags in the page <head>. This is typically missing when an SEO plugin is not active or is misconfigured, or when the theme lacks built-in social sharing support.

Recommended fix — step by step

  1. Install and activate the free Yoast SEO plugin (WordPress.org → Plugins → Add New → search 'Yoast SEO' → Install Now → Activate)
  2. Go to Yoast SEO → Social → toggle 'Add Open Graph meta tags' to ON
  3. Set a default featured image in Yoast SEO → Social → upload a 1200×630px brand/logo image for fallback
  4. On the homepage, go to Edit → Yoast SEO box (bottom) → Social Preview tab → manually set og:title to your brand name + primary keyword (e.g., 'Sage Seeds NY – Cannabis Seeds & Wellness')
  5. Upload a 1200×630px hero image and set it as featured image on the homepage so it auto-populates og:image
  6. Install the free Meta Tags Viewer Chrome extension and test: visit your homepage, open the extension, confirm og:title and og:image are present
  7. Repeat steps 4–5 for your top 3 product/category pages

4. Missing OpenGraph metadata

What it means (plain English)

When someone shares a link to your 'Your First Visit' page on Facebook, Instagram, or messaging apps, those platforms don't know what image or title to display. Instead of showing your cannabis dispensary's branding, the share might look blank or generic. This is called OpenGraph metadata — it's HTML code that tells social platforms how to preview your content.

Why it matters for your business: Poor social shares reduce click-through rates from organic social traffic, especially since cannabis dispensaries often rely on word-of-mouth and community shares; customers won't see an appealing preview when friends share your site.

Technical root cause: The page is missing og:title, og:image, and likely og:description meta tags in the HTML head. WordPress doesn't automatically generate these unless a plugin (like Yoast SEO, All in One SEO, or Rank Math) is installed and configured, or they're manually added to the theme.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins → Search for 'Yoast SEO' (or 'Rank Math' or 'All in One SEO') → Install and Activate the plugin.
  2. Go to the plugin settings (usually left sidebar under 'SEO') → Social → Facebook/Open Graph → Enable it and set default og:image (use your logo or a branded hero image).
  3. Navigate to your 'Your First Visit' page → Edit → Scroll to the SEO plugin box → Paste a compelling title (under 60 chars) and set a custom og:image (ideally 1200×630px showing your dispensary or a welcoming visual).
  4. Save the page and test the share preview using Facebook's Sharing Debugger (facebook.com/sharing/debugger) → paste the URL → check the preview renders correctly.
  5. Repeat for your other high-traffic pages (homepage, product pages, about page).

5. Title length 77 chars

What it means (plain English)

Your page title is 77 characters long, but search engines like Google typically display 50–60 characters on desktop and 40 characters on mobile before truncating with ellipsis. This title will be cut off in search results, hiding key information like your brand name or the specific product benefit.

Why it matters for your business: Potential customers searching for pre-roll guides won't see your full message in Google results, reducing click-through rate and brand visibility.

Technical root cause: The title tag in the page's HTML head section exceeds the optimal display width. WordPress or your SEO plugin is not enforcing length limits when titles are saved.

Recommended fix — step by step

  1. Log into WordPress admin → Pages → Edit 'Choosing Your First Pre Roll' page
  2. Scroll to the SEO section (Yoast SEO, Rank Math, or your active plugin) and find the 'SEO Title' field
  3. Trim the title to 55–60 characters. Example: 'How to Choose Your First Pre Roll | Sage Seeds NY' (52 chars)
  4. Verify the plugin's preview shows the full title without ellipsis
  5. Click Update
  6. Check Google Search Console (Google.com/webmasters) → Pages report → re-index this URL to confirm the new title displays

6. Missing OpenGraph metadata

What it means (plain English)

OpenGraph tags are metadata snippets that control how your pages appear when shared on Facebook, Instagram, LinkedIn, and other social platforms. Without them, those platforms display a generic preview instead of your chosen title and image, making your content look unprofessional and less clickable when customers share it.

Why it matters for your business: Missing OpenGraph tags reduce click-through rates on social shares, which directly impacts traffic from the platforms where cannabis consumers discover products and recommendations.

Technical root cause: The WordPress theme or SEO plugin is not automatically generating og:title and og:image meta tags, or they were not manually added to this specific post's settings.

Recommended fix — step by step

  1. Install Yoast SEO (free version) if not already active: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install and Activate.
  2. Edit the affected post: WordPress Admin → Posts → 'Choosing Your First Pre-Roll' → scroll to Yoast SEO panel at bottom.
  3. Fill in the 'SEO Title' field (if empty) with a compelling 50–60 character title.
  4. Upload or select a featured image: Post editor → Featured Image (right sidebar) → choose a high-quality product or lifestyle image at least 1200×630px.
  5. Check the Yoast preview to confirm og:title and og:image are now populated.
  6. Repeat for all other posts missing OpenGraph tags (use Reports → SEO Issues to find them).
  7. Optional: In Yoast SEO → Integrations → Social, enable 'Facebook' and 'Twitter' to auto-generate and preview social cards.

7. Title length 72 chars

What it means (plain English)

Your page title is 72 characters long, but search engines display only 50–60 characters on desktop and 40 characters on mobile before truncating with an ellipsis. This particular title will be cut off, hiding the key message 'Sage Seeds' and reducing click-through rates from search results.

Why it matters for your business: Truncated titles reduce organic traffic because potential customers see incomplete, less compelling snippets in Google search results and may click competitors instead.

Technical root cause: The WordPress page or post title, or the Yoast/Rank Math SEO plugin's custom meta title field, contains 72 characters instead of staying within the 50–60 character sweet spot for consistent display.

Recommended fix — step by step

  1. Log into WordPress admin → Pages or Posts → Edit 'Choosing Your First Vape' post
  2. If using Yoast SEO: scroll to Yoast SEO meta box → click 'Edit snippet' → rewrite the meta title to: 'First Vape Guide | Sage Seeds NY' (48 chars)
  3. If using Rank Math: scroll to Rank Math meta box → click the title field → shorten to 50–60 chars
  4. If neither plugin is active, edit the native WordPress title field to the shorter version
  5. Preview the snippet in the plugin's live preview to confirm it displays fully on mobile
  6. Repeat for any other pages over 65 characters (check Reports → SEO in Yoast or Rank Math dashboard)

8. Missing OpenGraph metadata

What it means (plain English)

Open Graph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, the platform guesses—often showing generic or broken previews. This affects posts about your products or blog content shared by staff or customers on social channels.

Why it matters for your business: Poor social preview appearance reduces click-through rates on shared posts, weakening word-of-mouth and community engagement on platforms where cannabis retailers often build their audience.

Technical root cause: The WordPress theme or SEO plugin (if installed) is not generating or outputting og:title and og:image meta tags in the page <head>. This is typically missing from the theme template or disabled in plugin settings.

Recommended fix — step by step

  1. Install Yoast SEO or Rank Math (free tier) from WordPress Plugins if not already active.
  2. Log in to WordPress admin → Plugins → search 'Yoast SEO' → click Install Now → Activate.
  3. Go to the post editor for https://sageseedsny.com/choosing-your-first-vape/ → scroll to the SEO plugin panel (bottom of editor).
  4. In Yoast/Rank Math, ensure 'Focus Keyphrase' is set and upload a featured image (used for og:image).
  5. Check plugin settings: WordPress admin → SEO (Yoast/Rank Math) → Social → verify 'Add Open Graph tags' is enabled.
  6. Publish/update the post, then test using Facebook Sharing Debugger (facebook.com/developers → Tools → Sharing Debugger) to confirm og:title and og:image appear.

9. Title length 100 chars

What it means (plain English)

Your page title is 100 characters long, but search engines like Google typically display only 50–60 characters in search results before truncating with an ellipsis. This means potential customers see a cut-off headline that may not clearly communicate your value proposition.

Why it matters for your business: A truncated title in search results reduces click-through rates because visitors can't read your full message and may skip your page for competitors with clearer headlines.

Technical root cause: The WordPress page title (set in Yoast SEO or your theme settings) exceeds the recommended 50–60 character limit that Google displays in desktop search results.

Recommended fix — step by step

  1. Log in to WordPress admin → edit the 'Valentine's Day Cannabis Guide' post
  2. Open the Yoast SEO meta box at the bottom of the post editor
  3. Click on the 'Title' field and shorten it to 50–60 characters; try: 'Valentine's Day Cannabis Guide: Find Your Perfect Fit'
  4. Check the Yoast preview to confirm the title displays completely
  5. Repeat this audit for 5–10 other high-traffic posts to identify similar overages
  6. Save and publish the changes

10. Missing OpenGraph metadata

What it means (plain English)

OpenGraph metadata are HTML tags that control how your pages appear when shared on Facebook, Instagram, LinkedIn, and other social platforms. Without them, your Valentine's Day guide (and likely other pages) show up as plain links with no image or custom description—making them far less likely to be clicked when customers share them.

Why it matters for your business: Cannabis retailers rely heavily on social sharing for organic reach; missing OpenGraph tags reduce click-through rates on shared content by 30–50%, directly limiting customer acquisition and engagement.

Technical root cause: The WordPress page or template is missing og:title, og:image, og:description, and og:url meta tags in the <head> section. Most SEO plugins (Yoast, Rank Math, All in One SEO) have toggle options for these tags that may be disabled or not configured.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins → check if Yoast SEO, Rank Math, or All in One SEO Pack is installed; if not, install one (Yoast is most user-friendly).
  2. Activate the plugin and go to Settings → (Plugin name) → Social settings → enable 'Add Open Graph meta tags' and 'Add Twitter Card meta tags'.
  3. Navigate to Posts → Edit the Valentine's Day guide post → scroll to the plugin's meta box (usually at bottom) → fill in 'Social Title' (unique, ≤60 chars), 'Social Description' (≤160 chars), and upload a 'Social Image' (1200×630px recommended).
  4. If no plugin is installed, add this code to your theme's functions.php (or use a code-snippets plugin): Paste the following into a custom block to add basic og tags to <head>: <meta property='og:title' content='YOUR PAGE TITLE'> <meta property='og:image' content='URL TO 1200x630 IMAGE'> <meta property='og:description' content='YOUR DESCRIPTION'> <meta property='og:url' content='PAGE URL'>.
  5. Repeat for all high-traffic blog posts and product pages (at minimum: homepage, top 10 blog posts, product pages).
  6. Test using Facebook Sharing Debugger (facebook.com/sharing/debugger/) — paste your page URL and verify og:title, og:image, and og:description appear correctly.

11. Missing Twitter card

What it means (plain English)

Your blog post pages are missing Twitter Card meta tags — special codes that tell Twitter (now X) how to display your content when someone shares a link on that platform. Without these tags, shares appear as plain text with no image or formatted preview, which looks unprofessional and reduces click-through rates from social traffic.

Why it matters for your business: Lost opportunity to drive traffic from X/Twitter shares; competitors with properly formatted cards get higher engagement and more visits from social platforms.

Technical root cause: The WordPress site is not outputting twitter:card, twitter:title, twitter:description, and twitter:image meta tags in the <head> section of blog post pages. This is typically a theme or plugin configuration gap.

Recommended fix — step by step

  1. Install Yoast SEO (if not already active) or use Rank Math: both auto-generate Twitter cards. Go to WordPress Admin → Plugins → Add New → search 'Yoast SEO' or 'Rank Math' → Install and Activate.
  2. If using Yoast: navigate to Admin → Yoast SEO → Social → Twitter and toggle 'Add Open Graph meta tags' ON. Enter your X/Twitter handle under 'Twitter username'.
  3. If using Rank Math: go to Admin → Rank Math → Social → Twitter and enable the option. Add your Twitter handle in the settings.
  4. Edit the Valentine's Day post (and all blog posts going forward) to ensure featured image is set. Yoast/Rank Math will auto-pull this for the card.
  5. Test the fix by visiting https://cards-dev.twitter.com/ and pasting your blog post URL. You should see the card preview with image, title, and description.

12. Missing OpenGraph metadata

What it means (plain English)

When your blog post is shared on Facebook, Instagram, or other social platforms, those sites pull a preview image and title from special metadata tags called OpenGraph tags. Without them, your post shows up as a plain link with no image or formatted preview, making people less likely to click through.

Why it matters for your business: Shared blog content drives traffic and brand awareness for dispensaries; missing preview images reduce click-through rates on social media by 30-50%, directly cutting discovery and foot traffic.

Technical root cause: WordPress is not automatically generating og:title and og:image meta tags for this blog post. Either the site lacks an SEO plugin configured to do this, or the plugin is disabled/misconfigured for blog posts.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins. Search for and install 'Yoast SEO' (free version) if not already active.
  2. Go to Yoast SEO → Settings → Social. Toggle 'Add Open Graph meta tags' to ON.
  3. Navigate to Posts → Edit the 'Super Bowl: What to Smoke Guide' post. Scroll to the Yoast SEO meta box at bottom. Ensure 'Focus Keyphrase' is filled, and upload or select a featured image (used for og:image).
  4. Scroll to Yoast SEO Social section within that post editor. Verify the preview shows a formatted title and image.
  5. Click Update and test by pasting the URL into Facebook's Sharing Debugger (facebook.com/sharer/tools/debug/) to confirm the preview renders.

13. Missing OpenGraph metadata

What it means (plain English)

OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares a link. Without them, the platform guesses—often poorly—and you get no image, a generic title, or irrelevant text in the preview. This affects how appealing your shared links look to potential customers.

Why it matters for your business: When staff or customers share your deals page on Facebook or Instagram, it appears without your branding or product image, reducing click-through rates and making the post look unprofessional or spammy.

Technical root cause: The WordPress theme or page template does not include og:title and og:image meta tags in the HTML head. Either the theme lacks built-in OpenGraph support, or the SEO plugin (if present) is not configured to generate these tags for this specific post.

Recommended fix — step by step

  1. Install or verify Yoast SEO, RankMath, or All in One SEO is active: go to Plugins → search 'yoast' (or 'rankmath') → activate if not already on
  2. Edit the affected post (Posts → Best Deals This Weekend) and scroll to the SEO plugin section at the bottom
  3. Set the 'SEO title' field to a compelling 60-character title (e.g., 'Weekend Deals – Sage Seeds NY Cannabis')
  4. Upload or select a featured image (1200×630px recommended) in the post editor; this auto-populates og:image
  5. In the SEO plugin, confirm the 'Social' or 'OpenGraph' tab shows og:title and og:image preview; if not, enable it in plugin settings → Social
  6. Save the post and test the link in Facebook's Sharing Debugger (facebook.com/sharedebugger) to verify the preview now displays correctly
  7. Apply the same fix to other deal/promotional posts to maintain consistency

14. Missing Twitter card

What it means (plain English)

Your blog post pages are missing Twitter card meta tags, which are snippets of code that tell Twitter (now X) how to display your content when someone shares a link. Without them, social shares appear plain and unformatted, making them less likely to catch attention in feeds.

Why it matters for your business: Reduced click-through rates on social media shares of your promotions and blog content, which directly impacts traffic and customer acquisition for your wellness retail business.

Technical root cause: The page header lacks the <meta name="twitter:card"> and related tags (twitter:title, twitter:description, twitter:image) that social platforms use to render rich preview cards.

Recommended fix — step by step

  1. Install the Yoast SEO or Rank Math plugin (if not already active) via WordPress Admin → Plugins → Add New
  2. In the plugin settings (Yoast: SEO → Social or Rank Math: Settings → Social), enable 'Twitter/X integration'
  3. Paste your Twitter/X username (e.g., @sageseedsny) into the social profile field
  4. Edit the affected post (Best Deals This Weekend) and scroll to the Yoast/Rank Math panel
  5. Set a custom 'Social Title' (max 60 chars) and 'Social Description' (max 160 chars) optimized for clicks
  6. Upload or select a featured image at least 1200×630px; this will auto-populate as the twitter:image
  7. Publish the update, then test the post URL at https://cards-dev.twitter.com/validator to confirm the card renders

15. Missing OpenGraph metadata

What it means (plain English)

When someone shares this page on Facebook, Instagram, or other social platforms, those sites don't know what title or image to display. Instead of showing your brand name and product photo, the share will appear bare or generic, making people less likely to click through.

Why it matters for your business: Poor social sharing appearance reduces click-through rates from social media traffic, which is a key customer acquisition channel for cannabis retailers.

Technical root cause: The page is missing og:title and og:image meta tags in the HTML head section. WordPress doesn't automatically generate these for all post types unless a plugin or custom code adds them.

Recommended fix — step by step

  1. Install Yoast SEO plugin (free version): Dashboard → Plugins → Add New → search 'Yoast SEO' → Install Now → Activate
  2. Go to the brand spotlight post in WordPress editor → scroll to Yoast SEO sidebar → click 'Social' tab
  3. In the Facebook section, add a custom og:title (e.g., 'Brand Spotlight: Grassroots Sage Seeds') and upload or select the og:image (use a 1200×630px product photo or brand image)
  4. Repeat this for all key product and content pages in your brand spotlight series
  5. Alternatively, if using a different SEO plugin (e.g., Rank Math, All in One SEO), access the same settings in that plugin's social preview panel and fill in og:title and og:image
  6. Test the fix: visit facebook.com/sharer/dialog?u=https://sageseedsny.com/brand-spotlight-of-the-week-grassroots-sage-seeds/ to preview the social card

16. Missing Twitter card

What it means (plain English)

Your blog post about International Women's Day is missing a Twitter card — a snippet of metadata that tells Twitter how to display your link when someone shares it. Without this, Twitter will auto-generate a plain preview instead of showing your chosen title, image, and description, making the post less appealing when shared on that platform.

Why it matters for your business: Missing Twitter cards reduce click-through rates on social shares, which means fewer visitors from Twitter referrals and lower engagement on a platform where cannabis wellness communities are active.

Technical root cause: The WordPress page is not outputting the twitter:card, twitter:title, twitter:description, and twitter:image meta tags in the HTML <head>. This is typically missing when the active SEO plugin (Yoast, Rank Math, etc.) is not configured for social card output, or no plugin is handling it.

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins and confirm which SEO plugin is active (Yoast SEO, Rank Math, All in One SEO, etc.).
  2. If using Yoast SEO: Go to Yoast SEO → Social → Twitter tab → enable 'Add Twitter card meta tags' and set a default image.
  3. If using Rank Math: Go to Rank Math → Social Settings → Twitter tab → enable Twitter Card and select card type (Summary with Large Image recommended).
  4. If using All in One SEO: Go to All in One SEO → Social Networks → Twitter → enable Twitter Card and choose card type.
  5. Edit the affected post (International Women's Day) → scroll to the SEO plugin's social section → upload or select a high-quality image for Twitter preview.
  6. Save and re-check the URL using Twitter's Card Validator (cards-dev.twitter.com/validator) to confirm the card renders correctly.
  7. Repeat for other blog posts to ensure consistency across your wellness content.

17. Missing Twitter card

What it means (plain English)

Your blog post pages are missing a Twitter Card meta tag—a small piece of code that tells Twitter (X) how to display your content when someone shares a link. Without it, Twitter shows a generic preview instead of your custom title, description, and image, making shares less engaging and less likely to drive clicks back to your site.

Why it matters for your business: Missing Twitter Cards reduce click-through rates on social shares and hurt brand consistency when customers share your content on Twitter/X, directly impacting referral traffic and brand visibility in social feeds.

Technical root cause: The WordPress head section is not including the <meta name="twitter:card" content="summary_large_image"> tag and related Twitter-specific open graph meta tags (twitter:title, twitter:description, twitter:image) for shared content.

Recommended fix — step by step

  1. Install the Yoast SEO or Rank Math plugin if not already active (both handle Twitter Cards automatically).
  2. If using Yoast: go to WordPress admin → SEO → Social, click the 'X (formerly Twitter)' tab, toggle on 'Add Twitter Card meta tags', and set your default Twitter account handle.
  3. If using Rank Math: go to WordPress admin → Rank Math → Settings → Social → Twitter, enable 'Twitter Card' and set card type to 'Summary Large Image'.
  4. If you prefer manual implementation without a plugin, add this to your theme's functions.php or use a custom header code plugin: <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@YourTwitterHandle"> <meta name="twitter:title" content="[POST_TITLE]"> <meta name="twitter:description" content="[POST_EXCERPT]"> <meta name="twitter:image" content="[FEATURED_IMAGE]"> (replace bracketed values with dynamic post data).
  5. Test your blog post URL using Twitter's Card Validator (card-validator.twitter.com) to confirm the tag renders correctly.
  6. Repeat the test for 2–3 recent blog posts to ensure consistency across content.

18. Description length 74 chars

What it means (plain English)

The meta description (the text Google shows below your page title in search results) is only 74 characters long. Google recommends 80–160 characters so your full message appears in search results instead of being cut off. This page's description is slightly too short to take full advantage of search visibility.

Why it matters for your business: A truncated description may discourage clicks from search results, reducing traffic to promotional pages like this discount offer.

Technical root cause: The meta description tag for this page was written too briefly, likely during initial content creation without a character count check.

Recommended fix — step by step

  1. Log into WordPress admin → Pages/Posts → find 'April 2nd 25% off Rove 4-7pm' post
  2. Scroll to the SEO section (typically Yoast SEO plugin) → Meta description field
  3. Expand the current description to 80–160 characters. Example: 'Join us April 2nd for 25% off Rove products, 4–7pm. Limited-time wellness discount at Sage Seeds NY. In-store only.'
  4. Click Preview to confirm Google's display matches your intent
  5. Save the post
  6. Repeat this check for other promotional or product pages with short descriptions using a site audit tool like Google Search Console → Pages → sort by description length

19. Missing OpenGraph metadata

What it means (plain English)

OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) what image and text to show when someone shares your page. Without them, social shares appear as plain links with no preview image or description, which makes your dispensary look less professional and reduces click-through rates from social traffic.

Why it matters for your business: Missing OpenGraph metadata means your promotional posts (like this April 2nd Rove discount) get shared on social media without an eye-catching preview image, reducing traffic back to your site and losing visibility for time-sensitive deals.

Technical root cause: The WordPress theme or page template is not inserting og:title and og:image meta tags into the page's <head> section. This is typically handled by an SEO plugin (Yoast, Rank Math, All in One SEO) or hardcoded into the theme.

Recommended fix — step by step

  1. Install Yoast SEO (free tier) via WordPress Admin > Plugins > Add New, search 'Yoast SEO', click Install Now.
  2. Activate the plugin and go to Yoast SEO > General settings > Integrations, enable OpenGraph.
  3. Go to the April 2nd event post (Posts > All Posts, find 'April 2nd 25 off Rove'), click Edit.
  4. Scroll to the Yoast SEO metabox at the bottom. Under 'Social', upload a featured image (a photo of the Rove product or promotion graphic).
  5. The og:title will auto-populate from your post title; verify it's clear and under 60 characters.
  6. Save the post. Yoast will now output og:title, og:image, and og:description to the page head.
  7. Test the fix: go to facebook.com/sharer/dialog?u=https://sageseedsny.com/april-2nd-25-off-rove-4-7pm/ to see the preview.

20. Missing Twitter card

What it means (plain English)

Your blog post isn't set up to display nicely when shared on Twitter/X. Without a Twitter Card meta tag, when someone shares your content, Twitter shows a plain link instead of a rich preview with your title, image, and description. This reduces click-through rates from social media.

Why it matters for your business: Lost social media engagement and traffic; shared content looks unprofessional compared to competitors who use Twitter Cards, reducing brand credibility.

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. Install the free 'Yoast SEO' plugin if not already active: WordPress Admin → Plugins → Add New → search 'Yoast SEO' → Install & Activate
  2. Go to Yoast SEO → Social → X (Twitter) and enable the toggle
  3. Fill in your X handle in Yoast SEO → Integrations → X (Twitter) Account
  4. Edit the affected post (Choosing Your First Pre-Roll) → scroll to Yoast SEO box → click 'Social' tab → ensure 'X (Twitter) preview' shows the post title, description, and a featured image
  5. Ensure the post has a Featured Image set (WordPress Admin → Posts → Edit post → Set featured image in right panel)
  6. Test the card output: go to https://cards-dev.twitter.com/validator and paste the post URL to preview

21. Missing Twitter card

What it means (plain English)

Your pages don't include Twitter Card meta tags, which are optional HTML snippets that tell Twitter (now X) how to display your content when someone shares a link. Without them, shares appear plain and less visually appealing, but your content still gets shared and indexed normally.

Why it matters for your business: Missing Twitter Cards reduce click-through rates on social shares and make your brand look less polished when customers or industry accounts mention Sage Seeds NY on X/Twitter.

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

Recommended fix — step by step

  1. Log in to WordPress admin → Plugins → search for your active SEO plugin (Yoast SEO, Rank Math, or All in One SEO Pack).
  2. If using Yoast: Go to SEO → Integrations → Social → toggle 'Add Open Graph meta tags' ON, then check the 'Twitter' section and enable 'Add Twitter Card meta tags'.
  3. If using Rank Math: Go to Rank Math → Social → Twitter section → enable 'Enable Twitter Card' and set default card type to 'Summary with Large Image'.
  4. If using All in One SEO: Go to All in One SEO → Social Networks → Twitter → toggle 'Twitter Card' ON.
  5. Add a featured image (at least 1200×630px) to your blog post 'Choosing Your First Vape' so the card has an attractive thumbnail when shared.
  6. Save changes and test at https://cards-dev.twitter.com/validator — paste your post URL and verify the card displays with image and description.

22. Missing OpenGraph metadata

What it means (plain English)

When someone shares your article on Facebook, Instagram, or other social platforms, those sites pull information (title, description, image) from special metadata tags called OpenGraph tags. Without them, the share looks generic or broken — just a link with no preview image or custom headline. This is purely a social sharing issue; search engines don't care about these tags.

Why it matters for your business: When customers share your educational content (like 'Indica vs. Sativa') on social media, it won't display attractively, reducing click-through rates and making your brand look less polished compared to competitors who have rich previews.

Technical root cause: The page template or WordPress theme is not outputting og:title, og:image, og:description, and og:url meta tags in the <head> section of the HTML. This is typically handled by SEO plugins (Yoast, Rank Math, etc.) or manual theme customization.

Recommended fix — step by step

  1. Install and activate the Yoast SEO plugin (if not already active) via WordPress Admin → Plugins → Add New, search 'Yoast SEO', click Install, then Activate.
  2. Go to WordPress Admin → Yoast SEO → General (left menu) and ensure 'OpenGraph' or 'Social Media' integration is enabled.
  3. Navigate to the specific article (Indica-Sativa-Hybrid-Difference) in WordPress editor, scroll to the Yoast SEO metabox at the bottom, and fill in the 'Social Title' field (e.g., 'What's the Difference Between Indica, Sativa & Hybrid?') and upload a 'Social Image' (minimum 1200×630px).
  4. If using Rank Math instead, go to the article → scroll to Rank Math SEO panel → click 'Social' tab → enable 'Add OpenGraph Meta Tags' and set custom social title/image.
  5. Test the fix using Facebook's Sharing Debugger (facebook.com/tools/debug/) or LinkedIn Post Inspector — paste the URL and verify the preview renders with your custom title and image.
  6. Repeat the social metadata entry for all high-traffic educational pages (product guides, strain information, FAQs).

23. Missing Twitter card

What it means (plain English)

Your blog post isn't tagged with Twitter Card metadata, which means when someone shares the link on Twitter/X, it won't display a rich preview with your custom image and description. Instead, Twitter will auto-generate a plain text preview, making the post less visually appealing and less likely to get clicks.

Why it matters for your business: Missing Twitter Cards reduce click-through rates on social shares, limiting organic reach for content that could drive dispensary traffic or brand awareness.

Technical root cause: The page lacks the open graph and twitter-specific meta tags (og:image, og:description, twitter:card, twitter:image) that social platforms use to render rich previews.

Recommended fix — step by step

  1. Install the Yoast SEO or Rank Math plugin (both free versions include social card templates)
  2. In WordPress admin → plugin dashboard → Yoast SEO → Social → 'X (Twitter)' tab, enable 'Add Twitter Card' toggle
  3. Set a default Twitter Card image in the plugin settings (recommend 1200×630px PNG or JPG of product or brand)
  4. Edit the affected post → scroll to Yoast SEO metabox → 'Social Preview' tab → verify 'X (Twitter)' preview is populated with title, description, and image
  5. Repeat for other blog posts, or enable the plugin's 'auto-add Twitter card to all pages' setting to prevent future gaps

24. Missing Twitter card

What it means (plain English)

Your blog posts and product pages are missing Twitter Card tags—special metadata that tells Twitter (now X) how to display your content when someone shares a link. Without these tags, Twitter shows a plain text preview instead of a branded card with your image, title, and description. This reduces click-through rates on social shares.

Why it matters for your business: When customers share your brand spotlights or product pages on Twitter/X, they get ugly plain-text previews instead of eye-catching cards, hurting engagement and traffic from social platforms.

Technical root cause: WordPress isn't automatically generating Twitter Card meta tags (twitter:card, twitter:title, twitter:description, twitter:image). Most SEO plugins include this feature but it's either not installed or not enabled.

Recommended fix — step by step

  1. Install Yoast SEO Free (Dashboard → Plugins → Add New → search 'Yoast SEO' → Install Now → Activate)
  2. Go to Yoast SEO → Social → toggle 'Add Open Graph meta tags' ON and 'Add X (formerly Twitter) card meta tags' ON
  3. Set your Twitter/X account handle: Yoast SEO → Social → under 'X (formerly Twitter)' enter your handle (e.g., @sageseedsny)
  4. Verify the fix by visiting the affected page, viewing page source (Ctrl+U), and confirming you see 'meta name="twitter:card"' and 'twitter:image' tags
  5. Test one shared link on Twitter/X using their Card Validator (cards-dev.twitter.com/validator) to confirm the preview displays correctly

25. Missing Twitter card

What it means (plain English)

Your site is missing Twitter Card meta tags, which are small snippets of code that tell Twitter how to display your content when someone shares a link on that platform. Without them, Twitter shows a plain, unformatted preview instead of a rich card with your image, title, and description — making your content less eye-catching and less likely to drive clicks.

Why it matters for your business: Cannabis retailers depend on social sharing to reach customers; a plain Twitter preview loses engagement and traffic compared to a branded, image-rich card that stands out in feeds.

Technical root cause: The page's <head> section lacks og:twitter:card and related meta tags (twitter:title, twitter:description, twitter:image) that Twitter's crawler uses to render rich previews.

Recommended fix — step by step

  1. Install the Yoast SEO plugin (if not already active) or Rank Math SEO, both of which include built-in Twitter Card generation.
  2. In WordPress admin, go to SEO plugin settings → Social → Twitter and toggle 'Add Twitter Card meta tags' on.
  3. Set a default Twitter username (your @handle) in SEO settings → Social → Twitter Account Name.
  4. For this specific post, open the post editor → SEO plugin sidebar → Social preview tab → ensure Title, Description, and Featured Image are filled in (plugin will auto-populate from post data).
  5. Alternatively, manually add to the post's <head>: <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="[Post Title]"> <meta name="twitter:description" content="[Post Excerpt]"> <meta name="twitter:image" content="[Featured Image URL]">
  6. Test the URL at twitter.com/intent/tweet?url=https://sageseedsny.com/march-madness-shopping-list-what-to-grab-before-tip-off/ to see the preview render.

26. Missing Twitter card

Detail

No twitter:card meta tag.

27. Missing Twitter card

Detail

No twitter:card meta tag.

28. Missing Twitter card

Detail

No twitter:card meta tag.

29. Missing OpenGraph metadata

Detail

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

30. Missing OpenGraph metadata

Detail

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

31. Title length 69 chars

Detail

Title should be 20-65 chars. Got: "March Madness Shopping List: What to Grab Before Tip-Off | Sage Seeds"

32. Missing OpenGraph metadata

Detail

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

33. 1 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

34. Missing Twitter card

Detail

No twitter:card meta tag.

35. Description length 46 chars

Detail

Description should be 80-160 chars.

36. Missing OpenGraph metadata

Detail

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

37. Missing Twitter card

Detail

No twitter:card meta tag.

38. Description length 54 chars

Detail

Description should be 80-160 chars.

39. Missing OpenGraph metadata

Detail

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

40. Missing Twitter card

Detail

No twitter:card meta tag.

41. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Test | Sage Seeds"

42. Missing OpenGraph metadata

Detail

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

43. Missing Twitter card

Detail

No twitter:card meta tag.

44. Missing OpenGraph metadata

Detail

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

45. Missing Twitter card

Detail

No twitter:card meta tag.

46. Missing OpenGraph metadata

Detail

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

47. Missing Twitter card

Detail

No twitter:card meta tag.

48. 1 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

49. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Blog | Sage Seeds"

50. Missing OpenGraph metadata

Detail

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

51. Missing Twitter card

Detail

No twitter:card meta tag.

52. Missing OpenGraph metadata

Detail

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

53. Missing Twitter card

Detail

No twitter:card meta tag.

54. Title length 19 chars

Detail

Title should be 20-65 chars. Got: "Events | Sage Seeds"

55. Missing OpenGraph metadata

Detail

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

56. Missing Twitter card

Detail

No twitter:card meta tag.

57. Missing OpenGraph metadata

Detail

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

58. Missing Twitter card

Detail

No twitter:card meta tag.

59. 3 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

60. Missing OpenGraph metadata

Detail

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

61. Missing Twitter card

Detail

No twitter:card meta tag.

62. Missing OpenGraph metadata

Detail

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

63. Missing Twitter card

Detail

No twitter:card meta tag.

64. Missing OpenGraph metadata

Detail

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

65. Missing Twitter card

Detail

No twitter:card meta tag.

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. Missing OpenGraph metadata

Detail

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

70. Missing Twitter card

Detail

No twitter:card meta tag.

71. 4 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

72. Missing OpenGraph metadata

Detail

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

73. Missing Twitter card

Detail

No twitter:card meta tag.

74. Title length 18 chars

Detail

Title should be 20-65 chars. Got: "About | Sage Seeds"

75. Missing OpenGraph metadata

Detail

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

76. Missing Twitter card

Detail

No twitter:card meta tag.

77. 2 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

78. Description length 161 chars

Detail

Description should be 80-160 chars.

79. Missing OpenGraph metadata

Detail

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

80. Missing Twitter card

Detail

No twitter:card meta tag.

81. 1 image(s) missing alt text

Detail

Images without alt fail a11y + hurt SEO.

82. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

83. Missing OpenGraph metadata

Detail

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

84. Missing Twitter card

Detail

No twitter:card meta tag.

85. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

86. Missing OpenGraph metadata

Detail

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

87. Missing Twitter card

Detail

No twitter:card meta tag.

88. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

89. Missing OpenGraph metadata

Detail

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

90. Missing Twitter card

Detail

No twitter:card meta tag.

91. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

92. Missing OpenGraph metadata

Detail

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

93. Missing Twitter card

Detail

No twitter:card meta tag.

94. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

95. Missing OpenGraph metadata

Detail

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

96. Missing Twitter card

Detail

No twitter:card meta tag.

97. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

98. Missing OpenGraph metadata

Detail

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

99. Missing Twitter card

Detail

No twitter:card meta tag.

100. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

101. Missing OpenGraph metadata

Detail

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

102. Missing Twitter card

Detail

No twitter:card meta tag.

103. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

104. Missing OpenGraph metadata

Detail

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

105. Missing Twitter card

Detail

No twitter:card meta tag.

106. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

107. Missing OpenGraph metadata

Detail

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

108. Missing Twitter card

Detail

No twitter:card meta tag.

109. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Home | Sage Seeds"

110. Missing OpenGraph metadata

Detail

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

111. Missing Twitter card

Detail

No twitter:card meta tag.

112. Title length 17 chars

Detail

Title should be 20-65 chars. Got: "Blog | Sage Seeds"

113. Missing OpenGraph metadata

Detail

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

114. Missing Twitter card

Detail

No twitter:card meta tag.

115. Title length 19 chars

Detail

Title should be 20-65 chars. Got: "Events | Sage Seeds"

116. Missing OpenGraph metadata

Detail

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

117. Missing Twitter card

Detail

No twitter:card meta tag.

118. Desktop perf measurement failed

Detail

page.goto: Timeout 60000ms exceeded.

Call log:

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

Detail

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

120. Missing security header: referrer-policy

Detail

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

121. Missing security header: permissions-policy

Detail

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

122. Cookie missing SameSite flag

Detail

Cookies should declare SameSite=Lax or Strict.

123. SSL Labs grade: unknown

Detail

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

124. DNSSEC not enabled

Detail

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

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

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

127. Lighthouse a11y (mobile): 90/100

Detail

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

128. Lighthouse seo (mobile): 92/100

Detail

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

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

130. LH mobile: Defer offscreen images (Est savings of 5,199 KiB)

Detail

Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/" target="_blank" rel="noreferrer">Learn how to defer offscreen images.

131. LH mobile: Eliminate render-blocking resources (Est savings of 5,750 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.

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

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

134. Lighthouse a11y (desktop): 89/100

Detail

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

135. Lighthouse seo (desktop): 92/100

Detail

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

136. LH desktop: Preconnect to required origins (Est savings of 220 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.

137. LH desktop: Defer offscreen images (Est savings of 1,482 KiB)

Detail

Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/" target="_blank" rel="noreferrer">Learn how to defer offscreen images.

138. LH desktop: Eliminate render-blocking resources (Est savings of 260 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.

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

Detail

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

140. LH desktop: Reduce unused JavaScript (Est savings of 194 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.


Findings by Page

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

https://sageseedsny.com/

_47 findings on this page_

Your website is served over HTTPS (secure), but it's loading at least one resource from an HTTP (non-secure) address. Modern browsers will block these mixed resources or show security warnings to visi

Your mobile homepage takes 86 seconds for the largest content element (like a banner image or product card) to become visible to visitors. This is extremely slow — most users expect a page to load in

Your site's Lighthouse Best Practices score is 59 out of 100, well below the healthy threshold of 90. This score reflects several technical issues that erode visitor trust and can harm your search ran

Your age-gate dialog (the popup that appears to verify visitor age) is missing a text label that screen readers can announce. Screen reader users cannot understand the purpose of the dialog, making it

Your website has 20 instances where text and background colors don't provide enough contrast for people with low vision or color blindness to read easily. For example, white text on a gold/tan button

Your website has two social media icon links (Facebook and Instagram) that don't have any text label associated with them. Screen readers—software that blind and low-vision users rely on to navigate t

Your site is trying to load JavaScript files, but the server is sending them with the wrong file type label (MIME type). Modern browsers reject this for security reasons, treating them as HTML documen

Your site has 28 images without alt text (descriptive text that describes what an image shows). Screen readers—tools used by people with vision disabilities—cannot describe those images to users. This

Our automated performance testing tool timed out trying to load your homepage on a mobile connection — it waited 60 seconds and the page never fully loaded. This suggests either the site is extremely

Your homepage is missing LocalBusiness schema markup, which is structured data that tells Google your business's location, hours, phone, and services. You have Organization and WebSite data, but Local

Your website is missing the HSTS (HTTP Strict Transport Security) header, which is a security instruction that tells browsers to always use encrypted connections (HTTPS) when visiting your site. Witho

The X-Frame-Options header tells browsers whether your site can be displayed inside an iframe (a frame within another website). This header is missing from your homepage, which means someone could emb

Your website is missing a Content Security Policy (CSP) header — a security instruction that tells browsers which external resources (scripts, images, stylesheets) are allowed to load. Without it, mal

Your homepage has 37 buttons, links, and interactive elements that are smaller than 44×44 pixels when viewed on mobile phones. This makes them hard to tap accurately—especially for people with low vis

Your website has 37 interactive buttons, links, and form fields that are smaller than 44×44 pixels on mobile devices. This makes them hard to tap accurately, especially for people with larger fingers,

Your website has 37 buttons, links, and clickable elements on mobile that are smaller than 44×44 pixels. This is the minimum size recommended by accessibility standards (WCAG 2.5.5) to ensure people w

Your website has 37 clickable buttons, links, and form fields that are smaller than 44×44 pixels when viewed on a tablet. This makes them hard to tap accurately, especially for people with tremors, vi

Your site's mobile best practices score is 61 out of 100—well below the healthy threshold of 90. This score reflects issues like outdated browser APIs, missing security headers, or unoptimized third-p

Your homepage takes 12.9 seconds for the largest visual element to appear on screen, well above the 2.5-second target that keeps visitors engaged. This slow load is driven by unoptimized images, rende

Your homepage title is only 17 characters long. Search engines like Google use page titles as a ranking signal and to display in search results. A title that's too short misses an opportunity to inclu

OpenGraph metadata is code in your page header that tells social media platforms (Facebook, Instagram, LinkedIn) what image and text to show when someone shares your link. Without it, social posts loo

https://sageseedsny.com/march-madness-shopping-list-what-to-grab-before-tip-off/

_4 findings on this page_

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

https://sageseedsny.com/blog/

_4 findings on this page_

https://sageseedsny.com/events/

_4 findings on this page_

Your Events page is missing a meta description — the 160-character summary that appears below your page title in Google search results. Without it, Google generates its own excerpt from your page cont

https://sageseedsny.com/about-us-cannabis-dispensary-bellerose-ny/

_4 findings on this page_

https://sageseedsny.com/visit-us/

_4 findings on this page_

https://sageseedsny.com/?elementor_library=delivery-page-8-29-2025

_4 findings on this page_

Your site has 28 images without alt text—descriptive text that appears when images don't load and is read aloud by screen readers. This affects visitors using assistive technology and also tells searc

https://sageseedsny.com/?elementor_library=delivery-page-10-30-2025

_4 findings on this page_

Your site has 28 images missing alt text—descriptions that tell screen readers and search engines what an image shows. This breaks accessibility for blind and visually impaired visitors, and search en

https://sageseedsny.com/?elementor_library=transparent-header

_4 findings on this page_

Your site has 28 images without alt text—these are descriptions that appear when images fail to load and help screen readers (tools used by people with visual impairments) understand what each image s

https://sageseedsny.com/?elementor_library=elementor-loop-item

_4 findings on this page_

Your site has 28 images without alt text—descriptions that screen readers use to understand images, and that search engines use to index visual content. This means visually impaired customers can't un

https://sageseedsny.com/?elementor_library=elementor-header-14

_4 findings on this page_

Your site has 28 images without alt text—descriptive labels that explain what each image shows. Search engines and screen readers (used by visually impaired customers) can't interpret these images, wh

https://sageseedsny.com/?elementor_library=new-homepage-12-11-2025

_4 findings on this page_

Your website has 28 images without alt text—descriptive labels that tell screen readers and search engines what an image shows. This breaks accessibility for blind and low-vision customers, and search

https://sageseedsny.com/?elementor_library=elementor-footer-29

_4 findings on this page_

Your site has 28 images without alt text—short descriptions that describe what each image shows. When alt text is missing, screen readers used by visually impaired visitors can't explain the images, a

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

_4 findings on this page_

Your site has 28 images without alternative text (alt text). Alt text is a short description that appears if an image doesn't load and is read aloud to visitors using screen readers. Search engines al

https://sageseedsny.com/?elementor_library=elementor-footer-313

_4 findings on this page_

Your site has 28 images without alt text — descriptions that screen readers use to understand images, and that search engines use to index visual content. This affects both customers using assistive t

https://sageseedsny.com/?elementor_library=elementor-header-176

_4 findings on this page_

Your website has 28 images without alt text — descriptive labels that screen readers use to understand images, and that search engines use to index visual content. This means visually impaired visitor

https://sageseedsny.com/category/blog/

_4 findings on this page_

Your blog category page doesn't have a meta description — the short text snippet that appears under your site name in Google search results. Search engines will generate one automatically, but it's of

https://sageseedsny.com/category/events/

_4 findings on this page_

Your /category/events/ page doesn't have a meta description — that's the 160-character summary that appears below your page title in Google search results. Without it, Google may generate its own, whi

https://sageseedsny.com/choosing-your-first-pre-roll/

_3 findings on this page_

Your page title is 77 characters long, but search engines like Google typically display 50–60 characters on desktop and 40 characters on mobile before truncating with ellipsis. This title will be cut

OpenGraph tags are metadata snippets that control how your pages appear when shared on Facebook, Instagram, LinkedIn, and other social platforms. Without them, those platforms display a generic previe

Your blog post isn't set up to display nicely when shared on Twitter/X. Without a Twitter Card meta tag, when someone shares your content, Twitter shows a plain link instead of a rich preview with you

https://sageseedsny.com/choosing-your-first-vape/

_3 findings on this page_

Your page title is 72 characters long, but search engines display only 50–60 characters on desktop and 40 characters on mobile before truncating with an ellipsis. This particular title will be cut off

Open Graph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares it. Without them, the platform guesses—often showing

Your pages don't include Twitter Card meta tags, which are optional HTML snippets that tell Twitter (now X) how to display your content when someone shares a link. Without them, shares appear plain an

https://sageseedsny.com/valentines-day-cannabis-guide/

_3 findings on this page_

Your page title is 100 characters long, but search engines like Google typically display only 50–60 characters in search results before truncating with an ellipsis. This means potential customers see

OpenGraph metadata are HTML tags that control how your pages appear when shared on Facebook, Instagram, LinkedIn, and other social platforms. Without them, your Valentine's Day guide (and likely other

Your blog post pages are missing Twitter Card meta tags — special codes that tell Twitter (now X) how to display your content when someone shares a link on that platform. Without these tags, shares ap

https://sageseedsny.com/april-2nd-25-off-rove-4-7pm/

_3 findings on this page_

The meta description (the text Google shows below your page title in search results) is only 74 characters long. Google recommends 80–160 characters so your full message appears in search results inst

OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) what image and text to show when someone shares your page. Without them, social shares appear as pl

https://sageseedsny.com/april-3rd-nerd-bar-3-6pm-special-giveaways/

_3 findings on this page_

https://sageseedsny.com/april-4th-jaunty-10-off-11am-2pm/

_3 findings on this page_

https://sageseedsny.com/test/

_3 findings on this page_

https://sageseedsny.com/home-vimeo-bg/

_3 findings on this page_

Your site has 15 images without alt text (descriptive text that tells screen readers and search engines what the image shows). This makes the site harder for people using assistive technology to navig

https://sageseedsny.com/contact-sage-seed/

_3 findings on this page_

https://sageseedsny.com/home-staging/

_3 findings on this page_

Your site has 18 images without alt text (descriptive text that explains what an image shows). Search engines and accessibility tools rely on this text to understand your images. When alt text is miss

https://sageseedsny.com/dispensary-near-me/

_3 findings on this page_

https://sageseedsny.com/weed-delivery/

_3 findings on this page_

Five images on your delivery page don't have alt text — the short descriptive text that appears when an image fails to load and that screen readers use to describe images to visually impaired visitors

https://sageseedsny.com/weed-delivery/queens-bayside/

_3 findings on this page_

Your website has 6 images without alt text (descriptive text that appears if an image fails to load). This makes those images invisible to screen readers used by people with vision disabilities, and i

https://sageseedsny.com/dispensary-near-me/ubs-arena-belmont-park/

_3 findings on this page_

https://sageseedsny.com/weed-delivery/nassau-county/

_3 findings on this page_

https://sageseedsny.com/your-first-visit-to-sage-seeds/

_2 findings on this page_

When someone shares a link to your 'Your First Visit' page on Facebook, Instagram, or messaging apps, those platforms don't know what image or title to display. Instead of showing your cannabis dispen

https://sageseedsny.com/indica-sativa-hybrid-difference/

_2 findings on this page_

When someone shares your article on Facebook, Instagram, or other social platforms, those sites pull information (title, description, image) from special metadata tags called OpenGraph tags. Without t

https://sageseedsny.com/super-bowl-what-to-smoke-guide/

_2 findings on this page_

When your blog post is shared on Facebook, Instagram, or other social platforms, those sites pull a preview image and title from special metadata tags called OpenGraph tags. Without them, your post sh

Your blog post isn't tagged with Twitter Card metadata, which means when someone shares the link on Twitter/X, it won't display a rich preview with your custom image and description. Instead, Twitter

https://sageseedsny.com/best-deals-this-weekend-sage-seeds/

_2 findings on this page_

OpenGraph tags are snippets of code that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your page when someone shares a link. Without them, the platform guesses—often poorl

Your blog post pages are missing Twitter card meta tags, which are snippets of code that tell Twitter (now X) how to display your content when someone shares a link. Without them, social shares appear

https://sageseedsny.com/brand-spotlight-of-the-week-grassroots-sage-seeds/

_2 findings on this page_

When someone shares this page on Facebook, Instagram, or other social platforms, those sites don't know what title or image to display. Instead of showing your brand name and product photo, the share

Your blog posts and product pages are missing Twitter Card tags—special metadata that tells Twitter (now X) how to display your content when someone shares a link. Without these tags, Twitter shows a

https://sageseedsny.com/international-womens-day-at-sage-seeds/

_2 findings on this page_

Your blog post about International Women's Day is missing a Twitter card — a snippet of metadata that tells Twitter how to display your link when someone shares it. Without this, Twitter will auto-gen

https://sageseedsny.com/st-patricks-day-picks-at-sage-seeds/

_2 findings on this page_

Your blog post pages are missing a Twitter Card meta tag—a small piece of code that tells Twitter (X) how to display your content when someone shares a link. Without it, Twitter shows a generic previe

https://sageseedsny.com/loyalty-program/

_2 findings on this page_

https://sageseedsny.com/cannabis-menu/

_2 findings on this page_

https://sageseedsny.com/robots.txt

_1 finding on this page_

Your robots.txt file (the instruction sheet you give to Google's crawlers) doesn't tell them where to find your XML sitemap — a complete list of all your pages. Without this pointer, Google has to dis

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

_1 finding on this page_

Your WordPress login page (/wp-login.php) is publicly accessible and returns a successful response. This is a standard WordPress path that attackers routinely scan for. While WordPress login pages are


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


Generated by Apex Sentinel · © 2026 Bud Authority