Your law firm can have the best content on the internet, but if Google can't crawl it, index it, or render it properly, none of that content matters. That's what technical SEO addresses: the infrastructure layer that determines whether search engines can actually find and understand your website.
Most law firm SEO conversations focus on keywords, content, and links. Those are important. But they're built on top of a technical foundation, and if that foundation has cracks, everything above it underperforms. A slow site loses visitors before they ever read your practice area page. A misconfigured robots.txt can hide entire sections of your site from Google. Missing schema markup means you're leaving rich result opportunities on the table.
This guide covers the technical SEO fundamentals that matter most for law firm websites, with specific examples and code you can actually use.
TL;DR for Busy Attorneys
The 3 things you need to do right now:
- Check your page size. Google only crawls the first ~2MB of HTML. If your pages are bloated with inline scripts, your contact form may be invisible to Google.
- Lazy-load your chat widget. That live chat tool is loading 300-500KB of JavaScript before your content even renders. Defer it until the user scrolls or moves their mouse.
- Test your INP score. FID is dead. Google now measures every click on your site, not just the first one. If your settlement calculator takes over 200ms to respond, your rankings suffer.
What Is Technical SEO for Law Firms?#
Technical SEO is the practice of optimizing the infrastructure of your website so that search engines can efficiently crawl, index, and render your pages. It's distinct from on-page SEO (content, keywords, title tags) and off-page SEO (backlinks, citations, reviews).
For law firms specifically, technical SEO covers:
- Site speed and Core Web Vitals so pages load fast on any device
- Crawlability so Google can discover all your practice area and location pages
- Schema markup so search engines understand your firm's attorneys, services, and locations
- Mobile optimization since the majority of legal searches happen on phones
- Security (HTTPS) which is both a ranking signal and a trust signal for potential clients
- Site architecture so your content is logically organized and internally linked
- AI bot management so you control how large language models access and cite your content
If your firm has more than a handful of pages, or if you serve multiple practice areas across multiple locations, technical SEO isn't optional. It's what keeps the whole operation running.
Why Technical SEO Matters for Legal Websites#
Law firm websites operate under stricter scrutiny than most. Google classifies legal content as YMYL (Your Money or Your Life), meaning it applies higher quality standards to pages that could impact someone's legal rights, finances, or safety.
That heightened scrutiny extends to technical signals. A legal website with slow load times, security warnings, or indexation issues sends the wrong message to both Google's algorithms and potential clients.
Three reasons technical SEO is especially important for law firms:
-
Crawl budget matters when you scale. A personal injury firm with location pages for 15 cities, practice area pages for 8 case types, and attorney bio pages is looking at 100+ URLs before blog content even enters the picture. If your site has crawl inefficiencies, Google may not discover or refresh all of those pages regularly.
-
E-E-A-T starts with trust signals. Google's quality raters evaluate Experience, Expertise, Authoritativeness, and Trustworthiness. A site that loads slowly, serves mixed HTTP/HTTPS content, or has broken internal links undermines the "trust" component before the content even gets evaluated.
-
Local search demands clean data. If your firm relies on the Google Map Pack (and most do), technical SEO issues like inconsistent NAP data in structured markup, missing location schema, or duplicate location pages can directly hurt your local rankings.
Site Speed and Core Web Vitals#
Google uses three Core Web Vitals as ranking signals. Here's what they measure and what law firms should target:
| Metric | What It Measures | Good | Needs Work | Poor |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | How fast the main content loads | Under 2.5s | 2.5-4.0s | Over 4.0s |
| CLS (Cumulative Layout Shift) | How much the page layout shifts during load | Under 0.1 | 0.1-0.25 | Over 0.25 |
| INP (Interaction to Next Paint) | How quickly the page responds to every user interaction | Under 200ms | 200-500ms | Over 500ms |
INP Replaced FID in 2024#
FID (First Input Delay) is dead. Google replaced it with INP (Interaction to Next Paint) as an official Core Web Vital. The difference matters:
| FID (Retired) | INP (Current) | |
|---|---|---|
| What it measures | Delay of the first interaction only | Delay of every interaction on the page |
| Reported value | Single measurement | Worst interaction across the session |
| Why it changed | A fast first click doesn't mean the 10th click is fast | Users interact with pages throughout their visit |
| Impact on law firms | Could pass with a slow calculator if first click was fast | Settlement calculators and multi-step forms now exposed |
Why this hits law firms hard: Many firms use interactive tools like settlement calculators, lead qualification forms, or complex intake wizards. If any of those tools take more than 200ms to respond to a click, your INP score drops to "Poor" and your rankings suffer.
The fix: yield to the main thread. Break up long-running JavaScript tasks into smaller chunks so the browser can remain responsive to user clicks between them. If you're using a settlement calculator or multi-step form, ensure each step transition completes in under 200ms. Test with Chrome DevTools' Performance panel to identify long tasks.
Smart Loading for Third-Party Scripts#
Law firm sites are often weighed down by marketing bloat that kills both LCP and INP:
- Live chat widgets (Ngage, Intaker, Smith.ai) loading 300-500KB of JavaScript on every page
- Call tracking (CallRail, WhatConverts) adding inline scripts to the
<head> - Heatmaps and session recording (Hotjar, CrazyEgg, Microsoft Clarity) capturing every mouse movement
- Render-blocking CSS and JavaScript from heavy WordPress themes with 15+ plugins
The fix: lazy-load all non-critical scripts. Don't allow the chat widget to load until the user scrolls 20% down the page or moves their mouse. This prevents the widget from stealing resources from LCP. Here's the pattern:
// Lazy-load chat widget on user interaction
let chatLoaded = false;
function loadChat() {
if (chatLoaded) return;
chatLoaded = true;
const s = document.createElement('script');
s.src = 'https://chat-provider.com/widget.js';
s.async = true;
document.body.appendChild(s);
}
window.addEventListener('scroll', loadChat, { once: true });
window.addEventListener('mousemove', loadChat, { once: true });
Apply the same pattern to heatmap scripts, call tracking pixels, and any other third-party tool that isn't needed for the initial page render.
Other common speed killers:
- Unoptimized hero images. That full-width photo of your office or city skyline is often 2-5MB. Compress it, serve it in WebP or AVIF format, and add explicit width/height attributes to prevent layout shift.
- No CDN. If your hosting serves from a single server location, visitors in other regions wait longer. A CDN (Cloudflare, Fastly, or your host's built-in CDN) distributes your content across edge servers globally.
How to check: Run your homepage and a practice area page through Google PageSpeed Insights. Focus on the field data (real user metrics), not just the lab data. If you don't have enough field data, the lab scores give you a starting point.
Is your firm failing INP or LCP? We can run a free Core Web Vitals diagnostic and show you exactly what's slowing your site down.
Get Your Free Speed Report
Mobile Optimization for Law Firm Sites#
Google uses mobile-first indexing, meaning it primarily uses the mobile version of your site for ranking and indexing. If your site looks great on desktop but has issues on mobile, those issues affect your rankings everywhere.
Why this matters for law firms: Legal searches skew heavily toward mobile. Someone searching "car accident lawyer near me" at 11pm is almost certainly on their phone. If your site is hard to use on that device, they're hitting the back button.
Common mobile issues on law firm sites:
- Tap targets too close together. Phone numbers, navigation links, and CTA buttons need adequate spacing. Google flags elements smaller than 48x48 pixels or closer than 8 pixels apart.
- Text too small to read. Body text should be at least 16px on mobile. Many law firm sites drop to 12-14px, forcing users to pinch and zoom.
- Horizontal scrolling. Often caused by fixed-width tables, oversized images without max-width constraints, or desktop-only layouts that don't collapse properly.
- Intrusive interstitials. Full-screen popups that cover the content on mobile can trigger a ranking penalty. If you use popups for lead capture, make sure they're easily dismissible and don't cover the primary content on mobile devices.
- Slow mobile load times. Mobile connections are slower than desktop. Everything in the site speed section above applies double for mobile users.
How to check: Use Google Search Console's Mobile Usability report. It flags specific pages with mobile issues. You can also use Chrome DevTools' device emulation to manually test your site on various screen sizes.
Crawlability and Indexing#
If Google can't crawl a page, it can't rank it. This sounds obvious, but crawlability issues are surprisingly common on law firm websites, especially after site redesigns or CMS migrations.
Robots.txt Configuration#
Your robots.txt file tells search engines which parts of your site they can and can't crawl. It lives at yoursite.com/robots.txt.
A basic robots.txt for a law firm site:
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /thank-you/
Sitemap: https://www.yourfirm.com/sitemap.xml
Common mistakes:
- Accidentally blocking entire directories (like
/blog/or/practice-areas/) after a site migration - Leaving
Disallow: /from a staging environment, which blocks the entire site - Not referencing your XML sitemap in robots.txt
XML Sitemaps for Multi-Location Firms#
Your XML sitemap is a roadmap for search engines. For law firms with multiple locations or practice areas, a well-structured sitemap helps Google discover and prioritize your most important pages.
Best practices:
- Include all indexable pages (practice areas, locations, attorney bios, blog posts)
- Exclude pages you don't want indexed (thank-you pages, internal tools, duplicate content)
- Use
lastmoddates and keep them accurate. Don't set every page to today's date. - For large sites (200+ pages), consider splitting into multiple sitemaps: one for practice areas, one for locations, one for blog content
- Submit your sitemap in Google Search Console
Crawl Budget Management#
Crawl budget is the number of pages Google will crawl on your site within a given time period. For most small to mid-size law firm sites (under 500 pages), crawl budget isn't a concern. But if your site generates dynamic URLs, has a large blog archive, or creates paginated results, you might be wasting crawl budget on low-value pages.
Signs of crawl budget issues:
- New pages take weeks to get indexed
- Google Search Console shows a large gap between "discovered" and "indexed" pages
- Server logs show Googlebot repeatedly crawling low-value pages (tag archives, parameter URLs)
How to check indexation: In Google Search Console, go to Pages > Indexed pages. Compare the number of indexed pages to the number you expect. If there's a large gap, investigate which pages are being excluded and why.
The 2MB HTML Cutoff#
In 2026, Googlebot has tightened its efficiency. Google now only crawls and indexes the first approximately 2MB of any individual page's raw HTML. Content beyond that cutoff may never be seen or indexed.
The risk for law firms: If you have massive "Ultimate Guide" pages or practice area pages bloated with excessive inline CSS, heavy JavaScript, or unoptimized SVGs, the content at the bottom of the page (where your contact form, internal links, or FAQ section usually sits) may never be indexed by Google.
How to stay under the limit:
- Externalize scripts and styles. Move all CSS and JavaScript to external files so they don't count toward the HTML size limit. Inline styles and script blocks are the biggest offenders.
- Segment long content. If a practice area page exceeds 2MB, break it into a hub-and-spoke model. One main page for "Car Accidents" with sub-pages for "Evidence," "Insurance Claims," "Settlement Timeline," etc.
- Reduce DOM size. Aim for fewer than 1,500 DOM nodes per page. Every unnecessary wrapper
<div>, every hidden mobile menu duplicated in the HTML, and every unused component inflates your DOM. Audit with Lighthouse. - Check your page size. In Chrome DevTools, open the Network tab, reload the page, and look at the "Size" column for the document request. If it's approaching 1.5MB, you're in the danger zone.
How the 2MB Cutoff Works
Pages bloated with inline CSS, JavaScript, and unnecessary DOM nodes push your most important conversion elements past the cutoff. Keep raw HTML under 2MB.
Not sure if your site is over the 2MB limit? Our technical team will crawl your site, measure every page, and identify exactly which ones are at risk.
Get a Free Page-Size Audit
Schema Markup for Attorneys#
Schema markup (structured data) helps search engines understand the entities on your page: your firm, your attorneys, your services, your locations. It can also unlock rich results like FAQ dropdowns, review stars, and enhanced business listings.
Move from LocalBusiness to Entity Schema#
Search engines in 2026 no longer just match keywords. They identify entities: the firm, the attorney, the case result, the practice area. Your schema markup needs to reflect this shift.
The most important change: use LegalService schema instead of generic LocalBusiness. And use the sameAs property to connect your attorneys to their official State Bar profiles, LinkedIn, and Avvo listings. This "closes the loop" for Google's E-E-A-T algorithms by proving your attorneys are real, credentialed professionals.
Most law firm SEO guides say "add schema markup" but never show you the actual code. Here are the JSON-LD examples you can adapt for your site.
Attorney Schema#
Place this on each attorney's bio page. Note the sameAs property linking to official bar and professional profiles:
View Attorney Schema JSON-LD (click to expand)
{
"@context": "https://schema.org",
"@type": "Attorney",
"name": "Jane Smith",
"jobTitle": "Senior Partner",
"url": "https://www.yourfirm.com/attorneys/jane-smith/",
"image": "https://www.yourfirm.com/images/jane-smith.jpg",
"telephone": "+1-555-123-4567",
"email": "jane@yourfirm.com",
"worksFor": {
"@type": "LegalService",
"name": "Smith & Associates",
"url": "https://www.yourfirm.com"
},
"knowsAbout": ["Personal Injury Law", "Car Accident Claims", "Wrongful Death"],
"hasCredential": [
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "Bar Admission",
"recognizedBy": {
"@type": "Organization",
"name": "California State Bar"
}
}
],
"sameAs": [
"https://www.calbar.ca.gov/attorneys/jane-smith-123456",
"https://www.linkedin.com/in/jane-smith-attorney",
"https://www.avvo.com/attorneys/jane-smith.html"
],
"areaServed": {
"@type": "City",
"name": "Los Angeles",
"containedInPlace": {
"@type": "State",
"name": "California"
}
}
}
LegalService Schema#
Place this on your homepage or main service page:
View LegalService Schema JSON-LD (click to expand)
{
"@context": "https://schema.org",
"@type": "LegalService",
"name": "Smith & Associates",
"url": "https://www.yourfirm.com",
"logo": "https://www.yourfirm.com/images/logo.png",
"telephone": "+1-555-123-4567",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street, Suite 500",
"addressLocality": "Los Angeles",
"addressRegion": "CA",
"postalCode": "90001",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "34.0522",
"longitude": "-118.2437"
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "18:00"
},
"priceRange": "Free Consultation",
"areaServed": ["Los Angeles", "Orange County", "Ventura County"],
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Legal Services",
"itemListElement": [
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Personal Injury" } },
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Car Accident Claims" } },
{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Workers' Compensation" } }
]
}
}
FAQPage Schema#
Place this on any page with a frequently asked questions section:
View FAQPage Schema JSON-LD (click to expand)
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How much does a personal injury lawyer cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most personal injury lawyers work on a contingency fee basis, meaning you pay nothing upfront. The attorney's fee is typically 33-40% of the settlement or verdict amount."
}
},
{
"@type": "Question",
"name": "How long does a personal injury case take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most personal injury cases settle within 12-18 months. Cases that go to trial can take 2-3 years or longer depending on the complexity and court schedule."
}
}
]
}
Important: Only use FAQPage schema for genuine FAQ content that's visible on the page. Google penalizes sites that add FAQ schema for content that doesn't actually appear on the page.
Schema for Multi-Location Firms#
If your firm has multiple offices, each location page should have its own LocalBusiness or LegalService schema with unique address, phone number, and geo coordinates. Link them together using the parentOrganization property pointing to your main firm entity.
How to validate: Use Google's Rich Results Test to check any page for valid structured data. Fix errors before deploying.
Case Results Schema#
Case results are one of the most powerful trust signals a law firm can display. Use ItemList markup to help AI Overviews cite your firm as a successful authority in specific litigation:
View Case Results Schema JSON-LD (click to expand)
{
"@context": "https://schema.org",
"@type": "ItemList",
"name": "Personal Injury Case Results",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "CreativeWork",
"name": "$2.4M Settlement - Truck Accident",
"description": "Secured a $2.4 million settlement for a client injured in a commercial truck collision on I-405.",
"author": {
"@type": "Attorney",
"name": "Jane Smith"
}
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "CreativeWork",
"name": "$850K Verdict - Premises Liability",
"description": "Jury verdict for a slip and fall injury at a commercial property in downtown Los Angeles.",
"author": {
"@type": "Attorney",
"name": "Jane Smith"
}
}
}
]
}
This structured markup gives AI systems specific, citable data about your firm's track record rather than relying on them to extract it from unstructured text.
Need help implementing schema markup? Most law firm websites have broken or missing structured data. We audit and fix it as part of every SEO engagement.
Schedule a Schema Audit
HTTPS and Security#
HTTPS has been a confirmed Google ranking signal since 2014. In 2026, there's no excuse for a law firm website not running HTTPS on every page.
Beyond rankings, HTTPS is a trust signal. A "Not Secure" warning in the browser bar is devastating for a law firm. Potential clients are about to share sensitive information about their legal situation. If your site can't even secure a basic web connection, why would they trust you with their case?
Common HTTPS issues on law firm sites:
- Mixed content warnings. Your site is HTTPS, but some images, scripts, or stylesheets load over HTTP. This triggers browser warnings and can prevent resources from loading entirely. Audit your site for mixed content and update all internal references to use HTTPS or protocol-relative URLs.
- Expired or misconfigured SSL certificates. If your certificate expires, the entire site shows a security warning. Set up auto-renewal through your hosting provider or use Let's Encrypt for free certificates with automatic renewal.
- HTTP to HTTPS redirect gaps. Every HTTP URL should 301 redirect to its HTTPS equivalent. Check that
http://yoursite.com,http://www.yoursite.com, and the HTTPS non-www variant all redirect to a single canonical HTTPS URL.
Site Architecture and Internal Linking#
Good site architecture helps both users and search engines understand the relationship between your pages. For law firms, this typically follows a hub-and-spoke model.
Example law firm site hierarchy:
Homepage
├── Practice Areas (hub)
│ ├── Personal Injury (hub)
│ │ ├── Car Accidents
│ │ ├── Truck Accidents
│ │ ├── Motorcycle Accidents
│ │ └── Slip and Fall
│ ├── Criminal Defense (hub)
│ │ ├── DUI
│ │ ├── Drug Charges
│ │ └── Assault
│ └── Family Law (hub)
│ ├── Divorce
│ ├── Child Custody
│ └── Child Support
├── Locations
│ ├── Los Angeles
│ ├── Orange County
│ └── San Diego
├── Attorneys
│ ├── Jane Smith
│ └── John Doe
├── Blog
└── Contact
Internal linking best practices for law firms:
- Every practice area sub-page should link back to its parent hub page
- Location pages should link to relevant practice area pages (and vice versa)
- Blog posts should link to the practice area pages they're related to
- Attorney bio pages should link to the practice areas they handle
- No page should be more than 3 clicks from the homepage
Orphan pages (pages with no internal links pointing to them) are a common problem after site redesigns. If Google can only find a page through the sitemap but no other page links to it, that's a signal the page isn't very important. Run a crawl with Screaming Frog or Sitebulb to identify orphan pages and add appropriate internal links.
Managing AI Bots and LLM Visibility#
This is the section most law firm SEO guides won't cover because it's new territory. But with AI Overviews appearing on roughly 20% of legal search queries, and tools like ChatGPT and Perplexity answering millions of legal questions, how your site interacts with AI crawlers matters.
AI Crawlers You Should Know About#
Several AI companies use web crawlers to train their models or power their search features:
| Bot | Company | Purpose |
|---|---|---|
| GPTBot | OpenAI | Training data for GPT models |
| OAI-SearchBot | OpenAI | Powers ChatGPT search results |
| PerplexityBot | Perplexity | Powers Perplexity search answers |
| Google-Extended | Training data for Gemini (separate from Googlebot) | |
| ClaudeBot | Anthropic | Training data for Claude models |
| Bytespider | ByteDance | Training data for TikTok's AI features |
The Strategic Decision: Block or Allow?#
This is where law firms need to make a conscious choice rather than just accepting defaults.
Arguments for allowing AI crawlers:
- Your content can be cited in AI-generated answers, driving brand visibility
- ChatGPT and Perplexity are becoming major research tools for people with legal questions
- Being cited as a source in AI responses builds authority
Arguments for blocking certain crawlers:
- You don't want your content used to train models without compensation
- Some AI crawlers consume significant server resources
- You may not want your legal content paraphrased without proper attribution
A balanced approach in robots.txt:
# Allow AI search crawlers (they cite sources)
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
# Block AI training crawlers (they don't cite sources)
User-agent: GPTBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Bytespider
Disallow: /
This approach lets your content appear in AI search results (where you get attribution and traffic) while blocking crawlers that only use your content for model training (where you get nothing).
Optimizing for AI Overview Citations#
If you want Google's AI Overviews to cite your content, structure it for extraction:
- Use clear, concise definitions with bullet points at the top of sections
- Answer specific questions directly (don't bury the answer three paragraphs in)
- Use structured data (FAQPage schema helps AI systems identify Q&A content)
- Maintain strong topical authority across related pages (a single blog post is less likely to be cited than a site with comprehensive coverage of a topic)
For more on this topic, read our guide on generative engine optimization for legal marketing.
Want to know if your firm shows up in AI search? We run AI visibility audits across ChatGPT, Perplexity, and Google AI Overviews for your practice area and market.
Get Your Free AI Visibility Report
Semantic HTML for AI Discovery#
Generative Engine Optimization (GEO) is the 2026 evolution of SEO. To show up in AI-generated answers like Google's AI Overviews, ChatGPT responses, and Perplexity answers, your HTML needs to be machine-scannable.
The problem with most law firm websites: everything is wrapped in generic <div> tags. AI crawlers use semantic HTML5 elements to quickly categorize which part of your page is the "answer" to a user's legal question, and which parts are navigation, sidebars, or boilerplate.
Use strict semantic HTML5:
<article>for the main content of blog posts and practice area descriptions<section>for distinct topical sections within a page<aside>for supplementary content like attorney credentials, related links, or callout boxes<nav>for navigation menus and breadcrumbs<header>and<footer>for page-level and section-level headers/footers<main>to wrap the primary content area (only one per page)
Why this matters: When an AI system scans your personal injury page, it needs to distinguish between the attorney bio sidebar, the navigation menu, and the actual content about car accident claims. Semantic tags make that distinction explicit. A page full of nested <div>s forces the AI to guess.
Quick test: View your page source and search for <article>, <section>, and <main>. If none of these appear and your page is 100% <div>-based, you're making it harder for AI systems to extract and cite your content.
Accessibility as a Technical SEO Signal#
Technical SEO in 2026 includes WCAG 2.2 compliance. Accessible websites perform better in search because accessibility and SEO share the same fundamentals: clear structure, descriptive labels, and content that works across devices and input methods.
Google has increasingly signaled that page experience includes usability for all users. Sites with poor accessibility tend to have worse engagement metrics, higher bounce rates, and lower "quality" scores in Google's evaluation framework.
The accessibility fixes that overlap with SEO:
- Focus states on all interactive elements. Every button, link, and form input needs a visible focus ring when navigating via keyboard. This is a WCAG 2.2 requirement and affects the 10-15% of users who navigate without a mouse.
- Aria-labels on action buttons. Every "Call Now" button, chat widget trigger, and form submission button needs an
aria-labelthat describes the action for screen reader users. Example:aria-label="Call Smith & Associates at 555-123-4567". - Color contrast ratios. Ensure text-to-background contrast is at least 4.5:1 for body text and 3:1 for large text. Many law firm sites use light gray text on white backgrounds that fail this test. Run your site through the WebAIM Contrast Checker.
- Alt text on all images. Attorney headshots, office photos, and infographics all need descriptive alt text. This helps screen readers and gives Google additional context about your page content.
- Proper heading hierarchy. Don't skip heading levels (jumping from H1 to H4). Use H1 for the page title, H2 for main sections, H3 for subsections. This is both an accessibility requirement and an SEO best practice.
Technical SEO Audit Checklist for Law Firms#
Interactive checklist: Click each checkbox to track your progress as you audit your site.
Use this checklist to audit your law firm's technical SEO. Work through it systematically. The items are grouped by category and ordered by impact.
Site Speed and Performance#
- Homepage LCP under 2.5 seconds (test with PageSpeed Insights)
- All practice area pages LCP under 2.5 seconds
- CLS under 0.1 across all templates
- INP under 200ms on all interactive elements (forms, calculators, chat)
- Raw HTML under 2MB on all pages (check in DevTools Network tab)
- DOM nodes under 1,500 per page
- Images compressed and served in modern formats (WebP/AVIF)
- All images have explicit width and height attributes
- Chat widgets and heatmaps lazy-loaded (not blocking initial render)
- Call tracking scripts deferred or loaded async
- CDN configured and serving static assets
Crawlability and Indexing#
- Robots.txt reviewed and not blocking important content
- XML sitemap exists, is accurate, and submitted to Search Console
- No important pages returning 404 or 5xx errors
- Redirect chains resolved (no redirect pointing to another redirect)
- Canonical tags present and correct on all pages
- No accidental noindex tags on pages that should be indexed
- Search Console coverage report reviewed for errors
- 100% of desktop content visible on mobile version (no hidden mobile content)
Schema and Entity Markup#
- LegalService schema on homepage (not generic LocalBusiness)
- Attorney schema on each attorney bio page with
sameAslinks to State Bar profiles - FAQPage schema on pages with FAQ sections
- Case results marked up with ItemList/CreativeWork schema
- BreadcrumbList schema matching visible breadcrumbs
- All schema validated with Google's Rich Results Test
- Multi-location firms have unique schema per location page
Security#
- HTTPS active on all pages
- No mixed content warnings
- SSL certificate valid and auto-renewing
- All HTTP URLs 301 redirect to HTTPS
- Single canonical domain (www vs. non-www resolved)
Mobile#
- No mobile usability issues in Search Console
- Tap targets adequately sized and spaced
- Body text at least 16px on mobile
- No horizontal scrolling on any page
- Forms usable on mobile (proper input types, adequate field sizes)
- No intrusive interstitials blocking content on mobile
Semantic HTML and Accessibility#
- Pages use
<article>,<section>,<main>,<nav>(not all<div>s) - Heading hierarchy is correct (H1 > H2 > H3, no skipped levels)
- All images have descriptive alt text
- Focus states visible on all interactive elements
- Aria-labels on all action buttons ("Call Now," "Submit," chat triggers)
- Text-to-background contrast at least 4.5:1
Architecture and Internal Links#
- No orphan pages (every page has at least one internal link pointing to it)
- Practice area sub-pages link to parent hub pages
- Location pages cross-link to relevant practice areas
- No broken internal links
- Breadcrumb navigation present and accurate
- No page more than 3 clicks from homepage
Common Technical SEO Mistakes Law Firms Make#
JavaScript-Rendered Content Not Being Indexed#
Symptoms: Pages look complete when you view them in a browser, but Google Search Console shows thin or empty content. Rankings are poor despite having detailed content.
Cause: Some law firm websites (especially those built on certain website builders or heavy JavaScript frameworks) render content client-side. Google can render JavaScript, but it's slower and less reliable than server-rendered HTML. Critical content like practice area descriptions, attorney bios, or FAQ sections may not be indexed if they depend entirely on JavaScript to appear.
Fix: Verify your pages render correctly using Google's URL Inspection tool (click "Test Live URL" and view the rendered HTML). If content is missing, work with your developer to implement server-side rendering or static site generation for important pages.
Duplicate Location Pages#
Symptoms: Multiple location pages targeting the same geographic areas with nearly identical content. Rankings spread thin across duplicate pages instead of consolidating authority.
Cause: Generating a page for every city in your service area with only the city name changed. Google recognizes this as thin, duplicated content.
Fix: Create unique location pages only for areas where you have a genuine presence or significant case history. Each page needs unique content: local court information, jurisdiction-specific legal nuances, local case results, and community involvement. If you can't make a location page genuinely unique, don't create it.
Broken Internal Links After Site Redesigns#
Symptoms: 404 errors in Google Search Console spike after launching a new website. Organic traffic drops sharply.
Cause: URL structures change during a redesign (for example, /practice-areas/personal-injury/ becomes /services/personal-injury/), but 301 redirects aren't set up for every old URL.
Fix: Before launching a redesign, crawl the existing site and create a complete URL map. Set up 301 redirects from every old URL to its new equivalent. After launch, monitor Google Search Console for 404 errors and fix redirects for any URLs you missed. Also update all internal links to point to the new URLs directly rather than relying on redirect chains.
Missing or Duplicate Title Tags#
Symptoms: Multiple pages competing for the same keywords. Google rewrites your title tags in search results.
Cause: CMS templates that auto-generate identical title tags, or no title tag strategy at all.
Fix: Every page needs a unique title tag that includes the primary keyword for that page, the geographic modifier if relevant, and your firm name. Format: [Primary Keyword] | [City] [State] | [Firm Name]. Keep it under 60 characters.
FAQs#
How much does technical SEO cost?
For a small to mid-size law firm site, a one-time technical audit and fix typically costs between $2,000 and $5,000 depending on the size and complexity of the site. Ongoing technical monitoring is usually bundled into a monthly SEO retainer. If your SEO provider isn't including technical audits as part of their service, ask why.
How long does technical SEO take to show results?
Technical fixes can show impact within days to weeks, which is faster than content or link building. If you fix a crawlability issue that was preventing pages from being indexed, those pages can start ranking within a few days of being discovered. Site speed improvements typically show gradual ranking improvements over 4-8 weeks as Google recollects Core Web Vitals data.
Can I do technical SEO myself or do I need an agency?
Many of the items in the audit checklist above are things a reasonably technical person can handle: compressing images, checking robots.txt, validating schema markup. But some issues require developer involvement (server-side rendering, CDN configuration, complex redirect mapping). If your firm doesn't have a technical resource on staff, a focused technical audit from an experienced SEO is a good investment.
How often should I audit my site's technical SEO?
Run a comprehensive technical audit quarterly. Between audits, monitor Google Search Console weekly for new crawl errors, indexation drops, or Core Web Vitals regressions. Any time you make significant changes to your site (redesign, CMS migration, adding a new section), run a focused audit immediately after.
JurisPage provides technical SEO audits and ongoing optimization for law firm websites. If your site hasn't had a technical audit recently, get in touch and we'll identify what's holding your rankings back.
