SleekRank for public defender directories
Feed SleekRank a sheet of public defender offices and assistant defenders with county, division (felony, misdemeanor, juvenile, appellate), and bar number. It builds a clean WordPress page per office plus per-division and per-county URLs from one base template.
€50 off for the first 100 lifetime licenses!
Defendants and families search by county first
Public defender search is almost entirely county-level. "Public defender Cook County", "juvenile public defender Maricopa", "appellate public defender King County", "misdemeanor public defender office Harris". A defendant's family searching for help wants the office that covers their county and the division that matches the charge. A single archive page cannot rank for the combinatorial space of county-plus-division.
SleekRank reads the existing roster of offices, divisions, and assistant defenders and uses one base WordPress page as the template. Each row becomes a unique URL with the office's intake number, hours, division leads, jurisdiction, and eligibility rules mapped into the page. Add an office when a new county joins the system, remove a row when reorganization happens, and the directory updates from one source.
Combinations come for free. A URL pattern like /public-defenders/{state}/{county}/{division}/ generates /public-defenders/illinois/cook/juvenile/ from the same data. The office pages, division hubs, and county pages all draw from the same sheet.
Workflow
From PD roster to indexable directory
Build the office template
Maintain the roster sheet
Wire mappings
Generate combinations
Data in, pages out
Public defender roster, one page per office
| slug | office | county | division | chiefDefender |
|---|---|---|---|---|
| cook-county-il-felony | Cook County PD - Felony | Cook, IL | Felony | Maria Velazquez |
| maricopa-az-juvenile | Maricopa County PD - Juvenile | Maricopa, AZ | Juvenile | Tom Hashimoto |
| king-county-wa-appellate | King County PD - Appellate | King, WA | Appellate | Anika Patel |
| harris-county-tx-misdemeanor | Harris County PD - Misdemeanor | Harris, TX | Misdemeanor | Devon Brooks |
| los-angeles-ca-mental-health | LA County PD - Mental Health | Los Angeles, CA | Mental health court | Sara Ahn |
/public-defenders/{slug}/
- /public-defenders/cook-county-il-felony/
- /public-defenders/maricopa-az-juvenile/
- /public-defenders/king-county-wa-appellate/
- /public-defenders/harris-county-tx-misdemeanor/
- /public-defenders/los-angeles-ca-mental-health/
Comparison
Manual office pages vs. data-driven directory
Manual pages or static county list
- Every new office or division means another hand-built WordPress page
- Reorganization leaves stale division leads on county pages
- Static lists fail to rank for county-plus-division queries
- Eligibility rule changes don't propagate to every county page
- Custom code locks the directory to one theme
- Adding a new specialty court requires a developer ticket
SleekRank
- One page per office and division generated from a single sheet
- Per county and per division URLs from the same data
- Update the sheet, the pages update on the next cache flush
- Works with whatever theme or builder the state association uses
- Sitemap support so every office page gets crawled
- Pair with SleekPixel for an OG image per office
Features
What SleekRank gives you for public defender directories
Page per office
Each row becomes a unique WordPress URL with the office's address, intake number, hours, division leads, and eligibility rules mapped in. The page accrues authority for the office name.
Per division pages
Felony, misdemeanor, juvenile, appellate, mental health court: each division gets its own indexable hub fed from the roster, with the assistant defenders assigned to that division surfaced.
Per county hubs
Build /public-defenders/illinois/cook/ and /public-defenders/texas/harris/ as their own indexable hubs. List mappings render the divisions and lead attorneys per county.
Use cases
Who builds public defender directories with SleekRank
State PD associations
State public defender associations publish member-office directories sourced from the membership database via a REST endpoint. Office and division changes flow from the source of truth.
County PD offices
Large county systems publish division-level directories so defendants and families can find the right intake number quickly. Internal reorganization updates the directory from one sheet.
Defender training organizations
Statewide and national training organizations publish member-attorney directories by jurisdiction, division, and specialty. Membership rolls drive the directory without per-attorney page builds.
The bigger picture
Why public defender directories live at the county level
Public defender search is some of the most time-pressured intent on the web. A defendant has 48 hours before arraignment; a family has hours to find the office that covers their county. "Public defender Cook County", "juvenile public defender Maricopa", "appellate public defender King County".
A single archive page filtered by query string cannot rank for hundreds of county-plus-division queries because Google ranks pages, not parameters, and the specific combination is what families type at 11pm. Most directory plugins solve the wrong problem by letting users filter without giving Google an indexable URL per filter combination. SleekRank inverts that: every meaningful state-plus-county-plus-division is a real WordPress page with its own H1, schema, and content.
The roster sheet is the canonical source, so a new specialty court or division appears in three places (the office page, the division hub, the county hub) the moment the chief clerk adds the row.
Questions
Common questions about SleekRank for public defender directories
Yes. Define a URL pattern like /public-defenders/{state}/{county}/{division}/ and SleekRank builds a page per combination from the sheet. Each combination renders its own H1, division-lead contact, and meta tags, which is what ranks for queries like "juvenile public defender Maricopa".
 Add an eligibility column or link to an eligibility document, and a last_reviewed date. Selector mappings render the eligibility summary on every office page. When the rules change statewide, one sheet update propagates across every county page in that state.
 Yes. Add specialty courts as additional division rows for the relevant county. Each row generates its own page and slots into the county hub. For statewide specialty-court hubs (mental health court state-wide, say), define a page group with /public-defenders/{state}/specialty/{court-type}/ as the URL pattern.
 Update the slug-keeping division rows in the sheet and remove the rows that no longer exist. Set up redirects in your normal WordPress redirects plugin so old division URLs forward to the merged office's page. The sitemap regenerates on the next cache flush.
 Each generated URL is a real WordPress page with full HTML and appears in the sitemap. The base template page is auto-noindexed so it never competes with the generated children. New offices typically index within a few crawls of the sitemap update.
 Yes. SleekRank uses an existing WordPress page as the template, so Bricks, Elementor, Gutenberg, Oxygen, and classic themes all work because rendering happens on the page output. The directory inherits whatever the association's site already looks like.
 Yes. Store the assistant defenders as a JSON array column on the division row, or maintain them in a separate sheet joined by office_id. A list mapping renders the attorney roster on each division page. Internal-only contact info (direct lines, for example) can stay in a separate non-public sheet.
 Yes. Build the form once into the base page using your normal form plugin and inject the office's intake email via a selector mapping into a hidden field. Submissions then route to the right intake coordinator without per-page form configuration.
 Pricing
More than 1000+
happy customers
Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.
Starter
EUR
per year
further 30% launch-discount applied during checkout for existing customers.
- 3 websites
- 1 year of updates
- 1 year of support
Pro
EUR
per year
further 30% launch-discount applied during checkout for existing customers.
- Unlimited websites
- 1 year of updates
- 1 year of support
Lifetime ♾️
Launch Offer
€299
EUR
once
further 30% launch-discount applied during checkout for existing customers.
- Unlimited websites
- Lifetime updates
- Lifetime support
...or get the Bundle Deal
and save €250 🎁
The Bundle (unlimited sites)
Pay once, own it forever
Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.
What’s included
-
SleekAI
-
SleekByte
-
SleekMotion
-
SleekPixel
-
SleekRank
-
SleekView
€749
Continue to checkout