A free, working cannabis & CBD SEO library, 500 guides. Browse the library ›
Home » Blog » On-Page & Technical SEO » Speeding Up a Slow Cannabis Website for SEO
On-Page & Technical SEO

Speeding Up a Slow Cannabis Website for SEO

In short

Measure before you fix: run PageSpeed Insights, note TTFB, and find the heaviest requests. Then work the list in order of weight — server response, images, compression and caching, a CDN, and finally the third-party scripts a menu embed drags in.

Measure first, or you will fix the wrong thing

Run the slow page through PageSpeed Insights and open the waterfall in your browser's network tab. Two numbers frame everything: time to first byte, which is the server, and total page weight, which is everything you shipped. A page can be slow for opposite reasons. Optimizing images on a site with a two-second TTFB is polishing the paint on a car with no engine.

Server response sets the floor

TTFB is how long the server takes to start answering. Google's field-data guidance is to stay under 800 milliseconds; a well-cached page manages a quarter of that. On the shared cPanel hosting most small cannabis stores use, the fix is rarely a hosting upgrade — it is page caching, so WordPress stops rebuilding the same page from PHP and the database on every single visit. Turn on whatever full-page cache your host or plugin stack offers before spending money.

Images are the heaviest cargo

Product and strain photography dominates page weight on cannabis stores. Three rules cover most of it. Serve WebP instead of JPEG or PNG. Size the file to the space it occupies, not the camera's output. Lazy-load everything below the fold so the first paint is not waiting on photo forty. Most platforms and image plugins automate all three once configured.

Compress and cache what you send

Text assets (HTML, CSS, JavaScript) should leave the server compressed with brotli, or gzip where brotli is unavailable, which typically shrinks them by two-thirds or more. Static files should carry long cache-control headers so returning visitors download nothing they already have. Both are server-config switches, not projects. Check response headers to confirm they are actually on; assumed-but-disabled compression is common on budget hosting.

A CDN for the static weight

A content delivery network stores copies of your static files at edge locations near visitors, cutting round-trip distance and taking the load off the origin. The free Cloudflare tier gives a cannabis store edge caching, brotli, and HTTP/2 in an afternoon of setup. It will not rescue a slow backend, but it makes everything static effectively instant.

Worked example: a menu page cut from 9 seconds to 3

A dispensary category page loaded in about nine seconds on mobile. The waterfall showed why: 4 MB of PNG product shots, no compression on text assets, and a third-party menu widget loading 1.5 MB of JavaScript before showing a single product. Converting images to WebP and sizing them to the grid cut roughly 3 MB. Enabling brotli and full-page caching brought TTFB from 1.4 seconds to under 400 milliseconds. The widget stayed, for business reasons, but deferring its script stopped it from blocking the products above the fold. Load time landed around three seconds — not elite, but no longer costing sales.

Key takeaways

  • Diagnose with PageSpeed Insights and the network waterfall before changing anything.
  • Fix TTFB with full-page caching before considering a hosting upgrade.
  • WebP, correct dimensions, and lazy loading solve most image weight.
  • Brotli compression and cache headers are free wins hiding in server config.
  • Third-party menu embeds are usually the last, biggest, hardest fix.

Frequently asked questions

What counts as a good TTFB?

Google's guidance for field data is under 800 milliseconds, and a cached page on decent hosting can sit well under 200. Time to first byte is the floor for everything else, because nothing renders before the server answers.

Which image format should I use?

WebP is the safe default: supported everywhere now and far smaller than JPEG at similar quality. AVIF compresses harder but encodes slower. Sizing matters as much as format, though. A 2000-pixel photo squeezed into a 300-pixel product card wastes every byte.

Does a single-state dispensary need a CDN?

It helps less than for a national brand, but it still offloads static files, adds edge caching and compression, and absorbs traffic spikes. Free tiers make it cheap insurance even when your customers all live within fifty miles.

What slows dispensary sites down specifically?

Embedded third-party menus that load the whole catalog through JavaScript. The widget arrives after everything else, drags in its own fonts and scripts, and leaves nothing crawlable behind. A server-rendered menu on your own domain fixes speed and SEO at once.

Want this done for your brand?

We build cannabis & CBD search visibility with full transparency, for dispensaries, brands, and MSOs.

Get a free cannabis SEO audit ›