Skip to content
Back to Blog
technical SEOsite auditSEO audit toolsDeepAuditaudit scoringprivacy policypage titlesCore Web Vitals

Why a Website Audit Score of 100 Can Reward the Wrong Fix

Joshua R. Gutierrez8 min read

Last week I wrote about how an Ahrefs Health Score of 100 can still sit above 66 open issues. Ahrefs only uses errors in that calculation, so warnings and notices can remain even when the score is perfect.

This time I ran my own audit tool against one of our own sites. DeepAudit gave it a 99, and the two warnings underneath that score exposed a problem in my own scoring model. The easier, mostly cosmetic fix was enough to produce a perfect score. The fix that actually mattered was not.

I changed the tool. This is what happened and why I changed it.

The site

The site is lascrucescleaning.com. Crystal runs the cleaning business from our house, and I built the site, so this is not a client site being picked apart in public. It is a ten-page static site with no analytics and no advertising trackers.

DeepAudit gave it a score of 99 out of 100 and a grade of A+. It ran 79 checks, returned two warnings, and listed six notices. The notices are informational and do not affect the score.

I expected the last point to be easy. It turned into a review of the scoring system itself.

The two warnings

The first warning was on the privacy page. It contained 285 words, which put it below DeepAudit's 300-word short-page threshold.

The second warning said the site had no social sharing buttons. That check looks for links that open a prefilled post or message on services such as Facebook or X.

One warning led me to a real omission. The other came from applying a publishing-oriented rule to a local house cleaning site. The score should have reflected that difference. It did not.

The arithmetic

This is the exact scoring formula DeepAudit used. I am including it because the result only makes sense when the rounding is visible.

Every check is marked pass, warning, fail, or info. A pass counts as 1.0, a warning as 0.5, and a failure as 0. Info checks are not scored. DeepAudit calculates each category as a percentage and rounds that category to a whole number. It then multiplies each category score by its weight, adds the weighted results, and rounds the total again for the score shown in the report.

For this audit, the Technical category had a weight of 0.16 and contained 19 scored checks. Social and Schema had a weight of 0.12 and contained 6 scored checks.

A single warning among 19 checks reduced the Technical category to 97. A single warning among 6 checks reduced Social and Schema to 92. The totals were:

StateTotal before final roundingDisplayed score
Both warnings open98.5699
Privacy page fixed only99.0499
Sharing buttons added only99.52100
Both warnings fixed100.00100

That middle comparison is the reason I am writing this.

Adding three share links took about twenty minutes and made no meaningful improvement for the people using the site. That change alone was enough to make DeepAudit display 100. Rewriting the privacy notice fixed a real gap, but that change alone still displayed 99.

This was not a typo or one bad number in the code. The problem came from the structure of the scoring model. The value of a check depended partly on how many other checks happened to be in the same category. The fewer checks a category contained, the more each individual check was worth, regardless of how important that check actually was. I did not design that behavior intentionally, but the arithmetic created it anyway.

What the short-page warning found

The privacy notice was not a problem simply because it had 285 words. The word count helped me find it, but the actual problem was that the page was incomplete.

The site has a chat bubble. Anything a visitor types there reaches us in much the same way as a form submission, but the privacy notice did not mention it. The page also said nothing about server logs, how we use a phone number to respond to a quote request, or how long we keep an old quote before clearing it out.

Those are ordinary details, but they are still details a visitor should be able to find. I rewrote the notice, which took it from 285 words to 572 by the same count that flagged it, and every addition describes something we actually do.

A word-count check cannot tell me whether a privacy disclosure is complete. It can only point out that a page is unusually short and may deserve another look. In this case, that was useful. The check identified the right page, even though word count was not the real defect. I would treat that as a review prompt, not as a scored failure.

What I changed in DeepAudit

I made two changes.

Social Sharing is now unscored information. The check still appears because sharing controls can be useful on articles and other content people are likely to pass along. It no longer affects the score because their absence is not a defect on most of the sites I audit.

Short pages now appear as their own unscored review item. DeepAudit will still tell you that a page falls below the threshold, but it will not treat that fact as a scored per-page problem. Actual page defects such as a missing title, missing or duplicated H1, missing meta description, or missing canonical still score as they did before.

I did not fix the entire scoring model. Checks still inherit some of their value from the size of the category they belong to instead of declaring their own severity. That is the root problem. Changing it would recalculate every audit DeepAudit has ever produced and make older before-and-after comparisons unreliable. It needs to be handled deliberately, not slipped into an unrelated update.

I removed the buttons too

I had already added the share links before I worked through the scoring arithmetic. Once I understood what the score was rewarding, I removed them again.

I could have made an argument for keeping them. A small cleaning company grows through referrals, and those referrals may happen in a Facebook group or a text message. But that argument came after the fact. I was trying to justify a feature that existed only because an audit score had told me to add it.

If we decide to build a referral feature, it should be based on how customers actually refer the business. Three generic sharing links left behind by a bad scoring rule are not that feature.

The website did not need the buttons. DeepAudit needed a better rule.

The title changes were my call

Two page titles were 64 and 69 characters long because the site template added "| Las Cruces Cleaning" to the end of every title. That suffix used 22 characters before the individual page had finished saying what it was about. I replaced both titles with page-specific versions of 42 and 47 characters.

No audit tool told me to do that. DeepAudit passed both title checks. A separate crawl of all ten pages found no broken pages or indexing problems and reported the title lengths without judging them. The 60-character guideline was mine, and I should not present it as if the tools had flagged a problem.

There is no fixed 60-character limit anyway. Google says title elements do not have a set length limit, and the visible title link is shortened as needed to fit the device. I kept the shorter titles because the repeated suffix was using space without adding much information and the new titles describe the pages more clearly. That is the reason for the change. It has nothing to do with earning the last point.

What a score of 100 still does not mean

The final rescan returned 100 and an A+.

The report now contains seven notices: no hreflang, no bold tags, no llms-full.txt, no embedded map, no geo meta tags, several icon-only links, and no social sharing buttons. None of those notices affects the score, and most do not call for any work on this site. A single-language local cleaning site does not need hreflang. Google's documented supported meta tags do not include generic geo tags. The social icons have no visible text, so the icon-only note is accurate, but they do have proper accessible labels. DeepAudit has a separate scored check for links that genuinely have no accessible name.

The seventh notice is the one worth pointing at. Social sharing is still in the report, because it is still worth knowing. It has simply moved to the part of the report that cannot cost you anything. That is where it should have been all along.

That distinction matters to me. A report should show useful context without turning every observation into another job. Those six notices are not six remaining problems, and I am comfortable leaving them open.

A score of 100 also says nothing about whether the prices are right, whether we answer the phone, or whether anyone in Las Cruces knows the business exists. It only describes what this set of checks found on this crawl. We were fortunate to be arguing about one final point at all. In our 2026 small business website study, 96.9% of the 191 sites with mobile Core Web Vitals data failed at least one metric. That group came from 292 domains scanned.

I am not including a performance score from this round of work. I ran the audit three times over the course of the day. PageSpeed returned a desktop result on the first run, a mobile result on the second, and nothing at all on the third. I have not run enough tests to report a median, and one result is not a measurement I would defend.

The takeaway

An audit score is useful as a work queue. It is not a grade on the website, and it should not decide what gets built. Read the findings, check them against the live site, and decide whether each one is actually relevant to the business. Sometimes the correct response is to leave a check unsatisfied.

If you build the audit tool, you have one more responsibility. When a check repeatedly encourages work that does not improve the site, changing the wording is not enough. It should not be able to move the score. In this case, the website was not the thing that needed fixing. The tool was.

Audit your website

Run the same checks on your own site with DeepAudit AI. It is free and does not require a signup.

Related services

Keep reading

Joshua R. Gutierrez, Founder & Lead Engineer, Axion Deep Digital

Written by

Joshua R. Gutierrez

Founder & Lead Engineer, Axion Deep Digital

SEO strategist and full-stack engineer who builds the audit tooling, then does the work. Technical SEO, Core Web Vitals, and content systems for SaaS and B2B.

View Joshua R. Gutierrez’s full profile & credentials →

Ready to build a website that performs?

Let us audit your current site, identify the biggest opportunities, and build a plan to grow your traffic and leads.