← Back to SEO Report ← Miami Wrongful Death Lawyer Analysis

Miami Wrongful Death Lawyer — SEO Improvements

miami-wrongful-death-lawyer  ·  Gallardo Law Firm  ·  Audited 2026-08-07, reworked through 2026-08-12  ·  En / article.cshtml + articlemetas.cshtml + FaqEntities.xml + theme assets

URL https://gallardolawyers.com/injury-law/miami-wrongful-death-lawyer
Target Keyword miami wrongful death lawyer
1,9686,311
Article body words (+221%)
2,5177,836
Total indexable words (metas + article + FAQ)
504900
Tracked keyword occurrences (+79%)
146
Statute citations in the body (19 distinct)
017
External authority links (6 .gov / Bar domains)
14
JSON-LD blocks on the page
311
Outbound internal links (2 → 10 destinations)
314
Contextual inbound internal links
710
English FAQs (416 → 1,390 words)
122
Agency statistics cited on the page
1114
H2 sections (H3 ~24 → 36)
011
Legal accuracy defects fixed (2.2 … 2.12)
NOTHING IN THIS REPORT IS IN PRODUCTION YET. Every file from pass 4.43 through 4.56 is modified-but-uncommitted; HEAD is still 862d0eb5. Where the change log says "verified live", that means verified against the local dev server at localhost:7155 — the measurements are real and the content is in the working tree, but no search engine or visitor has seen any of it. Commit, build and deploy is the single highest-priority item, and the site's DonutOutputCache is set to seven days, so the clock on visibility only starts after the app restarts.
Legal Accuracy — Eleven Findings on the Live Page
Ten of the page's claims checked out clean; eleven did not. The verified-correct set (two-year deadline, personal representative as the filing party, the survivor definition, lost support and services, funeral expenses, the survival test, the tort elements, the Miami highway list) was confirmed against statute text rather than secondary summaries. What follows is the other half — and the first item is the one that can cost a family a claim they do not have.
Views/ServicePage/Content/injury-law/miami-wrongful-death-lawyer/En/article.cshtml  ·  App_Data/FaqEntities.xml
2.2 · Florida's "free kill" law — § 768.21(8) — never mentioned CRITICAL FIXED
Was: Medical Malpractice is one of six featured causes of death on the page, and "Mental Pain and Suffering" is listed as recoverable — with no mention that Florida law bars adult children 25+ and the parents of an adult decedent from recovering non-economic damages in a medical negligence death. Because economic damages in an elderly or adult decedent's case are often minimal, this frequently means no economically viable claim at all. The page pointed grieving families toward a claim many of them legally do not have.
Fla. Stat. § 768.21(8) bars the damages described in subsections (3) and (4) — lost parental companionship, instruction and guidance, and mental pain and suffering — in any action for medical negligence as defined in § 766.106(1).
Now: disclosed under the Medical Malpractice H3, in the at-a-glance block, in FAQ 8 and in the "what can stop a claim" H3, with the correct current status: HB 6017 passed both chambers in 2025 and was vetoed 2025-05-29; HB 6003 passed the House 88-17 on 2026-01-15 and the 2026 session adjourned in March without a repeal. § 768.21(8) remains in force. The legislative timeline is recorded in the Razor comment so the next editor can date it.
2.3 · FAQ #2 misstated who may sue — three separate legal errors CRITICAL FIXED
Was: "The survivors that may qualify to file a suit include a spouse, child or parent and any other relative or adoptive brother." Three defects in one sentence — and it contradicted the article body directly above it, which stated the rule correctly in two places.
(1) Wrong party. § 768.20: "The action shall be brought by the decedent's personal representative." Survivors do not file. (2) Dropped statutory condition. § 768.18(1) extends survivor status to other blood relatives and adoptive siblings only "when partly or wholly dependent on the decedent for support or services" — "any other relative" is materially broader than the statute. (3) Wrong wording. The statute reads "adoptive brothers and sisters"; the FAQ excluded sisters.
All three corrected in the FAQ 2 rewrite. Three places on the page now state who brings the action and all three agree — article H2 #1, article H2 #3, FAQ 1 and FAQ 2.
2.4 · The intentional-tort exception was badly understated HIGH FIXED
Was: "Certain intentional tort wrongful death claims involving acts described in Florida's murder or manslaughter statutes may have different treatment under the statute."
§ 95.11(11): "Notwithstanding paragraph (5)(e), an action for wrongful death … brought against a natural person for an intentional tort resulting in death from acts described in s. 782.04 or s. 782.07 may be commenced at any time."
Now: stated plainly — there is no limitations period at all for those claims. "May have different treatment" was vague enough that a family whose relative was murdered could read this page and wrongly conclude they were time-barred. This is the most consequential wording change in the audit after 2.2.
2.5 · The medical malpractice clock was missing entirely HIGH FIXED
The page gave only the general two-year rule. Med-mal runs on its own clock under § 95.11(5)(c): 2 years from the incident or from discovery with due diligence, and an absolute 4-year statute of repose regardless of discovery — except a minor's claim, not barred before the child's eighth birthday. "Statute of repose" appeared zero times in the article. Medical malpractice is one of the six featured case types, so this was a real gap. The deadline section was later rebuilt as the page's single consolidated reference, with a table.
2.6 · The 51% comparative fault bar was absent HIGH FIXED § 768.81
Was: the insurer-arguments section listed "The deceased was partially responsible" — without saying what partial fault now does to the claim. The word "comparative" appeared 0 times in the article.
Now: HB 837 (2023, ch. 2023-15, effective 2023-03-24) moved Florida from pure to modified comparative negligence — more than 50% at fault means no recovery; at 50% or less the award is reduced proportionally, with a worked example (a $1m verdict at 20% fault becomes $800,000). And the carve-out both halves of which matter: the bar expressly does not apply to personal injury or wrongful death arising out of medical negligence under Chapter 766.
2.7 · "Minor children" means under 25 — and the page's own video schema already said so FIXED
§ 768.18(2) defines minor children as "children under 25 years of age, notwithstanding the age of majority" — specific to the Wrongful Death Act, and it surprises most readers, who assume 18. The article said only "Children". The hero video's structured-data description had carried the correct rule all along ("the spouse, children under 25 years old, parents or other legal dependents"), so the page held the right rule where no human could read it. That wording was lifted into the visible copy — the site already owned it.
2.8 · Surviving spouse damages stated incompletely FIXED
The page said a surviving spouse "may recover for loss of companionship and protection" — 16 words — and hedged mental pain and suffering into a separate H3 applying to "certain survivors". § 768.21(2) gives the spouse both, without qualification. Corrected, and the Mental Pain and Suffering H3 was expanded to set out the § 768.21(3) and (4) tiers for children and parents, pointing back to the under-25 rule and the medical negligence limit.
2.9 · FAQ #4 answered a different question than it asked FIXED
"How much does a case cost?" was answered with damages-valuation factors — medical bills, future medical expenses, wages, loss of labor capacity, pain and suffering. That describes what a case is worth, not what it costs. It contradicted the article's own contingency-fee section, and "future medical expenses" has little application to a death claim.
Split into two: FAQ 4 renamed and rewritten to answer cost (contingency fee, no attorney fee and no case cost unless there is a recovery), and a new FAQ 8 built for the valuation question the old answer was actually addressing.
2.10 · FAQ #6 had "the victim" recovering FIXED
In a wrongful death action the victim is deceased; recovery runs to the survivors and the estate. Minor, but it reads carelessly on a page about a death. Corrected, along with "your injuries and loss" in FAQ 7 — the reader is a survivor, not the injured party.
2.11 · Statute citation drift FIXED § 95.11(5)(e)
The page cited bare "Florida Statutes section 95.11" for the two-year period — correct but imprecise, and the subsection has moved: the wrongful death limitation sits at § 95.11(5)(e) in the 2025 statutes, previously cited as § 95.11(4)(d). Citing the subsection makes the claim verifiable in one hop and signals currency. The body went from 1 statute citation to 46, across 19 distinct statutes.
2.12 · Florida Bar advertising compliance — one violation removed, one flag withdrawn, one still open
"the BEST wrongful death law firm" — Rule 4-7.13(b)(3) prohibits statements characterizing a firm's skills, experience, reputation or record that are not objectively verifiable, and Bar guidance treats "best" formulations as violations. Framing it as what families are "searching for" did not cure it, because the sentence sat in the firm's own self-description. "best" REMOVED — "wrongful death law firm" was kept, and it earns its place at 4,400/mo with 397 impressions at position 5.3.
"Pursue maximum compensation" — the flag was withdrawn after reading the source. The Bar's own 2025 Handbook, comment to Rule 4-7.13(b)(1), lists pursue in its nonexclusive set of permissible qualifiers, and contrasts "I will get you acquitted" (violation) with "I will pursue an acquittal" (permissible). The phrase was compliant all along and had sat open across ten passes. The rule is to check, not to fear.
Still open: there is no disclaimer anywhere on the rendered page. The live HTML was searched for "disclaimer", "not legal advice", "attorney-client" and "past results" — zero occurrences of each. OPEN · FIRM DECISION
Keywords On The Page — Before → After
A master table of 140 rows was built from Google Search Console (this URL, 268 queries), the Semrush keyword-gap export against goldbergandrosen.com, injuryattorneyfla.com and floridainjurylawyer.com, and vocabulary terms measured directly on the page. Counts cover metas + article + the 10 English FAQ entries — the three sources a crawler actually reads. The four JSON-LD blocks are excluded on both sides, deliberately: counting structured data would inflate every legal term and double-count the FAQ text. BEFORE is the 2026-08-07 measurement carried over verbatim; NOW was measured 2026-08-11 with one function against the same three sources.
M/C/F = metas / content / FAQ  ·  VOL/KD/CPC = Semrush US  ·  Impr/Pos = GSC, this URL, pre-edit
Keyword Vol/mo KD CPC GSC pos Impr Was Now Δ
wrongful death (head term)9,90053$47.4494181+87
wrongful death attorney BIGGEST IMPRESSION DRIVER110,00026$124.008.33,205624+18
wrongful death lawyer135,00032$92.478.02,8421316+3
Miami wrongful death lawyer (the named target)88016$99.5711.02,7701011+1
Miami wrongful death attorney59016$107.1910.32,01929+7
wrongful death lawyer miami (word-order variant)59017$99.5711.31,61100=
wrongful death lawyers33,10024$142.288.81,50864−2
wrongful death attorney Miami (removed, then recovered — see below)48013$99.5710.31,39221−1
wrongful death attorneys miami7017$107.1910.366300=
wrongful death lawyer near me TRANSACTIONAL6,60025$104.808.662201+1
wrongful death attorneys22,20033$124.009.262716+5
north miami wrongful death lawyer (left at 0 on evidence — see geo)210821.146300=
wrongful death attorney near me TRANSACTIONAL9,90030$104.808.438802+2
wrongful death law firm4,40025$101.815.339723+1
miami wrongful death case (best position on the URL)7076.222422=
miami wrongful death lawsuit7066.120500=
lawyer wrongful death case (highest CPC in the table — declined)14021$174.403.818210−1
miami workplace death lawyer306.013400=
death attorney1,30020$93.125.56824+16
medical negligence4,40037$9.88113+12
"Now" counts describe on-page presence only, not rankings. Counting is case-insensitive and whole-word, and longer phrases are also counted inside shorter ones, so columns do not sum to a unique word count. Impressions, positions, volume, KD and CPC are unchanged and pre-date every edit — they describe external demand, not page text, and were not re-pulled. The word-order rows (wrongful death lawyer miami, wrongful death attorneys miami) are zero by design; the page says "Miami wrongful death lawyer" and Google resolves the inversion.
Vocabulary and semantic terms (measured across metas + article + FAQs)
TermVol/moWasNowΔ
wrongful death9,90094181+87
florida (the statutory backbone)673,0002999+70
miami (the local signal)450,0003160+29
negligence49,5001434+20
wrongful death claim1,6001528+13
wrongful death lawsuit18,1001023+13
estate33,1002031+11
wrongful death cases3901021+11
evidence60,5001622+6
personal representative (the corrected legal term)1,900612+6
damages22,2001118+7
wrongful death case2,400816+8
two years (the deadline hook, now in the meta)880412+8
medical malpractice14,800611+5
liability60,500812+4
surviving spouse1,00059+4
minor children (the under-25 rule)26+4
Florida Statutes18,10016+5
mental pain and suffering2036+3
compensation49,5001419+5
statute of limitations (0 on a page with a deadline section)60,50003+3
negligent security (nobody on the site owns it)1,00034+1
survivors8,1001312−1
fatal injury (pos 1.92–2.03, dropped from the metas)32053−2
Miami wrongful death lawyers (the plural primary — meta trade)4052−3
Breadth narrowed while depth grew, and both numbers are real. Occurrences are up 396 (+79%) but the count of terms present at all fell 89 → 86. Eight terms went to zero and five new ones appeared. Seventeen rows fell in total — none is an accident, and two were recovered in a later pass. A table that reported only the +396 would be telling half the story.
Every term that fell, and where it went
Four of the seventeen came from the metas rewrite, not the body. Miami wrongful death lawyers METAS 3 → 0 (the plural primary, 165 impressions at position 13.7) · fatal accidents METAS 3 → 0 (880/mo) · fatal injury METAS 3 → 0, offset by content +1 · wrongful death lawyers METAS 3 → 0, offset by FAQ +1. The metas pass reported "no on-page term moved" because it measured the two tags in isolation against each other. Against the master table, four terms moved. The trade was deliberate — "attorney" went 0 → 2 and the deadline hook went in — but it was a trade, and the original entry did not say so.
Six were documented, intentional removals of forced long-tail phrases. "A wrongful death attorney Miami can determine…" and "A lawyer wrongful death case must be built…" were not English. These were not free. "wrongful death attorney Miami" carried 1,392 impressions at position 10.3 and RANK 8; "lawyer wrongful death case" carried the highest CPC in the table at $174.40 at position 3.84. Removing broken sentences was right; the cost is recorded here rather than buried in a "no regressions" line. One was later recovered in a grammatical sentence — see the corrections section.
Three are collateral from the intro trim — boating accidents, motorcycle collisions, workplace incident. All three were promises the old intro made and no section kept. Boating and workplace now have their own H3s; the exact phrases do not appear. Cheap to restore inside existing sentences if wanted.
The remaining four are single-occurrence drift in rewritten sections: loss of companionship, survivors, premises, loss of prospective net accumulations.
Terms that went from absent to present
  • statute of limitations 0 → 3
  • wrongful death attorneys 0 → 6
  • medical negligence 1 → 13
  • boating 1 → 6
  • drowning 0 → 3
  • workplace death 0 → 1
  • miami-dade 2 → 12
  • florida wrongful death lawyer 0 → 1
  • florida wrongful death attorney 0 → 2
  • south florida 0 → 1
  • broward 0 → 1
  • statistics 0 → 3
  • Out-of-market Semrush gap rows — Fort Lauderdale, Gainesville, Bonita Springs, Fort Walton Beach — were deliberately left at zero. They are in the dataset; they are not targets for a Miami page.
The Keyword Strategy — Where the Demand Actually Is
Baseline: 27,652 impressions · 5 clicks · CTR 0.018% · avg position 10.3 · 268 distinct queries · top-3 for 0 of 122 gap keywords
This is a CTR problem sitting on top of a position problem, and it is not a content problem. 27,652 impressions produced five clicks. The page ranks 8–11 on its commercial primaries, which is not a thin-content signature — thin pages rank 40+. Google already understands and trusts the URL. What no amount of body copy fixes is authority; what body copy could not fix, and the metas could, was a listing that gets shown and not clicked. Stated in the pending register from the first day and never softened: on-page work here is necessary and not sufficient. Nothing in this project should later be reported as the cause of a ranking movement on its own.
The near-me cluster — 26,440/mo of Transactional intent with nowhere to live
QueryVol/moCPCImprPosIntent
wrongful death attorney near me9,900$104.803888.4TRANSACTIONAL
wrongful death lawyer near me6,600$104.806228.6TRANSACTIONAL
wrongful death lawyers near me5,400$115.972418.3TRANSACTIONAL
wrongful death attorneys near me4,400$104.801679.5TRANSACTIONAL
+ 9 more near-me variants1,704 total13 queries
The highest-converting intent class in the dataset, at CPCs above $100, and the page contained "near me" phrasing only twice — both buried in the cost section. It was deliberately refused a home in the liability FAQ, because "near me" cannot be written into a liability explanation without reading as stuffing. It got a purpose-built FAQ instead: "Do I need a wrongful death lawyer near me?" — a question families genuinely ask, where listing the three search phrasings is the natural construction because the sentence is literally about what people type into Google. The fourth variant was not added; three is the honest limit for one sentence.
The cheapest cluster on the page — and the page did not contain the words
Definitional keywordVol/moKDSERP featuresIn section before
wrongful death lawsuit18,10015AI Overview + PAA0
wrongful death case2,40025AI Overview + PAA0
wrongful death claim1,6007AI Overview + PAA2
wrongful death lawsuits1,30024AI Overview + PAA0
wrongful death claims48011AI Overview + PAA0
wrongful death cases39019AI Overview + PAA0
All eight definitional terms trigger an AI Overview; seven of eight trigger People Also Ask. KD 7–25, against KD 50+ for the commercial terms this page has been losing on. And GSC corroborates it: the two best positions this URL holds are both on this cluster — miami wrongful death case at 6.21 and miami wrongful death lawsuit at 6.06, against a page average of 10.3 — and it earned them without the words being in the section that defines the claim.
Two SERP facts checked before writing anything, and both changed the plan
There are no featured snippets to win. Across all 99 keywords in the Semrush bulk export: People Also Ask on 89 of 99 (100% of tracked volume) · AI Overview on 75 of 99 (75% of volume) · featured snippet on 0 of 99. The usual "win the snippet with a definition list" play is not available on these SERPs. The target is AI Overview and PAA extraction instead.
FAQ rich results are retired. Google restricted them to government and health sites in August 2023 and retired them entirely on 7 May 2026. The ten-FAQ pass therefore produces no rich result. The markup stays valid and structured data still feeds AI Overviews as one signal, so the work retains value — but nobody should expect FAQ boxes in the SERP, and this report will not imply otherwise.
The neighbourhood section was requested, built in the plan, and then rejected on evidence. 1,729 impressions across 35 place-modified queries at average position 20.9 and zero clicks — North Miami 467, Coral Gables 345 across twelve variants, Miami Beach 236, Miami Gardens 147. The obvious move is an "areas we serve" block. The competitor data says it does not work: goldbergandrosen ranks #1 for "miami beach wrongful death lawyer" without ever using the words "Miami Beach", while injuryattorneyfla uses them five times and ranks 15th. Same direction on Miami Gardens: 5th versus 59th. The page with the most neighbourhood mentions has the worst neighbourhood positions. Coral Gables is the tell: eight keyword variants and the best position any of the four firms holds is 21 — the signature of a SERP owned by the local pack and directories, where a paragraph mention is irrelevant. Revised order of attack: Google Business Profile for the Miami and Hialeah offices first; dedicated location pages only for North Miami and Miami Beach, and only with real local signals; skip Coral Gables entirely. What was applied is one natural sentence in the firm-facing section — the Wrongful Death Act governs the claim statewide, so a Florida wrongful death lawyer can act wherever in Florida the death happened. One commercial Florida phrase, not three.
Content Expansion — 29 passes · article body 1,968 → 6,311 words (+221%)
Every one of the twelve original H2 sections was opened, audited against the rest of the page, and revised in sequence — plus three new sections and a statistics block. Every edit carries a Razor comment in article.cshtml citing its source and, where relevant, the rule a future editor must not break. A keyword reinforcement check was run on every single pass, article-wide rather than section-only, precisely so that losses elsewhere on the page would surface.
Views/ServicePage/Content/injury-law/miami-wrongful-death-lawyer/En/article.cshtml
A — New Content Sections
1 · "Florida Wrongful Death Claims at a Glance" NEW
Six items, every one carrying a statutory citation and four carrying numbers: who files (768.20) · who recovers plus the under-25 rule (768.18) · the deadline and the no-deadline exception (95.11) · what is recoverable (768.21) · the medical negligence bar (768.21(8)) · cost. Added as a named anchor (#at-a-glance) rather than heading-0, so the existing heading-1…11 numbering was left untouched.
The intro it sits under was 210 words containing zero digits, zero statute citations and no definition sentence — the first 55 words carried no extractable fact at all. Generative engines retrieve passages that answer something. Citations and statistics are the two content features best supported by the GEO literature for being surfaced in generative answers (Aggarwal et al., Generative Engine Optimization, KDD 2024).
2 · "Florida and Miami Wrongful Death Statistics" — the page carried ONE statistic in 5,636 words NEW
Every numeric statement in the live copy was extracted and classified before drafting. Result: ~50 statutory numbers (statute cites, the 768.28 caps, the deadlines, the 50% bar, the Bar fee percentages) and exactly one actual statistic — the Coast Guard boating figure added a few passes earlier. The page was dense with law and empty of data.
Now 22 agency figures across two tables, three sources linked. FLHSMV Florida Traffic Crash Facts 2024: 3,098 Florida traffic deaths (down from 3,553 in 2022), 272 in Miami-Dade, 678 pedestrian statewide against 75 in Miami-Dade. Florida OSCA FY 2024-25 Statistical Reference Guide: auto negligence 48,206 filings, medical malpractice 1,157, negligent security 477. U.S. BLS: 284 Florida fatal work injuries in 2024, down 7.2%.
The best find in the pass, and it is local: 138 of 30,546 Miami-Dade circuit civil dispositions were decided by a jury in FY 2024-25 — one half of one percent. Primary, striking, and it independently supports what the process section already says about negotiation, so it was linked to that section rather than restated there.
The question actually asked could not be answered, and the page says so. "How many wrongful death cases are filed in Florida each year" was chased to its source and the number does not exist: OSCA's seven circuit civil categories do not include wrongful death — verified rather than assumed, the words "wrongful" and "death" occur zero times in the entire 28-page chapter. That became the second H3 rather than a reason to drop the section, and the closing paragraph tells readers to be wary of any firm quoting a Florida wrongful death case count or average settlement, because the state publishes neither. The downward trend was included even though a rising number would have been the more persuasive figure to print.
A caution worth recording: web search returned 3,184 and 2,930 as the Florida 2024 traffic fatality total, from two different law-firm blogs. Both are wrong. The FLHSMV report says 3,098. Every figure except the BLS one was downloaded and parsed from the source document. The report also distinguishes "Motorcycle Fatalities" 598 from "Motorcyclist Fatalities" 575 — picking the wrong one would have been an easy silent error. BLS 403s this environment — one figure still second-hand
3 · "How Do I Know If I Have a Wrongful Death Case?" — built at the client's direction NEW
Three H3s. The four questions that decide it — an ordered test tied to 768.19, 768.18(1) and the deadline, each stated as something a family can answer about themselves. What can stop a claim that otherwise looks strong — the genuinely new part: the deadline passed; the deceased more than 50% at fault under 768.81; a medical negligence death where the survivors are adult children or the parents of an adult child, where 768.21(8) bars what is usually most of the case; and no insurance and no assets — a valid claim against someone with nothing to pay it may not be worth bringing. That last item is deliberately unflattering to the firm's own interest and is the most useful sentence in the section. The seven steps, each one sentence plus an anchor to the section holding the detail. No law is restated in the steps — they route.
This supersedes a reduced "six steps" checklist built an hour earlier, which was absorbed rather than left alongside. See the corrections section for why the argument against building the full section was wrong.
4 · "Boating and Drowning Deaths" — a dedicated H3 where there was nothing at all NEW
The clearest content gap on the page: miami drowning death attorney was drawing 32 impressions at position 17.75 on zero supporting content — "drowning" appeared 0 times and "boating" once. Built on the U.S. Coast Guard 2024 Recreational Boating Statistics (COMDTPUB P16754.38, Table 32): 75 boating deaths in Florida in 2024 of 556 nationwide — more than California (45) and Texas (27) combined, about 13% of all US boating deaths from one state.
How the figure was obtained matters for trust: myfwc.com returned HTTP 500 on two separate pages, so the state agency could not be the numeric source. The Coast Guard PDF was downloaded and parsed directly rather than quoted from a secondary source. FWC is cited in the Razor comment only for the general pattern it states in prose, not for any number. A Miami-Dade county figure was sought and not obtained, so no county-level claim is made. No statute is cited in this H3 — Florida boating law sits in chapter 327 and nothing in it was verified for this purpose, so nothing is asserted.
5 · Workplace Accidents H3 rewritten — 52 words → 156, on a position-5.98 query EXPANDED
miami workplace death lawyer was ranking at position 5.98 with 134 impressions, and the phrase "workplace death" appeared zero times in the article. The old copy said only that "some cases involve workers' compensation issues" — gesturing at the rule rather than stating it.
Now built on Fla. Stat. § 440.11(1), verified verbatim: workers' compensation is the exclusive remedy, and the statute expressly names the survivors — "husband or wife, parents, dependents, next of kin" — so the bar reaches the wrongful death claim itself, not merely the worker's own claim. The family usually cannot sue the employer at all. That single fact reframes the section: it explains why identifying a third-party defendant is the case rather than an afterthought.
Deliberate limit on the exception: the copy says narrow exceptions exist, including conduct an employer knew was virtually certain to cause injury or death, and that it is worth asking about early. It does not state the legal test and does not cite a subsection, because that rests on 440.11(1)(b) plus case law not verified for this edit. Saying an exception exists is accurate; stating its elements without checking them would not be.
6 · The deadline section rebuilt as the page's single consolidated reference, with a table RESTRUCTURED
General wrongful death 2 years (95.11(5)(e)) · medical negligence 2 years from incident or discovery with an absolute 4-year repose (95.11(5)(c)) · murder or manslaughter, no deadline at all (95.11(11)) · government defendants, the 768.28 notice period. One place on the page a reader — or an answer engine — can go for the whole clock structure.
7 · Table of contents restyled to the house pattern FIXED
The bare <ol> that opened the article became the boxed, labelled navigation panel already in use on product-liability-attorney-miami — markup copied verbatim so the two pages cannot drift. The page now carries four ordered lists (TOC, the four-question test, the seven steps, the four elements) and an unlabelled one at the top was visually indistinguishable from the body lists. <nav aria-label="Table of contents"> is also a proper landmark, giving screen reader users a skip target the page did not expose. All 14 entries, their order and their anchors are unchanged. Not a ranking change, and it is logged as such.
8 · Civil vs criminal — entirely new content the page had never addressed NEW
The claim is civil, not criminal; no arrest, charge or conviction is needed first; prosecutors punish while the family recovers compensation; and the burden is the greater weight of the evidence, not beyond a reasonable doubt. Sourced from the closing clause of § 768.19 itself — the action lies "although death was caused under circumstances constituting a felony" — which is direct statutory authority that the civil claim is independent of any prosecution, plus Fla. Std. Jury Instr. (Civ.) 401.3. GSC shows a criminal-intent query already reaching this URL ("what is the penalty for wrongful death", position 13) with nothing on the page answering it.
B — Duplication Removed (six internal duplications, and this project created most of them)
The pattern, stated once: adding a summary block above a section obliges you to re-read the section
The intro rewrite and the at-a-glance block were added without reconciling the sections beneath them. Within hours that produced: a definition section roughly 90% duplicating the new intro; a "Who Can File" section whose bullet list restated at-a-glance item 2 near-verbatim after "personal representative" had reached six occurrences on one page; and an intro paragraph reciting the exact ten-cause taxonomy the Common Causes section exists to deliver — while promising motorcycle and boating coverage no H3 provided.
All resolved by moving material rather than repeating it. The distinction that decided each fix: a summary block restating a body section is by design — that is what a summary is for. Two body sections doing one job is the defect. The intro's ten-cause list is gone; the taxonomy now lives only in the section that owns it, whose own lead-in previews its H3s — a signpost sitting next to the content it describes, rather than a second competing taxonomy far from it.
Five FAQ-versus-article duplications, in five consecutive passes FIXED
The worst was a 768.81 paragraph written into the insurer-arguments section that ran near-verbatim against FAQ 10 for four consecutive sentences — including the identical worked example, "a one million dollar verdict with 20 percent fault becomes eight hundred thousand". Both were written inside this project, one pass apart. FAQ 8 duplicated the entire five-H3 damages treatment plus the valuation lead-in; FAQ 7 duplicated the liability section; FAQ 6 ran parallel to the deadline section for five consecutive sentences; FAQ 4 duplicated the cost section.
Every one resolved, and not always in the article's favour. The rule this project settled on is "the better treatment keeps the content", not "the article always wins": FAQ 10 was better on comparative fault, so the article was trimmed; the article was better on deadlines and eligibility, so FAQ 6 and FAQ 3 became short surfaces pointing at it. FAQ 3 deliberately kept the causation point — the element these cases are actually lost on, and needed by a reader who only opens the accordion.
All five were found by accident, because the affected article section happened to be the next one opened. A deliberate FAQ-versus-article sweep is still an open item, and the hit rate to date is 100%.
Commercial-term rebalance — prompted by "does this page have too many words" REBALANCED
The three Semrush-paired competitors were fetched and measured with nav, header, footer, script and style stripped: Gallardo 6,415 words · goldbergandrosen 3,283 · injuryattorneyfla 2,673 · floridainjurylawyer 1,652. Verdict on length itself: not a problem. Word count is not a ranking factor, the added material is sourced and non-duplicative, and floridainjurylawyer ranks #4 for the primary on 1,652 words while this URL ranked #9 on 5,011. Length is not the thing to fix.
The real finding was commercial dilution. lawyer/attorney density had fallen to 0.81%, below two of the three competitors, while "wrongful death" sat at 4.18% — the highest of the four. Forty-two statute citations across nineteen statutes had pulled the page toward reading like a legal reference rather than a lawyer's page. Eleven targeted swaps across eight sections, no content added. And the honest qualifier: in absolute terms Gallardo already had more attorney mentions than any competitor — 52 against 38, 21 and 20. The density gap was largely a length artifact. This was a refinement, not the correction of a serious defect.
Internal Linking & Cannibalization — tested across 752 sitemap URLs, every content type
The article linked OUT three times to two destinations in 6,276 words · 0 external authority links before this project
Verdict: this page cannibalizes nothing, and nothing cannibalizes it. An 8-word shingle comparison against every article.cshtml on the site — 6,290 shingles in the base page — returns a maximum overlap with any page of 3 shingles, 0.07%. Only six pages share even one 8-word sequence and every shared sequence is an unavoidable proper noun ("florida department of highway safety and motor vehicles") or a statutory paraphrase. There is no duplicated prose anywhere on this site. A title and meta scan across all 752 sitemap URLs — 316 service articles, 190 blog posts, 100 professional pages, 85 attorney-video URLs — found exactly two pages carrying commercial wrongful death intent, differentiated by city in the first token. Topic ownership was measured the same way: every owner page wins its own topic, most by a factor of five or more — car accident 0 vs 18, slip and fall 0 vs 57, pedestrian 0 vs 67. This page uses those terms as a cause taxonomy and then routes away, which is the correct relationship. The section expansions did not cause drift.
The actual finding runs the other way — and one term nobody owns
hialeah-wrongful-death-lawyer cannot defend its own keyword. 1,059 words against this page's 6,273; "wrongful death" 9 times against 133; "wrongful death lawyer" 0 times against 9. The risk is not that this page takes Hialeah's traffic — it is that two pages address near-identical intent while one is six times stronger, and Google resolves that by consolidating, usually onto the stronger URL and sometimes by trusting neither. This page is not reaching into Hialeah's term: "hialeah" appears twice here, both inside the single two-office NAP sentence, and "hialeah wrongful death lawyer" appears zero times. The decision not to build an areas-served block is what kept it clean.
"Negligent security" — 1,000/mo, KD 13, with an AI Overview — is owned by nobody. A sitewide grep returns exactly one file containing the phrase: this one. Building that page would not compete with this one; it would take pressure off it. Confirmed from a second direction by the reverse audit. OPEN · CHEAPEST OPPORTUNITY IN THE AUDIT
17 external authority links — and the sourcing was already done 0 → 17
The sharpest finding of the linking pass: the page cited 19 distinct Florida statutes 46 times, plus Estate of McCall, the Coast Guard statistics and the Florida Bar fee guide — all in plain text — while every one of those sources already had a verified URL sitting in the Razor comments of this file, put there by earlier passes. The sourcing work was done. It was simply invisible to readers, to crawlers and to generative engines, because it lived in HTML comments. This pass did not go and find authority; it surfaced authority the page already had.
Fourteen links added across six domains — flsenate.gov, flhsmv.gov, flcourts.gov, bls.gov, uscgboating.org, floridabar.org — roughly one per 370 words. First substantive mention only, never every mention: § 768.21 is cited eleven times and linked once; verified zero duplicate URLs across all 17. Anchor text is the citation itself, which is descriptive by nature and needs no contrivance — the opposite of the forced anchors this project removed from the body. No nofollow on any of the 17: these are editorial citations to government and Bar sources, and nofollow would discard the only thing that makes them worth having.
The link that broke its own sentence — a fee claim that misattributed the Bar REAL DEFECT FIXED
Was: "The Bar's own consumer guide puts the maximums at 33⅓% to 40% of any recovery up to $1 million, 20% to 30% of any portion between $1 million and $2 million, and 15% to 20% of anything above $2 million."
The guide states no such ranges. Verified verbatim: 33⅓% up to $1 million before an answer, 40% after an answer, "up to 30 percent" between $1m and $2m, "up to 20 percent" above $2m. The 20% and 15% floors come from other tiers of Rule 4-1.5(f)(4)(B), not from the guide — so the sentence attributed to the Bar something it does not say. Adding the link forced the check, and the sentence did not survive it. This closed an item that had been parked for weeks awaiting "a parseable source".
11 outbound internal links to 10 destinations — zero words added 3 → 11
Cause H3Anchor (already in the copy)Destination
Fatal Car AccidentsCar accidentsmiami-car-accident-attorney
Truck AccidentsTruck accidentstruck-accident-attorney-miami
Medical MalpracticeMedical malpracticemiami-medical-malpractice-attorney
Workplace Accidentsconstructionconstruction-accident-lawyer-in-miami
Workplace Accidentsworkers' compensationmiami-workers-compensation-lawyer
Unsafe Propertyfatal fallsslip-and-fall-attorney-miami
Boating and DrowningBoating casesmiami-boating-accident-attorney
Boating and Drowningunsecured swimming poolsmiami-pool-accident-attorney
Defective Products / Medical Malpracticealready linked — 3 links, unchanged
Every anchor wraps words already in the copy. Not one sentence was written to host a link — rendered page words moved 8,322 → 8,325, and the +3 is whitespace from tag-stripping around the new anchors. This is the same discipline that removed five forced long-tail phrases from the body: a sentence written to carry an anchor is the same defect wearing a different hat. Two placements worth recording: workers' comp sits on the sentence telling the family they usually cannot sue the employer, because that is exactly where the family goes instead; boating went in the third paragraph so the Coast Guard statistic sentence keeps a single link rather than two competing ones.
A dead page found by verifying targets first SITE DEFECT
All nine candidate destinations were fetched before any link was written. Eight returned 200 with the expected title. One did not: /injury-law/miami-commercial-vehicle-accident-lawyerHTTP 404. The folder exists under Views with both En and Es articles, and it is in sitemap.xml, but its ServiceEntities.xml record is commented out, so the route is never registered. The H3 is titled "Truck and Commercial Vehicle Accidents" and only the truck half could be linked.
Second time in two passes that fetching a target rather than trusting it prevented a defect — the external pass caught Chapter 768 Part II being Damages rather than the Wrongful Death Act, and a Florida Bar URL that turned out to be a landlord-tenant pamphlet. A link is the one edit that can be wrong in a way the page itself cannot show you.
14 contextual inbound links — from 11 other pages, home page excluded at the client's instruction 3 → 14
Source pageAnchor text
personal-injury-lawyer-in-florida (hub)Wrongful death actions
miami-medical-malpractice-attorneywrongful death
truck-accident-attorney-miamiwrongful death claims
hialeah-wrongful-death-lawyerwrongful death lawsuit
miami-hit-and-run-accident-lawyerwrongful death claim
construction-accident-lawyer-in-miamiwrongful death claim
miami-bicycle-accident-attorneywrongful death claim
miami-birth-injury-lawyerwrongful death lawsuit
miami-cruise-ship-injury-attorneywrongful death
miami-pedestrian-accident-attorneywrongful death claim
blog: fiu-bridge-collapse-recordswrongful death lawsuit
A correction that came with this pass: an earlier entry said fourteen pages "do not link to the page". Measured on article.cshtml — editorial links — that was correct. It was not the whole picture: every one of those pages already carried a link to this page with the anchor "Wrongful Death", twice over, from a sitewide template practice-area widget. The distinction still justifies the work — a boilerplate menu link repeated on hundreds of pages with identical anchor text carries almost no topical signal, while a link inside a sentence about a fatal accident type is a different asset — but the entry should have said "no contextual link", and the count of pages with zero links of any kind was never zero.
Honest ceiling: internal links redistribute authority the domain already has; they do not create it. Moving position 8–11 into the top 5 on competitive Miami legal terms is driven mainly by external authority. What this does is stop the site's existing authority flowing past the page. Necessary, not sufficient. Re-pull GSC 4–6 weeks after deploy; earlier than that is crawl noise, and nothing is deployed yet.
Structured Data Added — brought to parity with the three other worked-on pages
The page emitted one JSON-LD block — the skin's site-wide LegalService, present on every service page. All three page-specific nodes were missing. This page had more citations, more statistics and more links than product-liability-attorney-miami, miami-surgical-errors-attorney and miami-brain-injury-lawyer, and less structured data than all three. It now emits four. The FAQPage/Question/Answer microdata the skin already rendered — 10 questions, identical to the other three pages — was left untouched.
Schema 1
BreadcrumbList
Fields — 3 items
position 1Home
position 2Personal Injury hub
position 3Miami Wrongful Death Lawyer
Advantages
  • Breadcrumb rich result; explicit site-hierarchy signal
  • Position 2 points at personal-injury-lawyer-in-florida because the bare /injury-law path 404s — the product liability page originally shipped the broken version and records it as a fix
  • All three target URLs fetched independently: 200, 200, 200. Never point a breadcrumb at a 404
Schema 2
WebPage + Speakable
Fields
@typeWebPage
speakable#wd-intro · #wd-definition
Advantages
  • #wd-intro is the paragraph carrying the definition, the Act citation and the two-year deadline
  • #wd-definition is the 768.19 right-of-action test — both are answer-shaped passages, which is what speakable is for
  • Held to two selectors on purpose; the IDs were added in the same pass to host them
  • Voice / GEO signal; the rich result itself is limited to news publishers, stated honestly
Schema 3
Service
Fields
serviceTypeWrongful Death Law
alternateName4 demand-weighted variants across the lawyer and attorney families
areaServed4 entries, including State: Florida
hasOfferCatalog7 offers — one per cause H3, matching the taxonomy the internal links follow
providerreferences #organization — one entity graph, not four loose nodes
Advantages
  • Carries the lawyer / attorney naming variants the prose cannot repeat naturally
  • One deliberate deviation from house format: State: Florida in areaServed, because the copy now asserts statewide representation and the structured data should assert what the copy asserts
  • No new claim is made — every offer maps to an existing cause H3
  • No priceRange on any Offer: the skin already emits one site-wide, and a second fee representation on a contingency practice compounds Rule 4-7 exposure
Not added
FAQPage — already emitted as microdata
ServicePageSkin.cshtml already renders this page's FAQs inside containers carrying itemtype="schema.org/FAQPage" microdata — 10 Question items, verified after every pass
A hand-rolled FAQPage node would have duplicated it
!And it would produce no rich result either way — Google retired FAQ rich results on 7 May 2026. The markup still feeds AI Overviews as one signal
Cluster finding
Four pages have schema. Fifty-four probably do not.
  • product-liability-attorney-miami · miami-surgical-errors-attorney · miami-brain-injury-lawyer · miami-wrongful-death-lawyer — 4 blocks each
  • The other 54 injury-law pages almost certainly have one block, as this one did. Only the four worked-on pages were measured. A sitewide count is cheap and the three-node pattern is now proven four times
  • The Spanish counterpart has no page-specific schema at all
  • author / reviewedBy (E-E-A-T byline) is NOT added — the firm must name the reviewing attorney first. On a legal page about death this is the highest-value item still open
Verification hazard
A 7-day output cache nearly produced a false negative
  • After applying the schema the page fetched at exactly the same byte size as before, with zero occurrences of "BreadcrumbList". The file on disk was correct. Two consecutive fetches returned identical stale HTML
  • Cause: [DonutOutputCache(Duration = 3600*24*7, VaryByHeader = "User-Agent")]. curl sends a constant User-Agent, so every fetch hit the same entry. The edit had been live the whole time
  • Double-fetching does not defeat an output cache — both requests hit the same entry. Vary the User-Agent instead. Every verification since has done so
  • Operational, for the firm: a content deploy that does not restart the app can serve stale pages for up to a week
The FAQ block — all 10 rewritten, renamed or new; 416 → 1,390 words
Three new, each targeting demand the page could not serve: "What determines the value of a wrongful death settlement?" (split out of the cost question, and it carries the 768.21(8) restriction and 768.21(6) prospective net accumulations) · "Do I need a wrongful death lawyer near me?" (the 26,440/mo Transactional cluster, plus the first mention of the Hialeah office) · "What if my loved one was partly at fault for the accident?" (the 768.81 bar, with the worked example, written before the article had it).
One question renamed on evidence. "Do I have a legitimate wrongful death lawsuit?" appeared in none of the 268 queries this URL surfaces for — it was invented copy, not demand-driven. The eligibility intent behind it is the highest-converting question a wrongful death page can answer, so the intent was kept and the wording re-pointed at "How do I know if I have a Miami wrongful death case?" — 224 impressions at position 6.2. The old answer was 52 words of filler ("the law is different for each state… you should talk with a lawyer"); it is now a four-part test plus the causation point.
Variant rotation was deliberate across the set — FAQ 1 takes "Miami wrongful death attorney", FAQ 2 the singular primary "Miami wrongful death lawyer", FAQ 3 the plural "Miami wrongful death lawyers". Three phrasings, no repetition, covering both families that split the demand almost evenly. Before this pass no FAQ contained the primary keyword at all.
The block is at the template ceiling. ServicePageSkin.cshtml renders Model.FAQs.Take(10) at two separate lines; entries past the tenth do not render and never reach the schema. With 10 entries, no further FAQ can be added here. A site-wide finding fell out of checking that: 36 service pages already exceed the cap and are losing FAQ content that is already written — alimony-in-miami has 17 (7 lost), and nine pages have 15 (5 lost each). Raising the number is a one-line change in two places and would surface content the site already paid for.
Metadata & Proofreading
The metas were the highest-value on-page item from day one, and twenty-one passes of body work went ahead of them. Ranking was never the constraint on this URL — the listing is seen and not clicked. The metas are the only element that speaks to that, and they took one pass.
En/articlemetas.cshtml  ·  En/article.cshtml  ·  App_Data/FaqEntities.xml
1 · Title and description rewritten FIXED
Was: "Miami Wrongful Death Lawyer | Fatal Injury Claims | Gallardo Law Firm" (69 chars)  ·  "Lost a loved one due to negligence? Our Miami wrongful death lawyers help families pursue compensation after fatal accidents. Contact Gallardo Law Firm today." (158 chars) — the plural primary, and zero instances of "attorney" in any meta tag on the page.
Now: "Miami Wrongful Death Lawyer & Attorney | Gallardo Law Firm" (58 chars)  ·  "Lost a loved one to negligence? Most Florida wrongful death claims must be filed within two years. Free consultation with a Miami wrongful death attorney." (154 chars). Both head terms now present; 58 characters sits inside the display limit where 69 risked truncating the brand. On a SERP where every competing snippet promises compensation and a free consultation, a concrete fact is what earns the click — nothing else on page one says a number.
Two things deliberately not done. It says "most Florida wrongful death claims", not "you have two years": a flat statement would be misleading under Rule 4-7.13 and would cause exactly the harm the deadline section was written to prevent — a family with no deadline under 95.11(11), or a different clock under 95.11(5)(c), reading the snippet and concluding they are out of time. One word is the difference between a hook and a page that turns away the clients it should help. And no fee claim: "no fee unless we win" is the strongest hook available and was rejected, because the compliant form of it on this page must also disclose that case costs are contingent, and that disclosure does not fit in 155 characters.
2 · The share image never worked — for years REAL DEFECT FIXED
og:image and twitter:image were relative paths. Open Graph requires absolute URLs — Facebook, LinkedIn, WhatsApp and Slack all ignore a relative one, so every share of this page has rendered as a bare text link. Now absolute, and repointed from the 375×211 thumbnail to the 903×530 asset that already existed (verified HTTP 200, image/jpeg, 50,014 bytes, and the dimensions read out of the JPEG header rather than trusted from the folder name). twitter:card summarysummary_large_image. og:locale:alternate added to agree with the hreflang the skin emits.
These matter more than they look on this page specifically: a wrongful death page circulates by one family member sending it to another. That is the exact path the broken image sits on. The defect is almost certainly site-wide — cheap to grep across every articlemetas.cshtml.
3 · hreflang deliberately NOT added preventing a future defect
ServicePageSkin.cshtml already emits both tags, generated from the page's own URLs — verified on the rendered page: exactly two, en-us and es-us, pointing at the right slugs. Hardcoding a copy would emit four and would rot silently if a slug ever changed. Same decision as the product liability page. Recorded in the file so nobody adds it back.
4 · Four legacy meta blocks removed REMOVED
page-topic, page-type, an old description and a keywords tag — all already commented out, none live. The keywords meta has been ignored by Google since 2009 and page-topic/page-type were never standards. Their full text is preserved in the change log in case anyone wants them back.
5 · Three real language errors that survived twenty-two content passes FIXED
"practise" → "practice" in the Duty of Care H3: "the expert who testifies to it must ordinarily practise in the same specialty as the defendant." Practise is not a word in American English — practice is both noun and verb. The same sentence had used "good practice" correctly eleven words earlier, so the page contradicted itself inside one sentence, in the section about medical malpractice experts.
"recognised" → "recognized", and "had" → "has" in the 768.18(1) survivors paraphrase — British spelling and a tense that does not match the statute, which reads "unless the father has recognized a responsibility for the child's support". The page is close-paraphrasing a statute; it should not silently shift the tense. Plus "recognises" → "recognizes" in the intro, where the same page quotes 766.102 as "recognized" — spelling one word two ways in two sections.
These survived because every check run on this page measured keywords, never spelling. A term-count script cannot see that "practise" is wrong; it is not in any keyword list.
6 · Punctuation and typography FIXED
Five of the seven step-list items ran off with no terminal punctuation, each ending on a cross-reference link. Items 1 and 3 only looked correct because the section titles they link to happen to end in a question mark. Verified by parsing the rendered list, which required splitting on <li> rather than matching </li>, because the minifier drops the optional closing tag. Plus one straight apostrophe in live copy (introduced by this project) and nine typographic fixes across the FAQ records — eight straight apostrophes and one bare hyphen where the page uses em dashes 52 times. No wording was changed in any FAQ; character substitutions only.
7 · What the automated pass found, and what it missed
Heuristics ran across the whole rendered page — doubled words, space before punctuation, double punctuation, missing space after a full stop, sentences opening lower-case, unclosed parentheses, stray entities, "a" before a vowel. Two hits, both false positives: "Florida Florida" (an H2 ending in "Florida" followed by a paragraph opening with it) and "a one" ("a one million dollar verdict" — correct). The automated pass found none of the three real errors. Reading the body end to end is what found them, and the five missing full stops. Heuristics catch mechanical damage; reading catches language.
The Hero Video Does Not Play — and it is not this page, and not the video file
Reported as "the video has issues getting played" on this page. Three causes were found, all real, and two of them break every lightbox on the entire site. The asset itself is in perfect health: HTTP 200, video/mp4, 10.3 MB through Cloudflare; byte-range streaming supported (a 0-65535 request returns 206 with exactly 65,536 bytes); the MP4 atom table parsed directly shows moov before mdat, so the file is faststart-optimised — the prime suspect for a 2019-vintage mp4, and innocent. H.264 + AAC. Both poster images 200.
bundleconfig.json  ·  Views/Shared/GlobalStyles.cshtml  ·  assets/css/magnific-popup.css  ·  assets/js/script.js  ·  main.min.css  ·  main.min.js
Cause 1 · The plugin's JavaScript ships; its stylesheet does not SITE-WIDE FIXED
The theme initialises Magnific Popup on .lightbox-video, and main.min.js contains the plugin (v1.1.0, 26 references). magnific-popup.css exists on disk — 6,951 bytes, 99 mfp- rules — and was not one of the sixteen inputs to main.min.css. The served bundle contains zero occurrences of "mfp-", and so does priority.min.css; no <link> to it exists on any page.
At runtime the plugin injects .mfp-bg / .mfp-wrap / .mfp-container / .mfp-iframe-scaler into <body> and relies entirely on CSS to position them. With no rules, .mfp-wrap is a static block appended after the footer and the iframe falls back to the HTML default 300×150. The popup does open — roughly eight thousand pixels down the page, at thumbnail size. To the visitor, clicking play does nothing.
Not a recent regression. main.min.css was checked at twelve points in its history, including a commit titled "Retauring main.min.css file" — zero mfp- rules in every one. The stylesheet was never bundled. Blast radius: .lightbox-video appears 27 times across 21 view files, two of them skins — every service page with a hero video and every attorney profile page — plus the home page in both languages and 16 landing pages. .lightbox-image is initialised by the same missing stylesheet, so every image gallery lightbox on the site is broken too.
Cause 2 · The dev environment does not load the bundle that was repaired THE FIRST FIX MISSED IT FIXED
A correction to this project's own work. The first pass concluded the stylesheet was never bundled into main.min.css. That was correct, and it is a genuine production bug — but it changed nothing for the user, for a reason that pass never checked: Views/Shared/GlobalStyles.cshtml splits on environment. Development loads eighteen individual stylesheets; everything else loads the two bundles. The user is on localhost, so the page never touches the bundle that was repaired — and magnific-popup.css was missing from the Development list too. The same omission, in a second place. GlobalScripts.cshtml has the mirror-image split and does load the plugin JS in Development, which is why it was running with no styles in both environments.
Cause 3 · A self-hosted MP4 handed to type:'iframe' FIXED
The only URL pattern configured was YouTube, so an .mp4 href fell through and Magnific dropped the raw file URL into <iframe src="….mp4">. The browser then renders its own media-viewer document inside the frame: the poster frame is lost and the panel opens black, autoplay is blocked because the iframe carries no allow="autoplay", the controls are the browser's rather than the site's, and behaviour differs per browser and is unreliable on iOS. Ruled out as a cause of hard failure — the mp4 sends no X-Frame-Options and no CSP — but it is the wrong mechanism for a file the site hosts itself.
Replaced with a branch on the href: video extensions open a real <video controls autoplay playsinline preload="metadata"> through an inline popup, reusing the on-screen thumbnail as the poster; anything else keeps the original iframe config untouched, so YouTube links behave exactly as before. A close callback pauses the element and clears its src — without it the audio keeps playing after the overlay closes. Autoplay succeeds here because the open happens inside the click's user activation, which is precisely what the iframe route threw away. Also: the theme passes mainClass:'mfp-fade' and stock magnific-popup.css does not define that class — the page was requesting an animation that never existed. Added to the source stylesheet.
The fix was applied to source AND build, so they cannot drift apart again
Six files: bundleconfig.json (magnific-popup.css added as the 17th input) · GlobalStyles.cshtml (added to the Development list, kept last to match the bundle's cascade order) · magnific-popup.css (the .mfp-fade and inline-video rules, in the source so a rebuild preserves them) · script.js (the branch) · main.min.css and main.min.js (rebuilt, not appended to twice). Running the bundler regenerates both .min files from the same inputs and produces the same result; not running it still ships a working site.
Integrity was verified rather than assumed. main.min.js diffed against the pre-edit backup: exactly one contiguous change, 242 chars removed and 1,049 added, with a 772,443-char common prefix and 29,281-char common suffix, and bracket deltas matching exactly in all three pairs. main.min.css: 583,204 bytes, braces 7034/7034 balanced, 121 mfp- rules, previous final rule intact. Syntax checked with Windows Script Host rather than eyeballed — the new block fails only on trailing commas, which are ES5-legal, and the original block fails at the same place for the same reason.
What is still not proven: no browser was driven — neither node nor Playwright is available here — so every statement above is about what the server sends, not what happens on click. The three defects were real and all are fixed, but "the video plays" remains an inference. A hard refresh settles it in seconds. Backups of all four modified assets are kept.
Corrections — Findings That Were Wrong And Were Fixed
The recurring failure shape: a check ran, it passed, and the pass was reported as if it answered the broader question. Recorded in full rather than quietly amended, because the pattern recurs otherwise — and because two of these were caught by the client rather than by us.
1 · "REGRESSIONS: NONE" was true as stated and much narrower than it sounded MOST IMPORTANT CORRECTED
Every pass from 4.28 to 4.51 reported "REGRESSIONS: NONE". That was measured against the 97-term list in the verification script, not against the 140-row master table. Only 52 of the 140 tracked keywords were in that list; 88 were never checked per-pass. Rebuilding the table found seventeen terms that fell, thirteen of them invisible to every per-pass check run all session.
The claims were literally true and too narrow to mean what they sounded like. The verification list should be regenerated FROM the master table, not maintained beside it — that is the fix, and it is logged as an open item. This report's keyword tables are the rebuilt measurement, not the per-pass one.
2 · The argument against building the eligibility section was circular CORRECTED
A reduced checklist was recommended instead of a full "how do I know if I have a case" section, partly on the grounds that procedural queries draw only four impressions on this URL.
That reasoning was circular and should not have been relied on. Search Console only reports queries for which the URL already surfaced. A page that does not cover a topic cannot earn impressions for that topic — so an absence of impressions is often evidence of the gap itself, not of absent demand. The same trap would have argued against the boating H3, which was built on exactly that reasoning going the other way. An external check run after the client pushed back: FindLaw publishes a dedicated "How To File a Wrongful Death Lawsuit" guide, and five competitor firms run dedicated pages of the same kind. The client's read was better than the data reading, and the reasoning error matters more than the outcome.
3 · A live typo, in bold, introduced by an earlier pass in this project FIXED
The Who Can File section read, in bold: "One definities by surprise." It should have read "One definition catches families by surprise." It was introduced by this project's own article pass and it was live.
Why the verification missed it: that pass checked whether the 768.18(2) content was present. It searched for the statutory substance — "minor children", "under 25" — found it, and passed. It never checked whether the sentence introducing that content was English. Presence testing is not proofreading.
4 · A metric that under-reported silently, twice in two passes FIXED
The "statute citations in the body" count used an allow-list pattern. Adding Chapter 766 and 733 broke it once; it was widened. The very next pass added Fla. Stat. 440.11, chapter 440 was not in the widened pattern either, and the measurement reported "23 → 23" — no increase after a new statute had just been added to the page.
Pattern now covers chapters 768, 766, 733, 440, 327 and 95. An allow-list metric under-reports every time the work moves outside the list, and it fails in the flattering direction — it never overstates, so it never looks wrong. It was caught only because a zero delta was implausible. Any future entry adding a new chapter must widen the pattern in the same commit.
5 · The attorney-vs-lawyer skew was overstated CORRECTED
Early findings described the page as using "lawyer" about 3.6× more than "attorney" (36 vs 10). Those were sums of the on-page column across every keyword row containing each word — and because longer phrases are counted inside shorter ones, that double-counts. Raw word counts: attorney family 17, lawyer family 28 — a 1.6× skew, not 3.6×. The skew is real and was still worth correcting, especially in the metas which contained zero "attorney", but it was never as severe as first stated. The underlying demand figures (157,290/mo attorney-form vs 190,670/mo lawyer-form) are unaffected.
6 · A keyword removed for good reasons, then recovered in grammatical English RECOVERED
"wrongful death attorney Miami" — 1,392 impressions, position 10.3, RANK 8 — was deleted along with the ungrammatical sentence hosting it, and the entry recording that deletion flagged it as the one item that could be wrong.
Recovered in the CTA as a reduced relative clause: "Every first conversation is with a wrongful death attorney Miami families can meet in person." That is ordinary English — an attorney whom Miami families can meet — and it is factual, because the firm has Miami and Hialeah offices. The verb was chosen carefully: "an attorney Miami families trust" or "choose first" would carry the same keyword and would be an unsubstantiated comparison under Rule 4-7.13(b)(2). "Can meet in person" states a fact the firm can prove.
The other one was declined, with reasons. "lawyer wrongful death case" — highest CPC in the table at $174.40, position 3.84 — cannot be written grammatically. Every construction either breaks the contiguity the count requires or breaks the English. It is a search query, not a phrase: it is how people type, not how anyone writes. And the page does not need it — four terms this URL ranks well for (wrongful death legal attorney at 2.7, attorney wrongful death at 5.7, accidental death lawyers at 3.9, wrongful death attorney miami fl at RANK 7) appear as exact strings zero times. Modern retrieval does not require contiguity, and the evidence for that is sitting in this page's own data.
Verification traps worth carrying forward
Stale renders and caches. A schema edit fetched at exactly the pre-edit byte size with the new markup absent, twice in a row — a seven-day output cache keyed on User-Agent. Double-fetching does not defeat it; both requests hit the same entry. Vary the User-Agent. Wrong environment. A CSS fix was applied to the production bundle while the user was on a dev server that never loads it. Check which asset list the environment actually uses before concluding a fix did not work. Blocked sources. bls.gov returns 403 to this environment on every path; myfwc.com returned 500. Neither is a dead source — but a figure that cannot be fetched should be marked as second-hand rather than presented like the ones that were parsed from the PDF.
Status — Done vs Still Open
miami-wrongful-death-lawyer (En)  ·  every content item PENDING ATTORNEY REVIEW  ·  NOTHING COMMITTED OR DEPLOYED
✓ Done (applied to working tree)
  • All 11 legal-accuracy findings closed — free kill, who files, no-deadline murder/manslaughter rule, med-mal clock and repose, 51% bar and its carve-out, under-25, spouse damages, FAQ cost/value, "the victim", statute subsections, "best" removed
  • Article body 1,968 → 6,311 words (+221%); total indexable 2,517 → 7,836 (+211%)
  • All 12 original H2 sections audited and revised in sequence, plus 3 new sections; H2 11 → 14, H3 ~24 → 36
  • All 10 English FAQs rewritten, renamed or new; 416 → 1,390 words; primary keyword now present (it was in none)
  • 140-keyword master table rebuilt from GSC + Semrush; occurrences 504 → 900 (+79%)
  • Statute citations 1 → 46 across 19 distinct statutes; 22 agency statistics where the page had 1
  • BreadcrumbList + WebPage/Speakable + Service JSON-LD (was LegalService only); all four parse with a real JSON parser, breadcrumb targets fetched 200/200/200
  • External authority links 0 → 17 across six .gov / Bar domains; every target fetched before linking; zero nofollow, zero duplicate URLs
  • Internal links out 3 → 11 (2 → 10 destinations), contextual inbound 3 → 14 from 11 pages — zero words added to host any anchor
  • Metas rewritten: "attorney" 0 → 2, deadline hook added, absolute og/twitter images, 903×530 asset, summary_large_image, legacy blocks stripped
  • Six internal duplications removed, five of them FAQ-vs-article and most created inside this project
  • Cannibalization cleared two ways: 0.07% max shingle overlap sitewide, and only two pages carry wrongful death commercial intent
  • Proofread end to end: 3 real language errors, 5 missing full stops, 10 typographic fixes
  • Hero video: three real causes found and fixed — unbundled stylesheet (site-wide), missing from the Development asset list, and an mp4 handed to an iframe