← back to Lawyer Directory Builder
Iter 42: landing — OG + Twitter card + JSON-LD structured data + canonical
4ff44cf471e2c4cf17f8eee76bc653d724828472 · 2026-05-04 08:45:07 -0700 · SteveStudio2
Landing had zero share-metadata. Link previews on LinkedIn / X / Discord /
Slack rendered as bare URLs, no preview card. Added the full set:
- <link rel="canonical" href="https://lawyers.agentabrams.com/">
- <meta name="robots" content="index, follow">
- og:type=website, og:site_name, og:title, og:description, og:url,
og:locale=en_US (no og:image yet — use summary card; can add a CSS-
rendered noir/champagne tile later if a paid social campaign needs it)
- twitter:card=summary, twitter:title, twitter:description (both tighter
copy than OG so they fit X's 70-char render window)
JSON-LD structured data:
Organization (@id #org) + WebSite (@id #website) graph entries
- name, alternateName, url, description (with §6155 cite verbatim)
- areaServed: California
- knowsAbout: California attorneys, lawyer directory, California State
Bar
- sameAs: https://www.calbar.ca.gov/ (Schema.org disambiguation —
tells Google + crawlers explicitly that we are NOT calbar.ca.gov,
we just reference it as authoritative source — same §6155-correct
disambiguation we already do in the visual eyebrow + title)
- publisher relation linking WebSite to Organization
- potentialAction: SearchAction targeting /find-a-lawyer?zip={zip}
so Google can render a sitelinks search box
Deployed to prod via rsync (public/index.html only — static, no pm2
restart needed). Verified 14 meta + structured-data tags render live
at https://lawyers.agentabrams.com/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Files touched
Diff
commit 4ff44cf471e2c4cf17f8eee76bc653d724828472
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Mon May 4 08:45:07 2026 -0700
Iter 42: landing — OG + Twitter card + JSON-LD structured data + canonical
Landing had zero share-metadata. Link previews on LinkedIn / X / Discord /
Slack rendered as bare URLs, no preview card. Added the full set:
- <link rel="canonical" href="https://lawyers.agentabrams.com/">
- <meta name="robots" content="index, follow">
- og:type=website, og:site_name, og:title, og:description, og:url,
og:locale=en_US (no og:image yet — use summary card; can add a CSS-
rendered noir/champagne tile later if a paid social campaign needs it)
- twitter:card=summary, twitter:title, twitter:description (both tighter
copy than OG so they fit X's 70-char render window)
JSON-LD structured data:
Organization (@id #org) + WebSite (@id #website) graph entries
- name, alternateName, url, description (with §6155 cite verbatim)
- areaServed: California
- knowsAbout: California attorneys, lawyer directory, California State
Bar
- sameAs: https://www.calbar.ca.gov/ (Schema.org disambiguation —
tells Google + crawlers explicitly that we are NOT calbar.ca.gov,
we just reference it as authoritative source — same §6155-correct
disambiguation we already do in the visual eyebrow + title)
- publisher relation linking WebSite to Organization
- potentialAction: SearchAction targeting /find-a-lawyer?zip={zip}
so Google can render a sitelinks search box
Deployed to prod via rsync (public/index.html only — static, no pm2
restart needed). Verified 14 meta + structured-data tags render live
at https://lawyers.agentabrams.com/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
public/index.html | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/public/index.html b/public/index.html
index 6869bdb..20f1e32 100644
--- a/public/index.html
+++ b/public/index.html
@@ -5,6 +5,59 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Counsel & Bar — California attorney directory (independent · not the State Bar)</title>
<meta name="description" content="An indexed directory of every licensed California attorney, drawn from the State Bar public roll. 89,000+ profiles, 42,000+ firms, 1,000+ independently audited sites. Browse, verify, contact directly.">
+<link rel="canonical" href="https://lawyers.agentabrams.com/">
+<meta name="robots" content="index, follow">
+
+<!-- Open Graph -->
+<meta property="og:type" content="website">
+<meta property="og:site_name" content="Counsel & Bar">
+<meta property="og:title" content="Counsel & Bar — California attorney directory (independent · not the State Bar)">
+<meta property="og:description" content="Every California-licensed attorney, indexed against the State Bar public roll. Independently audited against twelve published signals. We're a directory — not a referral service, not the State Bar.">
+<meta property="og:url" content="https://lawyers.agentabrams.com/">
+<meta property="og:locale" content="en_US">
+
+<!-- Twitter / X -->
+<meta name="twitter:card" content="summary">
+<meta name="twitter:title" content="Counsel & Bar — California attorney directory">
+<meta name="twitter:description" content="Every CA-licensed attorney, indexed. Independent audit, methodology v1.0 published. Not a referral service, not the State Bar.">
+
+<!-- Structured data: Organization + WebSite -->
+<script type="application/ld+json">
+{
+ "@context": "https://schema.org",
+ "@graph": [
+ {
+ "@type": "Organization",
+ "@id": "https://lawyers.agentabrams.com/#org",
+ "name": "Counsel & Bar",
+ "alternateName": "Counsel and Bar",
+ "url": "https://lawyers.agentabrams.com/",
+ "description": "An independent directory of California-licensed attorneys, drawn from the State Bar public roll. Not a lawyer referral service under California Business & Professions Code §6155.",
+ "areaServed": {
+ "@type": "AdministrativeArea",
+ "name": "California, United States"
+ },
+ "knowsAbout": ["California attorneys", "lawyer directory", "California State Bar"],
+ "sameAs": [
+ "https://www.calbar.ca.gov/"
+ ]
+ },
+ {
+ "@type": "WebSite",
+ "@id": "https://lawyers.agentabrams.com/#website",
+ "url": "https://lawyers.agentabrams.com/",
+ "name": "Counsel & Bar",
+ "publisher": {"@id": "https://lawyers.agentabrams.com/#org"},
+ "potentialAction": {
+ "@type": "SearchAction",
+ "target": "https://lawyers.agentabrams.com/find-a-lawyer?zip={zip}",
+ "query-input": "required name=zip"
+ }
+ }
+ ]
+}
+</script>
+
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
← a0b97b0 Iter 40: landing footer — add methodology + State Bar lookup
·
back to Lawyer Directory Builder
·
Iter 43: OG + JSON-LD propagated to /methodology, /audit, /f ee84e9e →