Read-only local campaign artifact
technical-seo-spec.md
direct-seo-wave-39/technical-seo-spec.md
# Technical SEO Specification
## Status: PARTIAL
### Evidence boundary
This specification uses only `source-facts.json`, derived from the retained visible homepage text. It does **not** assert that the live site currently has, lacks, or serves any tag, header, crawler file, route, or schema.
## Observed retained inputs
| Input | Value |
|---|---|
| Brand | Flat Fee House Cleaners Sarasota |
| Canonical base proposed for review | `https://flatfeehousecleanerssarasota.com/` |
| Retained navigation labels | Home, About, Services, FAQ, Blog, Contact |
| Retained service labels | Residential, commercial, Airbnb, deep, window, pressure washing, emergency, green, move in/out, office, medical-facility cleaning |
## Proposed metadata pattern
These are implementation candidates, not a claim about existing tags.
| Page type | Candidate title pattern | Candidate description pattern |
|---|---|---|
| Homepage | `House Cleaning Services in Sarasota, FL | Flat Fee House Cleaners` | `Explore residential and commercial cleaning options from Flat Fee House Cleaners Sarasota. Request a free estimate for your Sarasota cleaning needs.` |
| Service page | `{Service} in Sarasota, FL | Flat Fee House Cleaners` | `Learn about {service} from Flat Fee House Cleaners Sarasota and request a free estimate for your property.` |
| About | `About Flat Fee House Cleaners Sarasota` | `Learn about the local cleaning team, service approach, and contact options for Flat Fee House Cleaners Sarasota.` |
| FAQ | `House Cleaning FAQs | Flat Fee House Cleaners Sarasota` | `Find answers about cleaning supplies, pricing approach, recurring visits, insurance, and home access.` |
| Contact | `Contact Flat Fee House Cleaners Sarasota` | `Request a free estimate or contact Flat Fee House Cleaners Sarasota by phone or through the approved contact form.` |
Before use, validate title uniqueness and measured character length against the actual route inventory. Do not add city or service claims absent from approved page scope.
## Proposed canonical and indexing rules
1. Use one HTTPS hostname and a consistent trailing-slash policy after the live redirect chain is captured.
2. Use a self-referencing absolute canonical on each indexable public page.
3. Canonicalize tracking/query variants to their clean public URL; do not use robots.txt as an index-removal mechanism.
4. Use `index,follow` only on approved public marketing pages. Use `noindex,follow` for search results and any duplicate/filter state confirmed by the CMS.
5. Do not deploy a blanket canonical, noindex, redirect, or robots change before crawling the existing site and validating the full set together.
## Proposed WordPress crawler policy, pending live review
```text
User-agent: *
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-admin/
Disallow: /?s=
Disallow: /search/
Disallow: /author/
Sitemap: https://flatfeehousecleanerssarasota.com/sitemap_index.xml
```
This is a candidate only. The sitemap filename, existing robots rules, cache/plugin paths, and indexable archive policy are unverified. Do not block CSS, JavaScript, or public page paths needed for rendering.
## Proposed sitemap and AI-discovery requirements
- Include only verified canonical indexable URLs, with accurate `lastmod` if the CMS can supply it.
- Exclude noindex, redirect, error, search, and duplicate parameter URLs.
- After a route inventory is approved, prepare an `llms.txt` that names only confirmed services, approved contact details, and current important pages.
- Match `og:url` to the final canonical, use a verified social image, and set a page-appropriate OG type. Do not invent a logo or image URL.
## Local QA gate
| Check | Current evidence | Result |
|---|---|---|
| Unique metadata | No route inventory or HTML tags retained | BLOCKED |
| Canonicals | No raw HTML/redirect capture | BLOCKED |
| robots and sitemap agreement | No live crawler files retained | BLOCKED |
| AI discoverability | No current `llms.txt` or schema inventory | BLOCKED |
### Required next input
Fresh raw HTML and headers for representative URLs, live `robots.txt`, sitemap(s), current route inventory, existing schema/tag inventory, and written implementation authority.