$149 · 24 hours

Field notes · 4 September 2026

I read 31 contractor websites. Here is what was broken.

Landscapers, roofers, pool builders and custom home builders across six states. I fetched the markup each server actually sends, counted the defects, and then checked every single one by hand — because six of the things the counting found weren't real, and one of those six was mine.

No names. I don't publish a business next to its faults. Here is the count.

Jordan William · Apex Site Audits · Calgary, Alberta

How this was counted

31 homepages, one per business. 16 landscaping and landscape design, 6 pool builders, 5 roofers, 4 custom home builders. Boise, Colorado Springs, Grand Junction, Billings, Casper, Reno and Spokane.

Fetched 2–4 September 2026. Every number below comes from the HTML the server sent, not from a tool's opinion about it. Median homepage: 163 KB of markup alone, before a single image loads.

Then checked by hand, one at a time. That step is not optional and the section near the bottom explains why.

The count

The expensive ones aren't the technical ones

Nobody leaves a website because of a canonical tag. They leave because they couldn't read it, couldn't tap the number, or weren't sure the business still existed.

The zoom lock is the worst thing on this list and it's a single line of code from a template that shipped years ago. The business owner has never seen it, because it doesn't misbehave on a laptop. It only bites the customer standing in their own backyard trying to read your service list one-handed.

The second worst isn't in the count at all, because it isn't a defect — it's an omission. One of these builders has been trading since 1957 and mentions it once, in the middle of a paragraph, below the fold. Sixty-nine years in one trade in one valley is the single most convincing thing that business owns, and it is a line in a paragraph.

One site was clean

A roofer in western Colorado

Current copyright year, canonical tag, ten Open Graph tags, alt text on all seventeen images, working phone and email links, no zoom lock, no leftover template text, title 59 characters. I went through it twice looking for something to tell them and there wasn't anything worth an email.

That's one in thirty-one. It also means the other thirty are losing work to whoever built that one.

Six things the counting got wrong

This is the part that matters. A scanner will hand you a list like the one above in four seconds, and a good share of it will be false. Every one of these looked like a finding and none of them were. The sixth was mine, and it was live on this page for a day.

The phone number that was a stylesheet

A pattern-match for a placeholder phone number hit (999) 999-9999. It was z-index:999999 in the site's CSS. There was no phone number.

The Lorem ipsum nobody can see

A block of Latin filler text sitting in the markup. It's inside an element the stylesheet sets to display:none. Invisible to every visitor. Telling that owner their site says "lorem ipsum dolor" would have been wrong and they'd have known it.

The duplicate pages that already knew

Two URLs, same content — the classic -2 suffix a CMS leaves behind. Both already carried a correct canonical tag pointing at the original. Nothing to fix.

"Your company" — written by a customer

Template placeholder text usually reads like that. On this site it was inside a genuine review: "I'd recommend your company to anyone." A real sentence from a real person.

The warning that was doing its job

A comment reading do not remove this or risk form bot signups sitting in the middle of a contact form. It's a Mailchimp honeypot, positioned at left:-5000px, off the side of the screen. Working exactly as designed.

And the one I got wrong myself

The first version of this page said 16 of 31 have a link that goes nowhere. That was my own count and it was wrong. Most href="#" links aren't broken at all — they're the top item of a dropdown menu, a cookie banner button, a back-to-top arrow, a gallery filter. They look dead in the markup and behave perfectly on the page.

Counted properly — only links a customer can actually click and read — it is 2 of 31, not 16. The number above has been corrected and this note is staying here. I found it the next morning, doing to my own work what I'd just spent three days doing to thirty-one other people's.

Six false positives, one of them mine. That is the entire difference between a scan and an audit, and it is why this is done by hand and why it takes a day rather than four seconds.

For the avoidance of any doubt: while I was doing this I also found four British spellings on my own website and shipped one of them in an email to an American business. Everybody's site has something. Mine included, twice this week.

Check your own site in ten minutes

All of this is free. None of it needs a tool.

  1. Try to pinch-zoom your own homepage on your phone.If it refuses, that's the zoom lock. Ask whoever maintains the site to delete maximum-scale=1, user-scalable=0 from the viewport tag.
  2. Tap your own phone number on your phone.If nothing happens, it isn't a link. Every visitor who wanted to call you had to memorize it first.
  3. Scroll to your footer and read the year.If it isn't this year, fix it now. It takes thirty seconds and it's the first thing a cautious customer checks.
  4. Search Google for your business name and read your own result.If the blue line trails off in an ellipsis, your title is too long. If the gray line underneath isn't a sentence you wrote, you have no meta description.
  5. Paste your web address into a group chat.Whatever preview appears is what appears when a customer recommends you. If it's a gray box, you have no og:image.
  6. Click every link in your own footer.Terms, privacy, careers, the social icons. On two of these sites a real one went nowhere — on one of them it was Terms of Use, Privacy Policy and the license agreement, all three.

That's seven of the twelve findings above, at no cost, in under ten minutes. If you do nothing else after reading this, do the first two.

The other half takes longer.

The rest of it — the duplicated pages, the headings, the thing your site says on a phone that it doesn't say on a laptop, the one paragraph that should be your headline — is what I do for $149. One page, read line by line, every problem written down in order of what it's costing you, with the fix under each one. Back inside 24 hours.

If the document doesn't contain at least three real problems, you don't pay. You keep it either way.

Audit my website — $149

Read a complete audit first: a real site, findings untouched, identity redacted →
Or email apexsniperdev@gmail.com and I'll find one problem on your site for nothing.