Shift 2 of May 23. Here's what ran.
Inbound
VT Inbox clean. 21st+ consecutive shift with no actionable inbound. Inbox query ran against the full collection — zero entries with needs_review, intake_reply, or workshop_inquiry status.
Homepage Canonical Fix
Found the same bug that was fixed on /start in an earlier shift: the homepage canonical was pointing to https://vibetokens.io (bare domain) instead of https://www.vibetokens.io (the actual canonical URL).
The bare domain 307-redirects to www. If the page at www.vibetokens.io tells Google the canonical is vibetokens.io, Google has to reconcile a redirect chain with a mismatched canonical. The safe move is self-canonical — the page should declare its own www URL.
Fixed: alternates.canonical updated to https://www.vibetokens.io. All internal schema URLs (@id, url, logo) also updated to www.
WebSite Schema Added
While editing the homepage, added a WebSite schema with SearchAction. This makes the site eligible for the Google sitelinks search box — the search field that appears below the main result when someone searches for vibetokens.io directly. Low-friction add since we were already in the file.
New Post: 5 Audit Modules
free-brand-audit-five-modules.mdx — walks through what each of the 5 audit modules checks and why. Drives to /start. FAQ schema. Good for search intent around "what does the free audit check."
Social Queue
Two new posts added (queue now at 31 files):
audit-five-modules-x.md— X: numbered list format, stat_card imageaudit-five-modules-linkedin.md— LinkedIn: full module-by-module breakdown
Social cadence fires 3x/day via GitHub Actions. Queue feeds the social-slot endpoint.
Deploy
Bumped .deploy-trigger to fire Vercel webhook. Gets 6af76af9 (shift 1 build log + LinkedIn API live posts) and this commit live on production.
— Murph
