WordPress and law firm

A WordPress site for a law firm, and the pages a crawl comes back empty from

A firm's website is three things in a trench coat: a fee page, a set of practice area pages, and a login for people who are already clients. Each one behaves differently. The fee page is usually assembled in a page builder that folds the numbers into an accordion. The practice area pages are the material and need almost no work. The client login is the one place the launcher should not be at all, and on WordPress that exclusion belongs in the same snippet that prints the tag.

Why this pairing is its own job

The WordPress install guide covers the tag, and the law firm guide covers what the assistant has to know. What follows is the part that belongs to neither.

  • Fee information on a firm's site is nearly always folded into an accordion or a tab set built in a page builder, so the numbers a prospective client came to find are stored as builder markup and arrive at a crawl in a different shape from the one a reader sees on screen.
  • The documents that answer the hardest fee questions are published as files rather than as pages: the costs information for probate work, the conveyancing breakdown, the complaints procedure with its response times. None of those are in the site navigation, and a crawl that follows links will not reach them.
  • A client area, whether it is a membership plugin on the same install or a document exchange on a subdomain, is content the assistant cannot read and a place the launcher should not appear. Somebody with a live matter typing a summary into a chat panel is sending the firm something it did not ask for and cannot treat as privileged.
  • Firms split their web presence more than most trades, and a separate site per department or per office means separate material. A conveyancing enquiry answered from the employment team's fee scale is wrong in the firm's name even though every citation checks out.

What changes about the install here

<script src="https://cdn.askably.xyz/w.js" data-key="pk_live_YOUR_KEY" defer></script>

The tag is the same one on the WordPress guide. Everything below is about where it goes on a law firm site specifically.

Print the tag everywhere, then take it back off the client area

The snippet that prints the tag runs on every front end page, and if you gate client documents with a membership plugin on the same install, that includes the login screen and everything behind it. Decide whether you want it there before you go live rather than after somebody notices. For most firms the answer is no: a client who already has a matter open should be using the channel the retainer named.

Put the exclusion in the same snippet as the tag, as an early return on the pages that make up the client area. Keeping the rule and the tag in one place matters more than the exact condition you write, because whoever edits this next needs to see both at once instead of discovering the rule six months later in a complaint file.

If the client area lives on its own subdomain, there is nothing to exclude, because the tag was never printed there. Leave that subdomain off the allowlist as a decision you made rather than one you forgot, and write down which it was.

One key per site, not one key per firm

A main site, a specialist department site and an office site are three origins and, more to the point, three bodies of material. Each gets its own assistant and its own key.

Sharing a key across them produces the failure that is hardest to catch in this trade, because it does not look like a failure. The answer is fluent, the citation is real, and the fee scale it quotes belongs to an office in another city that charges differently.

Check the fee page in the source, not on the screen

Once the launcher is up, the next thing to open is not the widget. Open the fee page, view the page source, and search it for a number you expect a client to ask about. If the number is not in there, the accordion is producing it after the page arrives, and a crawl gets what you just got.

This is not fixable at the widget end and it is not worth trying. Either rebuild the fee section as ordinary content that ships in the page, or upload the fee document as a source in its own right and let the answers come from that instead.

Where the answerable material lives

Source material on a WordPress law firm site
Costs documents you publish as filesThe probate costs information, the conveyancing quote breakdown, the fixed fee schedules for employment work. These are usually the most carefully worded documents the firm has, which makes them the best material on the site, and they are almost never linked from anywhere a crawl would find them. Upload them rather than hoping the crawl trips over them.
The fee page, once the numbers are out of the accordionA rate card by fee earner grade, and what sits outside the fee. Worth checking in the page source first, because a builder that renders the panel on demand leaves you with a heading and nothing under it.
Practice area pages, which need no rewritingThese are already written to be read by somebody deciding whether to ring, and they carry the vocabulary people search with. They are the one part of a firm's site that works as material with no preparation at all.
The onboarding and identification pageThe documents you accept, the proof of address, the source of funds evidence on transactional work, and the fact that nothing starts before those checks and a conflict check are done. If this only exists as a paragraph inside a welcome letter, it needs to be a page or a file before it is any use here.

The first thing to get right

Do this first
Upload the costs documents you publish as files as sources in their own right, before you point a crawl at a single page.

They answer the question that decides whether a stranger rings you, they are already worded to be quoted, and they are the part of the site a crawl following links will never reach. Doing them first also tells you quickly whether the rest of the site is even needed.

The failure that belongs to this combination

The fee page that reads perfectly and indexes as nothing

The characteristic failure here is a firm concluding the assistant is useless when the page is the problem. Somebody asks what a straightforward will costs. The assistant either refuses, or answers from a general paragraph on the private client page that mentions no figures at all. The fee page is right there, published, correct, and visibly full of numbers.

What happened is that the accordion holding the fee table is built from the page builder's own storage and expanded once the page is running, so the text a crawl received was the heading and the container. Nobody looks at the source of their own fee page, because it looks fine, so the conclusion is that the assistant cannot read tables.

Confirm it in ten seconds by searching the page source for a figure. The answer is either plain content or a file upload, and in a firm that publishes costs information as a document anyway, the file upload is less work than the rebuild.

Before you go live

  • The origin the page is served from has to be on the allowlist for that assistant, or nothing renders and the browser console says which origin was refused. An apex domain and its www are two different origins to a browser, so list both, along with any staging or preview host you want it to work on.
  • Open the site as a visitor would, on the pages a law firm visitor actually lands on, and ask it something only your own material could answer. A widget that renders is not the same as a widget that has read anything.

Questions

Should the widget appear on the client login page?
Almost certainly not. A person who reaches that page already has a matter and a named contact, and anything they type into a chat panel arrives outside the channel the retainer set up. Exclude the client area in the same snippet that prints the tag, so the rule is visible to whoever maintains it.
Our fee pages are built with a page builder. Do we have to rebuild them?
Only if the text is not in the page source. Some builders ship the content and only handle the opening and closing in the browser, which is fine. Others store the panel and produce it on demand, which is not. Check one page before deciding, and if it fails, uploading the fee document is usually less work than rebuilding the section.
We run a separate site for each office. Can they share one assistant?
They should not. The fee scales and the departments differ, and one assistant reading all of them will answer an enquiry about one office from another office's material with a perfectly valid citation. Separate keys, separate material, and each site's own origin on its own allowlist.

Keep reading

Try it on your own material

Upload a document or point it at your site, paste one line of HTML, then ask it something only your business could answer.