URL: https://www.thealchemy.nyc/
Platform: unknown
Archetype: premium
Run ID: 2026-04-19T06-18-18-831Z
Scanned: 2026-04-19T06:18:19.213Z
Duration: 751s
This is a monthly deep audit. The crawler performed a full-site scan including
Lighthouse performance, axe-core accessibility (WCAG 2.2 AA), cross-browser compatibility,
security headers, schema markup validation, and SEO best-practice checks.
Because this site is not a repository we control, Apex Sentinel **cannot automatically
apply fixes** — instead, each finding below includes an AI-generated plain-English
explanation + step-by-step recommended fix you can hand to a developer or execute
in your CMS directly.
Overall grade: D
| Dimension | Count | Meaning |
|---|---|---|
| Pages crawled | 32 | Full sitemap + linked pages |
| P0 (critical) | 0 | Site-down or compliance-breaking |
| P1 (urgent) | 8 | Significant revenue / SEO / UX impact |
| P2 (high) | 95 | Quality / ranking / trust degradation |
| P3 (medium) | 65 | Polish + optimization |
| "Do first" items | 8 | AI-flagged top priorities |
| Quick wins (< 30 min) | 38 | Fastest ROI items |
If you only have time for ten things this month, do these — in this order.
Page: https://www.thealchemy.nyc/
Effort: Quick win (< 30 min)
Page: https://www.thealchemy.nyc/
Effort: Quick win (< 30 min)
Page: https://www.thealchemy.nyc/
Effort: Quick win (< 30 min)
Page: https://www.thealchemy.nyc/
Effort: Moderate (1-3 hours)
Page: https://www.thealchemy.nyc/
Effort: Quick win (< 30 min)
Page: https://www.thealchemy.nyc/
Effort: Quick win (< 30 min)
Page: https://www.thealchemy.nyc/
Effort: Quick win (< 30 min)
Page: https://www.thealchemy.nyc/
Effort: Moderate (1-3 hours)
Page: https://www.thealchemy.nyc/
Effort: Quick win (< 30 min)
Page: https://www.thealchemy.nyc/
Effort: Moderate (1-3 hours)
tier5.mixed-contentWhat it means (plain English)
Your website is served over HTTPS (secure), but it contains links to HTTP resources (non-secure). Modern browsers will either block these resources or show a security warning to visitors, which erodes trust and may prevent the links from working properly.
Why it matters for your business: For a cannabis retailer, broken compliance resource links (like the NY OASAS HOPELine) undermine credibility with regulators and harm customer trust at a critical touchpoint.
Technical root cause: The HTML code contains hardcoded http:// URLs pointing to external NY state resources instead of using https:// protocol. The external site likely supports HTTPS but the code wasn't updated.
Recommended fix — step by step
tier9.a11y.aria-dialog-nameWhat it means (plain English)
Your age-verification popup (the modal dialog that appears when visitors enter the site) is missing a label that screen readers can read aloud. Screen reader users — including blind and low-vision customers — cannot understand what the dialog is for, making it impossible for them to proceed. This is a legal accessibility barrier under the ADA and WCAG 2.1 Level AA standard.
Why it matters for your business: You're excluding disabled customers from purchasing, creating legal liability under the ADA, and potentially violating state cannabis regulations that require equal access to age-gated sales flows.
Technical root cause: The div with id="age-parent" has role="dialog" and aria-modal="true" but lacks an aria-label, aria-labelledby, or title attribute. Screen readers require one of these to announce the purpose of the dialog to assistive technology users.
Recommended fix — step by step
tier9.a11y.aria-required-attrWhat it means (plain English)
A heading element on your site is missing a required ARIA attribute called 'aria-level,' which tells screen readers (software that reads web pages aloud for blind and low-vision users) what level of heading this is (1–6, like HTML's h1–h6 tags). Without it, assistive technology can't properly communicate the page structure. This affects compliance with accessibility standards and legal requirements.
Why it matters for your business: Failure to fix accessibility issues exposes your dispensary to potential ADA lawsuits and limits your audience to sighted visitors, reducing foot traffic and online sales from customers with disabilities.
Technical root cause: A div element was given a heading role but no aria-level attribute to specify its hierarchy. The div should either be converted to a native HTML heading tag (h1–h6) or the aria-level attribute must be explicitly added.
Recommended fix — step by step
tier9.a11y.aria-required-childrenWhat it means (plain English)
Your product carousel (the sliding list showing items) has an ARIA role of "list" but contains child elements with role="group" instead of the required role="listitem". ARIA roles are invisible labels that tell screen readers what content does; when those labels don't match the structure, screen reader users get confused or can't navigate properly.
Why it matters for your business: Customers using screen readers cannot properly browse or purchase your products, which excludes a meaningful segment of users and may expose you to accessibility compliance complaints.
Technical root cause: The Webflow slider component (Swiper library) is generating role="list" on the carousel container, but the individual product cards inside are marked with role="group" instead of role="listitem". This mismatch violates WCAG 2.1 Level A requirements.
Recommended fix — step by step
document.querySelectorAll('#swiper-wrapper-887121b083756bbb > div').forEach(el => el.setAttribute('role', 'listitem'));tier9.a11y.aria-rolesWhat it means (plain English)
Your site has a div element with role="page wrap" — but ARIA (Accessible Rich Internet Applications) only allows single, valid role names. "page wrap" is two words and isn't a recognized role. Screen readers used by people with vision loss won't understand what this element does, making your site harder to navigate for disabled visitors.
Why it matters for your business: This accessibility barrier may expose you to ADA/WCAG compliance risk and reduces inclusivity for disabled customers — a meaningful portion of retail traffic.
Technical root cause: The HTML markup contains role="page wrap" which violates ARIA spec; valid roles are single values like "main", "navigation", "contentinfo", etc. This was likely a typo or misunderstanding of role syntax.
Recommended fix — step by step
tier9.a11y.color-contrastWhat it means (plain English)
A label on your product carousel ('Active') uses white text on a bright green background with insufficient contrast. The colors blend together, making the text hard to read for anyone with color vision deficiency or low vision. WCAG 2 AA requires a contrast ratio of at least 4.5:1; this element scores only 2.74:1.
Why it matters for your business: Customers with visual impairments cannot distinguish product status labels, creating a poor experience and potential ADA compliance liability for your e-commerce site.
Technical root cause: The CSS for .banner_status > .active > div sets white text (#ffffff) on a green background (#00b527) without sufficient luminance difference. At 10.5pt font size, this combination falls below the required threshold.
Recommended fix — step by step
tier9.a11y.link-nameWhat it means (plain English)
Your website has two links that screen reader users cannot identify. One is a social media icon link (Instagram) in the footer, and the other is your logo link at the bottom of the page. Both links exist in the keyboard navigation order but lack any text label—users relying on screen readers will hear "link" with no context, making it impossible to know where they lead.
Why it matters for your business: This breaks accessibility for blind and low-vision visitors, creates legal exposure under the ADA, and signals to search engines that your site may not be trustworthy or well-maintained.
Technical root cause: The links contain only images or icons with no alt text, aria-label, or visible text content. Screen readers have nothing to announce because the HTML provides no accessible name for these elements.
Recommended fix — step by step
tier10.journey.failedWhat it means (plain English)
Your site is failing to complete the critical customer journey of viewing your menu after passing the age gate. The audit detected three errors: a missing resource (404), a rate-limit response (429), and an API call that exceeded rate limits (11 requests when only 10 are allowed per hour). This means real visitors trying to browse your products are hitting failures and seeing broken experiences.
Why it matters for your business: Customers cannot view your menu or products after age verification, directly blocking sales and forcing them to competitors or offline purchases.
Technical root cause: Your menu data is fetched from an external API (likely AlpineIQ, a cannabis retail platform) that is either misconfigured, has a missing endpoint, or has aggressive rate-limiting enabled. The 404 suggests a URL mismatch, and the 429 rate-limit error indicates the API is rejecting requests faster than your page is sending them.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your homepage doesn't include a canonical tag—a small piece of code that tells search engines which version of a page is the 'official' one. Without it, search engines might index duplicate or similar versions of your page (like www vs. non-www, or with/without trailing slashes), diluting your ranking power across multiple URLs instead of concentrating it on one.
Why it matters for your business: Search engines may rank a duplicate or wrong version of your homepage, losing visibility in local searches for cannabis dispensaries in NYC—directly harming foot traffic and online orders.
Technical root cause: The homepage HTML is missing the <link rel="canonical" href="https://www.thealchemy.nyc/"> tag in the <head> section, so search engines have no explicit signal about which URL version should be prioritized.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Your homepage has 11 images without alt text — descriptive labels that screen readers use to tell visually impaired visitors what an image shows. Search engines also use alt text to understand and index images. Right now, those 11 images are invisible to both assistive technology users and search algorithms.
Why it matters for your business: Missing alt text reduces organic search visibility for image queries, excludes disabled visitors from your site (legal risk under ADA/AODA), and weakens SEO for product and strain photography — critical for a premium cannabis retailer.
Technical root cause: Images in your HTML lack the alt attribute. This happens when images are added without documentation or when a CMS editor skips the alt field during upload.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your homepage doesn't include a canonical tag—a line of code that tells search engines which version of a page is the official one. Without it, search engines may not know whether to prioritize www.thealchemy.nyc or thealchemy.nyc, potentially splitting your search visibility between two versions.
Why it matters for your business: If search engines index both versions separately, your search ranking power gets divided, making it harder for customers to find you on Google when searching for cannabis dispensaries in NYC.
Technical root cause: The <link rel="canonical" href="..."> tag is missing from the <head> section of the homepage HTML. This is a common omission on sites that don't use SEO plugins or have incomplete technical SEO setup.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Your site has 11 images without alt text — descriptions that screen readers use to understand images, and that search engines use to index image content. This means visually impaired visitors and search crawlers can't understand what these images show, reducing both accessibility and discoverability.
Why it matters for your business: Missing alt text limits SEO potential for product/strain imagery and brand photography, and excludes customers using screen readers or those with images disabled — a compliance risk in New York where ADA lawsuits against cannabis retailers are rising.
Technical root cause: Images were inserted into the site without the alt attribute being populated during upload or publishing, likely via a CMS or manual HTML insertion without accessibility review.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your About Us page doesn't have a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may treat similar or duplicate content as separate pages, diluting your search ranking power across multiple URLs.
Why it matters for your business: Search engines may index multiple versions of your About Us page (with or without www, http vs https, with or without trailing slash), splitting your ranking authority and reducing visibility for brand searches.
Technical root cause: The page template lacks a <link rel="canonical" href="..."> tag in the <head> section. This is typically missing when canonical tags aren't added during site build or CMS configuration.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your website doesn't include JSON-LD structured data — machine-readable code that tells search engines what your business is, where it's located, and what you sell. Without it, Google has to guess at your business details instead of reading them directly from your site.
Why it matters for your business: Missing schema reduces your chances of appearing in Google's local pack, product listings, and rich snippets — all critical for driving foot traffic and online orders to a cannabis retailer.
Technical root cause: The site lacks JSON-LD markup blocks (usually added in the page <head> or footer) that declare structured data in a format search engines prefer. This is often overlooked on custom or older WordPress builds.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your contact page doesn't tell search engines which version of the URL is the official one. If the same page is accessible via multiple URLs (like with or without a trailing slash, or through different navigation paths), search engines may treat them as separate pages and split your ranking power between them.
Why it matters for your business: Search engines may index duplicate versions of your contact page, diluting your visibility for local cannabis searches and making it harder for customers to find your location and hours.
Technical root cause: The page is missing a canonical tag (<link rel="canonical">) in the HTML head, which explicitly tells search engines the primary URL for this content.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your privacy policy page (and likely many others) lacks JSON-LD structured data — code that tells search engines what type of content is on the page. Without it, Google can't confidently categorize your pages, which can reduce your visibility in search results and prevent rich snippets (like star ratings or product details) from appearing.
Why it matters for your business: Missing schema markup limits your ability to appear in premium search results and knowledge panels, directly reducing organic traffic to product pages, menus, and your dispensary location information.
Technical root cause: The site has no structured data implementation. JSON-LD blocks (which live in the page's <head> or <body>) must be explicitly added; they don't generate automatically.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your shop page doesn't tell search engines which version of the URL is the 'official' one. Without a canonical tag, Google may index duplicate versions (like /shop vs /shop/ or www vs non-www), splitting your search ranking power across multiple URLs instead of concentrating it on one.
Why it matters for your business: Search visibility for your product catalog is diluted, reducing organic traffic to your dispensary's online shop and potential customer inquiries.
Technical root cause: The <link rel="canonical" href="..."> HTML tag is missing from the page head. This tag explicitly tells search engines which URL should be treated as the primary version.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your shop page doesn't include JSON-LD structured data — a standardized code format that tells search engines exactly what your content is (e.g., product names, prices, ratings). Without it, Google has to guess, and cannabis retailers especially need clear, explicit markup to appear correctly in search results and comply with cannabis-specific search policies.
Why it matters for your business: Missing schema reduces your visibility in Google Shopping, local search, and product-rich snippets; for a premium dispensary competing on brand and product discovery, this directly impacts organic traffic and customer trust signals.
Technical root cause: The shop page HTML does not include <script type="application/ld+json"> blocks. This is typically missing because the site was built without a structured data strategy or the CMS/template does not auto-generate it.
Recommended fix — step by step
tier2.meta.no-descriptionWhat it means (plain English)
The /blog page is missing a meta description—the 155-character summary that appears under your page title in Google search results. Without it, Google generates a guess from your page content, which often looks unprofessional and doesn't encourage clicks. This is a quick fix that directly impacts search traffic.
Why it matters for your business: Users searching for cannabis education or strains may skip your blog in favor of competitors' results that have compelling, custom descriptions. Every missing description reduces click-through rate from search results.
Technical root cause: The HTML <head> section lacks a <meta name="description" content="..."> tag on this page. Either it was never added, or the page template doesn't include a fallback description.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Your blog page has 7 images without alternative text descriptions. Alt text is the hidden label that describes what an image shows — search engines read it to understand your content, and screen readers (used by people with vision impairments) read it aloud so they know what the image contains.
Why it matters for your business: Missing alt text hurts your blog's search ranking for image-based queries, reduces accessibility for customers with disabilities, and may expose you to ADA compliance risk if a customer files an accessibility complaint.
Technical root cause: Images were added to the blog without filling in the alt text field during upload or editing, which is a required step for accessibility.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your website is missing JSON-LD structured data—machine-readable code that tells Google what your pages are about. Without it, search engines can't understand your products, business hours, location, or reviews as easily, which can hurt how your site appears in search results and local maps.
Why it matters for your business: Missing schema data reduces visibility in Google Local Pack results and product listings, directly limiting foot traffic from customers searching for 'cannabis dispensary near me' or specific products.
Technical root cause: No structured data markup (JSON-LD blocks) has been added to the page HTML. This is typically a development task where code is inserted into the <head> or body of each template.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your /current-specials page doesn't include a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, search engines may get confused if the same content appears under multiple URLs (e.g., with or without www, or with tracking parameters), which dilutes ranking power.
Why it matters for your business: Duplicate or parameter-heavy URLs can split your search visibility across versions, reducing organic traffic to your promotions page — a key revenue driver for a dispensary.
Technical root cause: The page template or CMS configuration does not automatically inject a self-referential canonical tag in the <head> section. This is common on dynamic pages where CMS plugins or theme settings need explicit enablement.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your website doesn't have structured data—machine-readable code that tells search engines what your pages are about. For a dispensary, this means Google can't automatically understand your product listings, pricing, hours, or license information, so it can't display rich results (like star ratings or special offers) in search results.
Why it matters for your business: Without schema markup, you're invisible to Google's product comparison tools and local search features, losing customers actively searching for 'cannabis deals near me' or 'dispensary hours NYC.'
Technical root cause: No JSON-LD blocks (structured data in <script> tags) have been added to your pages. This is common on sites built without SEO plugins or custom development.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your /promotions page doesn't tell search engines which version is the 'official' one. Without a canonical tag, Google may get confused if the same content appears under multiple URLs (like with/without query parameters, http vs https, or www variants), which can split your search ranking power across duplicates.
Why it matters for your business: Search engines may not rank your promotions page prominently, reducing organic traffic to one of your highest-conversion pages for driving repeat customers and sales.
Technical root cause: The <link rel="canonical" href="..."> tag is missing from the page's HTML <head>. Most sites auto-generate these via SEO plugins or server headers, but your site either lacks both or they're not firing on this particular page.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your promotions page doesn't include structured data — a block of code that tells search engines what your page is about in a machine-readable format. Without it, Google can't easily understand that you're promoting cannabis products, which hurts your ability to appear in relevant search results and rich snippets (special result cards).
Why it matters for your business: Missing schema reduces your visibility in local search results and promotional carousels, directly limiting foot traffic from customers searching for deals at cannabis dispensaries near them.
Technical root cause: The page HTML lacks JSON-LD markup (typically placed in <head> or before </body>) that would define the schema.org type for offers, local business, or product promotions.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your product page doesn't declare a preferred version of itself to search engines. Without a canonical tag (a single HTML line that says 'this is the official version'), Google may index duplicate or similar versions of the same page—such as with/without trailing slashes, or sorted differently—which dilutes your search ranking power across multiple URLs instead of concentrating it on one.
Why it matters for your business: Search engines may rank a wrong version of your Flatiron location page, or split ranking signals between variants, reducing visibility for local customers searching for your dispensary and potentially hiding you below competitors.
Technical root cause: The page template or CMS is not outputting a canonical link element in the <head> section. This is especially common in multi-location or e-commerce sites where similar pages exist across different URLs.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Your website has 8 images without alt text (descriptive text read aloud by screen readers and used by search engines to understand images). These images appear on your Flatiron location page. Without alt text, customers using screen readers cannot understand what those images show, and search engines cannot index them for image search results.
Why it matters for your business: Missing alt text reduces your visibility in Google Images search (potential new customer discovery), blocks access for customers with visual impairments, and signals poor site quality to search engines—all of which can reduce organic traffic and exclude paying customers.
Technical root cause: The images likely lack the HTML 'alt' attribute entirely, or the alt attribute is empty. This commonly happens when images are added via a page builder or CMS without filling in the alt field, or when images are background CSS instead of <img> tags.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
This page is missing a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, search engines may not know if this page should rank, or may split credit between duplicate or similar URLs, weakening your search visibility.
Why it matters for your business: Customers searching for 'Alchemy dispensary about us' or similar terms may not find this page ranking as well as it could, or search engines may deprioritize it in favor of other versions, costing you foot traffic and online credibility.
Technical root cause: The page template or CMS does not automatically inject a canonical link element in the <head> section. This is especially common in multi-location or dynamic sites where pages can be accessed via different URL paths.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
This page doesn't have a canonical tag — a line of code that tells search engines which version of a page is the 'main' one. Without it, Google may get confused if the same content appears at multiple URLs (for example, with or without query parameters, or listed under different menu paths), which can dilute your search ranking and confuse crawlers.
Why it matters for your business: Search engines may index duplicate or near-duplicate versions of your specials page, splitting traffic and ranking power between them, which hurts discoverability of your current promotions — a key driver of foot traffic to your Flatiron location.
Technical root cause: The page template is missing the <link rel="canonical" href="..."> HTML tag in the page head. This is typically omitted either because the site was built without SEO configuration or the page was generated dynamically without canonical logic.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your product pages don't include JSON-LD structured data—invisible code that tells Google what your products are, their prices, and availability. Without it, search engines guess at your content instead of understanding it precisely. This hurts your visibility in search results, especially for local cannabis retail where detailed product information matters.
Why it matters for your business: Missing schema data reduces your chances of appearing in Google's rich snippets (stars, pricing, in-stock badges), which drive clicks from search results and improve trust signals for premium cannabis retail.
Technical root cause: The page HTML lacks <script type="application/ld+json"> blocks that define product, local business, or offer schemas. This is typically a templating or CMS configuration gap, not a missing plugin.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your promotions page doesn't include JSON-LD structured data — a machine-readable format that tells Google what content is on the page (e.g., 'this is a promotion with a discount code and expiration date'). Without it, search engines have to guess the meaning of your content, which reduces the chance they'll display rich information in search results.
Why it matters for your business: Missing schema markup means Google won't show promotional details, pricing, or product info in search results with badges or special formatting — lowering click-through rates from search and reducing visibility against competitors who do use schema.
Technical root cause: The page HTML lacks <script type="application/ld+json">...</script> blocks that define the page's structured data. This is likely an omission during site build or template setup, not a platform limitation.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your product page at /flatiron/shop-flatiron doesn't include a canonical tag—an HTML instruction that tells search engines which version of a page is the 'official' one. Without it, Google may treat duplicate or similar pages as separate, diluting your search ranking power across multiple URLs instead of concentrating it on one.
Why it matters for your business: Search engines may index multiple versions of your product pages (with/without trailing slashes, with/without parameters), splitting visibility across them and reducing your chances of ranking for cannabis product searches in NYC.
Technical root cause: The page template is missing a <link rel="canonical" href="..."> tag in the <head> section. This is typically handled by the site CMS or manually added to each page.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your product pages (like the Flatiron shop) don't include structured data—machine-readable code that tells Google, Apple Maps, and other services what your page is about. Without it, search engines have to guess whether you're selling cannabis, showing directions, or something else entirely. This makes it harder for your business to appear in rich results (like product cards or local pack listings).
Why it matters for your business: Missing schema reduces your chances of appearing in Google's local pack, product carousels, and knowledge panels—all high-traffic entry points for customers searching for dispensaries near them.
Technical root cause: The page's HTML lacks JSON-LD blocks (structured data in <script type="application/ld+json"> tags) that define key information like LocalBusiness, Place, or Product schemas.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your website doesn't include JSON-LD structured data — machine-readable code that tells Google what your pages are about. For a cannabis retailer, this means search engines can't automatically understand your location, hours, license status, or product details, making it harder for customers to find you in local search results.
Why it matters for your business: Without schema markup, you're losing local search visibility and competitive advantage against dispensaries that have properly tagged business information, hours, and compliance details.
Technical root cause: The page HTML lacks <script type="application/ld+json"> blocks in the head or body. This is commonly missing on sites built without SEO-focused CMS plugins or custom development for structured data.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
This page lacks a canonical tag—an HTML instruction that tells search engines which version of a page is the 'official' one. Without it, search engines may not know whether to rank this URL or a similar one, which dilutes ranking power and can confuse indexing.
Why it matters for your business: Search engines may index duplicate or near-duplicate pages instead of your preferred URL, splitting ranking signals and reducing your visibility for high-intent cannabis retail searches.
Technical root cause: The page template or CMS does not automatically inject a <link rel="canonical" href="..."> tag in the <head> section. This is common when pages are generated dynamically without canonical logic, or when a CMS has not been configured to output it.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your website is missing JSON-LD structured data — machine-readable code that tells search engines what your pages are about. For a cannabis retailer, this means Google can't easily understand your store locations, products, hours, or license status, which hurts both search visibility and the ability to appear in local business results.
Why it matters for your business: Without schema markup, you're invisible to Google Local Pack results, you lose competitive ground to dispensaries that DO use structured data, and you miss opportunities to show key compliance info (licenses, age restrictions) directly in search results.
Technical root cause: The page (and likely your site) lacks JSON-LD blocks in the <head> or <body>. These are small code snippets that wrap business data in a format search engines understand natively.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
This page doesn't tell search engines which version of the content is the official one. If the same article appears on multiple URLs (e.g., with tracking parameters, different category paths, or internal linking variations), Google may index duplicates or split ranking credit between them, weakening your search visibility.
Why it matters for your business: Without canonical tags, your wellness content—which attracts high-intent patients searching for cannabis education—gets diluted across duplicate URLs, costing you organic traffic and ranking potential.
Technical root cause: The page is missing the <link rel='canonical'> HTML tag in its <head> section, leaving search engines without explicit guidance on which URL is authoritative.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Your blog post about cannabis for seniors has 6 images without alt text — descriptive text that describes what each image shows. Search engines and assistive technology (screen readers used by blind/low-vision visitors) can't understand these images without that text. This hurts both SEO rankings and accessibility for a segment of your audience.
Why it matters for your business: Missing alt text reduces your page's search ranking potential for image-related queries, and excludes customers who use screen readers from understanding your wellness content — a missed opportunity in the senior market you're targeting.
Technical root cause: Images were uploaded or embedded without alt attribute fields filled in during content creation. The CMS or editor likely allowed saving without enforcing this required field.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your blog post page doesn't include JSON-LD structured data — machine-readable code that tells Google what the page is about (e.g., 'this is an article about cannabis for stress'). Without it, search engines have to guess your content's meaning, and you miss opportunities to appear in rich results like featured snippets or knowledge panels.
Why it matters for your business: Missing schema reduces your chances of ranking in Google's featured snippets and knowledge panels for cannabis education queries, which directly impacts organic traffic to your high-value educational content.
Technical root cause: The page's HTML contains no <script type="application/ld+json"> blocks. Most CMSs (WordPress, Webflow, etc.) either don't add schema by default or require a plugin/extension to generate it automatically.
Recommended fix — step by step
<head>: {"@context":"https://schema.org","@type":"Article","headline":"[page title]","datePublished":"[publish date]","author":{"@type":"Organization","name":"The Alchemy"},"description":"[meta description]"}tier2.a11y.img-missing-altWhat it means (plain English)
Six images on your blog post page lack alt text — descriptive labels that screen readers read aloud to visually impaired visitors, and that search engines use to understand image content. This blocks both accessibility (visitors using screen readers get no context) and SEO (Google cannot index the images, missing ranking opportunities for visual searches).
Why it matters for your business: Cannabis consumers researching stress and anxiety relief via image search won't find your content; visitors using assistive technology may bounce, and you're at legal risk if your site fails accessibility standards under ADA compliance.
Technical root cause: Images were inserted into the blog post without alt attributes — either via content management system image upload without filling the alt field, or directly in HTML img tags without alt='' properties.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Six images on your Dry January blog post lack alt text—descriptive labels that screen readers use to describe images to visually impaired visitors, and that search engines use to understand image content. This creates a barrier for accessibility and leaves SEO value on the table, since Google cannot index what it cannot 'see' in those images.
Why it matters for your business: Missing alt text reduces your blog's reach to both disabled users and search engines; it also signals poor site quality to Google, which can lower your ranking for that article and related content.
Technical root cause: Images were uploaded or embedded without alt attribute text being populated in the HTML. This commonly happens when using visual page builders or CMS interfaces that don't enforce alt text entry before publishing.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your blog post page doesn't tell search engines which version is the 'official' one to rank. This matters when the same content is accessible via multiple URLs (with or without www, with or without trailing slash, or via query parameters). Without a canonical tag, Google may index duplicates, splitting your ranking power across them.
Why it matters for your business: Duplicate content issues can dilute your search rankings for cannabis-related keywords, reducing organic traffic to your dispensary's content and potentially hurting visibility for local SEO.
Technical root cause: The page HTML is missing a <link rel="canonical" href="..."> tag in the <head> section. Most CMS platforms don't add this automatically for blog posts unless explicitly configured.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your website isn't using structured data (JSON-LD)—a standardized format that tells search engines like Google exactly what your pages are about. Without it, Google has to guess whether a page is a product listing, a blog post, or general information, which means search results may not display optimally or include rich features like star ratings, prices, or availability badges.
Why it matters for your business: Missing structured data reduces your visibility in Google Search results, limits click-through rates on listings, and prevents you from appearing in specialized search results (like local dispensary finders or product carousels) that drive qualified foot traffic.
Technical root cause: The page does not contain any JSON-LD schema blocks in the <head> or <body> section. This is typically added manually or via a plugin/CMS feature that generates structured data automatically based on page content.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Six images on your blog post lack alt text — descriptive labels that tell search engines and visitors using screen readers what each image shows. This hurts both accessibility (people using assistive technology can't understand your visuals) and SEO (Google can't index image content without these labels).
Why it matters for your business: Missing alt text reduces your ability to rank in Google Images, limits reach to customers with visual impairments, and increases legal risk under ADA compliance standards — particularly important for a NYC-based dispensary.
Technical root cause: Images were likely uploaded without alt attributes being filled in during content creation. Most CMS platforms leave alt fields optional, so they're skipped by default.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your blog post about choosing a cannabis dispensary in NYC is missing structured data—invisible code that tells Google what the page is about (e.g., article type, author, publish date). Without it, search engines have to guess, and they often guess wrong. This means your content ranks lower for related searches and doesn't appear in rich results (like featured snippets or news carousels).
Why it matters for your business: Missing schema reduces organic search visibility for educational content that builds trust with first-time customers and improves click-through rates from search results.
Technical root cause: The page's HTML contains no JSON-LD blocks—structured data that search engines use to understand page content. This is a markup omission, not a rendering or performance issue.
Recommended fix — step by step
{"@context":"https://schema.org","@type":"BlogPosting","headline":"How to Choose the Right Cannabis Dispensary in NYC","datePublished":"[publish date]","dateModified":"[last update]","author":{"@type":"Organization","name":"The Alchemy"},"mainEntity":{"@type":"Article","articleBody":"[first 200 chars of post body]"}} and replace bracketed values with actual post metadata.tier2.a11y.img-missing-altWhat it means (plain English)
Six images on your blog post lack alt text—descriptions that screen readers use to tell visually-impaired visitors what an image shows. These same descriptions help Google understand your images, which can improve search rankings for image queries and overall page relevance.
Why it matters for your business: Missing alt text reduces accessibility for customers with vision disabilities (a legal compliance risk) and leaves SEO value on the table—particularly important for a premium dispensary competing in NYC's saturated market.
Technical root cause: Images were uploaded and published without descriptive alt attributes. This often happens when content management systems allow image upload without requiring an alt field before publishing.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your blog post page doesn't have a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may not know whether to rank this post, a duplicate version, or redirect traffic elsewhere. This is especially risky if the post is ever shared with different URL parameters (like ?utm_source=email), which creates duplicate-looking pages.
Why it matters for your business: Search engines may penalize rankings for this content or split ranking credit across multiple URLs, reducing discoverability of your wellness content and limiting organic traffic to your blog.
Technical root cause: The blog post template is missing a <link rel="canonical" href="..."> tag in the <head> section. Content management systems (WordPress, Shopify, etc.) typically add this automatically, but it may be disabled or the template may not include it.
Recommended fix — step by step
tier2.a11y.img-missing-altWhat it means (plain English)
Six images on your wellness blog post are missing alternative text (alt text) — a brief description that screen readers use to convey what the image shows to visually impaired visitors. Without it, those visitors miss key content, and search engines can't index the images, losing potential traffic from image search results.
Why it matters for your business: Missing alt text reduces accessibility for disabled customers (a legal risk under ADA), hurts your search ranking for image-based queries (e.g., 'cannabis wellness products'), and signals poor site quality to Google, which can suppress organic visibility for competitive cannabis keywords.
Technical root cause: Images were uploaded or embedded without filling in the alt text field during content creation. This is a common content management oversight, especially in blog or CMS platforms where the alt field is optional or easily skipped.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
This page lacks a canonical tag — a line of code that tells search engines which version of a page is the official one. Without it, search engines may get confused if the same content appears at multiple URLs (e.g., with or without tracking parameters), potentially splitting your search ranking power across duplicates.
Why it matters for your business: Missing canonicals can dilute your search visibility for product and content pages, making it harder for customers to find your offerings when they search for cannabis products or your brand.
Technical root cause: The page HTML does not include a <link rel="canonical" href="..."> tag in the <head> section. This is typically omitted during site setup or when using a CMS without automatic canonical generation.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your contact page doesn't include structured data—machine-readable information that tells Google what your business is, where it's located, and how to reach you. This means search engines have to guess at your details instead of reading them directly from your page code.
Why it matters for your business: Without structured data, you're missing opportunities to appear in Google's local business results, knowledge panels, and rich snippets—all of which drive foot traffic and phone calls to your dispensary.
Technical root cause: The page HTML lacks JSON-LD blocks (a standardized format that wraps business information in code). Search engines can infer some details from page text, but they perform better and rank higher when data is explicitly marked up.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your Terms & Conditions page doesn't declare a canonical URL—a single, definitive web address that tells search engines 'this is the official version of this page.' Without it, search engines may get confused if the page appears under multiple URLs (with/without www, http/https, trailing slash, etc.), potentially splitting your ranking power across duplicates.
Why it matters for your business: Search engines may index multiple versions of your terms page separately, diluting SEO value and potentially confusing customers who land on different versions; also weakens your overall site authority for compliance-critical pages.
Technical root cause: The page HTML is missing a <link rel="canonical" href="https://www.thealchemy.nyc/terms-conditions"> tag in the <head> section, or your site structure is generating it inconsistently.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your Terms & Conditions page doesn't include JSON-LD structured data—a machine-readable format that tells Google what type of content it is. For a legal/policy page, this means search engines can't automatically understand its purpose, which slightly reduces discoverability and may affect how the page appears in search results.
Why it matters for your business: Without schema markup, your Terms & Conditions page ranks lower in search results and doesn't signal to Google that it's an important compliance document, potentially pushing customers to competitors' sites when they search for dispensary policies.
Technical root cause: The page lacks JSON-LD blocks in its HTML head or body. This is typically omitted on secondary pages (like T&Cs) because developers prioritize schema on product/location pages, but Google still benefits from it on every page.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your privacy policy page doesn't tell search engines which version of this page is the 'official' one. Without a canonical tag, Google may treat duplicate or similar versions as separate pages, diluting your search visibility and potentially confusing crawlers if the same content appears on multiple URLs.
Why it matters for your business: Missing canonicals can weaken your site's SEO authority and cause search engines to index unintended variations of your pages, reducing organic traffic to your actual site.
Technical root cause: The page lacks a <link rel="canonical" href="https://www.thealchemy.nyc/privacy-policy"> tag in its HTML head section, which explicitly signals to search engines the preferred URL for this content.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your blog page doesn't have a canonical tag—a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may get confused if the same content appears under multiple URLs (e.g., with or without trailing slashes, or via different navigation paths), which can dilute your search ranking.
Why it matters for your business: Missing canonicals can split your blog's search visibility across duplicate URLs, reducing organic traffic and making it harder for customers to find your content when they search for cannabis products or strains you write about.
Technical root cause: The blog page template does not include a <link rel="canonical" href="https://www.thealchemy.nyc/blog"> tag in its HTML head section, leaving search engines without explicit guidance on the preferred URL.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your blog page doesn't include JSON-LD structured data — machine-readable code that tells search engines what your content is about. Without it, Google can't reliably understand whether a blog post is about a product, article, or something else, which reduces your chances of appearing in rich search results (the fancy boxes with images and ratings you see on Google).
Why it matters for your business: Missing schema markup reduces your blog's visibility in Google Search, limiting organic traffic to educational content that could drive awareness and establish authority in the cannabis retail space.
Technical root cause: The blog template or CMS is not outputting JSON-LD schema blocks. No structured data is being generated for blog post pages.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
Your /qr page is missing a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may index duplicate or near-duplicate versions of this page (like www.thealchemy.nyc/qr?ref=email), which dilutes your ranking power and confuses search crawlers.
Why it matters for your business: Search engines may penalize your site by splitting ranking credit across multiple versions of the same page, lowering visibility for product or menu searches that drive customer traffic to your dispensary.
Technical root cause: The /qr endpoint is either dynamically generated without canonical tag injection, or the template/controller serving it does not include the HTML meta tag. QR landing pages are often overlooked in canonical implementation because they are treated as 'utility' pages rather than core content.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your Terms & Conditions page doesn't include JSON-LD structured data — a standardized code block that tells search engines what type of content lives on the page. For a legal/compliance page, this is especially important because search engines use it to understand and index the content correctly. Without it, search engines have to guess the page's purpose, which can lead to lower visibility in search results.
Why it matters for your business: Search engines may deprioritize or misclassify your legal pages, reducing organic traffic to important compliance documentation that customers and regulators may be looking for.
Technical root cause: The page template lacks JSON-LD markup. This is typically implemented in the <head> or footer of the HTML; it's not present in the current page code.
Recommended fix — step by step
tier2.meta.no-canonicalWhat it means (plain English)
This page doesn't tell search engines which version of the content is the 'official' one. If the same privacy policy appears under multiple URLs (e.g., /flatiron/privacy-policy-flatiron and /privacy-policy), search engines may index both, splitting your credibility signal and potentially ranking the wrong version.
Why it matters for your business: Duplicate content pages dilute SEO authority and can confuse search rankings for important trust pages like privacy policies, which affect customer confidence and regulatory compliance visibility.
Technical root cause: The page is missing the HTML <link rel="canonical" href="..."/> tag in its <head> section, which explicitly points search engines to the preferred URL for this content.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your blog post about cannabis storage has no structured data markup — essentially, search engines can't automatically understand what type of content this is or who published it. This makes it harder for Google to categorize the page and show it in rich results (like featured snippets or knowledge panels), which are especially valuable for educational content in the cannabis space.
Why it matters for your business: Without schema markup, you lose visibility in Google's rich results and voice search answers, which drive traffic to educational content that builds brand authority and trust with customers.
Technical root cause: The page HTML lacks JSON-LD blocks that tell search engines the content type, author, publish date, and other metadata. This is a markup omission, not a functionality issue.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your blog post about the grand opening has no JSON-LD schema—structured data that tells Google what the page is about (e.g., an event, article, or product). Without it, search engines have to guess the content type, which reduces the chance it appears in rich search results (the boxes with images, dates, or ratings that catch customer eyes).
Why it matters for your business: Missing schema means your grand opening event won't show up in Google's event carousel or news results, losing foot traffic from local customers actively searching for cannabis events in NYC.
Technical root cause: The page lacks JSON-LD markup in the <head> or <body>. This is either absent from the page template or the CMS is not auto-generating it.
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your blog post about Dry January lacks structured data markup — a machine-readable format that tells search engines what your content is about. Without it, Google can't confidently categorize your post as a blog article, which means it's less likely to appear in search results or rich snippets (the fancy preview cards that appear above regular listings).
Why it matters for your business: Missing schema markup reduces your visibility in Google search results and knowledge panels, limiting organic traffic to your educational content and brand authority pages.
Technical root cause: The page HTML does not include JSON-LD script blocks in the <head> or <body> that define the article schema (headline, author, date published, image, etc.).
Recommended fix — step by step
tier2.schema.noneWhat it means (plain English)
Your website is missing JSON-LD structured data — machine-readable code that tells Google, Bing, and other search engines what your content is about. Think of it like a label on a product: you can see the product, but the label tells a machine exactly what it contains. Without it, search engines have to guess, which means your pages rank less accurately and show fewer rich results (like star ratings, prices, or product images in search results).
Why it matters for your business: Premium cannabis dispensaries rely on local search visibility and accurate product display in search results to drive foot traffic and online orders; missing schema data reduces your visibility compared to competitors with properly structured pages.
Technical root cause: The page lacks JSON-LD blocks (structured data in <script type='application/ld+json'> tags) that describe the content type, product details, business information, or other key entities that search engines use to understand and rank pages.
Recommended fix — step by step
tier2.schema.noneDetail
Page has no JSON-LD structured data blocks.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.schema.noneDetail
Page has no JSON-LD structured data blocks.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.schema.noneDetail
Page has no JSON-LD structured data blocks.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.schema.noneDetail
Page has no JSON-LD structured data blocks.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.schema.noneDetail
Page has no JSON-LD structured data blocks.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-descriptionDetail
Page has no meta description.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.schema.noneDetail
Page has no JSON-LD structured data blocks.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-descriptionDetail
Page has no meta description.
tier2.meta.no-canonicalDetail
Page has no <link rel=canonical>.
tier2.schema.noneDetail
Page has no JSON-LD structured data blocks.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.links.brokenDetail
Broken internal links degrade UX + crawl equity.
tier3.cwv.cls-mobileDetail
CLS 0.164 exceeds 0.05 target.
tier3.cwv.cls-desktopDetail
CLS 0.107 exceeds 0.05 target.
tier4.schema.missing-coreDetail
Every site should emit Organization + LocalBusiness + WebSite JSON-LD.
tier5.header.x-frame-optionsDetail
x-frame-options not present on homepage response. Affects fortress score and CSP posture.
tier5.header.content-security-policyDetail
content-security-policy not present on homepage response. Affects fortress score and CSP posture.
tier5.fortress.dmarc-missingDetail
No v=DMARC1 record at _dmarc.thealchemy.nyc. Without DMARC, spoofed email from your domain is harder to filter. Start with p=none for monitoring.
tier6.a11y.small-targetsDetail
Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.
tier6.a11y.small-targetsDetail
Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.
tier6.a11y.small-targetsDetail
Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.
tier6.a11y.small-targetsDetail
Interactive elements smaller than 44x44 fail WCAG 2.5.5 target size.
tier8.lighthouse.a11y-desktopDetail
Score 74 is below target 95. See HTML report for details.
tier8.lighthouse.bestPractices-desktopDetail
Score 74 is below target 90. See HTML report for details.
tier9.a11y.landmark-uniqueDetail
Ensure landmarks are unique
Impact: moderate
WCAG:
Learn more: https://dequeuniversity.com/rules/axe/4.11/landmark-unique?application=playwright
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "Blog"
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.meta.no-twitter-cardDetail
No twitter:card meta tag.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "QR"
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "Current Specials"
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "Promotions"
tier2.meta.description-lengthDetail
Description should be 80-160 chars.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-twitter-cardDetail
No twitter:card meta tag.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "About Us | Flatiron"
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.description-lengthDetail
Description should be 80-160 chars.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "Shop | Flatiron"
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.a11y.img-missing-altDetail
Images without alt fail a11y + hurt SEO.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "The Alchemy"
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.meta.no-twitter-cardDetail
No twitter:card meta tag.
tier2.meta.title-lengthDetail
Title should be 20-65 chars. Got: "The Alchemy"
tier2.meta.no-ogDetail
Page missing og:title and/or og:image.
tier2.meta.no-twitter-cardDetail
No twitter:card meta tag.
tier3.weight.js-mobileDetail
JavaScript transfer exceeds 250KB budget.
tier3.weight.total-mobileDetail
Total transfer exceeds 2500KB budget.
tier3.weight.js-desktopDetail
JavaScript transfer exceeds 250KB budget.
tier3.weight.total-desktopDetail
Total transfer exceeds 2500KB budget.
tier4.sitemap.staleDetail
31/31 URLs have lastmod older than 90 days.
tier5.header.x-content-type-optionsDetail
x-content-type-options not present on homepage response. Affects fortress score and CSP posture.
tier5.header.referrer-policyDetail
referrer-policy not present on homepage response. Affects fortress score and CSP posture.
tier5.header.permissions-policyDetail
permissions-policy not present on homepage response. Affects fortress score and CSP posture.
tier5.fortress.ssl-gradeDetail
Qualys SSL Labs: SSL Labs HTTP 400. Aim for A+ via strong TLS 1.3, HSTS, CAA, and preload.
tier5.fortress.dnssec-missingDetail
DNSSEC adds cryptographic verification to DNS responses. Consider enabling via your registrar.
tier5.fortress.caa-missingDetail
CAA records restrict which CAs may issue certs for your domain, preventing rogue issuance. Add CAA for letsencrypt.org / digicert.com / etc.
tier6.visual.changedDetail
Screenshot hash differs from baseline. Prev=1d44293ce1bdceee, now=5c5666287d9482af. Review for unintended regression.
tier6.visual.changedDetail
Screenshot hash differs from baseline. Prev=5d6538ab0315360d, now=7ea66cf246591d33. Review for unintended regression.
tier8.lighthouse.mobile-failedDetail
The "start lh:driver:navigate" performance mark has not been set
tier8.lighthouse.seo-desktopDetail
Score 92 is below target 95. See HTML report for details.
tier8.lh-opportunity.unminified-css-desktopDetail
Minifying CSS files can reduce network payload sizes. https://developer.chrome.com/docs/lighthouse/performance/unminified-css/" target="_blank" rel="noreferrer">Learn how to minify CSS.
tier8.lh-opportunity.unminified-javascript-desktopDetail
Minifying JavaScript files can reduce payload sizes and script parse time. https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/" target="_blank" rel="noreferrer">Learn how to minify JavaScript.
tier8.lh-opportunity.unused-css-rules-desktopDetail
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/" target="_blank" rel="noreferrer">Learn how to reduce unused CSS.
tier8.lh-opportunity.unused-javascript-desktopDetail
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/" target="_blank" rel="noreferrer">Learn how to reduce unused JavaScript.
tier8.lh-opportunity.modern-image-formats-desktopDetail
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/" target="_blank" rel="noreferrer">Learn more about modern image formats.
Grouped by URL — useful when working through the site one page at a time.
_43 findings on this page_
Your website is served over HTTPS (secure), but it contains links to HTTP resources (non-secure). Modern browsers will either block these resources or show a security warning to visitors, which erodes
Your age-verification popup (the modal dialog that appears when visitors enter the site) is missing a label that screen readers can read aloud. Screen reader users — including blind and low-vision cus
A heading element on your site is missing a required ARIA attribute called 'aria-level,' which tells screen readers (software that reads web pages aloud for blind and low-vision users) what level of h
Your product carousel (the sliding list showing items) has an ARIA role of "list" but contains child elements with role="group" instead of the required role="listitem". ARIA roles are invisible labels
Your site has a div element with role="page wrap" — but ARIA (Accessible Rich Internet Applications) only allows single, valid role names. "page wrap" is two words and isn't a recognized role. Screen
A label on your product carousel ('Active') uses white text on a bright green background with insufficient contrast. The colors blend together, making the text hard to read for anyone with color visio
Your website has two links that screen reader users cannot identify. One is a social media icon link (Instagram) in the footer, and the other is your logo link at the bottom of the page. Both links ex
Your site is failing to complete the critical customer journey of viewing your menu after passing the age gate. The audit detected three errors: a missing resource (404), a rate-limit response (429),
Your homepage doesn't include a canonical tag—a small piece of code that tells search engines which version of a page is the 'official' one. Without it, search engines might index duplicate or similar
Your homepage has 11 images without alt text — descriptive labels that screen readers use to tell visually impaired visitors what an image shows. Search engines also use alt text to understand and ind
_7 findings on this page_
The /blog page is missing a meta description—the 155-character summary that appears under your page title in Google search results. Without it, Google generates a guess from your page content, which o
Your blog page doesn't have a canonical tag—a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may get confused if the same content appears unde
Your blog page doesn't include JSON-LD structured data — machine-readable code that tells search engines what your content is about. Without it, Google can't reliably understand whether a blog post is
Your blog page has 7 images without alternative text descriptions. Alt text is the hidden label that describes what an image shows — search engines read it to understand your content, and screen reade
_7 findings on this page_
_7 findings on this page_
_5 findings on this page_
Your /qr page is missing a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may index duplicate or near-duplicate versions of
Your website is missing JSON-LD structured data—machine-readable code that tells Google what your pages are about. Without it, search engines can't understand your products, business hours, location,
_5 findings on this page_
Your /current-specials page doesn't include a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, search engines may get confused if the
Your website doesn't have structured data—machine-readable code that tells search engines what your pages are about. For a dispensary, this means Google can't automatically understand your product lis
_5 findings on this page_
Your /promotions page doesn't tell search engines which version is the 'official' one. Without a canonical tag, Google may get confused if the same content appears under multiple URLs (like with/witho
Your promotions page doesn't include structured data — a block of code that tells search engines what your page is about in a machine-readable format. Without it, Google can't easily understand that y
_5 findings on this page_
This page is missing a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, search engines may not know if this page should rank, or may
_5 findings on this page_
Your product page at /flatiron/shop-flatiron doesn't include a canonical tag—an HTML instruction that tells search engines which version of a page is the 'official' one. Without it, Google may treat d
Your product pages (like the Flatiron shop) don't include structured data—machine-readable code that tells Google, Apple Maps, and other services what your page is about. Without it, search engines ha
_4 findings on this page_
Your About Us page doesn't have a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may treat similar or duplicate content as s
Your website doesn't include JSON-LD structured data — machine-readable code that tells search engines what your business is, where it's located, and what you sell. Without it, Google has to guess at
_4 findings on this page_
Your contact page doesn't tell search engines which version of the URL is the official one. If the same page is accessible via multiple URLs (like with or without a trailing slash, or through differen
Your contact page doesn't include structured data—machine-readable information that tells Google what your business is, where it's located, and how to reach you. This means search engines have to gues
_4 findings on this page_
Your Terms & Conditions page doesn't declare a canonical URL—a single, definitive web address that tells search engines 'this is the official version of this page.' Without it, search engines may get
Your Terms & Conditions page doesn't include JSON-LD structured data—a machine-readable format that tells Google what type of content it is. For a legal/policy page, this means search engines can't au
_4 findings on this page_
Your privacy policy page doesn't tell search engines which version of this page is the 'official' one. Without a canonical tag, Google may treat duplicate or similar versions as separate pages, diluti
Your privacy policy page (and likely many others) lacks JSON-LD structured data — code that tells search engines what type of content is on the page. Without it, Google can't confidently categorize yo
_4 findings on this page_
Your shop page doesn't tell search engines which version of the URL is the 'official' one. Without a canonical tag, Google may index duplicate versions (like /shop vs /shop/ or www vs non-www), splitt
Your shop page doesn't include JSON-LD structured data — a standardized code format that tells search engines exactly what your content is (e.g., product names, prices, ratings). Without it, Google ha
_4 findings on this page_
This page doesn't have a canonical tag — a line of code that tells search engines which version of a page is the 'main' one. Without it, Google may get confused if the same content appears at multiple
Your product pages don't include JSON-LD structured data—invisible code that tells Google what your products are, their prices, and availability. Without it, search engines guess at your content inste
_4 findings on this page_
Your promotions page doesn't include JSON-LD structured data — a machine-readable format that tells Google what content is on the page (e.g., 'this is a promotion with a discount code and expiration d
_4 findings on this page_
Your website doesn't include JSON-LD structured data — machine-readable code that tells Google what your pages are about. For a cannabis retailer, this means search engines can't automatically underst
_4 findings on this page_
This page lacks a canonical tag—an HTML instruction that tells search engines which version of a page is the 'official' one. Without it, search engines may not know whether to rank this URL or a simil
Your Terms & Conditions page doesn't include JSON-LD structured data — a standardized code block that tells search engines what type of content lives on the page. For a legal/compliance page, this is
_4 findings on this page_
This page doesn't tell search engines which version of the content is the 'official' one. If the same privacy policy appears under multiple URLs (e.g., /flatiron/privacy-policy-flatiron and /privacy-p
Your website is missing JSON-LD structured data — machine-readable code that tells search engines what your pages are about. For a cannabis retailer, this means Google can't easily understand your sto
_3 findings on this page_
Your product page doesn't declare a preferred version of itself to search engines. Without a canonical tag (a single HTML line that says 'this is the official version'), Google may index duplicate or
Your website has 8 images without alt text (descriptive text read aloud by screen readers and used by search engines to understand images). These images appear on your Flatiron location page. Without
_3 findings on this page_
This page doesn't tell search engines which version of the content is the official one. If the same article appears on multiple URLs (e.g., with tracking parameters, different category paths, or inter
Your blog post about cannabis for seniors has 6 images without alt text — descriptive text that describes what each image shows. Search engines and assistive technology (screen readers used by blind/l
_3 findings on this page_
Your blog post page doesn't include JSON-LD structured data — machine-readable code that tells Google what the page is about (e.g., 'this is an article about cannabis for stress'). Without it, search
Six images on your blog post page lack alt text — descriptive labels that screen readers read aloud to visually impaired visitors, and that search engines use to understand image content. This blocks
_3 findings on this page_
Your blog post about cannabis storage has no structured data markup — essentially, search engines can't automatically understand what type of content this is or who published it. This makes it harder
_3 findings on this page_
Your blog post about the grand opening has no JSON-LD schema—structured data that tells Google what the page is about (e.g., an event, article, or product). Without it, search engines have to guess th
_3 findings on this page_
Your blog post about Dry January lacks structured data markup — a machine-readable format that tells search engines what your content is about. Without it, Google can't confidently categorize your pos
Six images on your Dry January blog post lack alt text—descriptive labels that screen readers use to describe images to visually impaired visitors, and that search engines use to understand image cont
_3 findings on this page_
Your blog post page doesn't tell search engines which version is the 'official' one to rank. This matters when the same content is accessible via multiple URLs (with or without www, with or without tr
Your website isn't using structured data (JSON-LD)—a standardized format that tells search engines like Google exactly what your pages are about. Without it, Google has to guess whether a page is a pr
Six images on your blog post lack alt text — descriptive labels that tell search engines and visitors using screen readers what each image shows. This hurts both accessibility (people using assistive
_3 findings on this page_
Your blog post about choosing a cannabis dispensary in NYC is missing structured data—invisible code that tells Google what the page is about (e.g., article type, author, publish date). Without it, se
Six images on your blog post lack alt text—descriptions that screen readers use to tell visually-impaired visitors what an image shows. These same descriptions help Google understand your images, whic
_3 findings on this page_
Your blog post page doesn't have a canonical tag — a line of code that tells search engines which version of a page is the 'official' one. Without it, Google may not know whether to rank this post, a
Six images on your wellness blog post are missing alternative text (alt text) — a brief description that screen readers use to convey what the image shows to visually impaired visitors. Without it, th
_3 findings on this page_
This page lacks a canonical tag — a line of code that tells search engines which version of a page is the official one. Without it, search engines may get confused if the same content appears at multi
Your website is missing JSON-LD structured data — machine-readable code that tells Google, Bing, and other search engines what your content is about. Think of it like a label on a product: you can see
_3 findings on this page_
_3 findings on this page_
_2 findings on this page_
Your homepage doesn't include a canonical tag—a line of code that tells search engines which version of a page is the official one. Without it, search engines may not know whether to prioritize www.th
Your site has 11 images without alt text — descriptions that screen readers use to understand images, and that search engines use to index image content. This means visually impaired visitors and sear
_1 finding on this page_
_Generated by Apex Sentinel Monthly Audit · 2026-04-19T06:30:50.557Z · Powered by Bud Authority._
Generated by Apex Sentinel · © 2026 Bud Authority