SEO / AEO / Local SEO gap report
Gap report
The prioritized list of what is missing or weak on the live site, plus the prototype items still needed for go-live, with priority, owner lane, and the fix.
22 items to close
6 High, 9 Med, 7 Low. "Live site" items can be fixed on www.ncutility.com now; "Prototype (go-live)" items must ship with the new site. Owner lanes: content (copy and FAQs), dev (code, schema, server), client (facts or access only North Central Utility can provide), GBP (Google Business Profile work).
| # | Priority | Item | Where | Owner | Fix |
|---|---|---|---|---|---|
| 1 | High | XML sitemap SEO / Crawl and index |
Live site, Prototype (go-live) Live: Gap. Prototype: Opportunity. |
dev | Live: fix the /sitemap.xml server error now (or enable the core WordPress sitemap). Launch: generate sitemap.xml with all public pages, including the 10 location pages, and submit it in Google Search Console and Bing Webmaster Tools. |
| 2 | High | Location URL collisions SEO / Crawl and index |
Live site Live: Gap. Prototype: Pass. |
dev | At launch, add 301s from short city aliases to the long location slugs. Review the two blog-post collisions by hand before redirecting. |
| 3 | High | FAQ content / FAQPage schema AEO / Answer engines (AEO) |
Live site, Prototype (go-live) Live: Gap. Prototype: Gap. |
content | Write a general FAQ (8 to 12 real questions from the sales, parts, and service desks), then mark it up with FAQPage JSON-LD at launch. Replace the Youth Apprentice placeholder answer. |
| 4 | High | LocalBusiness schema Local SEO / Local SEO |
Live site, Prototype (go-live) Live: Needs work. Prototype: Opportunity. |
dev | At launch, move LocalBusiness to each location page, with a specific type, geo coordinates, url, hasMap, openingHoursSpecification, and department entries for Sales, Parts, and Service where they differ. |
| 5 | High | NAP consistency: addresses Local SEO / Local SEO |
Live site Live: Gap. Prototype: Pass. |
dev | Live: correct the Madison and Waukesha schema addresses and the name casing now. Launch: generate schema from the same NAP source as the visible page. Client: confirm each GBP uses the physical address. |
| 6 | High | Google Business Profile listings Local SEO / Local SEO |
Live site, Prototype (go-live) Live: Not verified. Prototype: Not verified. |
GBP | Client to grant GBP manager access. Audit all 10 profiles for ownership, primary category, NAP match, hours, landing URL (long-slug location page), photos, and duplicates. |
| 7 | Med | robots.txt SEO / Crawl and index |
Live site, Prototype (go-live) Live: Needs work. Prototype: Opportunity. |
dev | Ship robots.txt at launch: keep crawling open, drop the global crawl-delay (or limit it to abusive bots), add Sitemap: https://www.ncutility.com/sitemap.xml. |
| 8 | Med | Canonical tags SEO / Crawl and index |
Prototype (go-live) Live: Pass. Prototype: Opportunity. |
dev | Add an absolute canonical (https://www.ncutility.com/...) to every template at launch. |
| 9 | Med | Open Graph / social share tags SEO / On-page |
Live site, Prototype (go-live) Live: Gap. Prototype: Opportunity. |
dev | Add og:title, og:description, og:image, and twitter:card per page at launch. Produce a 1200x630 share image. |
| 10 | Med | Unsubstantiated claims SEO / Content and IA |
Live site, Prototype (go-live) Live: Needs work. Prototype: Needs work. |
client | Client to confirm or replace $5M, 'largest', and 'leader' with provable facts before launch. |
| 11 | Med | Organization / WebSite schema AEO / Answer engines (AEO) |
Live site, Prototype (go-live) Live: Gap. Prototype: Opportunity. |
dev | At launch, add Organization (name, legal name, logo, url, sameAs, contactPoint, formerly Badger Utility) and WebSite JSON-LD on the homepage. |
| 12 | Med | NAP consistency: phone numbers Local SEO / Local SEO |
Live site Live: Needs work. Prototype: Pass. |
dev | Live: remove the second number next to Kaukauna in the footer. Launch: one primary number per location, the same as its GBP. |
| 13 | Med | Service-area and nearby-town copy Local SEO / Local SEO |
Prototype (go-live) Live: Pass. Prototype: Needs work. |
content | Carry the live service-area copy into all 10 prototype location pages (real towns only, confirmed by each shop). |
| 14 | Med | Map and directions links Local SEO / Local SEO |
Live site, Prototype (go-live) Live: Not verified. Prototype: Opportunity. |
dev | At launch, add a 'Get directions' link to each shop's GBP listing (Maps URL from the client). |
| 15 | Med | Reviews and ratings signals Local SEO / Local SEO |
Live site, Prototype (go-live) Live: Not verified. Prototype: Not verified. |
GBP | With GBP access, baseline the review counts per shop, set up a review-request routine, and reply to reviews. Do not add self-serving review schema. |
| 16 | Low | Custom 404 page SEO / Crawl and index |
Live site, Prototype (go-live) Live: Not verified. Prototype: Opportunity. |
dev | Publish 404.html from the existing template at launch. |
| 17 | Low | Meta descriptions SEO / On-page |
Live site Live: Needs work. Prototype: Pass. |
content | Keep a benefit-led description per page. Confirm or drop 'one of the largest' with the client. |
| 18 | Low | H1 headings SEO / On-page |
Live site Live: Needs work. Prototype: Pass. |
content | Pair the homepage H1 with a keyword-bearing kicker or subhead (trailer sales, service, parts in WI, MN, ND). The prototype title already carries it. |
| 19 | Low | Image alt text SEO / On-page |
Live site Live: Needs work. Prototype: Pass. |
content | Live: backfill alt text on product and location photos in the media library. Launch: keep descriptive alt on all content images. |
| 20 | Low | AI crawler access AEO / Answer engines (AEO) |
Prototype (go-live) Live: Pass. Prototype: Opportunity. |
dev | Carry the allow policy for AI crawlers into the launch robots.txt. |
| 21 | Low | Hours Local SEO / Local SEO |
Live: Pass. Prototype: Pass. |
client | Client to confirm department hours (sales, parts, service) per shop and holiday hours for GBP. |
| 22 | Low | Directory / citation consistency Local SEO / Local SEO |
Live site, Prototype (go-live) Live: Not verified. Prototype: Not verified. |
client | After the GBP audit, run a citation check for all 10 shops and fix mismatches, starting with Bing Places and Apple Business Connect. |
Sources
- L-HTML: Live homepage HTML capture, www.ncutility.com (browser capture 2026-09-16, Nancy archive raw/home.html)
- L-ROBOTS: Live robots.txt via WebFetch (2026-09-27)
- L-SITEMAP: Live /sitemap.xml via WebFetch: HTTP 500 (2026-09-27); /sitemap_index.xml and /wp-sitemap.xml 404 (crawl notes 2026-09-15)
- L-HOME: Live homepage text via WebFetch (2026-09-27)
- L-LOC: Live /locations/eau-claire-wi/ via WebFetch (2026-09-27)
- L-CRAWL: Live crawl notes and discovered-URL list (Nancy archive, 2026-09-15/16)
- L-MEDIA: Live WordPress media library listing (live-media-all.json, 354 images)
- L-CRIT: Nancy CRITICAL findings for the live site (references/nancy-critical.md)
- L-NONE: No live source available: needs client or Google Business Profile access
- P-HTML: Prototype HTML audit of all 48 root pages (repo main, 2026-09-27)
- P-LOC: Prototype location pages (10 x locations-*.html)
- P-GUIDE: Prototype PROJECT_GUIDE.md / SCOPE.md
How to read this. Scores are checklist readiness only (Pass = 2, Needs work or Opportunity = 1, Gap = 0; Not verified is excluded). They are not rankings, traffic, or search-volume estimates, and none are claimed here.
Live findings come from the sources named on each check. Anything we could not check directly is marked Not verified. Prototype items marked "Designed for go-live, add at launch" are technical plumbing (robots.txt, sitemap, schema, canonicals) that belongs on the production domain, not the review copy.