Skip to content

SEO + analytics

Every SEO surface the theme handles automatically.

JSON-LD schema

inc/seo.php outputs a schema graph in the <head> on every page:

TypeWhere
Organization + WebSite + SearchActionEvery page
Product + Offer + AggregateRatingPDPs
BreadcrumbListPDPs
ArticleBlog single posts

Yoast is respected — the theme uses non-conflicting @ids. Disable via:

php
add_filter( 'dankcave_seo_should_run', '__return_false' );

Meta descriptions

inc/seo.php provides fallback descriptions per page slug — About / Contact / Shipping / Returns / Privacy / Terms. Fires only when Yoast has no meta description saved for the page.

Owner-editable via Yoast SEO panel on each page (overrides the theme fallback).

og:image

  • Site-wide fallback: assets/img/og-share.png (1200×630 branded card)
  • Rewrites Yoast's default (the tiny logo) via presenter filter + output-buffer safety net

Override per-page via Yoast SEO → Social panel on the page.

robots.txt

The theme's robots_txt filter strips any Crawl-delay: <N> directive. Bypassed when a physical robots.txt file exists on the server — edit that via Yoast Tools → File editor.

llms.txt

GET /llms.txt returns a Markdown index of the site's key pages, top 100 products, and top 100 posts. So LLM crawlers can hydrate their understanding. Managed by inc/seo.php.

GA4 dataLayer events

assets/js/theme.js pushes to window.dataLayer:

EventFires when
view_itemPDP load
add_to_cartWC AJAX add
remove_from_cartWC AJAX remove
add_to_wishlistHeart toggle (product added)
remove_from_wishlistHeart toggle (product removed)
searchSearch form submit
purchaseOrder-received page

Configure GA4 via Site Kit / GTM — no theme-side keys or IDs.

Verifying live

bash
# Meta descriptions
curl -s https://dankcave.com/about-us-3/ | grep 'meta name="description"'

# og:image
curl -s https://dankcave.com/about-us-3/ | grep 'og:image'

# robots.txt
curl -s https://dankcave.com/robots.txt

# JSON-LD schema
curl -s https://dankcave.com/shop/dab-rig/electric-dab-rig/puffco-peak-pro-electric-dab-rig/ | grep -A 30 'application/ld+json'

Yoast integration

The theme's SEO layer runs alongside Yoast — not instead of it. Yoast owns the canonical URLs, page titles, and full social/social card control. The theme provides fallbacks for pages where Yoast doesn't have values set.

Recommended Yoast config:

  • Enable JSON-LD schema (mode: default)
  • Set a 1200×630 default social image in Yoast → Social → Facebook (theme falls back to assets/img/og-share.png if unset)
  • Optional: Rank Math or Yoast Premium — both work

Dankcave theme v0.2.2