7 Technical SEO Checks for Law Firm Websites 2026
Technical SEO for law firms is a crawl-and-index check of practice, attorney, and office URLs so Google can fetch the live page, not a stale bio or a duplicate city template. It is not a content calendar, it is not a case-management system, and it is not a recrawl button that ranks you. Screaming Frog, Sitebulb, Oncrawl, Lumar, Botify, JetOctopus, and ContentKing are the seven spiders and monitoring seats in this shortlist. US Tech Automations sits above them as the ticket layer that blocks a practice URL when the crawl status, the unique fact, and the ethics review have not all passed.
TL;DR: Buy Screaming Frog if an SEO lead will run desktop crawls. Buy Sitebulb if hint templates matter. Buy Oncrawl, Lumar, Botify, or JetOctopus if logs and scheduled cloud crawls are the job. Buy ContentKing if you need real-time change monitoring more than a bulk spider. Do not treat "request indexing" as a rank switch.
Crawl health on attorney sites
A firm site fails technically in boring ways: attorney bios that 404 after a departure, practice URLs that canonicalize to a blog, office pages that share one H1, PDF guides that waste crawl budget, and JS-only intake forms the spider never sees. Google's ecommerce guides still tell stores to share product data, add relevant structured data, and design crawlable URL and site structure so Google can parse catalog pages, according to Google Search Central. A practice catalog is not a SKU grid, but crawlable structure is the same job.
Lawyers using legal tech daily: 72% according to ABA (2024 Legal Technology Survey Report). Solo plus small firm; vintage matters. That figure is why a crawl ticket can live next to Clio, not why a spider practices law.
BEST_OF earn rate: 15.2% according to US Tech Automations (2026) on 12,514 live pages counted 2026-08-24.
'7 Best' earn rate: 25.5% according to first-party Phase 1 count (2026) versus 14.0% for '5 Best' on the same count.
Screaming Frog free cap: 500 URLs according to Screaming Frog. A multi-office firm with attorney children usually blows that cap on the first pass.
JetOctopus job: cloud crawls according to JetOctopus positioning — use it as a cloud alternative in the bakeoff, not as a rank claim.
Who this is for
This page is for marketing managers at firms that already have a CMS, Search Console, and more URLs than a partner will click by hand. The pain is 404 bios, duplicate titles, and an agency report that never becomes tickets.
Red flags: Skip a cloud crawler if you have a handful of pages you can open by hand. Skip Screaming Frog if nobody will sit at a desktop licence. Skip ContentKing if you wanted a one-time audit, not monitoring. Skip the category if you expect the spider to write briefs.
Key Takeaways
Technical SEO for law firms is fetchability and uniqueness of practice, attorney, and office URLs.
Screaming Frog wins desktop list mode; Sitebulb wins hints; Oncrawl, Lumar, Botify, and JetOctopus win logs and schedules; ContentKing wins change monitoring.
72% daily legal-tech use is the ABA 2024 figure already cited — the crawl has to sit in that stack, not beside it as mystery work.
Cost, programmatic graphs, and ChatGPT citations are separate posts: law firms SEO cost, programmatic SEO for law firms, how to get law firms cited in ChatGPT.
A ticket layer is optional when a coordinator already fails 404 bios in a weekly sheet.
Weighted criteria for firm crawls
| Criterion | Weight | Min evidence on a firm graph |
|---|---|---|
| Attorney 404 / redirect hygiene | 25% | 0 dangling bios after departures |
| Unique-fact gate besides status 200 | 20% | 1 fact per practice URL |
| Indexable 200s after render | 20% | 95% of HTML URLs return 200 |
| Canonical and parameter hygiene | 15% | 1 canonical per practice |
| Log-file or monitoring view | 10% | 1 log sample or real-time watch |
| Recrawl plus ethics ticket SLA | 10% | 14-day human review |
Source: editorial weights. ABA 72% and Screaming Frog's 500-URL cap are attributed in the body.
Seven platforms
| Vendor | Free URL cap | JS flag | Log flag | Monitor flag | Cloud flag | Public $ |
|---|---|---|---|---|---|---|
| Screaming Frog | 500 | 1 | 1 | 0 | 0 | contact vendor |
| Sitebulb | contact vendor | 1 | 1 | 0 | 1 | contact vendor |
| Oncrawl | contact vendor | 1 | 1 | 0 | 1 | contact vendor |
| Lumar | contact vendor | 1 | 1 | 0 | 1 | contact vendor |
| Botify | contact vendor | 1 | 1 | 0 | 1 | contact vendor |
| JetOctopus | contact vendor | 1 | 1 | 0 | 1 | contact vendor |
| ContentKing | contact vendor | 1 | 0 | 1 | 1 | contact vendor |
JS/log/monitor/cloud flags are public product-family positioning. Only Screaming Frog's 500-URL free cap is a retrieved public number on this page.
Screaming Frog. Best fit: an SEO lead who will run list mode against a CSV of attorney and practice URLs. Limitations: free cap 500 URLs; not a scheduler. Implementation: list mode, JS rendering on intake CTAs, custom extraction for canonical and h1. Primary evidence: Screaming Frog.
Sitebulb. Best fit: hint-driven audits and saved templates for the next office launch. Limitations: contact vendor for price. Implementation: crawl, fail duplicate titles, export hints to tickets. Primary evidence: Sitebulb.
Oncrawl. Best fit: log-based crawl budget when faceted news or PDFs waste Googlebot. Limitations: contact vendor; not a content grader. Implementation: connect logs, segment by template. Primary evidence: Oncrawl.
Lumar. Best fit: scheduled cloud crawls plus logs at graph scale. Limitations: enterprise motion; overkill for a brochure site. Implementation: weekly crawl of practice and bio templates. Primary evidence: Lumar.
Botify. Best fit: large graphs where JS, logs, and real crawl paths sit together. Limitations: not a small-firm seat. Implementation: compare HTML crawl with log lines. Primary evidence: Botify.
JetOctopus. Best fit: cloud crawls as a bakeoff alternative to Lumar/Oncrawl. Limitations: contact vendor. Implementation: same URL list as Frog so the comparison is fair. Primary evidence: JetOctopus.
ContentKing. Best fit: real-time monitoring when the risk is a partner editing a title at midnight, not a 50,000-URL spider. Limitations: according to ContentKing positioning it is monitoring, not a replacement for a full desktop crawl. Implementation: watch practice URLs, alert on noindex or 404. Primary evidence: ContentKing.
Public prices and TCO
| Plan | Vendor | Public $ or cap | What the public page is for |
|---|---|---|---|
| Free spider | Screaming Frog | 500 URLs | Desktop crawl under the cap |
| Paid licence | Screaming Frog | contact vendor | JS rendering, larger crawls |
| Desktop / Cloud | Sitebulb | contact vendor | Hint-driven audits |
| Platform | Oncrawl | contact vendor | Log-based crawl budget |
| Platform | Lumar | contact vendor | Scheduled cloud crawls |
| Platform | Botify | contact vendor | JS + logs at graph scale |
| Platform | JetOctopus | contact vendor | Cloud crawls |
| Monitoring | ContentKing | contact vendor | Real-time change watch |
| Ticket layer | USTA software | contact vendor | Crawl + unique fact + ethics gate |
Source: Screaming Frog for the 500-URL cap. Other list prices contact vendor. TCO is the licence plus the human who redirects departed bios.
Worked crawl: 400 URLs
A 20-attorney firm with 400 HTML URLs (practices, bios, offices, blog), a 14-day "fix then recrawl" SLA, and a desktop spider. The coordinator exports the URL list, pastes it into Screaming Frog list mode, and watches 400 rows: 352 return 200, 18 are 301s from a practice rename, 30 are 404 bios after 2 departures. Those 30 become tickets before any recrawl. Intake later flips HubSpot hs_lead_status on 25 form fills a week — that is a CRM event, not an indexability event. Zapier, Make, or n8n can POST the crawl CSV, retry on 5xx, and keep a run history. The firm still owns idempotency (one ticket per URL), who may request indexing, retention of unpublished URLs, and the partner who signs the 30 redirects. A proposed US Tech Automations design would require coverageState on a sample of repaired bios plus a unique-fact checkbox before the CMS marks the practice live — it would not skip the spider, and it would not promise Google will index inside 14 days, and it would not treat 72% daily legal-tech use as a ranking factor.
PDFs, offices, and intake JS
PDF guides should usually be noindex or live behind a gated form if they are not meant to rank. Indexable PDFs of "complete guide to truck accidents" compete with the practice URL, waste crawl budget, and often duplicate the same claims a partner would not initial on HTML. If you keep a PDF, give it a canonical story: either it is the document, or the HTML practice URL is the document. Do not leave both.
Office URLs fail when three cities share one H1 and one phone. Unique facts: the street NAP, parking, languages at that office, the named partner who sits there. Technical SEO still has to fetch them; on-page still has to differentiate them. If the firm later mints city × practice URLs, the programmatic post already linked owns the graph, but each office URL still needs a 200 and a unique NAP.
Intake forms that render only in JS will look empty to a spider that does not render. Turn JS rendering on in Screaming Frog or Sitebulb and confirm the submit button exists in the rendered DOM. ContentKing will tell you when someone noindexes the thank-you URL; it will not tell you the form never appeared. Logs in Oncrawl, Lumar, Botify, or JetOctopus will tell you whether Googlebot even reached the practice template.
Recrawl and structure
Google's ecommerce structure advice (crawlable URLs, relevant structured data, parseable catalogs) is the outside document this brief named. Pair it with common sense: do not dump the entire brief bank as indexable HTML if those PDFs should be noindex. Do not request recrawl on 400 URLs when 30 still 404. Attorney schema belongs only on visible facts.
What 72% daily legal-tech use does not mean
The ABA 2024 figure already cited (72% of lawyers using legal tech daily, solo plus small firm) means the firm can absorb a crawl CSV next to Clio. It does not mean the spider is a case-management tool, and it does not mean partners will initial 400 URLs without a ticket. ContentKing alerts at midnight are useless if nobody is on-call. Lumar schedules are useless if the export never becomes 30 redirects. Screaming Frog's 500-URL free cap already cited is the small-firm tripwire: pay the licence or stop pretending the blog is in scope.
Programmatic city × practice URLs, SEO cost, and ChatGPT citations remain the three posts already linked. Technical SEO is the fetch layer under all three. A 200 on a clone is still a clone. A recrawl on a 404 is still a 404. Put the 30 departed-bio redirects on the same weekly list as new practice URLs so the crawl export and the CMS never drift for a month. If the partner will not initial redirects, the spider cannot finish the job. Keep a standing CSV of attorney URLs next to the HR offboarding checklist so a departure cannot sit for a quarter as an indexed 404. That CSV is the list-mode input for Screaming Frog; it is not optional documentation. Run it the week a bio is unpublished, not at quarter-end, so the 30 redirects in the worked example cannot wait for a brand refresh that never ships. If HR will not share departures, the marketing crawl will always be late. Name the HR contact on the crawl runbook so the delay is a person, not a mystery, and so a contractor cannot claim they never knew who to ask.
Stitching it in Zapier
The real alternative is Screaming Frog plus a sheet plus a Make scenario that opens a ticket when status ≠ 200. Those tools can support run histories, retries, error branches, and audit evidence when configured. You must still design observability, idempotency, escalation, access controls, retention, and maintenance. If a weekly meeting already fails 404 bios, you do not need a second platform on day one.
When a ticket layer is the wrong seat
Do not buy US Tech Automations if the coordinator already fails 404 bios in a weekly sheet and Screaming Frog is the only crawl you will ever need. Do not buy it if you have ten pages and URL Inspection is enough. Do not buy it if counsel forbids a third system of record — the CMS workflow is then the gate.
Questions firm marketers ask
What is technical SEO for law firms?
Technical SEO for law firms is the crawl of practice, attorney, and office URLs that records status codes, canonicals, render, and indexability so you can fix fetch errors before you request a recrawl. It is not a content brief. The seven tools here all do some version of that crawl or monitor.
Is Screaming Frog enough?
Screaming Frog is enough when someone will run list mode, live under or pay past the 500-URL free cap, and export failures to a human. It is not enough when you need schedules, logs, or midnight monitoring — that is Lumar/Oncrawl/Botify/JetOctopus or ContentKing.
How do we handle departed attorneys?
Redirect the bio to a relevant practice URL, crawl to confirm 0 dangling 404s, then recrawl only the redirected URLs. Do not leave "coming soon" bios indexed. The 25% weight on attorney hygiene exists because this is the failure mode.
Can we stitch this in Zapier instead?
Yes. Zapier, Make, or n8n can ingest a crawl CSV, retry 5xx, and keep history. You still own who requests indexing, idempotent URL keys, and retention. That is enough until the gate rules are the product.
Do we need programmatic SEO too?
If the firm will mint many city × practice URLs, yes — that is the programmatic post already linked. Technical SEO still applies to each emitted URL.
Does a crawl get us cited in ChatGPT?
No. That is the ChatGPT citation post already linked. A 200 is a prerequisite, not a footnote.
Next step
If the spider already shows which bios 404 and the gap is a human-signed gate, start on the homepage and open pricing with the URL list and the 14-day SLA. Do not ask the ticket layer to replace Screaming Frog.
About the Author

Helping businesses leverage automation for operational efficiency.