[object Object]

← back to Ventura Claw Leads

Home gets Organization+WebSite+FAQPage JSON-LD; neighborhood gets ItemList

fb3a3e496d9405f2227c2465e2785f2831233dea · 2026-05-07 12:30:34 -0700 · Steve Abrams

Three JSON-LD additions, all purely additive:

1. home.ejs: @graph with Organization, WebSite (with potentialAction
   SearchAction → /find?q={query} for sitelinks search box), and
   FAQPage wrapping the existing 5 FAQ items. Validates as 3 graph
   nodes with all 5 questions correctly mapped.

2. neighborhood.ejs: ItemList JSON-LD added next to existing
   BreadcrumbList. Same shape as /find — first 30 businesses
   exposed as ListItem with rank+url+name, full count in
   numberOfItems.

Once Google recrawls, brand searches for 'Ventura Claw' may surface
sitelinks search box + FAQ snippets (taking 4-5x more SERP space).

Files touched

Diff

commit fb3a3e496d9405f2227c2465e2785f2831233dea
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu May 7 12:30:34 2026 -0700

    Home gets Organization+WebSite+FAQPage JSON-LD; neighborhood gets ItemList
    
    Three JSON-LD additions, all purely additive:
    
    1. home.ejs: @graph with Organization, WebSite (with potentialAction
       SearchAction → /find?q={query} for sitelinks search box), and
       FAQPage wrapping the existing 5 FAQ items. Validates as 3 graph
       nodes with all 5 questions correctly mapped.
    
    2. neighborhood.ejs: ItemList JSON-LD added next to existing
       BreadcrumbList. Same shape as /find — first 30 businesses
       exposed as ListItem with rank+url+name, full count in
       numberOfItems.
    
    Once Google recrawls, brand searches for 'Ventura Claw' may surface
    sitelinks search box + FAQ snippets (taking 4-5x more SERP space).
---
 views/public/home.ejs         | 62 +++++++++++++++++++++++++++++++++++++++++++
 views/public/neighborhood.ejs | 19 +++++++++++++
 2 files changed, 81 insertions(+)

diff --git a/views/public/home.ejs b/views/public/home.ejs
index 8f4d92a..4ebbb79 100644
--- a/views/public/home.ejs
+++ b/views/public/home.ejs
@@ -1,6 +1,68 @@
 <%- include('../partials/head', { title }) %>
 <%- include('../partials/header') %>
 
+<%
+  // Organization + WebSite + FAQPage JSON-LD on the home page only. Three
+  // schemas wrapped in @graph so Google parses them as a single document
+  // describing one entity. Organization → brand-level rich result;
+  // WebSite → sitelinks search box (queries route to /find?q=); FAQPage →
+  // FAQ rich snippet for the 5 questions in the FAQ section below.
+  var _publicUrl = (typeof publicUrl !== 'undefined' && publicUrl) ? publicUrl.replace(/\/+$/, '') : 'https://leads.venturaclaw.com';
+  var _faqItems = [
+    { q: "How does this differ from Yelp or Google Maps?",
+      a: "Ventura Claw is curated, narrow, and local — limited to small businesses on the Ventura Blvd corridor (Sherman Oaks → Woodland Hills). No reviews, no ranking algorithm, no ads on consumer surfaces. Just a clean way to find a business near you and message them directly." },
+    { q: "Why aren't doctors, lawyers, or contractors listed?",
+      a: "State-licensed professions (medical, legal, financial, real estate, licensed trades) have their own referral and fee-splitting rules. Ventura Claw intentionally only lists businesses where the work is done by the business itself, not by a regulated individual. This keeps the platform structurally simple and our pricing structurally honest." },
+    { q: "How do leads get to the business?",
+      a: "When you fill out a contact form on a business profile, your message routes to the business's email within five minutes via our lead-delivery cron. The reply-to is set to your email, so when they hit reply you get the response directly — Ventura Claw is never on the chain." },
+    { q: "How much does it cost — for me, for the business?",
+      a: "For visitors: zero. Always. We never charge consumers anything. Businesses pay a monthly subscription ($0 free / $49 starter / $99 standard / $199 premier) for premium placement. We don't take a cut of any transaction between consumers and businesses." },
+    { q: "I own a business on Ventura Blvd. How do I claim my listing?",
+      a: "Find your business in the directory and click 'Claim this listing' on the profile page. We'll email you a confirmation link, you set a password, and you're in your dashboard with a lead inbox, profile editor, and tier picker. Free tier always available." }
+  ];
+  var _ldGraph = {
+    '@context': 'https://schema.org',
+    '@graph': [
+      {
+        '@type': 'Organization',
+        '@id': _publicUrl + '/#org',
+        name: 'Ventura Claw',
+        url: _publicUrl + '/',
+        description: 'Directory and lead-routing service for small businesses on Ventura Blvd between Sherman Oaks and Woodland Hills.',
+        areaServed: {
+          '@type': 'GeoShape',
+          name: 'Ventura Blvd corridor',
+          addressRegion: 'CA',
+          addressCountry: 'US'
+        }
+      },
+      {
+        '@type': 'WebSite',
+        '@id': _publicUrl + '/#site',
+        url: _publicUrl + '/',
+        name: 'Ventura Claw',
+        publisher: { '@id': _publicUrl + '/#org' },
+        potentialAction: {
+          '@type': 'SearchAction',
+          target: { '@type': 'EntryPoint', urlTemplate: _publicUrl + '/find?q={query}' },
+          'query-input': 'required name=query'
+        }
+      },
+      {
+        '@type': 'FAQPage',
+        '@id': _publicUrl + '/#faq',
+        mainEntity: _faqItems.map(function(it){
+          return {
+            '@type': 'Question', name: it.q,
+            acceptedAnswer: { '@type': 'Answer', text: it.a }
+          };
+        })
+      }
+    ]
+  };
+%>
+<script type="application/ld+json"><%- JSON.stringify(_ldGraph) %></script>
+
 <section class="hero">
   <p class="kicker">Ventura Blvd · Sherman Oaks · Studio City · Encino · Tarzana · Woodland Hills</p>
   <h1>Every business worth knowing on the Boulevard.</h1>
diff --git a/views/public/neighborhood.ejs b/views/public/neighborhood.ejs
index 97ce88b..1f76f2e 100644
--- a/views/public/neighborhood.ejs
+++ b/views/public/neighborhood.ejs
@@ -13,8 +13,27 @@
       { '@type': 'ListItem', position: 3, name: neighborhood.label, item: _publicUrl + '/neighborhood/' + neighborhood.slug }
     ]
   };
+  // ItemList JSON-LD — same shape as /find. Surfaces the neighborhood page
+  // as a structured list of LocalBusiness entries to Google. Capped at 30
+  // items (Google's recommended depth for ItemList rich results).
+  var _ldList = {
+    '@context': 'https://schema.org',
+    '@type': 'ItemList',
+    name: neighborhood.label + ' businesses on Ventura Blvd',
+    itemListOrder: 'https://schema.org/ItemListOrderAscending',
+    numberOfItems: (typeof totalCount !== 'undefined' && totalCount) ? totalCount : businesses.length,
+    itemListElement: businesses.slice(0, 30).map(function(b, i){
+      return {
+        '@type': 'ListItem',
+        position: i + 1,
+        url: _publicUrl + '/business/' + b.slug,
+        name: b.business_name
+      };
+    })
+  };
 %>
 <script type="application/ld+json"><%- JSON.stringify(_ldCrumbs) %></script>
+<script type="application/ld+json"><%- JSON.stringify(_ldList) %></script>
 
 <nav class="breadcrumb" aria-label="Breadcrumb" style="padding:16px 28px 0;max-width:1440px;margin:0 auto;font-size:12px;color:var(--fg-muted);letter-spacing:0.04em">
   <a href="/" style="border:none;color:var(--fg-muted)">Home</a>

← dbc5da9 Cross-link neighborhood pages to vertical+city combo pages  ·  back to Ventura Claw Leads  ·  Backfill 206/244 missing lat/lng on corridor-seeded rows 6e61684 →