Sample deliverable · suur.io · 2026-08-28
The audit I ran on my own site.
This is the real thing, not a mock: 275 URLs crawled, eight automated specialist passes cross-checked against each other and against live data, live Search Console, Chrome UX and page-speed data, plus paid SERP and backlink data. It is here so you can see what from $3,000 buys before you order. Numbers are as of 2026-08-28; where something has since been fixed, the text says so.
275
URLs crawled
69/100
health score
8
automated passes, cross-checked
5
do-not-bother calls
Health score
69 out of 100, and why that number is not the point.
The first complete score for the property; the previous pass had left two categories open. Content moved from 42 to 72 because two integrity liabilities were deleted, not because anything was polished. On-page fell from 71 to 65 without anything getting worse: the same defect was measured across all pages instead of a sample.
| Category | Weight | Score | Three weeks earlier |
|---|---|---|---|
| Technical SEO | 22% | 83 | 74 |
| Content quality | 23% | 72 | 42 |
| On-page SEO | 20% | 65 | 71 |
| Schema / structured data | 10% | 82 | 82 |
| Performance (Core Web Vitals) | 10% | 45 | not scored |
| AI search readiness | 10% | 60 | 55 |
| Images | 5% | 42 | 42 |
| Total | 69 |
The finding that reframes everything
Close to zero commercial visibility, and the constraint was not on-page quality.
Filtering 90 days of Search Console queries to genuine striking distance (positions 8 to 20, three or more impressions) returned 30 rows. Eleven were the site's own name typed as a search operator. Seven were brand confusion with an unrelated Dutch staffing firm. Four belonged to a different product on a subdomain. One was Arabic slang that happens to match the string.
Real commercial queries in striking distance: effectively zero. Impressions had risen 43 percent while clicks fell 43 percent and average position went from 8.9 to 24.4. That signature means a site being served for progressively more irrelevant queries, not one losing ground on relevant ones.
So title tags and alt text went to the maintenance list. Indexation and authority went to the top. That single call reordered the entire roadmap, and it is the kind of call a deliverable-count audit never makes, because it shrinks the invoice.
Top five critical issues
What was actually broken.
- 01
The flagship comparison page has never been crawled
The page the whole GEO strategy rests on returned “Discovered, currently not indexed” with no crawl on record. Google knew the URL and had never fetched it. Its indexed sibling is cited by ChatGPT; this one is not. Crawl is the gate on citation, so submitting this one URL through the Indexing API was the highest-return action on the site.
An automated pass had reported seven of eight comparison pages as unindexed. Direct URL inspection showed two indexed and recently crawled; the seven came from reading zero impressions as non-indexation. The real problem was narrower and cheaper than reported.
- 02
Google chose a dead www URL as the canonical for a live page
The one page holding real page-one authority (31 impressions at position 7.9) redirected through two hops from an old www address, and Google kept the old address as canonical. Collapsing the chain to one Cloudflare rule and requesting re-indexing moves the authority forward. The only place ranking authority demonstrably existed was pointed at a URL that no longer did.
- 03
Largest Contentful Paint at 8 seconds on the two most important pages
Homepage and the flagship product page scored 61 and 54 on mobile with LCP of 8.5 and 8.0 seconds. A comparison page on the same stack scored 98 with a 1.7 second LCP, which makes it diagnosable: the architecture is fine, three specific images are not. One of them is 776KB with 93 percent waste.
Stated plainly: there was no field data. Chrome UX Report had insufficient traffic, so these are single lab runs. Read them as “bad”, not as a precise trend.
- 04
138 of 275 pages emit the homepage’s social card
The framework does not merge Open Graph metadata across layout and page, so every page that omitted it inherited the homepage card wholesale. Share almost any URL and the preview describes a different offer than the page. Three files routed through one metadata helper fix 117 of the 138.
- 05
A pending cache rule would have broken every future deploy
Two cache layers, and only one honoured the five-minute expiry. The wire header still said one year. The planned edge cache rule, set to respect origin headers, would have inherited that year verbatim. The fix is an ordering constraint: override the header first, then ship the rule. The danger was the fix, not the current state.
Top five quick wins
Cheap, and worth doing this week.
- 01Fallback social image for 49 blog posts that had none1 line
- 02Route three listing templates through the metadata helper3 files
- 03Submit the uncrawled comparison page through the Indexing APIminutes
- 04Convert the 776KB image that dominates LCP on the work index1 file
- 05Strip a doubled title suffix from 27 case-study titles27 strings
Section detail, condensed
What held up, what did not.
Technical: 83
275 of 275 pages returned 200. Zero noindex leaks, zero duplicate titles, zero canonical mismatches, all 28 in-app redirects verified single-hop (the two-hop chain above sat on the legacy www host, outside the app), 71,000 characters of visible text in raw HTML before any script ran. Seven orphan pages with no inbound links, four of them fully written case studies nobody linked to.
Content: 72
Named enterprise clients, dated awards, transparent pricing, nine genuine testimonials. Two integrity items outranked every optimization item: a thin location page to remove, and four concept projects to label as concepts so they never read as client work.
On-page: 65
57 titles over 60 characters, 27 from one doubled suffix. 77 long descriptions. Three pages with no H1, six with two. Listed in full, ranked as maintenance.
Schema: 82
Zero parse errors across 275 pages. The biggest gap: review markup for the nine real testimonials. Deliberately no aggregate rating, because none carries a visible numeric score and inventing a scale risks a manual action.
AI search readiness: 60
Crawler policy right, llms.txt accurate, corpus the right shape. The binding constraint was passage size: quick-answer blocks averaged 84 words against a 134 to 167 word citation window, 37 to 45 percent short on all eight pages. The fix is extractability, not padding.
Off-site authority
The genuine link profile was six domains, two of them self-referential footer credits and one the founder’s own site. Everything else was spam, all nofollow. The design-pricing pages were link-constrained, not on-page-constrained, which is the single best explanation for why well-built pages did not rank.
The receipt
Cited by ChatGPT, invisible in Google.
On 2026-08-28 the audit found that /best/penji-alternatives was a source ChatGPT used to describe a competitor, while ranking nowhere in Google's top 30 for the same query. Its never-crawled sibling page was not cited. One comparison, and the whole strategy validated: the format earns citations without ranking, and crawl is the gate.
Re-verified 2026-09-02 through the API, not a screenshot: 4 of 17 citations in one ChatGPT answer were suur.io, with the page at position #47 in Google the same day. The bare two-word prompt did not cite us. Both facts are on the service page, because both are true.
The list most audits leave out
Do not bother.
Disavow the 247 spam domains
247 of 299 referring domains carried Telegram link-selling anchors from a generated network. An automated pass called them dofollow and recommended a disavow. Verified across all 181 referring main domains: not one dofollow attribute in the profile. Nofollow links carry no ranking weight, and a careless disavow does real harm. Monitor, do not act.
A page-two keyword sprint
Positions 11 to 20 held zero keywords. Confirmed by two independent sources. There was nothing to push, so no budget went to pushing.
More blog posts
49 posts produced nothing measurable in 90 days. The eight comparison pages produced the citation. Effort moved to comparison pages, not to volume.
Bumping the freshness date on the comparison pages
Without re-verifying every competitor price, a new date manufactures a false freshness signal. The honest date stayed.
On-page polish as the lever
57 long titles and 77 long descriptions are real, and they were listed. They were also ranked as maintenance, because the site had effectively zero commercial queries in striking distance. Title tags matter once you rank.
What was removed for publication
Internal file paths and code references, the tooling notes, the full 40-row roadmap (9 rows are shown on the service page), and one third-party directory claim that could not be verified at the time. Nothing else. Your audit arrives with all of it.
Want this for your site?
From $3,000, 3 business days, every number dated.
Send the URL. I reply within one business day with a start date and the read access I need.
Audit my site