Audit example: findings, impact and the fixes that followed.
This is not a fictional client. The examples use the first version of this site and a live project, showing how findings turn into changes you can verify — including the ones still open.
First example: findings on this site
This is not a fictional client. The example uses the first version of this site, from 15 August 2026, and shows how findings become changes you can verify in the current build.
| Priority | Finding | Impact | Solution implemented |
|---|---|---|---|
| P0 | Service pages had no contact details and no call to action. | A reader could not proceed to an enquiry. | Contact, CTA and a process page were added. |
| P0 | The Organization schema pointed to a logo file that did not exist. | An unconnected, unverifiable entity signal. | An SVG logo and a crawlable 512 × 512 px PNG were created. |
| P0 | robots.txt contained Disallow: / while a complete sitemap was published. | Every page was closed to indexing; the entire semantic build was invisible. | Replaced with Allow: / and a sitemap directive. |
| P1 | Methodological claims were presented as Google facts. | A risk to professional credibility. | Claims were qualified and linked to primary sources. |
| P1 | The visual section contained no images at all. | It did not demonstrate the subject it explained. | Two original control images and a test protocol were added. |
| P1 | A dead dark theme remained in the stylesheet, fully overridden by a later one. | Unused code with no visible effect. | The overridden variable block was removed; the structural CSS was kept. |
| P2 | Tables had no caption, no scope and no mobile wrapper. | Poorer accessibility and mobile reading. | Semantic markup and horizontal scrolling inside the table were added. |
Second example: findings on the taxi.co.rs project
The first example shows findings on our own site. This one shows two findings on a project in production, where the cost of the mistake is measurable in positions.
| Priority | Finding | Impact | Solution |
|---|---|---|---|
| P0 | A guide and the national fare page targeted the same query. | The guide sat at position 9.35 with 25 clicks; the fare page at 5.35 with 354. Two pages split the signal for one query. | The guide's unique content was moved into the fare page, the guide was 301 redirected, and internal links and the sitemap were cleaned up. |
| P1 | The national fare page reproduced the tariff table from the Belgrade fare page verbatim. | The hub competed with its own subpage for a city query, on the site's strongest URL. | The block was rewritten to show the structure of the tariffs without the amounts; the figures remain in the comparison table and on the city page. |
Both findings belong to the same category — several URLs competing for one query — but they differ in where the overlap arose. The first is an overlap between two separate documents. The second is an overlap between levels of the hierarchy, where a hub repeats the content of its own subpage. The second type is harder to spot, because neither page looks like a duplicate at first glance.
How the finding surfaced: by comparing the pages report in Search Console against the structure of the site. The guide had a good share of AI answers but a weak position — a combination that almost always means a stronger page for the same query exists on the same domain.
When is a finding complete?
A finding is complete when it contains six elements: the surface, an example, the impact, the priority, the owner of the task and the completion criterion. Without a completion criterion, a finding cannot be closed — only abandoned.
| Element | Content in this case |
|---|---|
| Surface | Two URLs: the price guide and the national fare page |
| Example | Both target the query about the cost of a taxi in Serbia, with nearly identical titles |
| Impact | The guide at position 9.35; 25 clicks against 354 on the fare page |
| Priority | P0 — it affects the commercially most important query |
| Owner | The project owner, plus changes in the city fare page template |
| Completion criterion | The guide returns a 301, no internal link points to the old URL, the URL is removed from the sitemap, and the sitemap is resubmitted |
The completion criterion is the element most often left out, and the only one that separates a finding from an opinion. “Remove the cannibalisation” is not a criterion. “No internal link points to the old URL” is, because it can be verified with a single command.
How is priority decided?
| Level | Criterion | Example from these two audits |
|---|---|---|
| P0 | Blocks indexing or conversion, or splits signal on the commercially most important query | Two URLs for one price query; robots.txt blocking the whole site |
| P1 | Weakens credibility or dilutes signal, but does not block the task | A hub reproducing a subpage's table; methodological claims without qualification |
| P2 | Degrades accessibility or maintainability with no immediate loss | Tables without caption and scope |
Priority follows the consequence, not the difficulty of the change. A finding resolved in five minutes can be P0; one that takes a week can be P2.
What is still open
An audit example that only listed solved problems would be a portfolio, not an audit. Two items from the list above remain unresolved at the time of writing, and they are recorded here for the same reason the solved ones are.
- GA4 measures behaviour, not queries. Google Analytics 4 (ID
G-NMNM55BTBN) has been installed since launch and records sessions and engagement per page. It does not show which query brought a visitor — organic queries arrive as unknown — nor impressions in AI search features, which exist only in Search Console, as described on the page about measuring results. The baseline period for the site begins 17 August 2026, the launch date. - No reviews, therefore no
aggregateRating. Adding one without real reviews would breach the same guideline this site tells others to follow.
Frequently asked questions
What separates a finding from an opinion?
The completion criterion. “Remove the cannibalisation” is an opinion because it cannot be verified. “No internal link points to the old URL” is a finding because a single command checks it.
Is priority set by how hard the change is?
No, by the consequence. A finding resolved in five minutes can be P0, and one that takes a week can be P2.
Must an audit always contain Search Console data?
Not always, but a finding that claims a loss should support it with a measurement. Without a number, a claim about impact remains an estimate and should be labelled as one.
Why publish unresolved findings?
Because an audit that lists only solved problems is a portfolio. The open items show the same standard being applied when it is inconvenient.
How findings are measured, and when a number stops being a measurement, is set out on the page about measuring results.
This is an audit of our own site, including two unresolved findings. The same procedure applied to your site is a semantic SEO audit.
Want findings like these for your site?
Send the URL and how you currently measure success.