Case study · Platform migration, legal SEO, content & compliance Built · awaiting launch

Cardinale & DelVecchio Law Firm

Taking a two-office Central New York law firm off Duda and rebuilding it as 61 hand-built pages where every statute, fine, point value and deadline names its source and the date it was checked, two 2026 law changes were caught that most competing sites still describe wrongly, and not a single attorney credential was invented to fill a gap.

Client
Cardinale & DelVecchio Law Firm, PLLC · Cicero & Cortland, NY
Scope
Audit · Platform migration · Information architecture · Legal content · Local SEO · Accessibility · Compliance
Stack
Astro · Netlify · Git · GA4 · three custom audit tools
Studio
Tenworks · Tenzin
What this page is, and is not

The site is finished and has not launched. So this is a build case study, not a results case study. There are no rankings, no traffic and no lead numbers on this page, because there is no live site to have produced them.

What is here is measured: page counts, word counts, schema coverage, contrast ratios, duplicate-content scores and link-graph depth, all read out of the built site. When it goes live a Search Console baseline gets captured on day one, and the results chapter is written against that. That is the honest order.

01 · The starting point

Twenty-six years of local practice, on thirteen pages.

The firm has practiced in the same two Central New York communities since 2000, holds 361 Google reviews across its two offices, and appears in courts across two counties. The website carried almost none of that.

02 · The architecture

Three layers, because people search three different ways.

One page trying to rank for everything ranks for nothing. The rebuild splits the work by how the search is actually typed.

13 → 61
pages, each with a unique title, description and self-canonical
78,913
words of original content
302
questions answered, every one in the 40–60 word band
10
service-by-city money pages across two counties
6 practice hubs 20 sub-issue pages 10 service × city 3 city hubs 2 county court references 5 resource articles Max click depth 3 0 orphaned public pages 0 broken internal links
03 · The rule that shaped everything

Every legal figure names its source and the date it was checked.

This is the whole method, and it is the reason the build took as long as it did. It is also the single largest difference between this site and the firms it competes with.

Two 2026 changes most legal sites still get wrong

May 2026 — auto injury. New York deleted a category from the serious injury threshold, the one usually called the 90/180 rule, so a route to compensation that existed before is simply gone. Separately, comparative fault changed for motor vehicle claims: being mostly at fault can now end a claim rather than reduce it. Which version applies turns on the filing date, not the crash date. That is the detail that decides cases and the one most summaries omit.

February 16, 2026 — DMV. Point values changed and one of the two lookback windows moved from 18 months to 24. Work zone violations now carry a flat 8 points whatever the speed.

A great deal of what is published about both, including on competing law firm sites, still describes the previous versions.

04 · What we refused to publish

The empty spaces are the argument.

On a law firm site, what a build declines to fabricate matters more than what it produces. Each of these was a deliberate decision, and each one costs something in the short term.

05 · Machine-readable

Built to be the source an answer engine quotes.

People ask ChatGPT, Gemini, Perplexity and Google's AI Overviews "how many points is a speeding ticket in New York?", and those systems answer from sites they can parse. Legal questions are among the most-asked.

302
FAQ answers, all 302 in the 40–60 word extraction band
46
FAQPage nodes
40
LegalService nodes, one per service page
60
BreadcrumbList nodes — sitewide

That 302-of-302 figure is the one worth pausing on. An answer engine lifts a tight, self-contained answer sitting under a question-shaped heading. Every single answer on this site is written to that shape, and a build check fails the site if one drifts outside the band.

Organization + 2 office nodes Attorney (LocalBusiness subtype) Person, per partner, with stable @ids LegalService × 40 FAQPage × 46 BreadcrumbList × 60 Article × 11, author → Person areaServed by county and town No Review / AggregateRating
One graph, one source of truth

Every address, phone number, opening hour and geo-coordinate on the site is generated from a single data file. Sixty-one pages, two addresses, two phone numbers, one opening-hours block — verified identical across all of them. NAP consistency is the foundation of Local Pack ranking, and the usual failure is a stale address on page forty that nobody re-reads. Here it cannot drift, because there is only one copy.

06 · Checked by machine

Three custom tools, run on every build.

Human review misses things at sixty-one pages. These were written for this project, and each one exists because of a specific mistake that got caught once and must never recur.

Every page tested against every other for near-duplication

Five-word shingle overlap, flagged at 10%. It caught real problems that reading would not have: a resource article 23.2% overlapping the practice page it was meant to support, and a Cortland page 12.2% overlapping its Syracuse counterpart. Both were rewritten to 1.1% and 4.7%.

It also caught two office pages at 16.98% — which had been that way from the start, and which a first fix accidentally pushed to 18.71% before the measurement exposed it. Separating shared components from editorial prose showed the real figure was 13.0%, against 0.26% for two comparable pages. Rewritten to 6.95%.

A full cannibalization audit found zero page pairs competing on the same head term with the same geographic scope.

115
commits
0
broken internal links across 61 pages
0
orphaned public pages
07 · Accessibility & performance

Audited across all sixty-one pages, not a sample.

15.6:1
body text contrast — AA needs 4.5
0
images missing alt text
28 KB
total CSS, self-hosted fonts, no external requests
0
render-blocking scripts
08 · What changed

Before → after, line by line.

Platform
Duda subscriptionAstro + Netlify, in Git

Off a rented editor and onto a version-controlled site the firm owns outright.

Pages
1361

Each with a unique title, description and self-referencing canonical.

Service × city
None10 pages

The pages that rank for "[city] [service] lawyer." Previously the firm had nothing that was both.

Legal sourcing
Undated claimsStatute + date on every figure

Including two 2026 changes most competing sites still describe incorrectly.

Court information
NoneBoth counties, fully listed

Verified against the state court system, including which courts sit somewhere other than their namesake town.

Structured data
MinimalFull graph, generated

Organization, per-office LegalService, Person per partner, FAQPage, BreadcrumbList, Article — from one data file.

Answered questions
Few302, all in band

Every one written at 40–60 words for AI answer extraction, enforced by a build check.

Attorney credentials
NoneScaffolded, awaiting the firm

Built so a missing field renders nothing rather than a placeholder — and so the build fails until they are supplied.

Policy pages
"Needs wording from counsel"Written, audited

Privacy, terms and accessibility. The privacy policy was written against an audit of what the site actually does, not from a template.

Old URLs
Would 40421 redirect rules

Every URL the old site ranked for points at its replacement, so twenty-six years of history follows the firm across.

Measurement
NoneGA4, gated and ready

Configured with click-to-call and form events, switched on at launch — and the privacy policy already describes it honestly.

09 · Every page

Sixty-one pages, grouped.

Generated from the built site rather than typed, so the list cannot drift from what actually shipped.

10 · Where it stands

Finished, and honest about what finished means.

What this page is not claiming

No results, because there are none yet. The site has not launched. Every figure here describes the artifact: pages, words, schema nodes, contrast ratios and overlap scores. Not its performance.

The architecture is a bet, not a guarantee. Service × city pages, dated sourcing and atomic FAQ answers are what the current evidence supports for a local legal practice. Google changes. The measurement will say whether it worked.

The bios being unfinished is a real cost, not a footnote. They are the weakest pages on the site and the E-E-A-T anchor for the other fifty-nine. Refusing to invent credentials is the right call and it is not a free one.

Two counties, one small firm. This is a two-partner practice in Central New York, not a national brand. The scale of anything that follows will match that.

61 pages built 78,913 words 302 FAQ answers 115 commits Measured from the built site, August 2026
Tenworks

Most of this work was deciding what not to publish.

Any agency can produce sixty-one pages. The part that matters on a site where being wrong has consequences is the discipline to leave a field blank, date every claim, and measure your own work before reporting it.