Bud Authority — Sentinel
Monthly Deep Audit · Unified Command Center

Apex Sentinel — Olswell Monthly Audit

URL: https://olswell.com/

Platform: unknown

Archetype: fun

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

Scanned: 2026-04-19T06:53:46.293Z

Duration: 883s

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 crawled26Full sitemap + linked pages
P0 (critical)1Site-down or compliance-breaking
P1 (urgent)6Significant revenue / SEO / UX impact
P2 (high)39Quality / ranking / trust degradation
P3 (medium)80Polish + optimization
"Do first" items5AI-flagged top priorities
Quick wins (< 30 min)24Fastest 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 deface your site, steal customer data, inject malware, or take your dispensary offline—directly harming customer trust and revenue._

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

Effort: Moderate (1-3 hours)

  1. [P1] 🔴 DO FIRST Lighthouse perf (mobile): 28/100 — _Visitors abandon slow sites: studies show 40% of users leave if a page takes more than 3 seconds to load. For a cannabis retailer, this directly kills online orders, menu views, and age-gate conversions, costing revenue per visitor._

Page: https://olswell.com/

Effort: Developer required (half-day+)

  1. [P1] 🔴 DO FIRST A11y: ARIA dialog and alertdialog nodes should have an accessible name — _Inaccessible age gates expose you to ADA litigation risk and exclude disabled customers; it also signals poor compliance practices to regulators monitoring cannabis retail sites._

Page: https://olswell.com/

Effort: Quick win (< 30 min)

  1. [P1] 🔴 DO FIRST A11y: Links must have discernible text (×10) — _You're excluding customers with disabilities from browsing your products, reducing potential sales and exposing yourself to ADA accessibility lawsuits—a growing risk in the cannabis retail space._

Page: https://olswell.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🔴 DO FIRST Journey failed: default: homepage → age gate → menu visible — _Visitors cannot proceed past the age gate to view your menu and products, directly blocking revenue and preventing compliance verification._

Page: https://olswell.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🟠 HIGH Lighthouse perf (desktop): 60/100 — _Slow load times increase bounce rates and reduce conversion — cannabis shoppers comparing multiple dispensaries will abandon your site if it feels sluggish, especially on mobile or slower connections in rural areas._

Page: https://olswell.com/

Effort: Moderate (1-3 hours)

  1. [P1] 🟠 HIGH Lighthouse bestPractices (desktop): 59/100 — _A low Best Practices score signals to search engines and visitors that your site may not be trustworthy or secure, which erodes customer confidence—especially critical for a cannabis retailer where age verification and compliance are paramount._

Page: https://olswell.com/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 30 image(s) missing alt text — _Missing alt text blocks visually impaired customers from understanding your product offerings, limits SEO ranking for image-based searches, and creates potential ADA compliance liability for a cannabis retailer._

Page: https://olswell.com/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 15 image(s) missing alt text — _Missing alt text blocks both accessibility compliance (legal risk in some jurisdictions) and SEO: Google can't rank your Toy Drive initiative or product shots, reducing organic traffic and community visibility._

Page: https://olswell.com/olswell-cannabis-co-toy-drive/

Effort: Moderate (1-3 hours)

  1. [P2] 🟠 HIGH 15 image(s) missing alt text — _Missing alt text locks out customers who are blind or low-vision, reducing your potential customer base; it also signals to Google that your content is incomplete, which can lower your search rankings for cannabis dispensary searches in your area._

Page: https://olswell.com/olswell-cannabis-co-toy-drive-2/

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 admin login page is publicly accessible at /wp-login.php, which means anyone on the internet can find and attempt to access your site's backend. This is a common attack vector where bots and hackers try to guess passwords to break into your site. You should restrict access to this page so only you (and authorized staff) can reach it.

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

Technical root cause: WordPress login pages are not blocked by default. The site is either running WordPress without access restrictions, or firewall/edge security rules were not configured to block or require authentication for /wp-login.php.

Recommended fix — step by step

  1. Log in to your hosting control panel (cPanel, Plesk, or your host's dashboard) and locate Web Application Firewall (WAF) or ModSecurity settings.
  2. Create a rule to block or redirect all requests to /wp-login.php and /wp-admin/ unless they originate from your office IP address(es).
  3. If your host uses Cloudflare, log in to Cloudflare dashboard → Firewall Rules → create a rule: (cf.threat_score > 40) OR (ip.geoip.country ne 'US') then Block /wp-login.php.
  4. Alternatively, install a WordPress security plugin (e.g., Wordfence, iThemes Security) → Login Security → enable two-factor authentication and set login page URL to a custom path.
  5. Change the default WordPress login URL from /wp-login.php to something like /olswell-secure-access/ using a plugin like WPS Hide Login.
  6. Test by visiting https://olswell.com/wp-login.php from a non-authorized IP—it should return 403 Forbidden, not 200 OK.

P1 — 6 findings

1. Lighthouse perf (mobile): 28/100

What it means (plain English)

Your mobile site takes nearly 24 seconds for visitors to see your main content (Largest Contentful Paint), and the browser is unresponsive for over 4 seconds while processing JavaScript (Total Blocking Time). This means customers on phones are sitting on a blank or partial page, unable to click or scroll, before your site becomes usable. Lighthouse rates this performance a 28/100—critically slow.

Why it matters for your business: Visitors abandon slow sites: studies show 40% of users leave if a page takes more than 3 seconds to load. For a cannabis retailer, this directly kills online orders, menu views, and age-gate conversions, costing revenue per visitor.

Technical root cause: The site is likely loading large unoptimized images, render-blocking JavaScript, or excessive third-party scripts before the page becomes interactive. The 4+ second blocking time suggests JavaScript is running synchronously on the main thread instead of deferring non-critical work.

Recommended fix — step by step

  1. Download the full Lighthouse HTML report from your audit data (/Users/markwallace/BKH/apex-sentinel/runs/.../lighthouse-mobile.html) and open it in a browser; scroll to 'Opportunities' section to see ranked fixes (image optimization, unused CSS/JS, etc.).
  2. Compress all product images to WebP format and serve them at max 1200px width on mobile using <picture> or srcset; use a tool like TinyPNG or ImageOptim.
  3. Defer non-critical JavaScript: add 'defer' attribute to <script> tags in your HTML that aren't needed for initial page paint, or lazy-load them after the page loads.
  4. Identify and remove or defer third-party scripts (analytics, chat widgets, ads) that aren't essential to the purchase flow; move them to load after the page is interactive.
  5. Enable GZIP compression and minify CSS/JavaScript files at the server level (ask your hosting provider or add compression rules to your .htaccess if on Apache).
  6. Audit and eliminate render-blocking CSS; inline critical above-the-fold styles or split CSS into separate load-async files.
  7. Test on a real 4G throttled connection (Chrome DevTools → Network tab → 'Slow 4G') to simulate typical mobile user experience and measure improvements after each change.

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

What it means (plain English)

Your age-verification popup (the dialog box that appears when visitors enter the site) doesn't have a proper accessible name — meaning screen reader users can't tell what it is or what action it's asking them to take. This is a WCAG accessibility violation that affects compliance and user experience for disabled visitors.

Why it matters for your business: Inaccessible age gates expose you to ADA litigation risk and exclude disabled customers; it also signals poor compliance practices to regulators monitoring cannabis retail sites.

Technical root cause: The dialog element with id='baag3-gate' has role='dialog' and aria-modal='true' but is missing an aria-label, aria-labelledby, or title attribute that would announce its purpose to assistive technology.

Recommended fix — step by step

  1. Inspect the age-gate dialog HTML in your browser DevTools (F12 → Elements tab, search for 'baag3-gate')
  2. Add aria-label="Age verification" to the dialog div — or if you prefer, add aria-labelledby pointing to a heading inside the dialog
  3. If using a third-party age-gate library (e.g., Baag3, iubenda), check their documentation for accessibility settings and enable the 'aria-label' or 'accessible name' option
  4. If the library doesn't support it, contact the vendor asking for WCAG 2.1 Level AA compliance on the dialog element
  5. Re-run your accessibility audit tool (axe, WAVE, or Lighthouse) to confirm the fix

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

What it means (plain English)

Your website has 10 links that don't have any visible or hidden text describing where they go. Screen reader users (people who are blind or visually impaired) hear nothing when they encounter these links, making navigation impossible. This includes your logo link and several product category buttons.

Why it matters for your business: You're excluding customers with disabilities from browsing your products, reducing potential sales and exposing yourself to ADA accessibility lawsuits—a growing risk in the cannabis retail space.

Technical root cause: Links are either image-only without alt text, or have no text content and no aria-label attributes. The Elementor page builder elements lack accessible naming.

Recommended fix — step by step

  1. In WordPress admin, go to Pages and find the homepage; click Edit with Elementor
  2. For the logo link (.elementor-element-54bcf2e): select the image inside it, open the Advanced tab in the right panel, paste 'alt="Olswell Cannabis Home"' into the Image Alt Text field
  3. For the product category link (.elementor-element-d1af351): select it, open the Advanced tab, find the Accessibility section (or use the search icon), add aria-label="Shop Flower Products"
  4. Repeat step 3 for the remaining 8 unlabeled links, using descriptive labels like 'Shop Edibles', 'Shop Concentrates', etc.
  5. Click Update to save
  6. Run an accessibility checker tool (free: WebAIM WAVE or axe DevTools browser extension) on the published homepage to confirm all 10 links now have names

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

What it means (plain English)

Your homepage is trying to load JavaScript modules (code files that extend functionality) but the server is returning HTML instead of the correct JavaScript format. This is a strict security rule enforced by modern browsers. The age gate and menu are likely not functioning properly because the code they depend on failed to load.

Why it matters for your business: Visitors cannot proceed past the age gate to view your menu and products, directly blocking revenue and preventing compliance verification.

Technical root cause: One or more <script type="module"> or import statements are pointing to files (or endpoints) that return HTML content instead of valid JavaScript. This often happens when a build process failed, a CDN is misconfigured, or a file path is wrong.

Recommended fix — step by step

  1. Open your browser's Developer Tools (F12 or right-click → Inspect), go to the Console tab, and note the exact URL that failed to load (shown in the error message).
  2. Visit that URL directly in a new browser tab — if you see HTML or a 404 error instead of JavaScript code, the file path or server response is wrong.
  3. Check your HTML source code (View Page Source or inspect the <head> and <body> tags) for any <script type="module"> tags; verify each src attribute points to a valid .js file, not an HTML page or dynamic endpoint.
  4. If using a build tool (Webpack, Vite, etc.), rebuild your site: run npm run build or equivalent, then redeploy to ensure all JavaScript files are generated and in the correct location.
  5. Confirm your web server (nginx, Apache, etc.) is configured to serve .js files with the application/javascript MIME type, not text/html.
  6. If you use a CDN or asset host, verify it's not redirecting or caching incorrectly — clear CDN cache and test directly from your origin server.

5. Lighthouse perf (desktop): 60/100

What it means (plain English)

Your desktop site takes about 3.2 seconds for the main content to appear on screen, and the browser's main thread is blocked for ~473 milliseconds while processing JavaScript. Lighthouse scores performance at 60/100, well below industry standard of 90+. This means visitors on desktop are waiting noticeably longer than competitors before they can see and interact with your product listings and checkout.

Why it matters for your business: Slow load times increase bounce rates and reduce conversion — cannabis shoppers comparing multiple dispensaries will abandon your site if it feels sluggish, especially on mobile or slower connections in rural areas.

Technical root cause: Large unoptimized images, render-blocking JavaScript (likely analytics, ads, or third-party scripts), and possible inefficient CSS are delaying the browser's ability to paint content and respond to user input.

Recommended fix — step by step

  1. Run your site through Google PageSpeed Insights (pagespeed.web.dev) and download the HTML report to identify the specific bottlenecks — note which resources are 'render-blocking' and which images are unoptimized.
  2. Audit and defer non-critical JavaScript: identify Google Analytics, Facebook Pixel, chat widgets, and ad scripts in your <head> tag and move them to load after page content (async or defer attributes) or via a tag manager like Google Tag Manager.
  3. Convert all product images to modern formats (WebP) with responsive sizes using <picture> and srcset; use an image CDN (Cloudinary, Imgix, or Bunny CDN) to serve scaled versions based on device screen size.
  4. Enable gzip compression and minify CSS/JavaScript: if you control the server, add gzip via .htaccess (Apache) or nginx config; use a minifier tool or build process to reduce file sizes.
  5. Implement lazy-loading for below-the-fold images using the loading='lazy' attribute on <img> tags.
  6. Consider upgrading hosting or migrating to a CDN (Cloudflare, Akamai) to reduce time-to-first-byte — if you're on shared hosting, this may be the largest single factor.
  7. Set up Core Web Vitals monitoring in Google Search Console to track LCP, CLS, and TBT weekly and confirm fixes are working.

6. Lighthouse bestPractices (desktop): 59/100

What it means (plain English)

Your site's Lighthouse Best Practices score is 59/100, which means there are security, code quality, and user trust issues detected by Google's audit tool. This score sits well below the industry benchmark of 90+. Common culprits in this range include outdated libraries, missing security headers, broken console errors, or third-party scripts causing warnings.

Why it matters for your business: A low Best Practices score signals to search engines and visitors that your site may not be trustworthy or secure, which erodes customer confidence—especially critical for a cannabis retailer where age verification and compliance are paramount.

Technical root cause: Lighthouse has flagged one or more issues in security, browser compatibility, or code quality. Without the detailed HTML report, the exact cause is unclear, but common reasons include: unpatched npm dependencies, missing Content Security Policy headers, deprecated APIs, or console errors from ad/tracking scripts.

Recommended fix — step by step

  1. Download and open the Lighthouse HTML report at /Users/markwallace/BKH/apex-sentinel/runs/2026-04-19T06-18-18-831Z/lighthouse/olswell/lighthouse-desktop.html and identify the red/orange 'Failed audits' section.
  2. For each failed audit, note the specific issue (e.g., 'Uses vulnerable libraries', 'Missing Content-Security-Policy header', 'Console errors').
  3. If the issue is a vulnerable library: run npm audit in your project root, review the output, and run npm audit fix to patch dependencies; test the site after.
  4. If the issue is a missing security header: contact your hosting provider or add headers via your web.config (.NET), .htaccess (Apache), or nginx.conf (Nginx) — provide the specific header name from the audit.
  5. If the issue is console errors from third-party scripts: open DevTools (F12 → Console tab), identify the offending script/domain, and either update that script or disable it if non-essential.
  6. Re-run Lighthouse (via PageSpeed Insights or Chrome DevTools) to confirm the score rises above 80 before considering this resolved.

P2 — 39 findings

1. 30 image(s) missing alt text

What it means (plain English)

Every image on your homepage is missing alt text — a short text description that appears if the image fails to load and helps screen readers describe what's in the image to visitors who are blind or low-vision. This affects both accessibility (a legal compliance area) and search engine ability to understand your visual content.

Why it matters for your business: Missing alt text blocks visually impaired customers from understanding your product offerings, limits SEO ranking for image-based searches, and creates potential ADA compliance liability for a cannabis retailer.

Technical root cause: Images are included in HTML without the alt attribute populated. This is commonly an oversight during site build or CMS setup where alt text fields are left blank.

Recommended fix — step by step

  1. Open your site's HTML or CMS editor and locate all <img> tags on the homepage.
  2. For product images, add alt text like 'Olswell Indica strain pre-roll package' (include strain name and product type).
  3. For decorative images, use alt='' (empty alt) so screen readers skip them.
  4. For branded/logo images, use alt='Olswell cannabis dispensary logo' or similar.
  5. Test fixes by running the page through a free tool like WAVE (wave.webaim.org) to confirm all 30 images now have alt text.
  6. If you use a WordPress site, install the Yoast SEO plugin, go to each image in Media Library, and fill the 'Alt text' field before saving.

2. 15 image(s) missing alt text

What it means (plain English)

Every image on your Toy Drive page is missing alt text — short descriptions that screen readers use to tell blind/low-vision visitors what an image shows, and that search engines use to understand your content. Right now, visitors using assistive technology hear nothing, and Google can't index what your photos depict.

Why it matters for your business: Missing alt text blocks both accessibility compliance (legal risk in some jurisdictions) and SEO: Google can't rank your Toy Drive initiative or product shots, reducing organic traffic and community visibility.

Technical root cause: Images were uploaded or embedded without filling in the alt text field during content creation. The HTML lacks the alt attribute entirely on <img> tags.

Recommended fix — step by step

  1. Audit the page source or CMS media library to identify all 15 images and their file names
  2. Open https://olswell.com/olswell-cannabis-co-toy-drive/ in your browser, right-click each image, select 'Inspect' to confirm <img> tags lack alt attributes
  3. For each image, write 1–2 sentence descriptions (e.g., 'Donated toy car wrapped in red ribbon' or 'Community members sorting gift boxes')
  4. If using WordPress: go to Media Library → click each image → fill in 'Alt Text' field → Save. If using a page builder (Elementum, Gutenberg blocks, etc.), click the image in the editor and enter alt text in the Image settings panel
  5. If editing HTML directly: add alt='[description]' to every <img> tag
  6. Test with a screen reader (NVDA on Windows, VoiceOver on Mac) to confirm alt text is read aloud
  7. Implement a checklist for all future image uploads: CMS media library → Alt Text field must be filled before publishing

3. 15 image(s) missing alt text

What it means (plain English)

Every image on your site should have descriptive alt text — a short text label that describes what the image shows. This text is read aloud to visitors using screen readers (accessibility software) and also helps search engines understand your images. Right now, 15 images on your toy drive page have no alt text at all.

Why it matters for your business: Missing alt text locks out customers who are blind or low-vision, reducing your potential customer base; it also signals to Google that your content is incomplete, which can lower your search rankings for cannabis dispensary searches in your area.

Technical root cause: Images were uploaded or embedded without alt attributes populated in the HTML markup. This is common when using media upload interfaces without a required field for alt text.

Recommended fix — step by step

  1. Open https://olswell.com/olswell-cannabis-co-toy-drive-2/ in your browser and inspect the page source (right-click → View Page Source) to identify which CMS or platform powers the site.
  2. If WordPress: log in to wp-admin → Media → check which images are on that page → click each image → fill in the 'Alt Text' field with a 1-2 sentence description of what the photo shows (e.g., 'Customers browsing cannabis flower selection at Olswell toy drive event').
  3. If Shopify: go to Products → select the page/product → edit each image → fill in the 'Alt text' field under image settings.
  4. If a custom site or unknown CMS, work with your web host or developer to add alt='' attributes to every <img> tag on that page with descriptive text.
  5. After updating, use a free tool like WAVE (wave.webaim.org) to paste your page URL and verify all 15 images now show alt text.
  6. Create a site-wide policy: before uploading any image (product photos, event shots, team pics), always fill in alt text describing the image in plain English.

4. 15 image(s) missing alt text

What it means (plain English)

Every image on your toy drive post is missing alt text — descriptive text that explains what the image shows to people using screen readers and to search engines. This means visually impaired customers can't understand your content, and Google can't fully index your images for search results.

Why it matters for your business: Missing alt text reduces your search visibility for product images and brand content, and excludes customers using accessibility tools from engaging with your cannabis product photography and promotional material.

Technical root cause: Images were uploaded or embedded without filling in the alt text field during publishing. This is commonly overlooked in content management systems when images are added quickly.

Recommended fix — step by step

  1. Open https://olswell.com/olswell-cannabis-co-toy-drive-3/ in your browser and identify each image on the page
  2. Right-click the first image and select 'Inspect' to confirm it has no alt attribute (or empty alt="")
  3. Log into your CMS admin panel (likely wp-admin if WordPress) and edit the post
  4. For each image, click it in the editor, select the image settings/properties icon, and fill the 'Alt Text' field with a brief description (e.g., 'Cannabis product on white background' or 'Olswell holiday toy drive event photo')
  5. Ensure alt text is 1-2 sentences, descriptive but concise
  6. Save the post draft and preview it
  7. Publish or update the post
  8. Use a free accessibility checker like axe DevTools (browser extension) to verify alt text is now present

5. 15 image(s) missing alt text

What it means (plain English)

Every image on your trends page is missing alt text—a short text description that screen readers use to describe images to blind and low-vision visitors. This also prevents search engines from understanding what your images show, which weakens your SEO ranking for image search.

Why it matters for your business: You're losing accessibility compliance points (which can expose you to legal risk), and search engines are ignoring 15 image opportunities that could drive traffic and boost your ranking for cannabis-related visual searches.

Technical root cause: Images were uploaded to the page without the alt attribute being filled in during content creation. The CMS (or HTML) is rendering <img> tags with no alt= property, leaving the field blank.

Recommended fix — step by step

  1. Log into your CMS and navigate to https://olswell.com/trends-in-cannabis-consumption/
  2. Edit the page and locate each image in the visual editor
  3. Click each image and fill in the 'Alt Text' or 'Alternative Text' field with a 5–10 word description (e.g., 'Cannabis consumption method infographic showing vaping popularity growth' instead of 'image1.jpg')
  4. Ensure alt text describes the image content or its relevance to the article—do not repeat the page title or stuff keywords
  5. Save and publish the page
  6. Repeat for any other high-traffic blog posts or product pages with images
  7. Consider adding a checklist step to your content workflow: 'Alt text added before publish'

6. 15 image(s) missing alt text

What it means (plain English)

Every image on your Live Resin Concentrates page lacks alt text—a description that screen readers use to tell visually-impaired visitors what the image shows. This also prevents search engines from understanding your product images, which means they can't help Google rank these photos or display them in image search results.

Why it matters for your business: Missing alt text reduces your visibility in Google Images (a source of product discovery traffic) and makes your site inaccessible to customers using screen readers, limiting your addressable market and exposing you to accessibility compliance risk.

Technical root cause: Images were uploaded and embedded in the page without descriptive alt attributes. This is typically a content management oversight—either images were added without alt text fields being filled in, or the CMS/template doesn't enforce alt text as a required field.

Recommended fix — step by step

  1. Audit the Live Resin Concentrates page and identify all 15 images; note their position and what product/feature each shows.
  2. For each image, write a concise alt text (5–12 words) that describes the product and its key visual trait—e.g., 'Golden live resin concentrate in glass container' instead of 'product.jpg'.
  3. If using WordPress: edit the page, click each image in the editor, click 'Edit' (pencil icon), fill the 'Alt Text' field, and save.
  4. If using a custom site or other CMS: request your developer add or populate the alt attribute in the <img> tags for each image, or provide you admin access to a content form that includes an alt text field.
  5. Once updated, re-run an accessibility audit tool (e.g., WAVE or Lighthouse in Chrome DevTools) on the same page to confirm all 15 images now have alt text.
  6. Create a checklist or CMS template reminder: every product image upload must include alt text before publishing.

7. 15 image(s) missing alt text

What it means (plain English)

Every image on your site should have alt text — a brief description that screen readers read aloud to blind visitors and search engines use to understand what the image shows. Your ounces page has 15 images with no alt text, meaning those visitors and search engines see nothing but a broken icon or blank space.

Why it matters for your business: Missing alt text reduces your search visibility for image-based queries (e.g., 'cannabis flower strains'), locks out visually impaired customers who use screen readers, and creates legal accessibility liability under ADA/WCAG standards.

Technical root cause: Images were likely uploaded without an alt attribute filled in during page creation. If using a CMS, the alt field was left blank; if raw HTML, the img tags have no alt="..." attribute.

Recommended fix — step by step

  1. Open https://olswell.com/ounces-at-olswell/ in your browser and identify each product or visual image on the page.
  2. If using WordPress: edit the page in the block editor, click each image, open the Image block settings panel, and fill in the 'Alt text' field with a 5–10 word description (e.g., 'Purple Haze cannabis flower in glass jar, 28 grams').
  3. If using Shopify: edit the product page, click each image in the media section, and add alt text in the Alt text field.
  4. If using raw HTML/static site: add alt="[description]" to each img tag (e.g., <img src="flower.jpg" alt="Purple Haze cannabis flower in glass jar, 28 grams">).
  5. Prioritize product images and strain photos over decorative images.
  6. Run the page through WebAIM's alt text checker (webaim.org/articles/alttext/) to verify quality.
  7. Apply the same process to all other product pages on your site (not just ounces).

8. 15 image(s) missing alt text

What it means (plain English)

Every image on your Pre-Rolls page is missing alt text—a text description that screen readers announce to visually impaired visitors. This breaks accessibility for a segment of your audience and also causes search engines to ignore those images entirely, missing an opportunity to rank for visual product searches.

Why it matters for your business: You're losing potential customers who use screen readers, and you're forfeiting SEO value from product imagery that could drive organic traffic to your pre-roll category pages.

Technical root cause: Images were inserted into the page without the HTML alt attribute populated. This is a common oversight during content creation, especially if images were bulk-uploaded without accompanying metadata.

Recommended fix — step by step

  1. Open https://olswell.com/pre-rolls-at-olswell/ in your browser and right-click on the first product image → Inspect (or use your site editor's media library).
  2. Identify the image file name and product name (e.g., 'Rainbow Haze Pre-Roll').
  3. If using WordPress: navigate to Media Library → find each image → edit → fill in the 'Alt Text' field with a short, descriptive phrase like 'Rainbow Haze pre-rolled cannabis joint' (include strain name + product type).
  4. If using a page builder (Elementum, Divi, etc.): select each image block → look for an 'Alt Text' or 'Accessibility' section in the sidebar → paste the same format.
  5. If managing raw HTML/code: add alt="Rainbow Haze pre-rolled cannabis joint" inside each <img> tag.
  6. Repeat for all 15 images on this page, prioritizing high-traffic product photos.
  7. Test: use a screen reader (NVDA on Windows, VoiceOver on Mac) or the WAVE browser extension to confirm alt text is announced.

9. 15 image(s) missing alt text

What it means (plain English)

All 15 images on your cartridges page lack alt text—descriptive labels that screen readers read aloud to blind/low-vision visitors, and that search engines use to understand image content. Without alt text, these images are invisible to both assistive technology users and search crawlers, making your product photos inaccessible and unhelpful for SEO.

Why it matters for your business: Customers using screen readers cannot identify your cartridge products, reducing conversions from disabled visitors; search engines cannot index these product images, limiting your visibility in image search results where cannabis consumers often browse.

Technical root cause: Images are embedded without alt attributes in the HTML. This is either a template/CMS issue where the alt field was left blank during image upload, or images are added via inline HTML/CSS without accessible markup.

Recommended fix — step by step

  1. Open https://olswell.com/cartridges-at-olswell/ in your browser, right-click on the first product image, and select 'Inspect' to view its HTML source—confirm whether an alt attribute exists and is empty or missing entirely.
  2. If using WordPress or a page builder: log into the admin dashboard, navigate to the cartridges page, open the image settings for each product photo, and fill in the 'Alt Text' field with a descriptive label (e.g., 'Olswell Hybrid Cartridge 500mg' or 'Cannabis sativa vape pen').
  3. If editing HTML directly: add alt="[product description]" to every <img> tag on that page (e.g., <img src="cartridge.jpg" alt="Olswell THC cartridge hybrid strain">).
  4. Once all 15 images have alt text, use a free tool like WAVE (wave.webaim.org) or axe DevTools browser extension to re-scan the page and confirm the issue is resolved.
  5. Apply the same alt-text discipline to all other product pages (flower, edibles, etc.) going forward—make it a standard part of your publishing workflow.

10. 15 image(s) missing alt text

What it means (plain English)

Every image on your Gummies & Chocolates page is missing alt text—the hidden description that screen readers use to help visually impaired customers understand what they're looking at. This also tells Google what each image shows, which helps your product pages rank better in image search results.

Why it matters for your business: Customers using assistive technology can't understand your product photos, creating an accessibility barrier that may trigger compliance complaints; you're also missing SEO value from Google Images, a traffic source many shoppers use to discover cannabis products.

Technical root cause: The images on that page were added to the HTML without the 'alt' attribute populated. This is common when using visual builders or uploading images without filling in the description field.

Recommended fix — step by step

  1. Log into your site admin or CMS (WordPress, Shopify, custom builder, etc.) and navigate to the Gummies & Chocolates page in edit mode.
  2. Click each image one at a time and look for an 'Alt Text', 'Description', or 'Image Properties' field.
  3. Write a short, specific description for each image (e.g., 'Assorted fruit gummies in packaging' or 'Chocolate edibles arrangement'). Keep it under 125 characters.
  4. Save each image update.
  5. Use a free tool like WAVE (wave.webaim.org) or axe DevTools browser extension to re-scan the page and confirm all alt text is now present.
  6. Repeat this process for any other product pages with multiple images.

11. 15 image(s) missing alt text

What it means (plain English)

All 15 images on this product page lack alt text — descriptive text that screen readers read aloud and search engines use to understand image content. This makes the page inaccessible to visually impaired customers and invisible to search engines, which can't index what the images show.

Why it matters for your business: Visually impaired customers can't navigate your rosin product page, reducing traffic from that audience; search engines also rank image-rich pages lower when alt text is missing, hurting your visibility for 'rosin concentrates' searches.

Technical root cause: Images were uploaded without alt text attributes (the HTML alt="" field). This is commonly overlooked when bulk-uploading product photos or using page builders that don't prompt for alt text during image insertion.

Recommended fix — step by step

  1. Open https://olswell.com/rosin-concentrates-at-olswell/ in a browser, right-click the first product image, select 'Inspect' to confirm the <img> tag has no alt attribute or has alt="".
  2. Identify your CMS platform by checking the page source (Ctrl+U) for meta tags like 'generator' or by trying common admin paths (/wp-admin, /admin, /cms). If WordPress, log in and open that page in the editor; if a page builder, open the builder view.
  3. For each of the 15 images, add descriptive alt text: use product name + key visual detail, e.g. 'Golden rosin concentrate in glass container' or 'Olswell rosin extract with crystalline texture'. Keep to 8–12 words per image.
  4. If WordPress: hover over the image in the editor, click 'Edit' (pencil icon), fill the 'Alt Text' field in the sidebar, and click 'Update'.
  5. If using a page builder (Elementor, Divi, etc.): click the image, find the 'Alt Text' or 'Accessibility' tab in the right panel, and paste your text.
  6. If using a custom or unknown CMS: contact your hosting support to confirm the platform, then repeat step 3 using that platform's image management interface.
  7. After updating all images, run https://olswell.com/rosin-concentrates-at-olswell/ through WAVE (wave.webaim.org) or Lighthouse (Chrome DevTools > Lighthouse tab) and confirm 'Missing alt text' errors are gone.
  8. Repeat this process for any other product pages with the same issue.

12. 16 image(s) missing alt text

What it means (plain English)

All 16 images on your FAQ page are missing alt text — descriptive labels that explain what each image shows. This hurts both accessibility (visitors using screen readers can't understand your images) and search engine ranking (Google uses alt text to understand image content and can rank you higher when it's present).

Why it matters for your business: You're losing SEO value on a high-traffic page and excluding customers with visual disabilities who use assistive technology — both reduce discoverability and potential sales.

Technical root cause: Images were added to the page without alt attributes in the HTML code. This is commonly overlooked during content updates or CMS publishing.

Recommended fix — step by step

  1. Open https://olswell.com/faqs/ in your browser and open the page source (right-click → View Page Source).
  2. Search for all <img tags and note which ones lack an alt="" attribute.
  3. For each image, determine a brief, accurate description (e.g., 'FAQ question about delivery options' or 'Olswell product selection'). Aim for 5–10 words per image.
  4. Access your CMS or contact your hosting provider to edit the FAQ page HTML directly; add alt="[description]" to each <img tag.
  5. Save and republish the page.
  6. Re-check using a free tool like WAVE (wave.webaim.org) — paste your FAQ URL and confirm all images now show alt text.
  7. Repeat this process for any other pages with images (product pages, home page, etc.).

13. 19 image(s) missing alt text

What it means (plain English)

Every image on your Cannabis Education Hub page is missing alt text—a brief description that search engines and screen readers use to understand what the image shows. This means visually impaired visitors can't tell what your images depict, and Google can't index them for image search or use them to understand your page's topic.

Why it matters for your business: Missing alt text reduces your page's search ranking potential, blocks visually impaired customers from accessing your educational content (a legal compliance risk), and loses image search traffic that could drive discovery.

Technical root cause: Images were added to the page without alt attributes (the HTML property that provides text descriptions). This is often an oversight during content creation or if using a visual builder without deliberate alt-text entry.

Recommended fix — step by step

  1. Visit https://olswell.com/cannabis-education-hub/ and inspect the page source (right-click → Inspect or View Page Source) to confirm which CMS is in use.
  2. If WordPress: log into wp-admin → Pages → Cannabis Education Hub → Edit in block editor or classic editor; find each image block and fill the Alt Text field with a 5–12 word description (e.g., 'Cannabis plant with visible trichomes under close-up macro lens').
  3. If Shopify: go to Online Store → Pages → Cannabis Education Hub → edit and add alt text to each image in the image settings panel.
  4. If custom HTML/static site: open the page's HTML file and add alt='[description]' to every <img> tag (e.g., <img src='plant.jpg' alt='Cannabis plant showing flowering stage'>).
  5. Prioritize high-value images first (cannabis product photos, diagrams, educational visuals); use clear, specific language that describes what's shown without keyword-stuffing.
  6. After updating, run the page through axe DevTools (free browser extension) or WebAIM's WAVE tool to confirm all images now have alt text.
  7. Add a process note: brief your content team to always fill alt text when uploading images going forward (include a simple template: 'What would you tell a blind person about this image?').

14. 16 image(s) missing alt text

What it means (plain English)

Every image on your Contact Us page lacks alternative text (alt text) — a short description that appears if the image doesn't load and is read aloud by screen readers for visually impaired visitors. This affects both accessibility compliance and search engine ability to understand your images.

Why it matters for your business: Missing alt text reduces your site's SEO ranking for image searches, blocks customers using accessibility tools, and puts you at risk of ADA compliance complaints — increasingly common in retail.

Technical root cause: Images are deployed without HTML alt attributes. Search engines and assistive technology cannot interpret what the images show.

Recommended fix — step by step

  1. Open https://olswell.com/contact-us/ in your browser and right-click each image; note its purpose (e.g., 'dispensary storefront', 'staff member John', 'product shelf')
  2. Access your site's admin/CMS (WordPress, Shopify, custom HTML, etc.) and locate the image manager or media library
  3. For each image, edit its alt text field and write a 5–15 word description that would help someone understand the image without seeing it
  4. Prioritize alt text for product images and team photos first, then decorative elements
  5. Run the page through a free accessibility checker (e.g., axe DevTools browser extension or WebAIM WAVE) to confirm all 16 images now have alt text
  6. Document your alt text strategy in a style guide so future uploads include alt text automatically

15. 22 image(s) missing alt text

What it means (plain English)

Every image on your in-store pickup page is missing alt text — descriptive labels that screen readers use to tell blind and low-vision visitors what an image shows. Search engines also use alt text to understand your content, which affects how you rank in image search results.

Why it matters for your business: You're losing potential customers who use screen readers, and Google can't fully index your images, which reduces your visibility in Google Images and organic search.

Technical root cause: Images were likely added to the page without alt attributes being populated during upload or template creation.

Recommended fix — step by step

  1. Open https://olswell.com/in-store-pickup/ in a browser and right-click → Inspect on each image to confirm the img tag has no alt attribute or alt=''
  2. For each image, write a concise 5–10 word description of what it shows (e.g., 'Customer holding a brown paper bag at counter' instead of just 'pickup')
  3. If you use a CMS (WordPress, Shopify, Webflow, etc.), log in and open the media library or page editor, select each image, and fill the 'Alt Text' or 'Alternative Text' field with your description
  4. If you edit HTML directly, add alt='description' to every img tag (e.g., <img src='pickup.jpg' alt='Customer holding a brown paper bag at counter'>)
  5. Re-test the page using a free tool like WAVE (wave.webaim.org) or axe DevTools (browser extension) to confirm all images now have alt text
  6. Repeat this process for any other product or content pages with images to prevent the issue spreading

16. 22 image(s) missing alt text

What it means (plain English)

Every image on your loyalty program page is missing alt text — descriptive labels that screen readers (used by people with vision loss) read aloud, and that search engines use to understand what images contain. All 22 images on that page lack these labels, making the page inaccessible and invisible to search crawlers.

Why it matters for your business: You're locking out customers with disabilities from understanding your loyalty program, risking legal exposure under accessibility law; plus Google cannot index or rank these images, weakening your SEO and reducing discoverability for visual search.

Technical root cause: Images were added to the page without the HTML alt attribute populated. This is typically a content entry or template oversight — alt text is not being filled in during image upload or page build.

Recommended fix — step by step

  1. Open https://olswell.com/loyalty-program/ in a browser, right-click an image, select 'Inspect' to see the <img> tag and confirm alt='' or alt attribute is missing
  2. Identify the CMS or page builder used to manage this page (check page source for clues: WordPress, Webflow, custom HTML, etc.)
  3. For each of the 22 images, add a short, descriptive alt text (2–10 words) that explains what the image shows; for example, alt='Loyalty card with star rewards' or alt='Customer earning bonus points'
  4. If using WordPress, install Yoast SEO or All in One SEO, bulk-edit missing alts via Media Library, and enable the 'missing alt' warning to prevent future uploads without alt text
  5. If using Webflow, select each image element, paste alt text into the Alt Text field in the right panel (Designer mode)
  6. If using a custom CMS or hand-coded HTML, add alt attributes directly to each <img> tag in the source
  7. Run a free audit tool (Wave.webaim.org or axe DevTools) against the page to confirm all 22 images now have alt text
  8. Document alt text standards in your brand guidelines or CMS setup so future image uploads include them automatically

17. 22 image(s) missing alt text

What it means (plain English)

Every image on your Adrian, MI dispensary page is missing alt text — a short description that screen readers read aloud and search engines use to understand the image. This blocks people with vision disabilities from using your site and signals to Google that your images aren't optimized.

Why it matters for your business: Customers using assistive technology can't browse your product photos or dispensary info, and you're losing SEO value that could drive local search traffic in your market.

Technical root cause: Images were uploaded or embedded without alt attributes in the HTML. This is typically a CMS content entry issue or a template that doesn't enforce alt-text fields during image upload.

Recommended fix — step by step

  1. Inspect the page source (right-click → Inspect, search for '<img') to confirm which images lack alt text
  2. Log into your CMS or page builder and open the Adrian, MI page editor
  3. For each image, click to edit it and locate the 'Alt Text' or 'Alternative Text' field (usually below the image upload area)
  4. Write concise, descriptive alt text for each: e.g., 'Green Mile OG eighth jar on white surface' for product photos, 'Olswell Adrian storefront exterior' for location shots
  5. Avoid stuffing keywords; keep alt text under 125 characters and focused on what the image shows
  6. Save and republish the page
  7. Use a free tool like WAVE (wave.webaim.org) or axe DevTools browser extension to scan the page again and confirm all images now have alt text

18. 21 image(s) missing alt text

What it means (plain English)

Every image on your Grand Rapids page is missing alt text — descriptive text that explains what the image shows. This hurts both accessibility (screen reader users can't understand your images) and search engine visibility (Google can't index what the images contain). Since all 21 images lack alt text, this is a site-wide issue, not just one page.

Why it matters for your business: Customers using screen readers or those with visual impairments can't browse your product images, reducing sales and excluding a legally-protected audience. Search engines also rank product pages lower when images lack alt text, hurting your organic traffic for product searches.

Technical root cause: Images were uploaded or inserted into the page without alt attributes in the HTML. This is typically a CMS issue where the image upload form doesn't enforce or prompt for alt text entry.

Recommended fix — step by step

  1. Audit your CMS image upload flow: does it have a required 'alt text' field? If not, make it mandatory for all future uploads.
  2. For existing images on the Grand Rapids page: manually add alt text to each image via your page editor (e.g., 'Cannabis flower strain - Purple Kush, 28% THC' or 'Olswell dispensary storefront in Grand Rapids'). Be descriptive but concise.
  3. Use a browser extension like WAVE (WebAIM.org) or Lighthouse (Chrome DevTools) to verify all images now have alt text.
  4. Repeat this process for any other product/location pages on the site (search your site map for similar patterns).
  5. If you use WordPress: install the plugin 'Alt Text Generator' to auto-fill simple descriptions, then review and refine them manually.
  6. Document your alt text standard (e.g., 'product name + THC % + product type') so your team uses consistent language across future uploads.

19. 21 image(s) missing alt text

What it means (plain English)

Every image on your Kalkaska, MI page is missing alt text — descriptive labels that explain what the image shows. Search engines and screen readers (used by people with vision loss) can't understand unlabeled images, so they're invisible to both bots and accessibility tools. This means you're losing potential search traffic and excluding customers who rely on assistive technology.

Why it matters for your business: Missing alt text reduces your page's SEO ranking for product images and cannabis strains, and makes your site inaccessible to disabled customers — both legal and revenue risks.

Technical root cause: Images were added to the page without accompanying alt attribute text in the HTML code. This is typically a content management or theme issue where the CMS doesn't enforce alt text entry, or images were bulk-uploaded without descriptions.

Recommended fix — step by step

  1. Open https://olswell.com/kalkaska-mi/ in a browser, right-click the first product/strain image, and select 'Inspect' to confirm the <img> tag has no alt='' attribute
  2. If using WordPress: go to Media Library, click each image, and fill the 'Alt Text' field with a descriptive phrase (e.g., 'Blue Dream cannabis flower buds' for a strain photo)
  3. If not WordPress: audit your page builder or CMS — check if images are inserted via a plugin or theme that has an alt-text field; fill it for all 21 images
  4. For product/strain images, write alt text that includes the product name + key visual attribute (e.g., 'Gelato hybrid strain in glass jar' instead of just 'image')
  5. Run the page through https://wave.webaim.org/ and paste the URL to verify all alt text is now in place
  6. Repeat this process for all other location pages (you likely have the same issue site-wide)

20. 21 image(s) missing alt text

What it means (plain English)

Every image on your Traverse City page lacks alternative text (alt text)—a short description that screen readers speak aloud to visually impaired visitors and that search engines use to understand image content. This affects both accessibility (making your site unusable for some customers) and SEO (Google cannot index what it cannot read).

Why it matters for your business: Visitors using screen readers cannot browse your product photos or location details, shrinking your addressable audience and potentially violating disability access laws; Google also ranks pages with proper image descriptions higher in search results, so missing alt text costs organic traffic and local search visibility.

Technical root cause: Images were added to the page without alt attributes in the HTML. This is typically a content management system upload oversight or a template that doesn't enforce alt-text entry.

Recommended fix — step by step

  1. Audit the page source: open https://olswell.com/traverse-city-mi/, press Ctrl+F (or Cmd+F), search for '<img' and scan each result to confirm alt='' or missing alt entirely.
  2. If using WordPress: install the Yoast SEO plugin (free version), navigate to SEO → Search Appearance → Media, and enable 'Alt text required' enforcement.
  3. For each of the 21 images, write a 5–10 word alt description (e.g., 'Green cannabis flower in glass jar' or 'Olswell storefront entrance in Traverse City'); avoid keyword stuffing.
  4. If page is HTML/custom CMS: directly edit each <img> tag to add alt='description'. Example: <img src='flower.jpg' alt='Premium sativa cannabis flower'>.
  5. After adding alt text, run the page through WebAIM WAVE (wave.webaim.org) to confirm zero missing alt warnings remain.
  6. Repeat this process for all other location pages (e.g., any other /[city]-[state]/ URLs) to ensure consistency.

21. 30 image(s) missing alt text

What it means (plain English)

All 30 images on your site are missing alt text—descriptions that appear when images don't load and that screen readers (used by people with vision disabilities) read aloud. This makes your site unusable for disabled visitors and signals to Google that your images aren't indexed or understood, hurting search visibility.

Why it matters for your business: You're excluding disabled customers from browsing your product catalog, risking legal exposure under accessibility laws (ADA), and losing SEO credit for product imagery—especially important for a cannabis retailer where visual product presentation drives sales.

Technical root cause: Images are likely inserted via Elementor (your page builder) without the alt-text field being populated during upload. Elementor stores alt text in image metadata, but empty fields mean no accessibility or SEO benefit.

Recommended fix — step by step

  1. Log into WordPress admin → Media Library, filter by 'Unattached' or browse all images
  2. For each image, click it, scroll to 'Alt Text' field, and write 1–5 words describing the image (e.g., 'Indica flower in glass jar', 'Employee wearing Olswell apron')
  3. Prioritize product images first (highest traffic/revenue impact)
  4. Alternatively, use a bulk edit tool: install the free 'Bulk Image Alt Text' plugin (search WordPress plugin directory), upload a CSV mapping image filenames to alt text, and apply in one pass
  5. After updating, run a re-crawl via Google Search Console (Settings → Request Indexing) to flag updated images for re-ranking
  6. Test with a screen reader (install free NVDA or use browser DevTools) to confirm alt text reads aloud

22. 30 image(s) missing alt text

What it means (plain English)

Every image on your site should have alt text — a short text description that appears if the image doesn't load and is read aloud by screen readers used by people who are blind or have low vision. Right now, all 30 images on your site are missing this description. Search engines also use alt text to understand what images show, which helps them rank your pages correctly.

Why it matters for your business: Missing alt text reduces your search visibility for image-based queries, blocks access for customers using assistive technology, and may expose you to accessibility complaints or legal risk in regulated markets.

Technical root cause: Images were likely inserted via Elementor's page builder without filling in the alt text field, or alt attributes were not added during initial image upload to the media library.

Recommended fix — step by step

  1. Log in to WordPress admin → Media Library → filter for images used on https://olswell.com/?elementor_library=single-post
  2. For each image, click Edit → scroll to Alt Text field → write a short, descriptive phrase (e.g., 'Cannabis flower in glass jar' or 'Dispensary storefront') → Save
  3. Alternatively, edit the page in Elementor → click each image widget → go to Advanced tab → find Alt Text input → enter description → update
  4. If using WooCommerce for product images, go to Products → edit each product → click product image → add Alt Text in the Image Details panel
  5. Install the plugin 'Alt Text for Images' to bulk-audit and assign alt text more efficiently
  6. After updating, run the page through a free accessibility checker (WebAIM WAVE or axe DevTools browser extension) to confirm all images now have alt text

23. 30 image(s) missing alt text

What it means (plain English)

Your website has 30 images without alt text — short descriptions that explain what each image shows. Search engines and screen readers (used by people with vision disabilities) can't understand images without these descriptions. This hurts both accessibility compliance and your ability to rank in image search results.

Why it matters for your business: Missing alt text reduces your organic search visibility for image-based queries, limits your reach to visually impaired customers, and creates potential ADA compliance liability for a retail business.

Technical root cause: Images were likely added via Elementor (a page builder) or inserted into pages without the alt field being filled in during upload or content creation.

Recommended fix — step by step

  1. Log into your WordPress admin → Media Library → filter by images on olswell.com
  2. For each image, click 'Edit' and fill in the 'Alt Text' field with a 1–2 sentence description (e.g., 'Close-up of organic cannabis flower strain' or 'Olswell storefront exterior')
  3. If using Elementor: go to Pages → edit each page → click each Image widget → open the Advanced tab → fill 'Alt Text'
  4. Prioritize hero images, product images, and logo; generic decorative images can use empty alt='" to signal 'skip this'
  5. Run a follow-up audit using a free tool like axe DevTools (Chrome extension) to confirm all images now have meaningful alt text
  6. Document your alt-text process and add it to your content creation checklist to prevent recurrence

24. 30 image(s) missing alt text

What it means (plain English)

Every image on your site should have a short text description (called "alt text") that describes what the image shows. Right now, 30 images are missing these descriptions. Search engines can't read images, so they rely on alt text to understand what's on your page. Visitors using screen readers (software that reads web pages aloud) also depend on alt text to know what images contain.

Why it matters for your business: Missing alt text costs you both SEO rankings (Google ranks pages with properly described images higher) and excludes customers with visual disabilities from fully experiencing your product showcase, which is critical for a visually-driven cannabis retail site.

Technical root cause: Images were added to the site without alt text attributes filled in. This is common when using page builders like Elementor—the alt field is optional by default, so images publish without it.

Recommended fix — step by step

  1. Log into your WordPress admin → click Elementor → open the footer template (elementor_library=footer) to see which images are missing alt text
  2. For each image in Elementor, click the image → open the Advanced tab → scroll to the Accessibility section → fill in the Alt Text field with a 5–15 word description of what the image shows (e.g., 'Olswell logo with cannabis leaf design')
  3. Repeat this for all other pages/templates on the site; search for images lacking alt text using Chrome DevTools (F12 → Elements → search for <img> tags with no alt attribute)
  4. After updating, run a re-check using an accessibility tool (free option: WAVE browser extension) to confirm alt text is present
  5. Add a policy: require anyone editing the site to fill in alt text before publishing images

25. 30 image(s) missing alt text

What it means (plain English)

Every image on your site needs a text description (called 'alt text') that describes what the image shows. Right now, all 30 images are missing these descriptions. Search engines use alt text to understand your images, and visitors using screen readers (assistive technology for people with visual disabilities) cannot access your content without it.

Why it matters for your business: Missing alt text reduces your search ranking for image-related queries, limits your reach to customers with disabilities (a legal and market consideration), and signals poor site quality to Google.

Technical root cause: Images are embedded in your Elementor page builder templates without descriptive alt attributes assigned. Elementor defaults to empty alt fields unless explicitly filled in by the content editor.

Recommended fix — step by step

  1. Log into WordPress admin and go to Elementor → Templates or Pages containing images
  2. Click 'Edit with Elementor' on the template/page with images (likely your header template at https://olswell.com/?elementor_library=header)
  3. For each image widget, click the image and open the 'Advanced' tab in the left panel
  4. Locate the 'Alt Text' field and write a concise, descriptive phrase (e.g., 'Cannabis flower buds on white background' or 'Olswell logo')
  5. Prioritize hero images, product photos, and brand/logo images first; decorative images can use empty alt if truly decorative
  6. Update and republish the template
  7. Audit other templates and pages (blog posts, product pages) and repeat steps 2–6
  8. Use a free browser tool like WAVE (wave.webaim.org) or Lighthouse to confirm all images now have alt text

26. 18 image(s) missing alt text

What it means (plain English)

Every image on your blog page is missing alt text—a short description that screen readers use to explain what the image shows, and that search engines use to understand your content. All 18 images on that page are affected. This hurts both accessibility (people using screen readers get no context) and SEO (Google can't index the images or understand the page topic as well).

Why it matters for your business: Visitors using assistive technology can't engage with your visual content, and you're losing search rankings for image-based queries—important for a visually-driven industry like cannabis retail.

Technical root cause: The blog post template or individual blog entries don't populate the alt attribute on img tags. This is typically a content authoring issue (missing alt field in the post editor) or a theme/template that doesn't expose an alt field.

Recommended fix — step by step

  1. Audit the blog post editor: check if there's an 'Alt Text' or 'Description' field for each image. If missing, enable it (most WordPress themes have this in the media panel by default).
  2. For each of the 18 images, open the blog post in edit mode and click each image to reveal a panel with an 'Alt Text' field.
  3. Write concise, descriptive alt text for each image (e.g., 'Cannabis flower sample on white background' or 'Olswell product shelf display'). Keep it under 125 characters.
  4. If using WordPress, ensure your theme or a plugin like Yoast SEO isn't stripping alt attributes on save.
  5. After adding alt text to all 18 images, re-publish the blog post and run a re-crawl using your monitoring tool to confirm all alt text is now present.
  6. Set a workflow rule: whenever content team uploads an image to the blog, fill in the Alt Text field before publishing.

27. Mobile perf measurement failed

What it means (plain English)

Our automated performance testing tool couldn't load your homepage on mobile within 60 seconds. This typically means the page is either very slow to respond, has resources that won't load, or the server isn't responding reliably to mobile requests.

Why it matters for your business: If your site times out for testing tools, it's likely timing out for real visitors on slower connections—causing lost traffic, abandoned shopping carts, and lower search rankings.

Technical root cause: The server or page resources (images, scripts, stylesheets) are taking too long to deliver, or there's a connectivity issue between the test environment and your hosting. Mobile networks are slower than desktop, so mobile-specific bottlenecks surface here.

Recommended fix — step by step

  1. Open https://olswell.com/ in a mobile browser (or use Chrome DevTools > Device Toolbar) and manually test load time—note how long it takes to see the page and interact with it
  2. Check your hosting provider's server status dashboard for outages or performance degradation in the last 24 hours
  3. Run https://olswell.com/ through Google PageSpeed Insights (mobile tab) and address red/orange opportunities, especially image optimization and render-blocking scripts
  4. If images are large: enable WebP format and lazy-loading via your CMS or image CDN (Cloudinary, Imgix, etc.)
  5. Defer non-critical JavaScript: in your site's HTML <head>, change <script> tags to <script defer> or move them to </body>
  6. If using a CMS (WordPress, Shopify, etc.), enable a caching plugin (WP Super Cache, Autoptimize) and enable Gzip compression in hosting panel
  7. Retest 24 hours later using the same automated tool; if timeout persists, contact your hosting provider's support with the error message

28. Missing core schema types: LocalBusiness

What it means (plain English)

Your site includes structured data (code snippets that tell search engines about your business) for Organization and WebSite, but is missing LocalBusiness markup. For a cannabis dispensary, LocalBusiness schema is how Google understands your physical location, hours, phone number, and licensing information—critical for local search results and map visibility.

Why it matters for your business: Without LocalBusiness schema, your dispensary is less likely to appear in Google Maps, local search results, and 'near me' queries—directly reducing foot traffic and online orders from customers searching for nearby cannabis retailers.

Technical root cause: The site's JSON-LD schema is incomplete. LocalBusiness is a standard schema type that wraps location-specific details (address, phone, hours, license number) that search engines expect for retail businesses.

Recommended fix — step by step

  1. Audit your current schema: use Google's Structured Data Testing Tool (schema.org/validator) to see exactly what LocalBusiness fields are missing (address, telephone, openingHoursSpecification, etc.).
  2. Add LocalBusiness as a parent type to your existing Organization schema, or create a separate LocalBusiness JSON-LD block on your homepage <head>.
  3. Include required fields: streetAddress, addressLocality, addressRegion, postalCode, telephone, and openingHoursSpecification (with days/hours).
  4. For cannabis compliance: add a 'knowsAbout' or 'description' field that references your license number and regulatory status (e.g., 'Licensed cannabis retailer, License #12345').
  5. Test the updated schema in Google Search Console → Enhancements → Structured Data to confirm LocalBusiness is recognized.
  6. Submit the updated page to Google Search Console for recrawl.

29. Missing security header: strict-transport-security

What it means (plain English)

Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use HTTPS when visiting your domain. Without it, users could accidentally connect via unencrypted HTTP, exposing sensitive data like login credentials or payment info. This is especially critical for a cannabis retailer handling age verification and customer data.

Why it matters for your business: Missing HSTS exposes customer data and payment information to interception attacks, creates compliance risk, and signals poor security posture to search engines and payment processors.

Technical root cause: The server response headers do not include the Strict-Transport-Security directive. While you're using Cloudflare and WP Engine (both capable of adding this header), it has not been configured.

Recommended fix — step by step

  1. Log into your WP Engine account → Server Settings or Managed WordPress Settings, locate the HTTP Headers or Security section, and look for an HSTS configuration option.
  2. If WP Engine's dashboard doesn't expose HSTS directly, add it via Cloudflare: log into Cloudflare dashboard → select olswell.com → go to Rules → Transform Rules → Create rule to add 'Strict-Transport-Security: max-age=31536000; includeSubDomains; preload' header to all responses.
  3. Alternatively, contact WP Engine support directly (support@wpengine.com or via your account dashboard) and request they enable HSTS with max-age=31536000 and includeSubDomains.
  4. After deployment, verify the header is present: use curl -I https://olswell.com in terminal or visit https://securityheaders.com and paste your URL to confirm the header appears.
  5. Once confirmed, submit your domain to the HSTS preload list at https://hstspreload.org to prevent any HTTPS-bypass attack vectors.

30. Missing security header: x-frame-options

What it means (plain English)

Your website is missing the X-Frame-Options security header, which tells browsers whether your site can be embedded inside another website's frame or iframe. Without it, attackers could potentially embed your site in a malicious page to trick users or steal data. This is a standard security practice that should be in place.

Why it matters for your business: Missing this header weakens your site's security posture and could expose customer data to clickjacking attacks, damaging trust and potentially creating compliance liability for a regulated cannabis retailer.

Technical root cause: The server (WP Engine hosting + Cloudflare) is not configured to return the X-Frame-Options header in HTTP responses. This is typically a hosting or CDN configuration that needs to be explicitly set.

Recommended fix — step by step

  1. Log into your WP Engine account dashboard, navigate to General Settings → Security, and check if there is an 'X-Frame-Options' or 'Clickjacking Protection' toggle; enable it if present.
  2. If not available in WP Engine, log into your Cloudflare dashboard, select your domain, go to Rules → Transform Rules → Modify Response Header, and add a rule to set 'X-Frame-Options: SAMEORIGIN'.
  3. If Cloudflare does not offer response header rules on your plan, contact WP Engine Support directly via your account dashboard and request they set 'X-Frame-Options: SAMEORIGIN' in your server config.
  4. After applying the fix, use an online header checker (e.g., security.headers.io) and enter https://olswell.com/ to confirm the header now appears in responses.
  5. Test your site in your browser to ensure no functionality breaks (some embed features may be blocked, which is intentional).

31. Missing security header: content-security-policy

What it means (plain English)

Your site is missing a Content Security Policy (CSP) header — a security instruction that tells browsers which sources (scripts, images, styles) are safe to load. Without it, attackers can more easily inject malicious code. Since you're hosted on WP Engine (a managed WordPress host), they likely support CSP, but it isn't enabled yet.

Why it matters for your business: A cannabis retailer without CSP is at higher risk of payment-card theft, customer data compromise, or malware injection — any of which could trigger payment processor fines, legal liability, or loss of trust.

Technical root cause: The HTTP response headers do not include a Content-Security-Policy directive. WP Engine and Cloudflare (your CDN) both support CSP headers, but the policy must be explicitly configured and deployed.

Recommended fix — step by step

  1. Log in to WP Engine account → Settings → Security → enable 'Content Security Policy' if available, or contact WP Engine support to request CSP activation and provide a baseline policy
  2. If WP Engine does not offer CSP in their UI, add the header via Cloudflare: log into Cloudflare dashboard → your domain → Rules → Transform Rules → create a rule to add response header 'Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;' (adjust as needed for your third-party services)
  3. Test the header is present by running curl -I https://olswell.com/ in terminal and verifying 'content-security-policy' appears in the output
  4. Once CSP is live, audit your site for inline scripts or third-party sources that may violate the policy (use browser DevTools Console and check for CSP violations)
  5. If violations appear, either refactor inline code into external files or whitelist trusted domains in your CSP policy

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

What it means (plain English)

Your website has 45 buttons, links, and other clickable elements that are smaller than 44×44 pixels when viewed on mobile phones. These tiny targets are hard for people to tap accurately—especially customers with vision loss, tremors, or arthritis, and anyone using a phone one-handed. This violates the Web Content Accessibility Guidelines (WCAG), a legal standard many states now enforce for retail sites.

Why it matters for your business: Small tap targets frustrate mobile shoppers, increase cart abandonment, and expose you to accessibility lawsuits; they also signal poor UX to search engines, which can lower your ranking in mobile search results where most cannabis consumers browse.

Technical root cause: Interactive elements on the page are styled with padding, font sizes, or button dimensions that fall below the 44×44-pixel minimum at 320px viewport width. This often stems from responsive CSS that doesn't account for mobile constraints, or from legacy designs not audited for touch-friendly sizing.

Recommended fix — step by step

  1. Open your site in Chrome DevTools (F12 → Ctrl+Shift+M → set viewport to 320px) and visually identify clusters of small buttons—likely candidates are navigation menus, product filter toggles, quantity selectors, and social icons.
  2. For each undersized target, increase its clickable area: set min-width and min-height to 44px (or 48px for safety), and add padding around the label/icon so the visual element sits within that 44×44 box.
  3. If a button's text label is already large enough, wrap it in padding: e.g., <button style="padding: 12px 16px; min-height: 44px;">Add to Cart</button>.
  4. For icon-only buttons (menu, close, cart count badges), increase the container size: e.g., <button class="menu-toggle" style="width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;"><svg>...</svg></button>.
  5. Test on mobile-320 again in DevTools; use the Accessibility Inspector (DevTools → Accessibility tab) to confirm each interactive element reports a 44×44 or larger bounding box.
  6. If your site uses a CMS (WordPress, Shopify, etc.), check your theme's CSS file for media queries that reduce button sizes below 44px at breakpoints ≤ 320px; if found, override with min-height/min-width rules in a child theme or custom CSS block.
  7. Run a full-page audit with axe DevTools (free Chrome extension) to catch any remaining small targets you may have missed.

33. 49 tap targets under 44px at mobile-375

What it means (plain English)

Your website has 49 clickable elements (buttons, links, menu items) that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately, especially for people with limited dexterity, older users, or anyone on a moving vehicle. WCAG 2.5.5 is an accessibility standard that requires interactive elements to meet this minimum size.

Why it matters for your business: Small tap targets frustrate mobile visitors and may cause accidental clicks, reducing conversion rates and increasing bounce rate—particularly damaging for a retail site where mobile purchases and menu browsing are critical.

Technical root cause: The site likely uses CSS styling that sets buttons, links, or navigation items to padding and font sizes too small for comfortable mobile interaction. This is common when desktop designs are scaled down for mobile without proper responsive adjustments.

Recommended fix — step by step

  1. Open your site in Chrome DevTools (F12 → Toggle device toolbar → set to iPhone 12 or 375px width) and use the Element Inspector to identify the 10–15 most critical tap targets (primary CTAs, menu toggles, checkout links).
  2. For each, check the computed padding + border + font-size. Aim for minimum 44×44px total bounding box. If using a CMS (WordPress, Shopify, etc.), inspect the theme CSS file or use the Customizer.
  3. Increase padding on buttons: change CSS from padding: 8px 12px to padding: 12px 16px or higher to meet 44px minimum in both dimensions.
  4. If navigation menu items are too small, increase font-size from 14px to 16px+ and add vertical margin between links to create spacing.
  5. Test each fix by tapping with your thumb on an actual mobile device or DevTools device emulation, confirming no accidental adjacent-element activation.
  6. For menu hamburger icons, ensure the icon SVG + padding totals 44px; if the icon alone is 24px, wrap it with 10px padding on all sides.
  7. Run a final audit using axe DevTools (free Chrome extension) or WAVE to confirm no remaining sub-44px targets on mobile.

34. 49 tap targets under 44px at mobile-414

What it means (plain English)

Your homepage has 49 interactive buttons, links, and other clickable elements that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately—especially for people with limited dexterity, vision impairments, or those using older devices. It's a WCAG accessibility standard that also reduces accidental mis-taps on mobile.

Why it matters for your business: Small tap targets frustrate mobile users (who may be browsing your product menu or age gate), increase cart abandonment, and expose you to accessibility lawsuits—particularly relevant in cannabis retail where compliance is already scrutinized.

Technical root cause: Interactive elements (buttons, links, form inputs, product tiles) are sized below the 44×44px minimum, likely due to tight spacing in the original design or CSS sizing that doesn't account for touch targets on smaller viewports.

Recommended fix — step by step

  1. Open your site in Chrome DevTools (F12 → Device Toolbar → iPhone 12 Pro / 414px width) and inspect the smallest visible buttons or links.
  2. Identify the primary interactive elements (age-gate button, menu toggles, product links, cart button) and note their current pixel dimensions.
  3. For each element under 44×44px, either: increase padding/line-height to reach 44×44px, or increase the underlying button/link size.
  4. Use CSS to apply a minimum size rule: add min-width: 44px; min-height: 44px; to your button and .touch-target classes, and ensure line-height is ≥ 44px for text links.
  5. For product grids or tight layouts, add invisible padding around small elements using padding or a transparent border (border: 8px solid transparent) to expand the touch zone without changing visual layout.
  6. Test on a real mobile device or use Chrome DevTools' touch simulation to confirm all primary CTAs (call-to-action buttons) can be tapped reliably.
  7. Re-run your accessibility scan to confirm the count drops below 5–10 residual false positives (e.g., decorative icons).

35. 31 tap targets under 44px at tablet-768

What it means (plain English)

Your website has 31 interactive elements (buttons, links, menu items) that are smaller than 44×44 pixels when viewed on a tablet. This makes them difficult to tap accurately, especially for people with motor disabilities or those using touch screens. The Web Content Accessibility Guidelines (WCAG) require a minimum touch target size of 44×44 pixels to ensure usability for all visitors.

Why it matters for your business: Small tap targets frustrate tablet users—including customers browsing your menu or age-verification flow—leading to abandoned visits and lost sales. Non-compliance also creates legal exposure under accessibility lawsuits common in the cannabis retail space.

Technical root cause: Interactive elements are styled with padding, font sizes, or click areas below the 44px minimum. This often happens when designs optimized for desktop are not properly scaled or when legacy CSS uses tight spacing on buttons, links, or form inputs.

Recommended fix — step by step

  1. Open your browser's Developer Tools (F12 or Right-click → Inspect) and navigate to tablet viewport (768px width); identify and list all buttons, links, and form inputs visually smaller than a postage stamp.
  2. For each undersized element, increase its padding (e.g., CSS padding: 12px 16px) or wrapper dimensions to ensure the clickable area is at least 44×44 pixels.
  3. Test primary revenue flows on tablet: age gate, product menu links, 'Add to Cart' buttons, and checkout buttons—ensure all are easily tappable.
  4. If your site uses a CSS framework (Bootstrap, Tailwind), audit button and link default sizes; add a custom CSS rule like button { min-height: 44px; min-width: 44px; } to enforce compliance.
  5. Use a mobile/tablet device to manually tap each interactive element; if your thumb naturally misses it, it's too small.
  6. Re-test at tablet-768 viewport using an accessibility checker (WAVE, Axe DevTools browser extension) to confirm count drops to zero.
  7. Document the changes and schedule quarterly checks as new features are added.

36. Lighthouse bestPractices (mobile): 61/100

What it means (plain English)

Lighthouse, Google's performance audit tool, gave your mobile site a Best Practices score of 61 out of 100—well below the healthy target of 90. Best Practices flags issues like outdated browser APIs, insecure third-party scripts, or broken image formats that erode user trust and can trigger warnings in browsers. The underlying report shows specific violations (e.g., deprecated code patterns, unoptimized libraries, or missing security headers) that are dragging down this score.

Why it matters for your business: A low Best Practices score signals to search engines and users that your site may have quality or security issues, which can reduce organic traffic and increase cart abandonment—especially critical for cannabis retail where trust and compliance perception matter.

Technical root cause: The site is likely using older JavaScript libraries, third-party integrations (ad networks, analytics, payment processors), or browser APIs that Lighthouse flags as risky or outdated. Without access to the full HTML report, common culprits include unpatched npm dependencies, legacy payment gateways, or tracking scripts that lack modern security practices.

Recommended fix — step by step

  1. Download and open the Lighthouse HTML report from the evidence file path to identify the specific Best Practices violations (e.g., 'Uses deprecated APIs' or 'Unoptimized images').
  2. For any flagged third-party script (analytics, payment, ads), check the vendor's documentation for updated versions or API endpoints and update the script tag in your HTML or tag manager.
  3. Run npm audit (if using Node.js) or equivalent dependency scanner for your framework; upgrade any flagged packages and redeploy.
  4. Audit your <img> tags and replace deprecated formats (BMP, TIFF) with modern formats (WebP with JPEG fallback); use <picture> elements or srcset attributes.
  5. Check for deprecated browser APIs in your JavaScript console: search your codebase for document.write, outdated geolocation patterns, or synchronous XMLHttpRequest; refactor to modern Promise-based or async/await patterns.
  6. Verify HTTPS is enabled site-wide and all external resources (stylesheets, scripts, images) load over HTTPS, not mixed HTTP.
  7. Run a second Lighthouse audit after changes to confirm the score rises above 85.

37. A11y: Heading levels should only increase by one (×2)

What it means (plain English)

Your site jumps from an H4 heading directly to an H6 heading in two places, skipping H5. Screen readers and search engines expect headings to increase in size one level at a time (H1 → H2 → H3, etc.). This breaks the logical structure of your content and makes it harder for visitors using assistive technology to navigate.

Why it matters for your business: Visitors using screen readers may struggle to understand your site's layout, reducing accessibility for disabled customers and potentially violating ADA compliance expectations for e-commerce.

Technical root cause: The Elementor page builder is applying inconsistent heading tags (H4 and H6) to similar content blocks without respecting heading hierarchy. This typically happens when templates or widgets use fixed heading sizes instead of following semantic structure.

Recommended fix — step by step

  1. Open the Olswell homepage in Elementor (click Edit with Elementor in the WordPress backend)
  2. Find the 'Flower' product link section — select the H6 heading widget and change its HTML tag from H6 to H5 in the Advanced → HTML Tag dropdown
  3. Find the 'Traverse City' location link section — check if it should be H3 or H4 depending on your page structure; if the H4 is correct, change any H6 above it to H5
  4. Use a browser accessibility inspector (Chrome DevTools → Accessibility pane) to verify the heading order now flows H1 → H2 → H3 → H4 → H5 without gaps
  5. Test with a screen reader (free option: NVDA on Windows, built-in VoiceOver on Mac) to confirm logical navigation

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

Detail

Ensure all page content is contained by landmarks

Impact: moderate

WCAG:

Learn more: https://dequeuniversity.com/rules/axe/4.11/region?application=playwright

39. A11y: The skip-link target should exist and be focusable

Detail

Ensure all skip links have a focusable target

Impact: moderate

WCAG:

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


P3 — 80 findings

1. robots.txt does not reference sitemap

What it means (plain English)

Your robots.txt file (a text file that tells search engines where to look on your site) doesn't include a pointer to your sitemap—an organized list of every page you want indexed. Without this pointer, search engines may take longer to discover all your product pages and content, or miss new pages entirely.

Why it matters for your business: Missing the sitemap reference delays how quickly Google and other search engines index your product catalog and promotional pages, which can slow traffic growth and reduce visibility for product searches.

Technical root cause: The robots.txt file exists but lacks a 'Sitemap:' directive. Most CMS platforms generate sitemaps automatically, but robots.txt must be manually configured (or via CMS settings) to announce where that sitemap lives.

Recommended fix — step by step

  1. Open https://olswell.com/robots.txt in your browser to confirm it exists and view its current content.
  2. Identify your XML sitemap URL (typically https://olswell.com/sitemap.xml or https://olswell.com/sitemap-index.xml; check your CMS admin or ask your host).
  3. Edit robots.txt to add the line 'Sitemap: https://olswell.com/[your-sitemap-path]' at the end of the file.
  4. Save and verify the updated robots.txt loads correctly in your browser.
  5. Log into Google Search Console (search.google.com/search-console), navigate to Sitemaps, and manually submit your sitemap URL as a backup.

2. Missing OpenGraph metadata

What it means (plain English)

Your site's homepage doesn't include OpenGraph metadata—special HTML tags that control how your page looks when shared on social media (Facebook, Instagram, LinkedIn). Without these tags, social platforms display generic or broken previews, making your content look unprofessional and reducing click-through rates from shares.

Why it matters for your business: Cannabis retailers rely on social proof and word-of-mouth; poor social preview images reduce engagement when customers share your site or when you run paid social campaigns, directly impacting traffic and brand credibility.

Technical root cause: The homepage HTML is missing <meta property="og:title"> and <meta property="og:image"> tags in the <head> section. Without these, platforms like Facebook and Instagram cannot display branded preview cards when users share the URL.

Recommended fix — step by step

  1. View the page source (Ctrl+U or Cmd+U) and search for <meta property="og: to confirm OpenGraph tags are missing.
  2. Add the following lines to the <head> section of your homepage HTML: <meta property="og:title" content="[Your Dispensary Name & Tagline]">, <meta property="og:image" content="[full URL to a 1200x630px branded image]">, and <meta property="og:url" content="https://olswell.com/">. (Use a high-quality product photo or logo/storefront image.)
  3. Also add <meta name="twitter:card" content="summary_large_image"> and <meta name="twitter:image" content="[same image URL]"> for Twitter/X compatibility.
  4. If using a website builder (Wix, Shopify, etc.), check Settings → SEO or Social Sharing settings and fill in Open Graph fields there instead of editing HTML directly.
  5. Test the fix using Facebook's Sharing Debugger (facebook.com/sharing/debugger) or Twitter Card Validator—paste your URL and verify the preview renders correctly.
  6. Repeat this process for key pages: product pages, blog posts, and the About page.

3. Missing OpenGraph metadata

What it means (plain English)

Your page is missing OpenGraph tags — code snippets that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your content when someone shares a link. Without these tags, social shares show as plain text with a generic thumbnail instead of your branded image and headline.

Why it matters for your business: Missing OpenGraph metadata reduces click-through rates on social shares, making your cannabis content less visually compelling and less likely to drive traffic back to your site.

Technical root cause: The page HTML does not include <meta property="og:title"> and <meta property="og:image"> tags in the document head, so social platforms cannot extract preview information.

Recommended fix — step by step

  1. Open the affected page's HTML source (https://olswell.com/olswell-cannabis-co-toy-drive/) and locate the <head> section
  2. Add <meta property="og:title" content="[Page Headline]"> below your existing meta tags (replace [Page Headline] with the actual page title)
  3. Add <meta property="og:image" content="[Full URL to a 1200x630px image]"> — use a high-quality product photo or branded graphic from your toy drive campaign
  4. Also add <meta property="og:description" content="[2-3 sentence summary]"> to match the page's purpose
  5. If using a CMS (WordPress, Shopify, etc.), install Yoast SEO or similar plugin: Settings → Social → enable OpenGraph and upload default image
  6. Test the fix by pasting the URL into Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing/) — it should show your image and title
  7. Repeat for other high-traffic pages (product pages, promotions, blog posts)

4. Missing OpenGraph metadata

What it means (plain English)

When people share your pages on Facebook, Instagram, or other social platforms, those platforms look for special metadata tags (called OpenGraph tags) to know what title and image to display. Without these tags, sharing looks unprofessional — it may show a broken image or generic text instead of your intended preview.

Why it matters for your business: Poor social media previews reduce click-through rates when customers share your content, limiting organic reach and brand visibility in a competitive market.

Technical root cause: The page is missing og:title and og:image meta tags in the HTML head section, so social platforms cannot fetch a branded preview when the URL is shared.

Recommended fix — step by step

  1. Inspect the page source (right-click → View Page Source) and locate the <head> section
  2. Add og:title with your intended headline: <meta property="og:title" content="Olswell Cannabis Co Toy Drive 2024">
  3. Add og:image with a URL to a high-quality image (1200×630px minimum): <meta property="og:image" content="https://olswell.com/images/toy-drive-social.jpg">
  4. Also add og:description for context: <meta property="og:description" content="[Your brief description]">
  5. If using WordPress, install Yoast SEO or All in One SEO, go to the post editor, and fill in the Social Preview fields under the plugin's settings panel
  6. Test the fix using Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) — paste your URL and click Debug to see the preview

5. Missing Twitter card

What it means (plain English)

Your site is missing Twitter Card metadata, which is a snippet of code that tells Twitter (now X) how to display your content when someone shares a link to your site on that platform. Without it, Twitter shows only a plain link with no image or description, making your content less eye-catching and less likely to be clicked.

Why it matters for your business: Missing Twitter Cards reduce engagement and click-through rates on social media, meaning fewer potential customers see your cannabis products and promotions when staff or customers share links.

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

Recommended fix — step by step

  1. Add the following meta tags to the <head> section of your site template (or use an SEO plugin if on WordPress): <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="[Page Title]"> <meta name="twitter:description" content="[Page Description]"> <meta name="twitter:image" content="[Image URL]">
  2. Use the same Open Graph image (og:image) URL for twitter:image to maintain consistency across platforms
  3. Test the implementation using Twitter's Card Validator (cards-dev.twitter.com/validator) by entering your URL and confirming the card displays correctly
  4. If using WordPress, install Yoast SEO or Rank Math, go to their Social settings, enable Twitter/X integration, and configure card defaults

6. Missing OpenGraph metadata

What it means (plain English)

This page is missing OpenGraph tags—special metadata that tells social platforms like Facebook and Instagram what image and title to display when someone shares the link. Without them, the share preview looks generic or broken, which reduces click-through rates from social traffic.

Why it matters for your business: When customers share your product pages or events on social media, a missing image and title result in a poor preview that discourages their friends from clicking through, directly reducing referral traffic and brand visibility.

Technical root cause: The page HTML lacks og:title and og:image meta tags in the <head> section. Social platforms fall back to generic page data when these tags are absent, producing unprofessional share previews.

Recommended fix — step by step

  1. Log in to your site's admin dashboard and navigate to the page at https://olswell.com/olswell-cannabis-co-toy-drive-3/
  2. Look for an SEO or metadata section (often labeled 'Yoast SEO', 'All in One SEO', or 'Social Settings' depending on platform)
  3. Fill in og:title with a compelling headline (e.g., 'Olswell Cannabis Co Toy Drive – Help Local Families')
  4. Upload or select a og:image: choose a high-quality, visually distinctive image at least 1200×630 pixels showing the event or toy drive
  5. Save the page and test the share preview using Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) and LinkedIn's Post Inspector to confirm the image and title appear correctly
  6. Repeat for other key event/product pages that drive social referral traffic

7. Missing Twitter card

What it means (plain English)

Your blog post pages are missing Twitter Card meta tags — these are small code snippets that tell Twitter (now X) how to display your content when someone shares a link on the platform. Without them, Twitter shows a plain, unattractive preview, which reduces click-through rates and brand perception.

Why it matters for your business: Missing Twitter Cards mean fewer clicks and less engagement when customers or advocates share your content on social media, directly reducing traffic and brand awareness.

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

Recommended fix — step by step

  1. Audit your site's content management system (WordPress, Shopify, custom CMS) to determine where meta tags are currently managed.
  2. If using WordPress, install the free Yoast SEO plugin (Plugins → Add New → search 'Yoast SEO' → Install & Activate).
  3. In Yoast SEO settings, navigate to Integrations → Social Media and enable X (Twitter) integration.
  4. On the affected post, scroll to the Yoast SEO metabox → Social tab → X (Twitter) and set twitter:card to 'Summary with Large Image', then choose a featured image or upload one.
  5. If not using WordPress, manually add these meta tags to your page template's <head>: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="Your Title">, <meta name="twitter:description" content="Your Description">, <meta name="twitter:image" content="https://yoursite.com/image.jpg">.
  6. Test the fix using Twitter's Card Validator (cards-dev.twitter.com/validator) — paste the post URL and confirm the preview looks correct.
  7. Repeat for all blog posts and product pages, or configure a site-wide default in your SEO plugin to apply to all pages automatically.

8. Missing OpenGraph metadata

What it means (plain English)

Your article page doesn't include Open Graph tags — special HTML codes that tell social media platforms (Facebook, Instagram, LinkedIn) what image and title to display when someone shares your link. Without these, social shares look plain and generic, which reduces click-through rates when customers see your content in their feeds.

Why it matters for your business: Social sharing is a key driver of traffic for cannabis content; missing OG tags means fewer clicks from Facebook and Instagram shares, directly reducing referral traffic and brand visibility among potential customers.

Technical root cause: The page's HTML <head> section is missing <meta property="og:title"> and <meta property="og:image"> tags, which social platforms rely on to render rich previews.

Recommended fix — step by step

  1. Open https://olswell.com/trends-in-cannabis-consumption/ in a browser, right-click → View Page Source, and search for '<meta property="og:' to confirm tags are absent.
  2. Choose a high-quality, on-brand image (1200×630px minimum) that represents the article topic; save it to your site's /images/ folder.
  3. Add these two lines to the <head> section of your article template or page: <meta property="og:title" content="[Article Title Here]"> and <meta property="og:image" content="https://olswell.com/images/[filename.jpg]">.
  4. If you use WordPress, install Yoast SEO or Rank Math, go to the plugin settings → Social → toggle 'Add Open Graph meta tags', and ensure the featured image is set on this post.
  5. If you code directly, add og:description and og:url tags as well: <meta property="og:description" content="[2-sentence summary]"> and <meta property="og:url" content="https://olswell.com/trends-in-cannabis-consumption/">.
  6. Test the fix by pasting the URL into Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing/) — you should see your chosen image and title in the preview.

9. Missing Twitter card

What it means (plain English)

Your article pages are missing Twitter Card meta tags — 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 text preview instead of a rich preview with your headline, description, and image, which reduces click-through rates from social traffic.

Why it matters for your business: Missing Twitter Cards mean fewer clicks from Twitter shares, reducing referral traffic and social amplification of your cannabis education content.

Technical root cause: The page lacks the twitter:card, twitter:title, twitter:description, and twitter:image meta tags in the document head. These are not automatically generated and must be explicitly added.

Recommended fix — step by step

  1. Open the HTML source of https://olswell.com/trends-in-cannabis-consumption/ and locate the <head> section.
  2. Add these four meta tags before the closing </head>: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="[page headline]">, <meta name="twitter:description" content="[page excerpt, max 200 chars]">, <meta name="twitter:image" content="[URL to hero image, min 300×157px]">, and optionally <meta name="twitter:site" content="@olswell"> if you have a Twitter account.
  3. Use the same headline and image you've already set in Open Graph tags (og:title, og:image) if they exist — consistency improves social sharing.
  4. After deploying, test the URL at https://cards-dev.twitter.com/ to verify the preview renders correctly.
  5. Repeat this for all article and product pages, or automate it in your CMS template if you use WordPress, Shopify, or similar.

10. Missing OpenGraph metadata

What it means (plain English)

Your product pages are missing Open Graph tags — special metadata that tells Facebook, Instagram, and other social platforms what image and title to display when someone shares your links. Without these tags, social shares look bland and may not include your product photo, which reduces click-throughs from social traffic.

Why it matters for your business: When customers share your live resin concentrate page on Instagram or Facebook, it won't show your product image or a compelling headline, making people less likely to click through and visit your site.

Technical root cause: The page HTML is missing <meta property="og:title"> and <meta property="og:image"> tags in the <head> section. Social platforms rely on these tags to preview content before a user visits.

Recommended fix — step by step

  1. Open the page source (right-click → View Page Source) and search for 'og:title' to confirm it's absent
  2. Locate the closing </head> tag in your site's template or page editor
  3. Add <meta property="og:title" content="Live Resin Concentrates at Olswell"> before the </head> tag
  4. Add <meta property="og:image" content="https://olswell.com/path-to-product-image.jpg"> (use your actual product photo URL)
  5. Add <meta property="og:url" content="https://olswell.com/live-resin-concentrates-at-olswell/"> to specify the canonical URL
  6. If using a CMS (WordPress, Shopify, etc.), install an SEO plugin like Yoast SEO or All in One SEO to auto-generate these tags
  7. Test the fix using Facebook's Sharing Debugger (facebook.com/sharer/tools/debug/) and paste the URL to verify the image and title appear correctly

11. Missing Twitter card

What it means (plain English)

Your product pages are missing Twitter Card metadata—special tags that control how links look when shared on X (formerly Twitter). When someone shares your live resin concentrate page on X, the platform won't have a custom image, title, or description to display, so it defaults to a bland, generic preview. This reduces click-through rates from social traffic.

Why it matters for your business: Lost social traffic and engagement; shared product links appear less professional and less clickable on X, directly reducing referral visits from social platforms where cannabis enthusiasts gather.

Technical root cause: The page's HTML is missing <meta name="twitter:card" content="summary_large_image"> and related Open Graph tags (og:image, og:title, og:description) that X uses to render rich previews.

Recommended fix — step by step

  1. Add this meta tag to the <head> section of your page template: <meta name="twitter:card" content="summary_large_image">
  2. Add og:image (600×600px minimum, 1200×630px ideal): <meta property="og:image" content="https://olswell.com/path/to/product-image.jpg">
  3. Add og:title: <meta property="og:title" content="Live Resin Concentrates at Olswell">
  4. Add og:description: <meta property="og:description" content="Your product description here (max 155 characters)">
  5. Add twitter:image: <meta name="twitter:image" content="https://olswell.com/path/to/product-image.jpg">
  6. Test the fix using Twitter's Card Validator (https://cards-dev.twitter.com/validator) to confirm the preview renders correctly
  7. Repeat for all product and blog pages, or use your CMS to auto-generate these tags sitewide

12. Description length 161 chars

What it means (plain English)

Your page description (the text that appears under your page title in Google search results) is 161 characters long—one character over the recommended 80–160 range. Google will likely truncate it, cutting off important information that could convince someone to click your link.

Why it matters for your business: Truncated descriptions lose persuasive real estate in search results, reducing click-through rates from potential customers searching for ounces or bulk purchases.

Technical root cause: The meta description tag in the page's HTML head contains slightly too many characters. Most descriptions in this range are written too verbosely or include unnecessary qualifiers.

Recommended fix — step by step

  1. Open https://olswell.com/ounces-at-olswell/ in your browser and inspect the page source (right-click → View Page Source)
  2. Search for the <meta name="description" content="..." /> tag
  3. Count the current description text and identify which 1–2 words can be removed or shortened without losing meaning
  4. Edit the meta description to be 155–159 characters, prioritizing keywords like 'ounces,' product type, and a benefit (e.g., 'Shop premium ounces at Olswell—quality cannabis, fast delivery')
  5. If you use WordPress, install Yoast SEO plugin, navigate to the page editor, scroll to the Yoast section, and update the meta description field there
  6. If you use Shopify, go to the product/page settings → Search engine listing → edit the description
  7. Save and publish, then wait 24–48 hours for Google to re-crawl and update the search snippet

13. Missing Twitter card

What it means (plain English)

Your product pages don't include Twitter Card meta tags — small code snippets that control how your links look when shared on Twitter/X. Without them, Twitter shows a generic preview instead of your custom image, headline, and description, making your posts less eye-catching and clickable.

Why it matters for your business: Shared product links (especially ounces deals) get lower engagement on Twitter/X, reducing organic traffic and social proof for your dispensary.

Technical root cause: The page's HTML header is missing the <meta name="twitter:card"> tag and related open graph metadata (og:image, og:title, og:description) that Twitter reads to generate rich previews.

Recommended fix — step by step

  1. Add four meta tags to the <head> of https://olswell.com/ounces-at-olswell/ and all product pages: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:image" content="[your-product-image-url]">, <meta property="og:title" content="[product-name]">, and <meta property="og:description" content="[product-description]"
  2. If using WordPress, install the Yoast SEO or Rank Math plugin; both auto-generate Twitter Cards from post title/featured image — no manual coding needed
  3. If hand-editing HTML, ensure each product page pulls the featured product image URL dynamically into the twitter:image tag
  4. Test each page at https://cards-dev.twitter.com/validator to confirm the rich preview renders correctly before publishing
  5. Apply the same meta tags to your homepage and any other high-traffic pages to ensure consistent social sharing

14. Missing OpenGraph metadata

What it means (plain English)

When someone shares a link to your pre-rolls page on social media (Facebook, LinkedIn, etc.), those platforms pull information from special metadata tags called OpenGraph tags to create a preview card. Without og:title and og:image, the preview looks generic or broken, which reduces clicks and shares.

Why it matters for your business: Poor social sharing appearance directly reduces traffic from social referrals—a key discovery channel for cannabis retailers—and makes your product pages look unprofessional when customers share them.

Technical root cause: The page's HTML <head> section is missing <meta property="og:title"> and <meta property="og:image"> tags. These tags don't affect search engines but are read by social platforms to build shareable previews.

Recommended fix — step by step

  1. Open the page source (View → View Page Source in browser) and scroll to the <head> section to confirm og:title and og:image are absent.
  2. Add <meta property="og:title" content="Pre-Rolls at Olswell | Premium Cannabis"> to the <head>.
  3. Add <meta property="og:image" content="https://olswell.com/[path-to-product-image]"> (use a high-quality product photo, 1200×630px).
  4. Add <meta property="og:url" content="https://olswell.com/pre-rolls-at-olswell/"> and <meta property="og:description" content="[product description]">.
  5. Test the fix using Facebook's Sharing Debugger (facebook.com/sharing/debugger/) and LinkedIn's Post Inspector to verify the preview renders correctly.
  6. If using a CMS (WordPress, Shopify, etc.), install Yoast SEO or equivalent plugin → Social tab → fill in Facebook preview fields instead of hand-coding.

15. Missing Twitter card

What it means (plain English)

Your product pages (like the pre-rolls page) are missing a Twitter card meta tag. This is a snippet of code that tells Twitter how to display your content when someone shares a link to your site on Twitter/X — without it, Twitter shows a plain, generic preview instead of your product image and description.

Why it matters for your business: Missing Twitter cards reduce click-through rates on social shares and make your products look less professional, which hurts traffic from Twitter/X referrals and brand perception.

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

Recommended fix — step by step

  1. Open the pre-rolls product page HTML or your site's template editor (e.g., WordPress → Appearance → Theme File Editor, or your page builder's code panel).
  2. Add this block to the <head> section of the page: <meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Pre-Rolls at Olswell"><meta name="twitter:description" content="[Your product description]"><meta name="twitter:image" content="[URL to product image]">
  3. Also add Open Graph equivalents for broader social support: <meta property="og:title" content="Pre-Rolls at Olswell"><meta property="og:description" content="..."><meta property="og:image" content="...">
  4. Test the fix using Twitter's Card Validator (cards-dev.twitter.com/validator) — paste your page URL and verify the preview renders correctly.
  5. Repeat for all other product pages and key content pages.

16. Missing OpenGraph metadata

What it means (plain English)

Open Graph tags are snippets of code that tell social media platforms (Facebook, Instagram, Pinterest) how to display your page when someone shares it. Without them, your links appear bland—just a URL with no image or custom title. For a cannabis brand, this matters because social sharing is how you reach new customers, and a polished share card builds trust.

Why it matters for your business: Poor social previews reduce click-through rates on shared links, shrinking organic reach and customer acquisition on platforms where cannabis dispensaries actively engage their audience.

Technical root cause: The page's HTML <head> section is missing og:title, og:image, and likely og:description meta tags. Without these, platforms fall back to auto-parsing, which often produces ugly or misleading previews.

Recommended fix — step by step

  1. Open the page source (right-click → View Page Source) and search for '<meta property="og:' to confirm which OG tags exist.
  2. In your page template or CMS editor for /cartridges-at-olswell/, add these meta tags to the <head>: <meta property="og:title" content="[Your Cartridge Product Name] | Olswell"> and <meta property="og:image" content="[URL to high-quality product image, 1200x630px minimum]">.
  3. Also add <meta property="og:description" content="[2-3 sentence product description]"> and <meta property="og:type" content="website">.
  4. If using WordPress, install Yoast SEO or Rank Math, go to Settings → Social, and enable Open Graph output; these plugins auto-generate OG tags from your post title and featured image.
  5. Test the preview on Facebook's Sharing Debugger (facebook.com/developers/tools/debug/sharing) and Pinterest Rich Pins validator to confirm the image and title render correctly.
  6. Apply the same tags to all product pages (/cartridges-at-olswell/, dispensary pages, etc.) using your CMS's bulk edit or template system.

17. Missing Twitter card

What it means (plain English)

Your product pages are missing Twitter Card tags—special metadata that tells Twitter (now X) how to display your content when someone shares a link on that platform. Without them, shares appear as plain text links instead of rich preview cards with product images and descriptions.

Why it matters for your business: Shared product links get less engagement and click-through on social media, reducing referral traffic and brand visibility in a competitive cannabis retail space.

Technical root cause: The page's HTML head section lacks the <meta name="twitter:card"> and related tags (twitter:title, twitter:description, twitter:image) that X/Twitter's crawler reads when indexing shared URLs.

Recommended fix — step by step

  1. Inspect the HTML head of https://olswell.com/cartridges-at-olswell/ and locate existing Open Graph tags (og:title, og:description, og:image).
  2. Add these four lines immediately after your Open Graph tags: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="[product name]">, <meta name="twitter:description" content="[product description, max 200 chars]">, <meta name="twitter:image" content="[full URL to product image, min 300x157px]"> (reuse og:image URL if identical).
  3. Apply the same Twitter Card tags to all product pages (/cartridges-at-olswell/, any strain pages, category pages).
  4. Test one shared link on Twitter/X using their Card Validator (cards-dev.twitter.com/validator) to confirm tags render correctly.
  5. Document the Twitter Card template in your CMS or page-build process so new products inherit the tags automatically.

18. Missing OpenGraph metadata

What it means (plain English)

When people share your product pages on social media (Facebook, Instagram, LinkedIn), those platforms need special metadata tags to display a nice preview with your product name and image. Without these tags, your posts look bare and unprofessional—just a plain URL with no context.

Why it matters for your business: Poor social shares reduce click-through rates from social traffic, which is critical for a cannabis retailer where word-of-mouth and community sharing drive customer acquisition.

Technical root cause: The page is missing og:title and og:image meta tags in the HTML <head> section, so social platforms cannot extract preview information.

Recommended fix — step by step

  1. Log into your website's admin panel and locate the page for 'Rosin Concentrates at Olswell'
  2. Find the SEO or Social Media settings section (may be labeled 'SEO', 'Meta Tags', or 'Social Preview')
  3. Add og:title with the product name: 'Rosin Concentrates at Olswell'
  4. Add og:image pointing to a high-quality product photo (1200×630 px minimum)
  5. Add og:url set to the full page URL: https://olswell.com/rosin-concentrates-at-olswell/
  6. Optionally add og:description with a 1-2 sentence product description
  7. Test the fix using Facebook Sharing Debugger (facebook.com/developers/tools/debug/sharing/) or LinkedIn Post Inspector

19. Missing Twitter card

What it means (plain English)

Your product pages are missing Twitter Card metadata—a snippet of code that tells Twitter how to display your content when someone shares a link. Without it, Twitter shows a plain, generic preview instead of your product image, name, and description. This makes shared links less appealing and less likely to drive clicks.

Why it matters for your business: Missing Twitter Cards reduce click-through rates when customers or influencers share your rosin and concentrate products on social media, directly hurting traffic and brand visibility.

Technical root cause: The page lacks 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. Add <meta name="twitter:card" content="summary_large_image"> to the <head> of your product pages (e.g., rosin-concentrates-at-olswell)
  2. Add <meta name="twitter:title" content="Your Product Name"> with the actual product name
  3. Add <meta name="twitter:description" content="Brief product description"> (max 200 characters)
  4. Add <meta name="twitter:image" content="https://olswell.com/path-to-product-image.jpg"> pointing to a high-quality product photo (1200×630px minimum)
  5. If using WordPress, install Yoast SEO or All in One SEO, enable social features, and fill in Twitter fields in the post editor
  6. Test the fix using Twitter's Card Validator (cards-dev.twitter.com/validator) by pasting your product URL
  7. Repeat for all rosin, concentrate, and edible product pages

20. Missing Twitter card

What it means (plain English)

Your homepage is missing a Twitter Card meta tag—a snippet of code that tells Twitter (now X) how to display your content when someone shares a link to your site. Without it, Twitter uses generic defaults instead of custom images, descriptions, and branding, making your link less eye-catching in feeds.

Why it matters for your business: Shared links to your site appear less professional and clickable on Twitter/X, reducing traffic from social referrals and weakening brand presence in a key platform where cannabis retailers and consumers engage.

Technical root cause: The <meta name="twitter:card" content="summary_large_image"> tag is not present in the page's <head> section.

Recommended fix — step by step

  1. Open your site's homepage HTML source (or your CMS page editor for the home page)
  2. Locate the <head> section near the top of the file
  3. Add these four meta tags before the closing </head> tag: <meta name="twitter:card" content="summary_large_image">, <meta name="twitter:title" content="Olswell"> (or your brand name), <meta name="twitter:description" content="[Your 1-2 sentence value prop, e.g., 'Premium cannabis products curated for quality seekers.']">, and <meta name="twitter:image" content="[Full URL to a 1200x630px image file that represents your brand]" />
  4. Test the markup at cards-dev.twitter.com: paste your URL and preview how the card renders
  5. If using a CMS (WordPress, Shopify, etc.), install an SEO plugin (Yoast SEO, All in One SEO) which has built-in Twitter Card fields under Social Sharing settings

21. Missing Twitter card

What it means (plain English)

Your page is missing a Twitter card meta tag, which tells Twitter how to display a preview when someone shares your link on that platform. Without it, Twitter shows a generic preview instead of your custom image, headline, and description—making your content less visually appealing and less likely to get clicks.

Why it matters for your business: Reduced social media engagement and click-through rates from Twitter shares, which limits brand awareness and traffic to your product pages and content.

Technical root cause: The page's HTML head section lacks the <meta name="twitter:card" content="summary_large_image"> tag and related Open Graph / Twitter-specific meta tags that instruct social platforms how to render previews.

Recommended fix — step by step

  1. Open the HTML source of https://olswell.com/olswell-cannabis-co-toy-drive/ in your page editor or CMS
  2. Add this line in the <head> section: <meta name="twitter:card" content="summary_large_image">
  3. Add <meta name="twitter:title" content="Your page title">
  4. Add <meta name="twitter:description" content="2-3 sentence summary of the page">
  5. Add <meta name="twitter:image" content="https://olswell.com/path-to-best-image.jpg"> (use a 1200×630px image)
  6. Repeat for other key pages (product pages, blog posts, event pages)
  7. Test the preview using Twitter's Card Validator (cards-dev.twitter.com/validator) and paste your URL to confirm the card displays correctly

22. Missing Twitter card

What it means (plain English)

Your FAQ page is missing a Twitter Card meta tag — a snippet of code that tells Twitter how to display your page when someone shares the link. Without it, Twitter shows a generic preview instead of a custom image, headline, and description that you control.

Why it matters for your business: Missed opportunity to drive traffic from social sharing; a poorly formatted Twitter preview reduces click-through rates when customers or industry partners share your content.

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

Recommended fix — step by step

  1. Open the HTML source of https://olswell.com/faqs/ in your code editor or CMS page editor.
  2. Add this block inside the <head> section: <meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@YourHandle"><meta name="twitter:title" content="Your FAQ Title"><meta name="twitter:description" content="Brief description"><meta name="twitter:image" content="https://olswell.com/path-to-image.jpg">
  3. Replace @YourHandle with your actual Twitter handle and craft a compelling 200-character description.
  4. Use an image at least 1200×630px for the twitter:image URL.
  5. Test the result at https://cards-dev.twitter.com/ — paste your FAQ URL and verify the preview displays correctly.
  6. Repeat for other key pages (product pages, blog posts, homepage).

23. Missing OpenGraph metadata

Detail

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

24. Description length 161 chars

Detail

Description should be 80-160 chars.

25. Missing OpenGraph metadata

Detail

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

26. Missing Twitter card

Detail

No twitter:card meta tag.

27. Missing OpenGraph metadata

Detail

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

28. Missing OpenGraph metadata

Detail

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

29. Missing Twitter card

Detail

No twitter:card meta tag.

30. Missing OpenGraph metadata

Detail

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

31. Missing Twitter card

Detail

No twitter:card meta tag.

32. Missing OpenGraph metadata

Detail

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

33. Missing Twitter card

Detail

No twitter:card meta tag.

34. Missing OpenGraph metadata

Detail

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

35. Missing Twitter card

Detail

No twitter:card meta tag.

36. Missing OpenGraph metadata

Detail

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

37. Missing Twitter card

Detail

No twitter:card meta tag.

38. Missing OpenGraph metadata

Detail

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

39. Missing Twitter card

Detail

No twitter:card meta tag.

40. Missing OpenGraph metadata

Detail

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

41. Missing Twitter card

Detail

No twitter:card meta tag.

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

Detail

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

49. Missing Twitter card

Detail

No twitter:card meta tag.

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. Description length 18 chars

Detail

Description should be 80-160 chars.

55. Missing OpenGraph metadata

Detail

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

56. Missing Twitter card

Detail

No twitter:card meta tag.

57. Desktop perf measurement failed

Detail

page.goto: Timeout 60000ms exceeded.

Call log:

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

Detail

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

59. Missing security header: referrer-policy

Detail

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

60. Missing security header: permissions-policy

Detail

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

61. SSL Labs grade: unknown

Detail

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

62. DNSSEC not enabled

Detail

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

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

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

65. No DKIM selectors found (standard selectors)

Detail

Tried selectors: google, default, selector1, selector2, s1, k1 — none matched at olswell.com. DKIM improves deliverability + anti-spoofing.

66. Lighthouse a11y (mobile): 90/100

Detail

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

67. Lighthouse seo (mobile): 92/100

Detail

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

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

69. LH mobile: Preload Largest Contentful Paint image

Detail

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

70. LH mobile: Defer offscreen images (Est savings of 66 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.

71. LH mobile: Eliminate render-blocking resources (Est savings of 2,290 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.

72. LH mobile: Minify JavaScript (Est savings of 8 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.

73. Lighthouse a11y (desktop): 90/100

Detail

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

74. Lighthouse seo (desktop): 92/100

Detail

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

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

76. LH desktop: Defer offscreen images (Est savings of 72 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.

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

78. LH desktop: Minify JavaScript (Est savings of 8 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.

79. LH desktop: Reduce unused CSS (Est savings of 62 KiB)

Detail

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

80. A11y: ARIA role should be appropriate for the element

Detail

Ensure role attribute has an appropriate value for the element

Impact: minor

WCAG:

Learn more: https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role?application=playwright


Findings by Page

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

https://olswell.com/

_46 findings on this page_

Your mobile site takes nearly 24 seconds for visitors to see your main content (Largest Contentful Paint), and the browser is unresponsive for over 4 seconds while processing JavaScript (Total Blockin

Your desktop site takes about 3.2 seconds for the main content to appear on screen, and the browser's main thread is blocked for ~473 milliseconds while processing JavaScript. Lighthouse scores perfor

Your site's Lighthouse Best Practices score is 59/100, which means there are security, code quality, and user trust issues detected by Google's audit tool. This score sits well below the industry benc

Your age-verification popup (the dialog box that appears when visitors enter the site) doesn't have a proper accessible name — meaning screen reader users can't tell what it is or what action it's ask

Your website has 10 links that don't have any visible or hidden text describing where they go. Screen reader users (people who are blind or visually impaired) hear nothing when they encounter these li

Your homepage is trying to load JavaScript modules (code files that extend functionality) but the server is returning HTML instead of the correct JavaScript format. This is a strict security rule enfo

Every image on your homepage is missing alt text — a short text description that appears if the image fails to load and helps screen readers describe what's in the image to visitors who are blind or l

Our automated performance testing tool couldn't load your homepage on mobile within 60 seconds. This typically means the page is either very slow to respond, has resources that won't load, or the serv

Your site includes structured data (code snippets that tell search engines about your business) for Organization and WebSite, but is missing LocalBusiness markup. For a cannabis dispensary, LocalBusin

Your site is missing the Strict-Transport-Security (HSTS) header, which tells browsers to always use HTTPS when visiting your domain. Without it, users could accidentally connect via unencrypted HTTP,

Your website is missing the X-Frame-Options security header, which tells browsers whether your site can be embedded inside another website's frame or iframe. Without it, attackers could potentially em

Your site is missing a Content Security Policy (CSP) header — a security instruction that tells browsers which sources (scripts, images, styles) are safe to load. Without it, attackers can more easily

Your website has 45 buttons, links, and other clickable elements that are smaller than 44×44 pixels when viewed on mobile phones. These tiny targets are hard for people to tap accurately—especially cu

Your website has 49 clickable elements (buttons, links, menu items) that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately, especially for people with limited dext

Your homepage has 49 interactive buttons, links, and other clickable elements that are smaller than 44×44 pixels on mobile phones. This makes them hard to tap accurately—especially for people with lim

Your website has 31 interactive elements (buttons, links, menu items) that are smaller than 44×44 pixels when viewed on a tablet. This makes them difficult to tap accurately, especially for people wit

Lighthouse, Google's performance audit tool, gave your mobile site a Best Practices score of 61 out of 100—well below the healthy target of 90. Best Practices flags issues like outdated browser APIs,

Your site jumps from an H4 heading directly to an H6 heading in two places, skipping H5. Screen readers and search engines expect headings to increase in size one level at a time (H1 → H2 → H3, etc.).

Your site's homepage doesn't include OpenGraph metadata—special HTML tags that control how your page looks when shared on social media (Facebook, Instagram, LinkedIn). Without these tags, social platf

Your homepage is missing a Twitter Card meta tag—a snippet of code that tells Twitter (now X) how to display your content when someone shares a link to your site. Without it, Twitter uses generic defa

https://olswell.com/ounces-at-olswell/

_4 findings on this page_

Every image on your site should have alt text — a brief description that screen readers read aloud to blind visitors and search engines use to understand what the image shows. Your ounces page has 15

Your page description (the text that appears under your page title in Google search results) is 161 characters long—one character over the recommended 80–160 range. Google will likely truncate it, cut

Your product pages don't include Twitter Card meta tags — small code snippets that control how your links look when shared on Twitter/X. Without them, Twitter shows a generic preview instead of your c

https://olswell.com/cartridges-at-olswell/

_4 findings on this page_

All 15 images on your cartridges page lack alt text—descriptive labels that screen readers read aloud to blind/low-vision visitors, and that search engines use to understand image content. Without alt

Open Graph tags are snippets of code that tell social media platforms (Facebook, Instagram, Pinterest) how to display your page when someone shares it. Without them, your links appear bland—just a URL

Your product pages are missing Twitter Card tags—special metadata that tells Twitter (now X) how to display your content when someone shares a link on that platform. Without them, shares appear as pla

https://olswell.com/category/blog/

_4 findings on this page_

Every image on your blog page is missing alt text—a short description that screen readers use to explain what the image shows, and that search engines use to understand your content. All 18 images on

https://olswell.com/olswell-cannabis-co-toy-drive/

_3 findings on this page_

Every image on your Toy Drive page is missing alt text — short descriptions that screen readers use to tell blind/low-vision visitors what an image shows, and that search engines use to understand you

Your page is missing OpenGraph tags — code snippets that tell social media platforms (Facebook, Instagram, LinkedIn) how to display your content when someone shares a link. Without these tags, social

Your page is missing a Twitter card meta tag, which tells Twitter how to display a preview when someone shares your link on that platform. Without it, Twitter shows a generic preview instead of your c

https://olswell.com/olswell-cannabis-co-toy-drive-2/

_3 findings on this page_

Every image on your site should have descriptive alt text — a short text label that describes what the image shows. This text is read aloud to visitors using screen readers (accessibility software) an

When people share your pages on Facebook, Instagram, or other social platforms, those platforms look for special metadata tags (called OpenGraph tags) to know what title and image to display. Without

Your site is missing Twitter Card metadata, which is a snippet of code that tells Twitter (now X) how to display your content when someone shares a link to your site on that platform. Without it, Twit

https://olswell.com/olswell-cannabis-co-toy-drive-3/

_3 findings on this page_

Every image on your toy drive post is missing alt text — descriptive text that explains what the image shows to people using screen readers and to search engines. This means visually impaired customer

This page is missing OpenGraph tags—special metadata that tells social platforms like Facebook and Instagram what image and title to display when someone shares the link. Without them, the share previ

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

https://olswell.com/trends-in-cannabis-consumption/

_3 findings on this page_

Every image on your trends page is missing alt text—a short text description that screen readers use to describe images to blind and low-vision visitors. This also prevents search engines from underst

Your article page doesn't include Open Graph tags — special HTML codes that tell social media platforms (Facebook, Instagram, LinkedIn) what image and title to display when someone shares your link. W

Your article pages are missing Twitter Card meta tags — 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

https://olswell.com/live-resin-concentrates-at-olswell/

_3 findings on this page_

Every image on your Live Resin Concentrates page lacks alt text—a description that screen readers use to tell visually-impaired visitors what the image shows. This also prevents search engines from un

Your product pages are missing Open Graph tags — special metadata that tells Facebook, Instagram, and other social platforms what image and title to display when someone shares your links. Without the

Your product pages are missing Twitter Card metadata—special tags that control how links look when shared on X (formerly Twitter). When someone shares your live resin concentrate page on X, the platfo

https://olswell.com/pre-rolls-at-olswell/

_3 findings on this page_

Every image on your Pre-Rolls page is missing alt text—a text description that screen readers announce to visually impaired visitors. This breaks accessibility for a segment of your audience and also

When someone shares a link to your pre-rolls page on social media (Facebook, LinkedIn, etc.), those platforms pull information from special metadata tags called OpenGraph tags to create a preview card

Your product pages (like the pre-rolls page) are missing a Twitter card meta tag. This is a snippet of code that tells Twitter how to display your content when someone shares a link to your site on Tw

https://olswell.com/gummies-chocolates-at-olswell/

_3 findings on this page_

Every image on your Gummies & Chocolates page is missing alt text—the hidden description that screen readers use to help visually impaired customers understand what they're looking at. This also tells

https://olswell.com/rosin-concentrates-at-olswell/

_3 findings on this page_

All 15 images on this product page lack alt text — descriptive text that screen readers read aloud and search engines use to understand image content. This makes the page inaccessible to visually impa

When people share your product pages on social media (Facebook, Instagram, LinkedIn), those platforms need special metadata tags to display a nice preview with your product name and image. Without the

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

https://olswell.com/faqs/

_3 findings on this page_

All 16 images on your FAQ page are missing alt text — descriptive labels that explain what each image shows. This hurts both accessibility (visitors using screen readers can't understand your images)

Your FAQ page is missing a Twitter Card meta tag — a snippet of code that tells Twitter how to display your page when someone shares the link. Without it, Twitter shows a generic preview instead of a

https://olswell.com/cannabis-education-hub/

_3 findings on this page_

Every image on your Cannabis Education Hub page is missing alt text—a brief description that search engines and screen readers use to understand what the image shows. This means visually impaired visi

https://olswell.com/contact-us/

_3 findings on this page_

Every image on your Contact Us page lacks alternative text (alt text) — a short description that appears if the image doesn't load and is read aloud by screen readers for visually impaired visitors. T

https://olswell.com/in-store-pickup/

_3 findings on this page_

Every image on your in-store pickup page is missing alt text — descriptive labels that screen readers use to tell blind and low-vision visitors what an image shows. Search engines also use alt text to

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

_3 findings on this page_

Every image on your loyalty program page is missing alt text — descriptive labels that screen readers (used by people with vision loss) read aloud, and that search engines use to understand what image

https://olswell.com/adrian-mi/

_3 findings on this page_

Every image on your Adrian, MI dispensary page is missing alt text — a short description that screen readers read aloud and search engines use to understand the image. This blocks people with vision d

https://olswell.com/grand-rapids-mi/

_3 findings on this page_

Every image on your Grand Rapids page is missing alt text — descriptive text that explains what the image shows. This hurts both accessibility (screen reader users can't understand your images) and se

https://olswell.com/kalkaska-mi/

_3 findings on this page_

Every image on your Kalkaska, MI page is missing alt text — descriptive labels that explain what the image shows. Search engines and screen readers (used by people with vision loss) can't understand u

https://olswell.com/traverse-city-mi/

_3 findings on this page_

Every image on your Traverse City page lacks alternative text (alt text)—a short description that screen readers speak aloud to visually impaired visitors and that search engines use to understand ima

https://olswell.com/?elementor_library=elementor-section-693

_3 findings on this page_

All 30 images on your site are missing alt text—descriptions that appear when images don't load and that screen readers (used by people with vision disabilities) read aloud. This makes your site unusa

https://olswell.com/?elementor_library=single-post

_3 findings on this page_

Every image on your site should have alt text — a short text description that appears if the image doesn't load and is read aloud by screen readers used by people who are blind or have low vision. Rig

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

_3 findings on this page_

Your website has 30 images without alt text — short descriptions that explain what each image shows. Search engines and screen readers (used by people with vision disabilities) can't understand images

https://olswell.com/?elementor_library=footer

_3 findings on this page_

Every image on your site should have a short text description (called "alt text") that describes what the image shows. Right now, 30 images are missing these descriptions. Search engines can't read im

https://olswell.com/?elementor_library=header

_3 findings on this page_

Every image on your site needs a text description (called 'alt text') that describes what the image shows. Right now, all 30 images are missing these descriptions. Search engines use alt text to under

https://olswell.com/robots.txt

_1 finding on this page_

Your robots.txt file (a text file that tells search engines where to look on your site) doesn't include a pointer to your sitemap—an organized list of every page you want indexed. Without this pointer

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

_1 finding on this page_

Your WordPress admin login page is publicly accessible at /wp-login.php, which means anyone on the internet can find and attempt to access your site's backend. This is a common attack vector where bot


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


Generated by Apex Sentinel · © 2026 Bud Authority