TECHNICAL
Law Firm SEO: How to Rank Legal Services in Competitive Markets
Law firm SEO guide: Attorney and LegalService schema, jurisdiction keyword strategy, YMYL E-E-A-T requirements, local pack for legal queries, Local Services Ads (Google Screened), mobile performance on legal landing pages, and how to compete in the most expensive organic search verticals.
Published July 14, 2026 · 10 min read
Law firm SEO operates in one of the most expensive and competitive organic search environments. Legal queries have exceptionally high commercial value — a single converted client can be worth tens of thousands of dollars — which means law firms, aggregators (Avvo, Justia, FindLaw), and legal lead generation platforms compete aggressively for the same query set. The CPC for legal queries on Google Ads frequently exceeds $100 per click; organic ranking for those same queries represents an equivalent value per organic visit. This guide covers the technical, structural, and E-E-A-T requirements that determine whether a law firm website achieves sustainable organic visibility.
Why law firm SEO is different
Three properties distinguish legal SEO from most other verticals:
YMYL content standards: legal content falls squarely within Google's Your Money or Your Life (YMYL) category — content where inaccurate information could cause significant financial or legal harm to readers. Google applies elevated quality evaluation standards to YMYL content, including higher E-E-A-T requirements. A law firm blog post on "how to handle a DUI" is evaluated more rigorously than a recipe blog post.
Jurisdiction specificity: legal practice is jurisdiction-bound. A criminal defence attorney in Texas is not relevant to a user searching in Massachusetts. Keyword strategy, content, and structured data must all reflect specific jurisdictions — state, county, city — that the firm's attorneys are licensed to practice in. Generic national content without jurisdiction signals underperforms significantly against locally-targeted competitors.
Aggregator competition: Avvo, FindLaw, Martindale-Hubbell, and Justia dominate generic legal category queries nationally. Their domain authority, review volume, and SEO infrastructure is difficult to outrank at scale. The strategic opportunity for individual firms lies in hyper-local queries, practice-area specificity, and content that demonstrates genuine legal expertise rather than generic category coverage.
Attorney and LegalService structured data
Schema.org provides Attorney (a subtype of LocalBusiness → LegalService) for individual attorneys and law firms. Most law firm websites — especially those using legal industry CMS templates (Clio Grow, Smokeball, MyCase websites) — implement structured data incompletely or not at all.
Law firm schema (Organization → LegalService → Attorney):
{
"@context": "https://schema.org",
"@type": "Attorney",
"name": "Harrison & Webb Criminal Defence",
"url": "https://harrisonwebb.com",
"telephone": "+1 212 555 0147",
"address": {
"@type": "PostalAddress",
"streetAddress": "350 Fifth Avenue, Suite 4100",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10118",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.7484,
"longitude": -73.9967
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
}
],
"areaServed": [
{"@type": "State", "name": "New York"},
{"@type": "City", "name": "New York City"},
{"@type": "City", "name": "Brooklyn"},
{"@type": "City", "name": "Bronx"}
],
"knowsAbout": ["Criminal Defense", "DUI Defense", "Federal Criminal Defense"],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "87",
"bestRating": "5"
}
}
Individual attorney profile schema — Person linked to the firm:
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Sarah Harrison",
"jobTitle": "Criminal Defense Attorney",
"worksFor": {
"@type": "Attorney",
"name": "Harrison & Webb Criminal Defence"
},
"knowsAbout": ["DUI Defense", "Criminal Appeals", "Federal Criminal Defense"],
"alumniOf": {
"@type": "EducationalOrganization",
"name": "NYU School of Law"
},
"memberOf": {
"@type": "Organization",
"name": "New York State Bar Association"
}
}
Key properties most law firm sites omit:
areaServed: the jurisdictions where the firm practices. Without this, the firm's schema has no explicit geographic coverage signal. UseState,City, andAdministrativeAreatypes for each jurisdiction.knowsAbout: practice areas. This is the schema equivalent of tagging specialisation — "Criminal Defense", "Personal Injury", "Estate Planning" — that connects the firm to practice-area-specific queries.aggregateRating: present on many law firm websites as a visible Google/Avvo rating badge, but frequently absent from JSON-LD. The rating in schema must match the visible rating on the page.
Jurisdiction keyword strategy
Legal keyword research requires layering jurisdiction into every target query because legal services are purchased locally and licensed by jurisdiction:
Primary query patterns:
- Practice area + city: "criminal defense attorney New York", "personal injury lawyer Miami", "estate planning attorney Austin" — the core high-intent local queries.
- Practice area + state: "DUI attorney Texas", "workers compensation lawyer California" — broader geographic targeting for firms licensed statewide.
- Specific legal issue + location: "wrongful termination lawyer Chicago", "truck accident attorney Houston", "drug possession defense NYC" — queries from users with a specific problem rather than a general practice-area research intent.
- Emergency queries: "criminal defense attorney near me", "bail attorney open now" — high-urgency, mobile, proximity-resolved.
- "Best" and review queries: "best personal injury lawyer in Denver", "top rated estate planning attorney Seattle" — queries where review signals and Avvo/Google ratings matter.
Content by jurisdiction: create dedicated practice area landing pages for each primary jurisdiction and major practice area combination: "DUI Defense in New York", "DUI Defense in New Jersey", "DUI Defense in Connecticut" — each with genuine jurisdiction-specific content (different BAC limits, different penalties, jurisdiction-specific case precedents and procedures) rather than near-duplicate pages with only the location name swapped.
YMYL and E-E-A-T for legal content
Legal content falls in the highest E-E-A-T scrutiny tier. Google's Search Quality Evaluator Guidelines classify legal advice as YMYL content where accuracy, authoritativeness, and trustworthiness carry significant weight. The practical implications:
Author attribution: every piece of legal content should be attributed to a named attorney, not to "the editorial team" or "admin". Person JSON-LD with worksFor and bar admission details in page content provides the schema layer; author bio with bar admission year, practice area, and jurisdiction provides the visible E-E-A-T layer.
Bar admission disclosure: explicitly stating bar admissions (e.g., "Licensed in New York and New Jersey State Courts, admitted to the United States District Court for the Southern District of New York") is a trust signal that identifies the author as a credentialed legal professional rather than a content writer. This information should appear in attorney bio pages and in article author blocks.
Legal disclaimer placement: disclaimers clarifying that content is general legal information and not legal advice — standard in legal content — should not be the dominant element on landing pages. A page that leads with a disclaimer before any substantive content signals poor E-E-A-T; a page that provides substantive legal information with a disclosure at the bottom performs better.
Citing primary sources: legal content that references specific statutes, case law, and regulations — with accurate citations — signals legal expertise. Generic "consult a lawyer" content without specific legal citations performs poorly on E-E-A-T signals in the legal vertical.
Local Services Ads (Google Screened) for law firms
Google Screened (part of Local Services Ads) is available for law firms in most US markets. LSA for legal services appears above the organic local pack with a "Google Screened" badge — requiring a background check and license verification. For law firms investing in local SEO:
- LSA leads are pay-per-lead, not pay-per-click — potentially more efficient than traditional Google Ads for high-value practice areas.
- The Google Screened badge provides trust signals that increase conversion rates relative to unverified competitors.
- Organic local pack ranking and LSA work independently — optimising GBP for organic local pack ranking and maintaining an LSA listing provides two separate local SERP placements.
Mobile performance on legal landing pages
Legal landing pages — particularly practice area landing pages designed to capture form submissions — are frequently slow on mobile because of third-party lead capture forms, live chat widgets, and call tracking scripts:
- Live chat widgets: legal live chat services (Ngage, ApexChat) inject significant JavaScript on every page load, adding 300-800ms of Total Blocking Time and causing CLS when the chat bubble appears after page load. Configure the chat widget to load after user interaction rather than on page load.
- Form embeds: third-party intake form iframes (Clio, MyCase) frequently cause CLS as they load and resize. Add minimum-height to form containers to prevent layout shift.
- Call tracking: dynamic number insertion (DNI) scripts that swap phone numbers for call tracking (CallRail, CallTrackingMetrics) add JavaScript to every page. Evaluate whether DNI scripts are needed on pages where organic tracking via UTM parameters provides sufficient attribution.
FAQ pages and PAA for legal queries
Legal queries generate a high volume of People Also Ask (PAA) results — "how much does a DUI attorney cost in California", "what does a personal injury lawyer do", "how long does a workers comp case take". FAQ schema on practice area landing pages targets these PAA positions:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How much does a criminal defense attorney cost in New York?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Criminal defense attorney fees in New York range from $1,500 to $5,000 for misdemeanor cases and $10,000 to $50,000+ for felony cases, depending on the charge severity, case complexity, and attorney experience. Many criminal defense attorneys offer free initial consultations. Harrison & Webb offers fixed-fee arrangements for most misdemeanor matters."
}
}
]
}
FAQ schema must be server-rendered in the initial HTML — not JavaScript-injected — to be reliably parsed for rich results. Use DeepSEOAnalysis to verify that FAQ schema is present in the initial HTML response.
FAQ
MORE FROM THE BLOG
Related articles
11 min read
YouTube SEO: How to Rank Videos on YouTube and Google Search
YouTube SEO covers title optimisation, description keyword placement, chapters, thumbnails, closed captions, and the watch signals that drive YouTube and Google ranking.
Read →7 min read
Voice Search SEO: How to Optimise for Voice Queries and AI Assistants
How voice search queries differ from typed queries, what technical signals (FAQ schema, speakable schema, featured snippet eligibility) matter for voice results, and why optimising for voice search overlaps heavily with AI visibility.
Read →10 min read
TikTok SEO: How to Rank in TikTok Search and Get Discovered in Google
TikTok SEO covers how to optimise videos for TikTok's internal search algorithm, how TikTok content ranks in Google Search, and how TikTok presence feeds into AI answer systems.
Read →Run DeepSEOAnalysis on your own site.
Free, no signup. Technical SEO, Core Web Vitals, structured data, and AI visibility in one report.
Run a free audit →