Write one title and description template per page type (menu items, strain profiles, city pages), fill them from structured product data, then hand-write the handful of money pages where a human sentence wins the click. Audit quarterly for duplicates and truncation.
One template per page type
A 500-page cannabis site usually has about six page types: product pages, strain profiles, category pages, location pages, blog posts, and statics. Each type gets its own title and description pattern built from fields the page already has — strain name, category, city, price floor. Templates per type stay accurate because data feeds them. One sitewide template produces the identical mush that kills CTR. Blog posts usually skip the template entirely, because a human already wrote the page and can spend two more minutes writing its title.
What a product-page template looks like
A workable menu pattern: {Strain} {Format} - {Weight} | {Store} for the title, and a description like {Strain} {format} available at {store} in {city}. {THC range} THC, lab tested. Order online for pickup. Every variable comes from the product record, so the meta updates when the product does, and the description sells the two things searchers check first: availability and testing. Strain profiles get their own pattern built around the strain name, and location pages get one that leads with the city. The variables differ by type; the discipline is the same.
Hand-write the money pages
Templates exist so a human can spend time where it pays: the homepage, top category pages, the pages driving the most impressions in Search Console, and anything at a striking-distance position where CTR is the lever. That is usually 15 to 25 pages. Hand-written descriptions there can name the differentiator a template cannot know matters — same-day delivery, in-house grow, price match. Revisit that hand-written set twice a year, because the differentiator worth naming changes.
Audit quarterly for duplicates and truncation
Meta rots quietly. New page types launch without patterns. Renamed products collide into duplicate titles. A template change truncates a thousand descriptions mid-word. Crawl the site quarterly with Screaming Frog or whatever crawler you have, sort by duplicate titles and by length, and fix the clusters. Twenty minutes a quarter keeps five hundred pages honest. Search Console is the second check: falling CTR on a stable position often means a rewritten or truncated snippet, and it shows up there before any crawl.
A worked example: the 500-SKU menu
A dispensary with 500 SKUs, 60 strain profiles, and 8 locations sets five templates (product, profile, category, location, blog) and hand-writes 20 pages: home, the 8 location pages, 6 top categories, and 5 posts that GSC shows at positions 5 through 9 with weak CTR. Total hand-writing time is one afternoon. The quarterly crawl catches the title collisions the POS sync creates when two vendors ship the same strain name, which get suffixed by brand and move on.
Key takeaways
- Template per page type, fed from structured product data.
- Hand-write only the money pages — usually 15 to 25 of them.
- Keep descriptions claim-specific: availability, testing, location.
- Crawl quarterly for duplicate titles and truncated descriptions.
Frequently asked questions
Which pages deserve hand-written meta content?
The homepage, location pages, top categories, and anything Search Console shows at positions 4 through 10 with below-average CTR — that is where a better sentence directly buys clicks. Everything else runs on the page-type template.
How long should titles and descriptions be?
Keep titles under roughly 60 characters and descriptions between about 140 and 158 so they display without truncation. Google rewrites what it dislikes either way; staying inside the limits raises the odds your version is the one shown.
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 ›