No Signup Unlimited Usage Real Data 100% Free Privacy First Fast Results Export Reports Mobile Friendly

Local SEO Audit for Lawyers

Paste an office page URL and see which name, address, phone, schema and map signals your firm's site shows and which are missing.

Fetching live data…

Why Lawyers need this

Nobody wins the local pack for a personal injury or divorce search by accident. In a big metro the competition is brutal, Google allows one listing per practitioner, and broad phrases like personal injury lawyer plus a city name are tough even for firms that work at it. Nothing guarantees a spot, so the signals you control matter more, not less. The website is one of them: if the contact page shows an old suite number, the footer carries a different phone line, and no LocalBusiness data names the office, you are handing Google mixed messages about where the firm actually is.

Bar rules add a second constraint. Bar advertising rules, such as the ABA Model Rules on communications about legal services, apply online too, so names and meta tags must stay accurate and local keywords belong only where you have a real office. That makes clean, factual office details the safest local work you can do. The Local SEO Audit reads one live page and lists which local signals are present, missing or incomplete, so you can fix them office by office.

Lawyers specific guidance

Which pages to run first

Run the homepage first, then one page per office, such as https://examplelaw.com/offices/austin/ instead of a single shared contact page. The tool takes one URL per run and reads the HTML as served, with no JavaScript executed, so details a script injects after load can show up as missing. Before running, open that office's Google Business Profile and copy the exact name, phone and address into the three optional profile fields; that takes two minutes per office. Keep in mind what this does not prove: the tool never reads your Business Profile, it only compares the page with whatever you typed, so a typo there will produce a false mismatch.

How to read the score and the match block

Start with the summary cards. NAP complete showing Partial means the phone or street address is missing from the visible text, and Local schema showing No means no LocalBusiness or Organization JSON-LD with an address was found. Then read the Business Profile match block. It lists the phone numbers it did find, and spacing or country code differences are ignored, so a flagged number is a genuinely different one, often a call-tracking line. The score itself is the share of check weight passed across NAP and Identity, Maps and Hours, and Trust and Social. A high score does not prove map pack placement, and it says nothing about reviews, categories or listings on FindLaw or Justia.

What to fix, and in which order

Fix contradictions before gaps. Make the footer, the contact page and the schema show one street address with the suite number and one tel: link per office. Next, add a LocalBusiness block for each office, generating it with the Schema Generator rather than hand-typing it; the generator writes the LocalBusiness type, which you can change to a legal subtype such as LegalService by hand. Then publish opening hours and an embedded Google Map or directions link on the office page. Keep the firm name exactly as it appears on your profile, with no added practice keywords or claims like best, and only create office pages where you really have an office. Rerun the same URL afterwards. A passing page does not show that Google has re-crawled it.

Example scenarios

1. Office moved, footer did not

Situation
Illustrative example: A personal injury firm moved its Dallas office from Suite 210 to Suite 400 and updated the Google profile the same week, but the site footer and contact page still carry the old suite. The firm's profile address has 9 words once street, city and suite are counted.
Input
https://examplelawfirm.com/offices/dallas/with the profile name, phone and address typed into the optional fields
Reading the result
You would typically see the Address matches your profile row report only part of the address words found, for example 7 of 9, while name and phone match. Read that as the page contradicting the profile on the suite line. Update the footer, the contact block and any schema address, then rerun.

2. Call-tracking number on the page

Situation
Illustrative example: A criminal defense firm swapped its main line for one of 3 call-tracking numbers on every page to measure ad calls, but the Google profile still lists the original main line.
Input
https://examplecriminaldefense.com/contact/with the profile phone entered as the main line
Reading the result
The Phone matches your profile row would typically fail and list the tracking number it found instead, for example 1 number found against the 1 main line you typed. Treat that as a real inconsistency, not a formatting quirk. Decide which number is canonical, or use the main line in schema and the tel: link and keep tracking numbers for ads only.

3. Three immigration offices, no markup

Situation
Illustrative example: An immigration firm built three office pages from one template. Each shows a street address, a map embed and hours in plain text, but nobody ever added JSON-LD. The page might score around 60 out of 100.
Input
https://exampleimmigrationlaw.com/locations/phoenix/
Reading the result
Expect passing checks for address, phone and map, a Local schema card reading No, and an issue about the missing LocalBusiness or Organization JSON-LD. Hours written only as text may still pass. The fix is one schema block per office with its own address and telephone, then a rerun of each URL.

Common mistakes

  • Auditing only the homepage. The homepage often carries the main office while branch pages are left with a stale number. Run every office URL separately, since each run reads a single page.
  • Adding keywords to the business name. Putting a practice area, a city or a word like best into the name or schema name risks breaking profile guidelines and bar advertising rules. Use the name the firm actually operates under.
  • Ignoring tracking numbers. A call-tracking line in the footer makes the page disagree with the profile. Keep one canonical number in text, tel: links and schema.
  • Marking up cities with no office. Publishing LocalBusiness schema and an address for a city where you only take referrals misrepresents your presence. Create office pages and markup only where the firm has a real office.
  • Reading a high score as a ranking promise. A clean result covers your website only. Reviews, profile categories and legal directory listings still decide a great deal, and the tool does not check them.

Frequently asked questions

How do I check local SEO for a law firm with several offices?

Run the audit once per office page, not only on the homepage, because each run reads a single URL. Use a page such as /offices/chicago/ and fill in the name, phone and address from that office's Google profile so the match block can compare them. Repeat for every location and keep a simple sheet of score, schema status and phone found. The tool does not check citations on other sites, reviews or rankings, so treat the results as the website half of the job only.

Does local SEO for lawyers need LocalBusiness schema?

Google does not require it, but it gives crawlers the office name, address, phone and hours in a machine-readable form that can be compared with the text on the page. The tool counts any LocalBusiness subtype, such as a legal one, as long as the node carries an address or geo data. Generate the JSON-LD per office, then rerun the URL. Schema alone will not lift a listing; it removes ambiguity about which office a page describes.

Can I put my city and practice area in my business name for attorney SEO?

Avoid it. Your profile name should be the name the firm really uses, and the site should show the same one. Stuffing in a practice or city can break guidelines and, under bar advertising rules, misleading names and unsubstantiated words like best are a risk. The Business Profile match compares the name you type with the page text and schema name, so a mismatch shows up. It will not flag a keyword-stuffed profile name, so that judgment stays with you.

Why does the audit show a different phone number than my Google profile?

The tool reports the first phone-like number in the page text and, when you fill in the profile fields, lists the numbers it did find, including tel: links and schema telephone values. A mismatch usually means a call-tracking line, an old number in the footer or a second office's number in a shared template. Spacing and country code are ignored, so only a real difference counts. Decide which number is canonical, then update the page, the schema and, if needed, the profile.

Will a good score get my firm into the local pack?

No. The score only reflects how many on-page local checks pass. Rankings depend on your Google Business Profile, reviews, distance, competition and citations such as legal directories, none of which this tool measures. In competitive metros, nobody can guarantee a map pack place. Reviews, for instance, attach to the listing itself. Use the score as a punch list: clear the failed checks on each office page so your site stops contradicting your profile, then work on the rest elsewhere.

Reference: BrightLocal's local SEO guide for lawyers explains why the local pack is so competitive for consumer practices and that Google permits only one listing per practitioner.

Last updated: Türkçe sürüm