Fast Serve AZ — site-wide SEO audit
Date: 5 November 2026 · Scope: every routed URL · Data: Search Console, 90-day window · Site changes made: none
1. Method
| Input | Source |
|---|---|
| Page inventory | Route table, component tree and pages.config — not the sitemap |
| Titles, descriptions, H1/H2/H3 | Read from the components that actually render |
| Performance | Search Console page and page+query exports, 90 days |
| Internal links | Static scan of src/ for internal hrefs and Link targets |
Two measurement corrections were applied during the audit, and both changed the conclusions:
- Section counts originally read each page's own file only. Pages here are assembled from section components, so the homepage scored zero H2s and
/processservingscored one. Counting the imported component tree gives 9 and 7. Only two pages are genuinely thin. - Duplicate URLs in the query data appeared as pages competing with themselves (same path, different capitalisation). Merged before analysis.
County and city pages are reached through the countyPath() / cityPath() registry helpers rather than literal hrefs, so they are excluded from orphan counts — they are linked, just not statically.
2. Inventory
299 routed URLs. 221 indexable.
| Category | Count | |---|---| | Process-serving educational resource | 67 | | Legal procedure article | 62 | | Justice court guide | 52 | | Submarket page (city district) | 25 | | Service landing page | 24 | | City page (canonical) | 23 | | County page (canonical) | 15 | | Regional service page, filing, court hubs and others | 31 | | All routed URLs | 299 |
Outside the indexable set, and deliberately untouched this cycle:
- 27 submarket pages held behind the review toggle
- 47 routed-but-unregistered paths
- 4 excluded (private intake and admin)
- 3 redirects
Status after analysis: 185 need revision, 40 are sound, 3 are merge candidates, 71 are noindex/held.
3. Baseline, 90 days
| | | |---|---| | Pages with data | 150 | | Impressions | 78,479 | | Clicks | 801 | | CTR | 1.02% |
Average position across the site is strong on informational terms and weak on the commercial head terms (section 7).
4. Titles
85 indexable titles exceed 62 characters; none fall under 35.
| Title length | Pages | Impressions | CTR | |---|---|---|---| | Over 62 | 81 | 24,368 | 1.38% | | 45–62 | 65 | 51,440 | 0.88% | | Under 45 | 4 | 2,671 | 0.37% |
The long titles out-click the compliant ones. That is the opposite of the usual assumption, and it is why this audit does not recommend a bulk trim. Long titles here cluster on long-tail, high-intent legal questions where the full phrase is the query. Length is a proxy for that intent, not the cause of the click.
What is worth doing is narrower: the eight worst offenders are 71–92 characters, where the tail of the title is certainly being cut. Those are rewritten individually in the proposals file. /arizonaevictionjudgmententered at 92 characters is the clearest case.
5. The "Arizona:" title convention
35 titles and 38 H1s use the Arizona: prefix.
| Cohort | Pages | Impressions | CTR |
|---|---|---|---|
| Arizona: prefix | 35 | 23,649 | 1.24% |
| No prefix | 115 | 54,830 | 0.93% |
The convention is performing above the site average and is a recognisable voice. Recommendation: keep it. De-prefixing site-wide would trade a measurable CTR advantage for stylistic uniformity. The only exceptions are the eight prefixed titles that also exceed 62 characters — trim those, keep the colon.
6. Headings
- No missing H1s. Every indexable page has exactly one.
- 9 H1 formatting defects — a stray space before the question mark, e.g.
… on Weekends or Holidays ?. Cosmetic, cheap to fix, visible in the rendered page. - H1 question-form pages do not under-perform; keep the voice where it exists.
- 2 pages are genuinely thin (
/services,/faq)./servicesat 528 impressions and position 47 with two sections is the one worth building.
7. The commercial finding
This is the most expensive problem in the audit, and it is not a metadata problem.
"arizona process server" (581 impressions) and "process server arizona" (481) are being won by /arizona-process-server-certification — a guide about getting licensed — at roughly 23–30% share, spread across 15–17 pages.
The pages that should own those queries:
| Page | Impressions | Position | CTR |
|---|---|---|---|
| /processserving | 2,679 | 50.2 | 0.04% |
| /howserviceofprocessworks | 1,992 | 59.9 | 0.05% |
| /documentfiling | 1,488 | 52.3 | 0.34% |
| /serviceofprocessarizona | 1,475 | 28.4 | 0.54% |
The primary commercial page sits at position 50 on 2,679 impressions with four clicks in 90 days. Its title and description are sound. It renders seven sections, but none of them claims the head term or states coverage and turnaround plainly. Title changes will not fix this; the page needs a lead section that owns "process server in Arizona" and a route for the intent to convert.
"arizona process server laws" (837 impressions) is split across 21 pages with no page above 14% share. Nobody owns it. It needs one owner page and the rest linking into it.
8. Cannibalisation
117 pairs after cleaning, in cannibalization.csv. Three types:
Brand query split. "fast serve az" (384 impressions) divides almost evenly between / (60), /contact (59) and /services (54). The homepage should own branded search. The title and H1 do not reinforce the brand strongly enough to win it.
Precinct confusion. Two justice-court pairs are competing for each other's name:
| Query | Correct page | Also ranking |
|---|---|---|
| west mcdowell justice court | /westmcdowelljusticecourt (86%) | /mcdowellmountainjusticecourt (176 impressions) |
| north mesa justice court | /northmesajusticecourt (75%) | /northvalleyjusticecourt (187 impressions) |
These are adjacent precincts, so the overlap is understandable, but 176–187 impressions are landing on the wrong court. Correcting the boundary descriptions on all four pages is the fix.
Legitimate spread, no action. "process server near me" distributing across city pages is how geo intent is supposed to work.
9. Internal links
15 indexable pages have zero inbound internal links. The two that matter:
/arizonaefilingcourts— 2,029 impressions, position 15, 0.2% CTR, and unreachable by any internal link. A page at position 15 with that impression volume should not be an orphan./canpapersbeservedonfamilyroommates— 1,448 impressions, position 6.4, also an orphan.
The rest are low-volume Q&A pages that would benefit from contextual links rather than a navigation change. Suggested source page for each is in internal-links.md.
10. Deliverables
All in reports/seo/audit/:
| File | Contents |
|---|---|
| seo-master-matrix.csv | All 299 URLs, 33 columns: metadata, headings, performance, proposal, priority |
| metadata-proposals.csv | 24 written title/description rewrites, current vs proposed, with rationale |
| priority.csv | P1/P2/P3 with the specific action per page |
| title-report.csv | Every title with length, pattern, brand suffix, CTR evidence |
| h1-report.csv | H1 coverage, question-form, duplication, formatting defects |
| arizona-prefix.csv | The prefix cohort with its performance data |
| cannibalization.csv | 117 query conflicts with the leading page named |
| content-gaps.md | Deep-ranking pages, thin structure, unowned query demand |
| internal-links.md | Orphans, thin inbound, cluster ownership |
| summary.json | Every number above, machine-readable |
24 proposals are written and awaiting approval. All are within 62 characters for titles and 160 for descriptions. None invent a fee, hour, court or statute that the page does not already state.
11. Recommended order of work
Phase 1 — the commercial gap (highest value, largest effort)
/processserving gets a head-term lead section and conversion path. /arizonaefilingcourts gets internal links and a short description. /documentfiling stays commercial and links to it. This is the only phase with a plausible path to materially more qualified Arizona requests.
Phase 2 — metadata on pages that already rank (fast, low risk)
Apply the 24 proposals. Priority within the phase: /arizonacalendardays (4,935 impressions, 0.67% at position 7 — the largest pure CTR gap on the site), /arizonapersonalservicerequirements, /arizonaelectronicservice, then the eight over-length titles.
Phase 3 — cluster ownership (needs editorial decisions) Resolve the service-of-process definitions cluster, give "arizona process server laws" one owner, correct the two precinct boundary descriptions, strengthen the brand signal on the homepage.
Phase 4 — hygiene
The 9 H1 spacing defects, the remaining orphan links, /services build-out.
Guardrails carried over from earlier decisions: no URL changes to the 15 county or 23 city canonicals, no bulk de-prefixing, no automatic publishing, no price lists. Every proposal is a text or content edit against an existing URL.
12. What this audit did not do
- No title, description, heading, canonical, sitemap entry or route was changed.
- The 47 unregistered paths and 27 held submarket pages were inventoried but not optimised.
- Expected uplift is not quantified. The audit establishes direction and priority; measurement needs a post-release window.
Outstanding from earlier work: the build is still unpublished, and the platform-side metadata injection defect needs escalation to support before browser-visible metadata can be trusted end to end.
