Pillar site audit · prepared 5 Sep 2026 · private, noindexMockup: Home · HR Audit · Charlotte
Projectpillarpeo.com · full audit and rebuild brief
ClientPillar PEO Advisors, Charlotte NC
Date · Rev5 Sep 2026 · Rev E (5 passes)
ScopeSEO · AEO · CRO · design · positioning · national + Carolinas local

Evidence: raw HTML and headers via curl, rendered DOM via headless Chrome, Lighthouse 12 lab runs (mobile + desktop), bundle inspection of /assets/index-ChndN7xd.js, Google autocomplete, competitor page pulls, whois. All on 5 Sep 2026.

Summary

Verdict

The copy is better than the site. Every page ships as an empty React shell, the brand reads as a template, there is no proof anywhere, and the whole thing is named for a service you are about to make one-fifth of the business. Rebuild it. Don't patch it.

Pillar has real assets: a founder who writes clearly, 22 resource pages that are better than most competitors', a free tool, a decent local phone presence, and a business model (provider-paid brokerage) that is easy to explain. None of that is reaching search engines or AI engines because the site is client-rendered, and none of it is converting cold visitors because there is not one testimonial, review, client name, price, or address on the site.

The scores below are out of 10. They are my judgement against what a site in this category needs to rank nationally, show up in the Carolinas local pack, and convert, not a Lighthouse average.

3/10Technical SEO
6/10On-page
5/10Content
2/10Carolinas local
3/10AI search (AEO)
3/10Conversion
5/10Performance
7/10Accessibility
3/10Design + brand
1/10Fit for new scope
2,994 BHTML served for every URL, identical, including 404s
761 KBJavaScript required before any content exists
66 / 94Lighthouse performance, mobile / desktop
8.4 sMobile LCP (lab, throttled). Target is 2.5 s
0testimonials, reviews, client names, or prices on the site
2.1 : 1contrast ratio of the primary green button (WCAG AA needs 4.5)
3geo pages for two states. Competitor Catapult's Charlotte page alone is ~3,500 words
49 vs 36routes in the app vs URLs in the sitemap

Five things that matter. Everything else is detail.

  1. Ship HTML. Rebuild as a static site (Astro on Cloudflare Pages is the recommendation, spec in S-11). Every page's words, title, meta, and schema must be in the HTML response. Right now Googlebot has to render 761 KB of JavaScript to see a word, and ChatGPT, Claude, and Perplexity's crawlers, which do not run JavaScript, see nothing at all.
  2. Reposition from "PEO broker" to "HR advisory for professional-services firms nationwide, headquartered in Charlotte," under the same brand. The HR audit becomes the entry product with a public price. Projects, fractional HR, and transitions sit behind it. PEO brokerage stays free and becomes one outcome of the audit rather than the identity. The nav, every H1, the schema, and llms.txt all lead with "PEO broker" today; S-07 covers how the name and domain stay while the description changes.
  3. Build two ranking layers, national and local. Nationally: topical authority on HR audits, fractional HR, PEO exits, HRIS, and multi-state compliance, which is where the head terms are. Locally: a verified Google Business Profile with a real address, consistent NAP, 12 Carolinas metro pages with unique local content, and NC and SC compliance hubs. The autocomplete data in S-09 shows local demand is for "HR consultant/consulting firms {city}" and state compliance questions, not for "PEO broker {city}", which has no measurable search volume.
  4. Get proof before launch. Five testimonials with names and numbers, one case study, five Google reviews, and the memberships you actually hold. The mockups have honest slots for these; do not launch with the slots empty.
  5. Fix the conversion path. Primary CTA becomes "Book an HR audit" with a price on it, secondary "Compare PEOs, free." Embed the HubSpot calendar on-site, make the phone number tappable, kill or relocate the chat widget, fix the button contrast, require the three fields that matter, and track bookings as conversions.
Sheet S-01

Technical SEO

Ranked by damage. The first finding alone justifies the rebuild.

1.1 The site is a client-rendered React shellCritical
EvidenceEvery URL tested (home, 18 inner pages, 3 legacy Wix URLs, and a made-up URL) returns the identical 2,994-byte HTML: a <div id="root"></div>, the homepage title and meta description, and a script tag for /assets/index-ChndN7xd.js (761 KB). Titles, descriptions, canonicals, and JSON-LD are all injected by a React effect after load. The build is Lovable (the /~flock.js analytics beacon gives it away) on Cloudflare. ImpactGoogle can render JavaScript but queues it; indexing of changes lags days to weeks and rendering budget is rationed. Evidence from the search index I can query (not Search Console): the stored title for /terms is still the old Wix site's "Pillar PEO - PEO Broker Services | HR Outsourcing & Small Business HR Solutions", and www.pillarpeo.com/blank-1 is still indexed as "About Pillar". Bing partially renders. GPTBot, ClaudeBot, PerplexityBot, and most other AI crawlers do not execute JavaScript, so to them every page on the site is blank (verified: a GPTBot user agent receives the same 2,994-byte shell). Google can and does rank client-rendered pages, which is consistent with the traffic the founders see today; the cost is slower indexing, stale titles, and zero AI-engine visibility, not zero Google visibility. The 22 resource articles and 19 FAQ schemas you paid for are invisible to the engines that would cite them. FixStatic generation. Every route becomes a real HTML file with its own title, description, canonical, Open Graph, and JSON-LD in the source. Astro is the right tool: content in Markdown/MDX, zero JavaScript by default, deploys to Cloudflare Pages you already use. Do not "add prerendering" to the Lovable build; you will fight it forever.
1.2 No real 404s, and legacy Wix URLs still return 200High
Evidence/this-page-does-not-exist-xyz returns HTTP 200 with the shell; the React router then shows a "Page not found" view. Old Wix URLs still in Google's index (/services, /blank, /blank-1, www.pillarpeo.com/contact) all return 200. /services renders the How It Works page with a canonical pointing to /how-it-works, which is the right signal but only after JavaScript runs. ImpactGoogle treats these as soft 404s or duplicates, wastes crawl on them, and keeps stale titles in the index. Any link equity from the old Wix site is not being passed. FixReal 404 status from a static host (Cloudflare Pages does this by default with a 404.html). Add a _redirects file: /services → /services/ (new overview), /blank → /, /blank-1 → /about/, plus the full map in S-08.
1.3 www and non-www both serve the siteMedium
Evidencehttps://www.pillarpeo.com/ returns 200 with identical content; no redirect. The canonical tag exists only after JavaScript runs. Google's index holds both hostnames. FixCloudflare Bulk Redirect or Page Rule: 301 www.pillarpeo.com/* to apex. HTTP already 301s to HTTPS correctly and HSTS is set; keep both.
1.4 Sitemap is incomplete, has no lastmod, and one route duplicates anotherMedium
EvidenceThe sitemap lists 36 URLs. The bundle defines 49 routes (plus a catch-all). Missing from the sitemap: /blog, /blog/how-much-peo-costs, /blog/peo-roi-calculator, /blog/peo-vs-hr-outsourcing, /blog/should-your-business-use-peo, /blog/what-is-a-peo-broker-charlotte-nc, /blog/peo-broker-charlotte-nc, /industries, /nonprofit-toolkit, /peo-onboarding, /roi-calculator, /why-peo. /blog renders the same content as /resources (its client-side canonical does point to /resources, which limits the damage once Google renders it). No <lastmod> on any URL; priorities are hand-set and meaningless to Google. FixGenerate the sitemap at build with real lastmod from git or frontmatter. Fold the blog into resources under one URL scheme. Decide whether each hidden route is a page (add to nav and sitemap) or dead (redirect).
1.5 Schema exists but is JS-only, inconsistent, and has invalid datesMedium
EvidenceZero ld+json blocks in the HTML response; they appear only after render (verified via headless Chrome DOM dump). The bundle contains ProfessionalService on home, Service on the four solution pages, LocalBusiness on three geo pages (all with a Charlotte address, including the South Carolina page), AboutPage with three Persons, Article + BreadcrumbList on resources, and 19 FAQPage blocks. Eight resources carry datePublished:"May 2026", which is not a valid ISO date and will fail validation; eight more share 2026-05-15; the Article helper defaults to 2025-01-01 when no date is passed. The organization declares areaServed:"US", which undercuts the Carolinas positioning. FixSchema in HTML from page frontmatter. One Organization/ProfessionalService entity with a street address, geo, hours, sameAs (LinkedIn, GBP, G2), and areaServed NC + SC. LocalBusiness per metro page with that metro's areaServed. ISO dates and dateModified everywhere. Service schema with offers and prices for the paid products.
1.6 Mobile performance: LCP 8.4 s in the lab, because content waits for JavaScriptHigh
EvidenceLighthouse 12, mobile throttling: performance 66, FCP 4.1 s, LCP 8.4 s, TTI 8.4 s. Desktop: 94, LCP 1.5 s. Charlotte page mobile: 79, LCP 4.5 s. Render-blocking resources cost 1,690 ms (Google Fonts CSS for League Spartan + Nunito Sans, plus the 76 KB app CSS). LCP element is the hero photo: a 383 KB JPEG at 1,050×1,400 with no srcset and no WebP/AVIF. It already carries fetchpriority="high" and width/height (credit where due), but the tag itself only exists after the 761 KB bundle executes, so the priority hint cannot help. Unused JavaScript: 217 KB. Third parties: LeadConnector chat widget 205 KB, gtag 170 KB. TTFB is fine (60–100 ms; Cloudflare). FixStatic HTML solves the sequencing. Then: self-host two font files as woff2 with font-display: swap and preload; hero image as AVIF/WebP with a srcset and fetchpriority="high"; lazy-load the chat widget on first scroll or drop it (see S-05); load gtag after interaction or via Cloudflare Zaraz. Target: mobile 90+, LCP under 2.5 s on 4G.
1.7 Small things that add upLow
EvidenceThe phone number is a proper tel: link in the header and footer, but the contact page's phone card is rendered with href: undefined, so the most prominent phone on the site is the one that is not tappable. No apple-touch-icon, no site.webmanifest, only a .ico favicon. HTML is served cache-control: no-cache. No CSP header. DMARC is p=none, so mail from pillarpeo.com can be spoofed without consequence, which matters once you start outbound to CPAs and attorneys. llms.txt exists (good, see S-04) but a humans.txt and security.txt don't. Lighthouse also flags an invalid list structure (a <ul> with non-<li> children). Fixtel: on the contact card; full icon set; edge caching with revalidation for static HTML; a basic CSP; move DMARC to p=quarantine after two weeks of reports, then p=reject.

What is already right

  • robots.txt allows all crawlers including AI bots. Keep that.
  • HTTPS, HSTS, HTTP→HTTPS 301, and X-Content-Type-Options are correct.
  • Titles and meta descriptions are unique and well written on every page (once rendered).
  • Alt text is present on all images. Heading order passes. Tap targets pass.
  • CLS is effectively zero on every page tested.
Sheet S-02

On-page and content

Current pillarpeo.com homepage, desktop
Current homepage · 1440 px · 5 Sep 2026
Current pillarpeo.com homepage, mobile, chat widget covering the founder photo
Mobile · chat bubble over the founders' faces

2.1 The homepage targets a keyword almost nobody types

The H1 is "Your independent PEO broker. Focus on your people, not paperwork." and the title is "Independent PEO Broker — Compare PEOs". Google autocomplete returns nothing for "peo broker charlotte", "peo broker north carolina", or "peo broker south carolina". It does return "hr consultant charlotte nc", "hr consulting firms charlotte nc", "hr consulting raleigh nc", "hr consulting greenville sc", "peo charlotte nc", "peo raleigh nc", "peo greenville sc", "peo charleston sc", and "peo columbia sc". The buyer's language is "HR consultant", "hr consulting firms", "fractional hr services", "hr audit", and "PEO {city}", not "PEO broker". The whole site is built around the phrase the founder uses, not the one the customer uses. Nationally, "peo broker" itself is a small term; the existing PEO guides ("best peo for small business", "how much does a peo cost per employee") are where the national PEO demand actually sits, and they should keep doing that job.

2.2 Geo pages are thin and templated

Charlotte: about 850 words, no address, no map, no local client, no Charlotte-specific rule, one paragraph of local color ("finance, healthcare, tech, and professional services"). North Carolina and South Carolina pages share a structure and swap city names; the SC page's schema carries a Charlotte NC address. For comparison, Catapult's Charlotte page runs 3,500+ words with named advisors, zip codes, five industries, six FAQs, video, "65 years", and "500+ employers". PEO Focus's Charlotte page is weaker than yours on content but has a street address. You will not outrank an association with a 65-year history on 850 words and no proof; you can outrank them on specificity (the NC/SC cross-border angle, fixed pricing, professional-services focus) if the page actually contains it.

2.3 The resource library is the best asset on the site and it is undercut

Twenty-two resources, written in a plain, honest voice ("The Honest Risks" in the PEO guide is better than anything on the national broker sites). Problems:

  • Cannibalization. /resources/peo-pricing, /resources/peo-cost-guide, and /blog/how-much-peo-costs target the same query. Nonprofits appears three times (/peo-for-nonprofits, /resources/peo-for-nonprofits-guide, /blog/peo-for-nonprofits-charlotte). Startups twice. Merge each cluster into one canonical page and redirect the rest.
  • No external citations. Not one resource cites NAPEO, the DOL, the NC Department of Labor, or SC DEW. AI engines weight sourced statistics heavily (Princeton GEO study: +37–40% citation rate). The NAPEO figures (PEO clients grow 7–9% faster, 10–14% lower turnover, 50% less likely to go out of business, 230,000+ businesses using a PEO) belong in the PEO guide with links.
  • Dates. "May 2026" on eight pages, one 2025 default, no visible "updated" dates. Freshness is a ranking and citation signal.
  • One author, no author page. Every article is by Caleb, with a bio line and a LinkedIn link. There is no /about/caleb-sherrill/ page with credentials, speaking, and press to point Person schema at.
  • Everything is about PEOs. Zero words on HR audits, handbooks, classification, E-Verify, or either state's employment law. The new business has no content yet.

2.4 E-E-A-T is asserted, not shown

About page: "Caleb Sherrill, CEO, prior business ownership experience"; "Josiah Sherrill, Founding Account Executive, ministry recruiting"; "Emily Snooks, COO, 6+ years operations." No certifications (SHRM-CP, PHR, CEBS), no NAPEO membership stated, no press, no speaking, no client count with a source. The homepage says "Used by 100+ business owners" about the quiz, unverifiable. The LinkedIn company page has 126 followers and the G2 seller profile has zero reviews. For a firm about to sell $4,000 audits to managing partners, the trust layer is empty.

2.5 Duplicate and orphan routes

/blog and /resources render the same index. /industries, /why-peo, /roi-calculator, /peo-onboarding, and /nonprofit-toolkit exist as routes but are not in the sitemap or the navigation. Solutions dropdown has three items; the footer's "Why Pillar" points at About. Decide each one's fate in the rebuild.

Sheet S-03

Ranking nationally and in the Carolinas

Pillar sells nationwide, so the site has to win two different games. National rankings come from topical authority: the deepest, best-sourced pages on HR audits, fractional HR, PEO transitions, HRIS migration, and multi-state compliance. Local rankings come from an entity Google can place on a map and a set of metro pages that earn their existence. Four layers below, in order of leverage. Layers 0 and 1 together are worth more than the rest for the first six months.

Layer 0 · National topical authority

The head terms are national and unlocalized: "hr audit", "hr audit checklist", "hr compliance audit", "fractional hr services", "fractional hr companies", "peo exit", "hris implementation consultant", "best peo for small business", "how much does a peo cost per employee". All confirmed by autocomplete. Pillar already has half the PEO cluster written; the HR audit, fractional, transition, and multi-state clusters do not exist yet.

  • One hub per service (S-08) that answers the full query fan-out: what it is, what it includes, cost, duration, who it is for, vs the alternatives, checklist download, FAQ. These are the pages that get cited by AI engines and linked by other sites.
  • Multi-state compliance as the national moat. A remote hire in a new state is the most common HR failure in a 10–150 person firm anywhere in the country. Publish a state employer guide series: start with NC and SC (the local layer), then the ten states where Pillar's current and target clients actually have people, then the rest, one per week, each written to the same standard (thresholds, registrations, notices, leave, final pay, sourced and dated). Never bulk-generate 50 thin pages; that triggers the scaled-content policy and drags the whole domain down.
  • Industry pages are national. Law, CPA, engineering/architecture, medical/dental, RIA, nonprofit: the HR problems are the same in Austin and Asheville. Write them without a city.
  • Deduplicate and source the PEO library so it keeps carrying the national PEO demand it already targets.
  • National links and presence: NAPEO membership and directory, SHRM vendor directory, Clutch's national HR consulting category, G2 reviews, HR podcasts, contributed pieces in HR Dive / SHRM / industry association newsletters (NCACPA is local; AICPA and state CPA societies elsewhere are national), Qwoted and Featured for expert quotes, and Caleb's LinkedIn, which is already the best distribution channel Pillar has.
The site architecture keeps these separate on purpose: service and industry pages are national and never mention a city in the title; metro pages and state guides carry the local signals. Mixing them ("HR audit Charlotte" as the main service page) caps the national page at local demand.

Layer 1 · Entity and local pack (Charlotte)

I could not find a Google Business Profile for Pillar. Without one, "hr consultant charlotte nc" shows a map pack you are not in, and AI engines have no address to attach to the entity, which hurts nationally too: an entity with no location reads as less real. This is the single highest-value local task in the plan.

  • Address. A verified GBP needs a physical address or a service-area listing with a hidden address. A coworking membership with a suite number is acceptable if you receive mail there; a PO box is not. Publish the address on the site footer and in schema once GBP is verified.
  • Categories. Primary: Human resources consulting. Secondary: Business management consultant, Consultant. Do not use "Employment agency."
  • NAP consistency. Same name, address, and phone on GBP, site, LinkedIn, BBB, Apple Maps, Bing Places, Yelp, Clutch, Alignable, Charlotte Regional Business Alliance, NC Chamber, SC Chamber, and any NAPEO/SHRM directory listing. Full list in S-13.
  • Reviews. Five in the first 30 days, then two a month. The ask script is in S-15. Reviews mentioning the city and the service ("HR audit for our Charlotte law firm") move rankings.
  • Posts and photos. Weekly GBP post from the content calendar; photos of the team at client offices in each metro.

Layer 2 · Twelve Carolinas metro pages that earn their existence

URL pattern /hr-consulting/{city}-{st}/, targeting "hr consultant {city}", "hr consulting firms {city}", and "peo {city}". Each page needs, at minimum: 1,500 words of content that could not be moved to another city, one named local client quote, local rules (Charlotte NDO, county-level items), the local industry mix with named anchor employers, the SC-or-NC cross-border angle where relevant, a service-area list with zip codes, an embedded map, a LocalBusiness schema with geo, and a local FAQ. The Charlotte mockup is the template. Publish in this order:

WaveMetroLocal angle to write about
1 (launch)Charlotte NCNDO; York/Lancaster County SC cross-border; banking-town comp expectations
1Rock Hill / Fort Mill SCNC firms with SC staff; SC E-Verify for all; SC 7-day wage-change notice
1Raleigh–Durham–Chapel Hill NCRTP engineering and biotech contractors; university spin-outs; state-government adjacent firms
2 (month 2)Greenville–Spartanburg SCManufacturing supply-chain professional firms; BMW-adjacent engineering; SC workers' comp at 4+
2Charleston SCMedical practices and MUSC-adjacent; hospitality-heavy seasonal staffing rules; port logistics firms
2Columbia SCLaw firms near the statehouse; USC-adjacent; state contractors
3 (month 3)Greensboro / Winston-Salem NCTriad manufacturing professional services; Wake Forest medical practices
3Asheville NCSmall firms, tourism-adjacent, remote-worker classification
3Wilmington NCCoastal medical and legal; film-industry contractors
3Concord / Cabarrus NCMotorsports engineering firms; fast-growing suburbs
3Hickory NCFurniture-industry professional services; family-owned firms
3Myrtle Beach SCSeasonal medical and legal; J-1 and seasonal I-9 issues
A city page with no local client quote is a doorway page and Google's helpful-content system will treat the whole site accordingly. Wave 1 pages go live with quotes; later waves wait for their quote.

Layer 3 · Own the two home rulebooks

The Charlotte metro is the only major US market split across two states with materially different employer rules. Nobody owns that content, and it is the local proof-of-method for the national state-guide series in Layer 0. Two hubs, /resources/north-carolina-employer-guide/ and /resources/south-carolina-employer-guide/, plus the comparison piece "NC vs SC employment law for firms with staff in both", plus one article per autocomplete-confirmed question:

  • "Is E-Verify mandatory in North Carolina?" (25+ employees, NCGS 64-26) and the SC version (all employers, within 3 business days).
  • "North Carolina employee handbook requirements" and "South Carolina employee handbook requirements" (both confirmed autocomplete queries). Include a downloadable NC/SC handbook checklist.
  • "HR audit checklist" with an ungated PDF and an Excel version (autocomplete: "hr audit checklist template excel", "hr audit checklist pdf", "hr compliance audit checklist").
  • Final pay rules, workers' comp thresholds (NC 3+, SC 4+), pregnancy accommodation (SC act at 15+), wage-notice requirements, new-hire reporting.

Have employment counsel review each piece and say so on the page. That sentence is a trust signal, not a weakness.

Links

For the local layer, local links beat national ones: chamber member pages, the NC Bar Association and SC Bar vendor lists, NCACPA and SCACPA sponsor pages, Charlotte Business Journal contributed columns, Charlotte Inno, local podcasts (Charlotte Business Podcast, Carolina Business Review), and a NAPEO membership listing. Answer HR questions for Qwoted/Featured with a Charlotte byline. Sponsor one CPA-society event per state per year and get the link.

Sheet S-04

AI search (AEO)

Ask ChatGPT or Perplexity "who does fixed-price HR audits for small law firms" or "who is a good HR consultant in Charlotte" today and Pillar cannot appear: its pages are blank to non-JavaScript crawlers, its entity has no address, and it has no third-party footprint to be cited from. Fixing 1.1 is the precondition; the rest is below.

CheckTodayRebuild
Content in HTML for GPTBot / ClaudeBot / PerplexityBotFailStatic HTML
AI crawlers allowed in robots.txtPassKeep. Optionally block CCBot only.
llms.txtExists, wrong Says "U.S. employers", no Carolinas, no HR audit, no pricesRewrite for the new positioning; add llms-full.txt with the full guides
Machine-readable pricing (/pricing.md)NonePublish tiers for audit, projects, fractional, transitions; brokerage $0 with commission note
Direct-answer blocks under question headingsPartial FAQs exist; article sections bury the answerLead every H2 with a 40–60 word answer
Statistics with sourcesNoneNAPEO, DOL, NCDOL, SC DEW citations with links and dates
Comparison tablesProse onlyNC vs SC table; PEO vs ASO vs fractional table; provider comparison table
Author attribution with credentialsName onlyAuthor page, credentials, Person schema with sameAs
Visible "Updated" datesInvalid / missingISO dates in schema and on page; quarterly refresh
Third-party presence (reviews, directories, media)G2: 0 reviews; LinkedIn 126 followersGBP, Clutch, BBB, chamber, podcasts, contributed columns
Video for how-to queriesNoneCaleb's LinkedIn posts are already scripts. 60-second versions on YouTube, embedded on the matching page

Query fan-out to cover

For the audit cluster, an AI answer to "should my law firm get an HR audit" will fan out to: what an HR audit includes, cost, duration, who performs it, NC-specific checks, SC-specific checks, a checklist, and what happens after. One hub page with those as H2s plus the downloadable checklist covers the whole fan-out. Same pattern for "leaving a PEO" (timeline, duplicate W-2 risk, benefits replacement, state registrations, cost) and "fractional HR" (what it is, cost, vs PEO, vs full-time, for what size firm).

Monitoring

Monthly, run 20 queries through ChatGPT, Perplexity, and Google AI Mode; log whether Pillar is cited and who is. The query list is in S-16. No tool needed for the first six months.

Sheet S-05

Conversion

Traffic context: almost all current visitors are brand searches, LinkedIn clicks from Caleb's posts, and referral partners. Those are warm. The rebuild has to convert cold organic visitors who have never heard of Pillar and have a specific HR problem.

What is wrong, in order

5.1 One CTA, off-site, with no lower-commitment stepHigh
Evidence"Schedule a PEO Strategy Call" appears 4 times on the homepage and on every page, always linking to meetings.hubspot.com/caleb-sherrill. A managing partner who landed from "hr consulting firms charlotte nc" is asked to book a PEO call with a stranger. The only alternative is the quiz. FixA ladder: free NC/SC checklist download → 20-minute HR risk check (embedded calendar, on-site) → fixed-price audit → projects / fractional / transitions. Brokerage stays a free side door. Primary CTA reads "Book an HR audit · from $2,500" so the price does the qualifying.
5.2 Zero proof anywhere near a CTAHigh
EvidenceNo testimonial, review, client name, logo, case study, or number on any page. The one social-proof line ("Used by 100+ business owners") is about the quiz and unverifiable. FixCollect five testimonials with a name, role, firm, city, and a number, before launch. Put one beside every primary CTA. Add the Google review count once it exists. Write one anonymized case study from the first audit.
5.3 The chat widget hurts more than it helpsMedium
EvidenceA GoHighLevel/LeadConnector bubble auto-opens with a "Hi there! Have a question?" prompt, sits over the founders' faces on the mobile hero, and overlaps the footer CTA on desktop (see screenshots). It costs 205 KB. The avatar is a dark-haired woman in red; the three people on the About page are Caleb, Josiah, and Emily Snooks, who is blonde. Whoever it is, it is not a face a visitor can match to the team, which is the trust problem. FixRemove it. If you want chat, use a real photo of Emily or Caleb, load it on scroll, and never auto-open. A phone number and a calendar convert better for this audience.
5.4 The primary button fails contrastMedium
EvidenceWhite text on #2ecc70: 2.1:1. WCAG AA needs 4.5:1. Every "Schedule a PEO Strategy Call" button on the site fails. Your buyers are often 45–65. FixDark buttons with an accent mark (as mocked), or a green dark enough to pass (#1b7a43 or darker).
5.5 Contact form and quiz have unclear mechanicsMedium
EvidenceContact form: five fields, none marked required, no visible validation, unknown destination. Quiz page: the only element at load is a button; nine questions plus a first-name and email capture are in the bundle, so leads are collected, but I could not verify end to end where they land or whether the score is shown before the email ask. The contact page's phone card is not a link. FixThree required fields (name, work email, firm size) plus one optional (where are your people). Post to a Cloudflare Worker that creates the HubSpot contact and fires a GA4 event. Quiz: show the score immediately, ask for email to send the written plan, tag the contact by score band. Rename it: "HR Risk Score" sells to a managing partner; "HR Headache Score" sells to a harried office manager, who is not the buyer.
5.6 The hero leads with your category, not their problemMedium
Evidence"Your independent PEO broker." Cold visitors from HR queries do not know what a PEO broker is, and the ones who do are a tiny fraction. FixLead with the load they carry and the fixed price. Copy alternatives in S-18. Keep the "wrong setup costs more than the monthly fee" argument and the myth/truth format; both are good persuasion, just reframed around HR, not PEOs.

Test after launch (not before)

  • Hero headline: problem-led ("HR that bears the load") vs outcome-led ("Pass your next HR audit before it happens").
  • Price on the primary button vs price only on the service page.
  • Founder video (60 s) in the hero vs the load diagram.
  • Quiz as first CTA on city pages vs audit booking.
Sheet S-06

Design and brand

Current Charlotte PEO broker page, full length
Current Charlotte page · every section is eyebrow, heading, paragraph
HR Headache Score page
Quiz page · pill eyebrow, one highlighted word, single button
About page hero
About · navy band, green eyebrow, centered display

Cover the logo and this could be any 2025 AI-builder site. Navy hero with a green highlighted word, white body, three icon cards, a numbered 01/02/03 process, a myth/truth two-column, an accordion FAQ, a navy CTA band, a four-column footer. League Spartan for display and Nunito Sans for body give it the rounded friendliness of a consumer app; the audience is managing partners and practice administrators. The green (#2ecc70) is flat-UI green from 2013 and illegible on white. The "pillar" idea appears once, as a tiny column glyph in the logo, and nowhere else. There is no image, diagram, or device on any page that explains what Pillar does.

What works: the founders' photo is warm and real, the voice in the body copy is confident, and section headings ("Bad decisions start with bad assumptions") are better than the visual system around them.

Direction for the rebuild: the same brand, executed properly

Nothing about the identity needs replacing. The logo is good: a confident lowercase wordmark, a green disc, and a fluted column that says "pillar" without spelling it. The navy (#02064B) and green (#2ECC70) are distinctive in a category full of blue-and-grey. League Spartan has the geometric weight the logo needs. The problem is that the site uses almost none of it: the column appears only in the header, the green is spent on illegible buttons, the navy is a flat band, and every section is a generic card grid that could belong to any shadcn template. The rebuild keeps every brand token and spends them differently.

TokenValue (from the live CSS)How it is used nowHow the rebuild uses it
Navy#02064B · hsl(236 96% 15%)Hero band and CTA band, flatHero, CTA bands, and all type. Bands get a soft green radial glow so they read as the logo's disc, not a slab
Green#2ECC70 · hsl(145 63% 49%)Button fills with white text (2.1:1), highlighted words, icon tintsOn navy only, where it passes (buttons with navy text on green, 7.8:1; green rules; the column's fluting). On white it becomes a rule or a small mark, never a text colour
Green, darkened#1A7A45Not presentThe one new value: green for labels and links on white at 5.3:1
Sky#54C5F2 · hsl(197 86% 64%)Declared as secondary, unusedReserved for diagram accents only
Ground#FFFFFF / #F5F5F5Pure white sections and grey muted sectionsCool off-white (#F4F6FA) with a faint navy grid, white panels, navy hairlines instead of shadows
DisplayLeague Spartan 700Centered headlines with one word in greenLeft-set at 64–88 px, tracked −3%; the green word stays, but only on navy
BodyNunito SansAs nowAs now, one size up, 60ch measure
Label layerLeague Spartan 600, tracked capsNot present (pill eyebrows instead)The logo's "PEO ADVISORS" treatment becomes the eyebrow and table-header style, with a short green rule

Devices carried through the rebuild, each carrying real information and each built from the logo's column: the Load Diagram (hero: five employer obligations on a beam carried by the fluted column), the Service Schedule (services as a schedule with marks A-1, P-1, F-1, T-1, B-1), the Load Report (the audit deliverable, rebuilt in the DOM with pass/watch/fail), the inspection tag (green hang-tag with price and duration), and green-rule section eyebrows. The mockups in S-10 show all of them at full scale in the brand.

Sheet S-07

Positioning and service architecture

The one-line position

Pillar is the independent HR firm for professional-services firms of 10 to 150 people anywhere in the U.S., headquartered in Charlotte: fixed-price audits and projects, fractional HR, and clean transitions into or out of a PEO, in every state your people work in.

Why this and not "HR for small business": the professional-services niche has money, recurring compliance risk, referral networks (CPAs refer attorneys refer engineers), and a buyer who understands fixed-fee engagements. "Small business" is everyone and therefore nobody.

Name and domain

The brand stays: Pillar PEO Advisors, the logo, the navy and green, pillarpeo.com. What changes is the sentence after the name. Today the site introduces itself as "your independent PEO broker"; the rebuild introduces Pillar as "HR advisory for professional-services firms, nationwide, from Charlotte" and lets PEO brokerage be the free service inside that. Two consequences to manage:

  • Every AI engine currently describes Pillar as a PEO broker, because that is all the site has ever said. Fix it at the entity level: the Organization schema, llms.txt, the LinkedIn tagline, and the GBP description all lead with the HR audit and list brokerage last. Expect three to six months for that description to shift in AI answers.
  • Register pillarhradvisors.com defensively (available at whois on 5 Sep 2026; pillarhr.com and pillaradvisors.com are taken) and point it at pillarpeo.com. It costs nothing and keeps the option open without touching the brand.

The service ladder, with proposed public pricing

Prices are set from market ranges (HR consulting retainers $1,500–$7,000/month; project HR $5,000–$50,000; hourly $100–$300) and pitched at the low-friction end so the audit is an easy first yes. Validate with the first ten prospects and move.

MarkServicePriceRole in the funnel
A-1HR Audit (the Load Report)$2,500 / $4,000 / $6,000 by headcount bandEntry product. Public price. Every other service is a finding in this report.
P-1HR Projects: NC/SC handbook, FLSA classification review, I-9/E-Verify remediation, comp benchmarking, performance system, AI-use policy, manager training$1,500–$7,500 fixed per projectFixes for audit findings. Also sold standalone to firms that already know what they need.
F-1Fractional HR: Advisor 8 h/mo, Partner 20 h/mo, Embedded 40 h/mo$2,000 / $3,750 / $6,000 per month, 3-month minimumRecurring revenue. Offered at the audit walkthrough when findings exceed what one project fixes.
T-1Transitions: PEO exit, PEO switch, PEO implementation, HRIS/payroll migration$3,000–$10,000 fixed, timed to Jan 1 or a quarterThe "fractional transition" and "HR transitions and systems" the founder asked for. High-value, seasonal, referral-generating.
B-1PEO brokerage$0 to client; provider commission disclosed in writingFree side door. Keeps the existing content and referral flow alive.
Conflict disclosure. Charging for an audit and earning commission on the PEO it might recommend is a conflict a managing partner will spot. Publish a /how-we-get-paid/ page that says exactly how each service is paid, that the audit fee does not change based on the recommendation, and what the commission range is. This page will also get cited by AI engines answering "are PEO brokers free".

Messaging pillars (use in this order on every page)

  1. Fixed price, quoted before work. Nobody else in the Carolinas publishes HR consulting prices.
  2. Every state your people work in. Multi-state is the default, not an add-on. NC and SC side by side is the home example.
  3. Independent. No software to sell, no insurance to place, commissions disclosed.
  4. Founder-led. Caleb ran a company and paid the fines. On site within 45 minutes of Uptown; on a call anywhere else.
Sheet S-07b

Protecting the traffic you already have

The founders report strong monthly traction today. That changes how the rebuild is sequenced, not whether it happens. Where that traffic comes from decides what must not move. Before a single URL changes:

  1. Export Search Console (16 months): pages, queries, impressions, clicks, average position. Export GA4 landing pages by source. Any URL with impressions or conversions keeps its path in the rebuild, or gets a one-hop 301 that is tested before launch.
  2. Reconcile the redirect map in S-08 against that export. Where I merged pages (the three PEO-cost pages, the three nonprofit pages), keep the URL that ranks and redirect the others into it. If two rank for different queries, keep both and differentiate them instead of merging.
  3. Phase it. Phase 1: ship the static rebuild with every existing URL preserved and the same titles, so the only change Google sees is faster, server-rendered HTML. Phase 2 (two to four weeks later, once Search Console is stable): new services, industries, and metro pages added, navigation changed, and the deduplication redirects applied. Phase 3: the state-guide series.
  4. Watch the right numbers. Daily for the first two weeks after each phase: indexed pages, 404s and soft-404s in Search Console, clicks on the top 20 URLs, and bookings. A dip of a few days after a migration is normal; a dip past two weeks on a page that kept its URL means a rendering or canonical problem.
  5. Keep GA4 and the HubSpot booking IDs identical across the migration so the before/after comparison is clean.
One likely reading of "a lot of traction" on a client-rendered site: Google does render JavaScript and can rank these pages, especially the PEO guides, and LinkedIn plus referrals are strong. The rebuild does not risk that traffic if the URLs and titles are preserved in phase 1. It makes the same pages faster and visible to the crawlers that currently see nothing. Verify the source mix in GA4 before assuming it is organic; if most of it is direct and LinkedIn, the organic upside is larger than it looks.
Sheet S-08

Site map and redirects

Navigation: Services ▾ · Industries ▾ · Locations ▾ · Resources · About · [Book an HR audit]. Footer carries the full NAP, hours, all locations, and the legal spine.

/                                   Home
/services/                          Overview + service schedule
/services/hr-audit/                 A-1 (mockup 02)
/services/hr-projects/              P-1 hub
  /employee-handbook-nc-sc/  /flsa-classification-review/  /i-9-e-verify-remediation/
  /compensation-benchmarking/  /performance-management/  /manager-training/
/services/fractional-hr/            F-1 with three tiers
/services/transitions/              T-1 hub
  /peo-exit/  /peo-switch/  /peo-implementation/  /hris-migration/  /payroll-provider-switch/
/services/peo-brokerage/            B-1 (absorbs /peo-broker, /how-it-works, /switch-your-peo, /do-we-need-a-peo)
/industries/  law-firms/  cpa-firms/  engineering-architecture/  medical-dental/  financial-advisors/  nonprofits/
/hr-consulting/                     Locations hub (NC + SC map)
/hr-consulting/charlotte-nc/        (mockup 03) + 11 more metros
/resources/                         Guides index, filterable by topic
/resources/state-employer-guides/    Hub for the 50-state series
/resources/state-employer-guides/north-carolina/   /south-carolina/   /georgia/ ... one per state, no thin pages
/resources/multi-state-employer-checklist/  /resources/nc-vs-sc-employment-law/  /resources/hr-audit-checklist/  ...existing PEO guides, deduplicated
/tools/hr-risk-score/               (renamed quiz)   /tools/peo-cost-calculator/
/case-studies/                      One per engagement, anonymized if required
/about/   /about/caleb-sherrill/    /how-we-get-paid/   /pricing/   /contact/
/pricing.md   /llms.txt   /llms-full.txt   /sitemap.xml   /404.html

Redirect map (add to _redirects)

Old URLNew URLType
/how-it-works, /peo-broker, /why-peo/services/peo-brokerage/301
/switch-your-peo, /resources/how-to-switch-peos/services/transitions/peo-switch/301
/do-we-need-a-peo, /resources/peo-readiness, /blog/should-your-business-use-peo/resources/do-we-need-a-peo/301
/peo-for-nonprofits, /resources/peo-for-nonprofits-guide, /blog/peo-for-nonprofits-charlotte, /nonprofit-toolkit/industries/nonprofits/301
/peo-broker-charlotte, /blog/peo-broker-charlotte-nc, /blog/what-is-a-peo-broker-charlotte-nc, /blog/signs-outgrown-peo-charlotte/hr-consulting/charlotte-nc/301
/peo-broker-north-carolina/resources/state-employer-guides/north-carolina/301
/peo-broker-south-carolina/resources/state-employer-guides/south-carolina/301
/resources/peo-pricing, /blog/how-much-peo-costs/resources/peo-cost-guide/301
/blog/peo-for-venture-backed-startups/resources/peo-for-startups/301
/peo-onboarding, /resources/peo-implementation/services/transitions/peo-implementation/301
/hr-headache-score/tools/hr-risk-score/301
/roi-calculator, /blog/peo-roi-calculator/tools/peo-cost-calculator/301
/blog, /blog/*/resources/, /resources/:splat301
/services (old Wix), /blank, /blank-1/services/, /, /about/301
www.pillarpeo.com/*pillarpeo.com/*, same path301
Sheet S-09

Keyword map

No Ahrefs or Semrush access in this pass, so volumes are not stated. Evidence is Google autocomplete on 5 Sep 2026: a term that autocompletes has measurable demand; one that returns nothing usually does not. Priority reflects demand × fit × winnability.

ClusterQueries (autocomplete-confirmed in bold)IntentPagePriority
Local HR consultinghr consultant charlotte nc, hr consulting firms charlotte nc, hr consulting raleigh nc, hr consulting firms in raleigh nc, hr consulting greenville sc, hr consultant charleston sc, hr consultant columbia scBuyMetro pages1
Local PEOpeo charlotte nc, peo raleigh nc, peo greenville sc, peo charleston sc, peo columbia scBuy / compareMetro pages + brokerage1
HR audit (national)hr audit, hr audit checklist, hr audit checklist template excel, hr audit checklist pdf, hr compliance audit, hr compliance audit checklist, hr audit cost, what does an hr audit include, hr audit processLearn → buy/services/hr-audit/ + /resources/hr-audit-checklist/1
State compliance (NC/SC first, then national series)is e verify mandatory in north carolina, north carolina e verify law, is e verify mandatory in south carolina, north carolina employee handbook requirements, south carolina employee handbook requirements, south carolina employee handbook disclaimer; then the same patterns per state (e.g. "georgia employee handbook requirements", "is e verify mandatory in florida")LearnState guides + articles1
Fractional HR (national)fractional hr, fractional hr services, fractional hr consultant, fractional hr companies, fractional hr director, fractional hr manager, peo vs fractional hrLearn → buy/services/fractional-hr/2
PEO transitions (national)peo exit, peo exit checklist, peo exit strategy, peo transition, switching payroll providers mid year, best time to switch payroll providersBuy/services/transitions/*2
HRIS (national)hris implementation, hris implementation consultant, hris implementation process, hris implementation project planLearn → buy/services/transitions/hris-migration/3
Industry (national)hr for law firms, hr consultants for law firms, hr systems for law firms, hr for medical practicesBuyIndustry pages2
PEO education (national, existing)is a peo worth it, what is a peo broker, how much does a peo cost per employee, best peo for small business, peo vs hr consultantLearnExisting guides, deduplicated, sourced3

Dropped: "peo broker {city}" (no demand), "hr headache" (autocompletes to medical queries), "hr for accounting/engineering/architecture firms" (no autocomplete; write the industry pages for referrals and AI fan-out, not for search volume). Not yet checked: per-state volumes outside the Carolinas; pull them from GSC and a keyword tool before sequencing the state series.

Sheet S-10

Mockups

Three full-scale pages, built in the proposed design system with real copy. Open each in a new tab; they are responsive. Dashed "slot" boxes mark proof that has to be collected before launch; they are deliberate and should never ship empty.

Not mocked, but specified: the About page (founder page with credentials and a "how we get paid" section), the state employer guides (long-form with the NC/SC comparison table pattern from the homepage), and the HR Risk Score tool (nine questions, instant score, email for the plan).

Sheet S-11

Build spec

LayerChoiceWhy
FrameworkAstro 5, static output, MDX content collectionsZero JS by default, per-page frontmatter drives title/meta/schema, sitemap with lastmod built in
HostingCloudflare Pages (already on Cloudflare)Real 404s, _redirects, _headers, edge cache, free
FormsCloudflare Pages Function → HubSpot Contacts API; Turnstile for spamKeeps HubSpot as CRM, no third-party form JS
BookingHubSpot Meetings embedded in-page; GA4 event on the meetingBookSucceeded postMessageAttribution survives; no off-site hop
FontsSelf-hosted woff2 (League Spartan, Nunito Sans), preloaded, swapRemoves the render-blocking Google Fonts CSS
ImagesAstro image pipeline → AVIF/WebP with srcset; hero fetchpriority="high"Fixes LCP
AnalyticsGA4 via Cloudflare Zaraz (server-side), plus Search Console and Bing WebmasterLighter page, first-party data
ChatNone at launchSee 5.3
SchemaComponent per type, fed by frontmatter: Organization, LocalBusiness, Service+Offer, Article, FAQPage, HowTo, Person, BreadcrumbListValidates in Rich Results Test before every deploy
Machine files/llms.txt, /llms-full.txt, /pricing.md, /robots.txt, /security.txtAEO layer
HeadersHSTS (keep), CSP, Referrer-Policy, Permissions-Policy; Cache-Control: public, max-age=0, s-maxage=86400, stale-while-revalidate on HTMLSecurity + speed
EmailDMARC to p=quarantine then p=reject; BIMI optionalOutbound deliverability for the referral campaign

Effort estimate for a competent Astro developer: 3–4 weeks for the shell, templates, 30 pages of migrated content, redirects, and schema; content writing for the new services, state guides, and wave-1 metros runs in parallel and is the real bottleneck.

Sheet S-12

90-day plan

WeekDoOwnerDone when
1Register pillarhradvisors.com defensively. Decide the address. Create and verify GBP. Set up Search Console and Bing Webmaster for both domains. Collect the first five testimonial asks (S-15).CalebGBP verification postcard requested; 5 asks sent
1–2Write the HR Audit product spec into a sellable one-pager (S-17). Sell three audits to existing relationships at the launch price. These become case studies.Caleb + Josiah3 signed
2–5Astro build: templates, design system, migration of 22 resources (deduplicated), redirects, schema, forms, booking embed.DeveloperStaging passes S-19
2–5Write: services (5, national), industries (6, national), Charlotte + Rock Hill/Fort Mill + Raleigh pages, NC and SC employer guides, multi-state employer checklist, NC vs SC comparison, HR audit checklist (PDF + XLSX), how-we-get-paid, founder page.Caleb (voice) + writerCounsel review complete
3Citations: BBB, Apple Maps, Bing Places, Yelp, Clutch, Alignable, Charlotte Regional Business Alliance, chambers. NAPEO membership if not held.Emily12 listings live, NAP identical
5Collect testimonials and the first case study from the three audits. Record three 60-second videos with Caleb.Josiah5 quotes with numbers
6Launch on pillarpeo.com. 301 every old path. Submit sitemaps. Request indexing on the 20 most important URLs. Announce on LinkedIn with the "two rulebooks" table as the post.Developer + CalebLive; zero 404s in GSC after 72 h
7–10Wave 2 metro pages (Greenville, Charleston, Columbia). State guides for the next 4 states where clients have people. Two articles a week from S-14. Weekly GBP post. Review asks after every engagement.Writer + Emily3 pages + 8 articles
8Referral partner outreach: 40 CPAs and 40 employment attorneys in Charlotte and Greenville (S-15).Josiah10 conversations
11–13Wave 3 metros. First AI-visibility check (S-16). Review Search Console queries; add FAQs for questions people actually typed. Run the first A/B test from S-05.AllBaseline report
Sheet S-13

Local presence kit

Google Business Profile setup

  1. Business name exactly "Pillar PEO Advisors" (no keywords appended; Google suspends for it).
  2. Primary category Human resources consulting; secondary Business management consultant.
  3. Service-area business covering Charlotte metro and the 11 other metros, or a verified physical address if you have a suite.
  4. Services list mirroring the service schedule with prices ("HR Audit, from $2,500"). Set the service area to the Charlotte metros you visit; the national work is a website claim, not a GBP claim, and GBP suspends for over-broad areas.
  5. Description (750 chars) leading with fixed-price HR audits for professional firms, headquartered in Charlotte and working nationwide.
  6. Hours, phone, website (UTM-tagged), booking link (the embedded calendar page).
  7. Ten photos: team, Caleb at a client office in each metro as you go, the Load Report cover.
  8. Q&A: seed five questions from the FAQ and answer them yourself.
  9. Weekly post from the content calendar; every post links to a page.

Citation list (NAP identical on all)

Google Business Profile · Apple Business Connect · Bing Places · Yelp · BBB (accreditation optional) · Clutch · Alignable · LinkedIn company page (update tagline and address) · Charlotte Regional Business Alliance · NC Chamber · SC Chamber · Rock Hill/York County Chamber · Greenville Chamber · Charleston Metro Chamber · NAPEO member directory · SHRM vendor directory · NCACPA and SCACPA sponsor/partner pages · Crunchbase · Facebook page (even if unused, for NAP).

Sheet S-14

Content calendar: first twelve weeks after launch

WkPieceTarget queryFormat
1Multi-state employer checklist: what happens the day you hire in a new statenational, multi-state complianceChecklist + HowTo schema
1NC vs SC employment law for firms with staff in bothinformational, cross-border, localComparison table + 2,000 words
1Is E-Verify mandatory in North Carolina? (and SC companion)is e verify mandatory in north carolinaDirect answer + thresholds + penalties
2HR audit checklist for Carolina firms (PDF + XLSX)hr audit checklist template excelUngated download + gated "with notes" version
2What does an HR audit include, and what does it cost?what does an hr audit include / hr audit costGuide with the 9 areas and price bands
3North Carolina employee handbook requirementsnorth carolina employee handbook requirementsChecklist article
3South Carolina employee handbook requirements (incl. disclaimer language)south carolina employee handbook disclaimerChecklist article
4Paralegal overtime: the classification mistake in half the Charlotte firms we audithr for law firmsIndustry article, case-based
4Case study 1: 42-person CPA firm, Charlotte + Fort MillproofBefore/after with numbers
5PEO exit checklist and timeline (why January 1 matters)peo exit checklistChecklist + HowTo schema
5Fractional HR vs PEO vs full-time: cost comparison for a 40-person firmpeo vs fractional hrTable-first
6Switching payroll providers mid-year without duplicate W-2sswitching payroll providers mid yearGuide
6Workers' comp thresholds by state, and the remote employee trapcompliance, nationalTable-first article
7HRIS implementation plan for a 10–150 person firm (Gusto, Rippling, Paylocity, BambooHR)hris implementation project planGuide + template
7Busy-season overtime for CPA firms: comp time is not a thingindustryArticle
8Charlotte Non-Discrimination Ordinance: what your handbook needslocalArticle, links from Charlotte page
8PEO cost guide 2026 (refresh, add NAPEO citations)how much does a peo cost per employeeRefresh
9Final pay rules by state (50-state table)compliance, nationalTable-first
9Case study 2proof
10Medical practice HR: what an OSHA visit and a credentialing audit both want to seehr for medical practicesIndustry
10Personnel file vs medical file vs I-9 filecomplianceShort answer
11Pregnancy and lactation accommodation in SC (15+) and under PWFAcomplianceArticle
11Engineering firm HR: exempt designers and public-contract wage rulesindustryIndustry
12How we get paid (expanded, with commission ranges)are peo brokers freeTrust page
12Quarter review: refresh dates on all guides; add FAQs from GSC queriesfreshnessMaintenance

Every piece: a 40–60 word direct answer under the first H2, one cited statistic, an "Updated" date, the author byline linking to the founder page, a contextual CTA to the matching service, and a 60-second video version for LinkedIn and YouTube where Caleb already has a post on the topic.

Sheet S-15

Scripts

Testimonial ask (email, to a past brokerage client) Subject: One sentence, if you have it

Hi [Name], we're rebuilding the Pillar site and I'd rather show what clients say than what I say. Could you give me two sentences: what we did, and what changed, ideally with a number (hours a month, a renewal percentage, a fine you didn't pay)? I'll send it back for approval before it goes anywhere with your name and firm. If you'd rather stay anonymous, "Managing partner, Charlotte law firm" is fine too.
Thanks, Caleb
Google review ask (text, day after the Load Report walkthrough) [Name], thanks again for yesterday. If the audit was useful, a Google review helps other Carolina firms find us: [short link]. Mentioning the city and what we did (e.g. "HR audit for our Greenville CPA firm") helps more than a star rating. No pressure either way.
CPA referral partner (email) Subject: HR audit for your clients with staff in more than one state

Hi [Name], I run Pillar PEO Advisors in Charlotte; we work with firms nationwide. We do fixed-price HR audits ($2,500–$6,000) for firms of 10–150 people, and the finding we hit most often is a client who hired someone in a new state and never registered there. You see those clients before we do. Two things I can offer: a one-page multi-state employer checklist you can hand to clients with your name on it, and a 20-minute HR risk check for any client you send, free. Worth a coffee? I'm near [their office] most Tuesdays.
Caleb
Employment attorney referral (email) Subject: The audit that happens before the call to you

Hi [Name], I'm Caleb Sherrill at Pillar PEO Advisors. We run fixed-price HR audits for professional firms nationwide, based in Charlotte, and we refer anything that smells like a claim or an investigation straight to counsel; we don't practice law and we say so on every page. We're happy to run audits under your engagement when a client wants privilege. I'd like to be the firm you send the "we should probably look at our handbook" clients to. 20 minutes?
Chamber / association outreach Subject: A 30-minute session your members will use the next day

Hi [Name], I'd like to offer your members a free 30-minute session: "Two rulebooks: the six NC vs SC employer rules that bite firms with staff in both states." No pitch; the handout is the checklist. Would [month] work?
Sheet S-16

Tracking and KPIs

Events (GA4, via Zaraz)

EventFires whenMarked as conversion
meeting_bookedHubSpot embed postMessage meetingBookSucceededYes (primary)
form_submit_contactWorker returns 200Yes
phone_clickAny tel: linkYes
risk_score_complete / risk_score_emailScore shown / email submitted, with score band as a parameterEmail: yes
checklist_downloadPDF/XLSX clickYes (micro)
pricing_viewPricing table 50% in viewportNo

Also: a call-tracking number for GBP (CallRail or similar, NAP-safe with a tracking number shown only on GBP and swapped on-site via script), UTM on the GBP website link, HubSpot lifecycle stage set from the form's firm-size field, and Search Console + Bing Webmaster on the new domain.

Targets

90 daysGBP verified with 10+ reviews; 12 citations; 300+ indexed URLs impressions/day in GSC; 6 audit bookings from the site
6 monthsMap pack for "hr consultant charlotte nc"; page-1 for 5 state-compliance queries; top-20 for "hr audit checklist" and "fractional hr services"; 15 audits sold, at least 5 from outside the Carolinas; Pillar cited in at least 3 of 20 AI test queries
12 monthsTop 3 organic for "hr consulting firms charlotte nc"; page-1 for "hr audit" and "peo exit checklist"; 12 metro pages and 15 state guides ranking; 30% of revenue from fractional retainers
AlwaysZero pages with an empty proof slot; every guide refreshed within 6 months

Monthly AI-visibility check (20 queries)

hr audit services for small law firms · fixed price hr audit · fractional hr companies · how to leave a peo · multi-state employer compliance checklist · hr consultant charlotte nc · best hr consulting firms in charlotte · hr audit for a law firm · how much does an hr audit cost · fractional hr charlotte · peo broker charlotte · is e-verify required in north carolina · is e-verify required in south carolina · north carolina employee handbook requirements · south carolina employee handbook requirements · how to leave a peo · peo vs fractional hr · best peo for a 40 person cpa firm · hr consulting greenville sc · hr consultant raleigh nc · charlotte non-discrimination ordinance employer · nc vs sc employment law · are peo brokers free · what is a peo broker · pillar peo advisors reviews. Log: cited? who is? which page?

Sheet S-17

HR Audit product spec (the Load Report)

This is the thing the site sells first, so it has to exist before the site does.

ElementSpec
Price$2,500 (10–25) / $4,000 (26–75) / $6,000 (76–150). Quoted on the scope call, fixed. States are priced into the bands (up to 2 / up to 5 / unlimited). Over 150 employees: custom.
Duration15 business days from document upload. Client time: ~4 hours.
InputsHandbook, payroll registers (2 periods), I-9s (sample or all), job descriptions, benefit plan docs and notices, org chart, separation files (last 5), vendor/PEO contract, posters photo, timekeeping sample. Secure upload link.
InterviewsOwner/managing partner, whoever runs payroll, one manager, one newer employee (30 min each).
Nine areas1 Hiring, I-9, E-Verify · 2 Classification and wage-hour · 3 Handbook and policies · 4 Payroll and tax registrations · 5 Benefits, ACA, COBRA · 6 Leave and accommodations · 7 Records, retention, privacy · 8 Safety and workers' comp · 9 Offboarding and final pay. 41 checks total, each mapped to a federal rule plus a state addendum for every state with an employee.
ScoringPass / Watch / Fail per check; area status is the worst check in it. Exposure estimate in dollars for each Fail (back pay, penalty range, premium).
DeliverableThe Load Report (PDF, 12–20 pages): one-page summary, nine area pages, 90-day plan with owner and week, appendix of rules cited. Plus a 90-minute walkthrough.
Follow-onEach Fail maps to a fixed-price project or a fractional tier. If a PEO is the fix, the comparison is free. Re-audit at 12 months at 50% for fractional clients.
Legal posture"Pillar is not a law firm. Findings are reviewed with your counsel." Option to run under counsel's engagement for privilege at the same fee.
Sheet S-18

Copy deck

Homepage hero, three options

  1. HR that bears the load. (used in mockup) Sub: Fixed-price HR audits, projects, fractional support, and PEO or HRIS transitions for law, accounting, engineering, and medical firms in any state. Headquartered in Charlotte.
  2. Your firm is an employer in more states than it thinks. Sub: HR advisory that checks every rulebook your people work under, fixes what it finds at a fixed price, and stays on as your fractional HR lead.
  3. Find out what your HR is carrying before it fails. Sub: A fixed-price audit, then the fixes, from an independent firm that discloses how it gets paid.

CTAs

Primary: "Book an HR audit" (with "from $2,500" where space allows). Secondary: "Compare PEOs, free". Tertiary: "Get the NC/SC checklist". Never "Learn more", never "Submit", never "Schedule a PEO Strategy Call" on a page that is not about PEOs.

Section heads worth keeping from the current site, reframed

  • "The wrong setup costs more than the monthly fee" → "The wrong setup costs more than the audit."
  • "Bad decisions start with bad assumptions" → keep, with HR myths: "We're too small for E-Verify" (not in SC), "Salaried means exempt", "The PEO handles compliance" (not classification, not your managers).
  • "Make a confident next-step decision" → drop; it is filler.

Title and description patterns

PageTitle (≤60)Description (≤155)
HomeHR Advisory for Professional Firms | Pillar PEO AdvisorsFixed-price HR audits, fractional HR, and PEO transitions for law, CPA, engineering, and medical firms nationwide. Headquartered in Charlotte, NC. Independent.
HR AuditHR Audit for Small Professional Firms, from $2,500 | PillarNine areas checked against federal rules and every state you employ in. Fixed price, 2–3 weeks, a 90-day fix plan. Book a 20-minute scope call.
CharlotteHR Consulting in Charlotte, NC | Pillar PEO AdvisorsCharlotte HR consultant for firms of 10–150: fixed-price audits, fractional HR, PEO exits. Covers your Fort Mill and Rock Hill staff under SC rules too.
NC guideNorth Carolina Employer Guide 2026: HR Rules by HeadcountE-Verify at 25, workers' comp at 3, wage notices, REDA, final pay, handbook requirements. Reviewed by employment counsel; updated quarterly.
Sheet S-19

Launch QA checklist

  • curl any inner URL: title, H1, body text, and JSON-LD present in the response without JavaScript.
  • A made-up URL returns HTTP 404. www redirects to apex with 301. Legacy Wix paths redirect.
  • Every URL in the old sitemap resolves to a 200 after at most one redirect. No chains.
  • Rich Results Test passes on home, one service page, one metro page, one article, one FAQ.
  • Lighthouse mobile ≥ 90 performance, 100 accessibility, 100 SEO on home and one metro page. LCP under 2.5 s.
  • All buttons ≥ 4.5:1 contrast. Keyboard focus visible. Skip link present.
  • Phone is a tel: link; address matches GBP character for character.
  • Form submission creates a HubSpot contact and fires form_submit_contact; booking fires meeting_booked.
  • No proof slot is empty. No "lorem", no "[Name]", no "282xx" left in copy.
  • llms.txt, pricing.md, sitemap.xml, robots.txt, 404.html all return 200 with correct content types.
  • DMARC at least p=quarantine before the outreach campaign starts.
  • Search Console: sitemap submitted, top 20 URLs requested for indexing.
Method

Pass log, and what was not verified

  • Pass 1 (evidence). Pulled raw HTML and headers for 20 URLs, the sitemap, robots, llms.txt, DNS. Rendered home, Charlotte, quiz, and a 404 in headless Chrome and diffed against raw. Inspected the 761 KB bundle for routes, schema, titles, dates, and form handlers. Ran Lighthouse 12 three times. Pulled Google autocomplete for 50 seed queries. Read four competitor pages. Checked whois on five domains.
  • Pass 2 (challenge). Re-checked claims that would embarrass the report if wrong. Corrected: an early mobile screenshot suggested horizontal overflow; Lighthouse's device emulation shows none, so that claim was dropped. Confirmed schema does exist (JS-injected), so the finding is "invisible without JS and inconsistent", not "missing". Confirmed /services is a client-side redirect, not a 404. Confirmed the invalid "May 2026" dates against the bundle rather than the rendered page.
  • Pass 3 (build and read-back). Built the mockups, then read the report against them for contradictions in prices, service names, and thresholds. Aligned the audit bands ($2,500 / $4,000 / $6,000) and the nine areas across all four documents. Ran the state-law table against two independent sources each.
  • Pass 4 (QA against the live site, after the client noted strong monthly traffic). Re-tested every finding that could be wrong. Corrected four: the phone is a tel: link in the header and footer (only the contact-page card is not); the hero image already has fetchpriority="high" and dimensions (the problem is that the tag exists only after JavaScript); the route count is 49, not 50; the quiz does capture first name and email in the bundle. Confirmed the rest: Googlebot and GPTBot user agents both receive the same 2,994-byte shell with no server-side rendering for bots; /blog and /services duplicate other pages but carry client-side canonicals; contrast ratios (white on green 2.1:1, navy on green 8.8:1, #1A7A45 on white 5.4:1); no lastmod in the sitemap; the chat avatar is not one of the three team members on the About page. The search index I can query (not Google Search Console) returns only the homepage and legacy Wix URLs with old titles for Pillar; the Charlotte page did not appear for its own exact title. Treat that as a signal to check the Search Console pages report, not as proof. All the traffic-protection guidance in S-07b follows from this pass.
  • Pass 5 (design). After the client rejected the first refined-brand mockups, the creative-director and product-designer agents produced a module spec and a UX critique, and the front-end design agent rebuilt the three mockups from those. See S-10.

Not verified, and how to verify

  • Google Business Profile. Web search found no listing; I could not query Maps directly. Search "Pillar PEO Advisors" in Google Maps. If a listing exists, the S-13 work becomes an edit, not a creation.
  • Search volumes and rankings. No Ahrefs/Semrush/GSC access. Autocomplete is a demand proxy, not a count. Pull GSC for the last 16 months before finalizing the keyword map.
  • Quiz lead capture and contact-form destination. Not exercised end to end. Submit both and check where the record lands in HubSpot/GoHighLevel.
  • Backlink profile. Unknown. Pull from Search Console's Links report or Ahrefs before the domain decision; if there are meaningful links, the 301 plan preserves most of their value.
  • "Used by 100+ business owners." Take it from GA4 or the quiz backend, or remove it.
  • State-law thresholds. Checked against two sources each on 5 Sep 2026, but statutes move; employment counsel signs off on the published tables. SC bills 3218 and 4797 (E-Verify documentation) were pending in the 2025–26 session at the time of writing.
  • Twitter handle @PillarPEO in the meta tags: existence not confirmed. Remove the tag if the account is dormant.