Technical SEO

A website audit in one day: what we check and what comes out of it

Our site has been in search for exactly one month. On 2 September 2026 we ran it through our own audit checklist: 5,656 impressions, 41 clicks, 562 URLs walked. A breakdown of all twelve checks, with commands you can repeat on your own site.

September 2, 2026
9 min read

On 4 August 2026 our own site appeared in search for the first time. Until that day it sat under a site-wide indexing ban, so Google effectively did not know it existed. Exactly a month later, on 2 September, we put our site through the same checklist we run on client sites — a one-day SEO audit.

Below is what that checklist actually covers, what the numbers looked like on a site one month old, and which of the findings are worth the work. Every measurement covers 3 to 31 August 2026 and was taken on 2 September.

What the first month showed

Metric Value
impressions 5,656
clicks 41
CTR 0.72%
average position 39.3

Week by week the impressions grew steadily: 421 → 858 → 2,127 → 2,250. The site is gaining visibility, which is the normal pattern for an index that has just opened.

Now the same impressions broken down by position — the table that explains the CTR and the mood of the whole report:

Positions Pages Impressions
1–3 13 33
4–10 62 490
11–20 59 975
21–50 206 3,562
50+ 222 2,816

Seventy per cent of impressions sit below position twenty, which means the third page of results and beyond. With that distribution, a CTR of 0.72% is not a snippet defect. It follows directly from where the site stands, and no meta tag fixes that.

What a one-day audit covers

The order is deliberate: first whatever lets the crawler onto the site at all, then whatever shapes the results page, and only at the end the content itself.

1. Status codes and redirects

Take every URL Google showed the site for during the month and walk them under the same User-Agent the crawler uses. We had 562 of them: 509 returned 200, 52 returned a permanent 308 redirect, one returned 404.

Those 52 redirects matter not in themselves but in what rides on them: 1,065 impressions. Google still shows people addresses that no longer exist on the site. That is the aftermath of renaming sections — done correctly, but not yet digested by search.

curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" \
  -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" \
  https://your-site.com/page

The same thing in bulk is done by the status code checker.

2. robots.txt and sitemaps

Check what robots.txt blocks, whether every sitemap is readable, and whether a sitemap lists a URL that serves noindex itself. A contradiction between sitemap and page is the most common source of errors in the indexing report, because the site is handing the crawler two opposite instructions.

We have 668 pages indexed and 657 outside the index, 415 of them closed by a noindex the site applied to itself. That is not a fault, but it eats crawl budget, and it has its own breakdown: where a site's crawl budget goes. To reconcile the sitemap with the state of the pages, use the robots.txt and sitemap check.

Open Crawl Stats next to it. Over the month the crawler made 13.9k requests: 77% of responses were 200, 15% were 404, 6% were 302, with an average response time of 531 ms. Every sixth answer the crawler received was "no such page".

3. noindex in two places

An indexing ban lives both in a meta tag inside the page and in the X-Robots-Tag header of the server response. The second is invisible in the page source, which is why it gets forgotten and then hunted for weeks.

curl -sI https://your-site.com/page | grep -i x-robots-tag
curl -s  https://your-site.com/page | grep -i 'name="robots"'

For a page that belongs in search, both commands should stay silent.

4. Canonical

Verify that each page names itself as canonical, rather than a neighbour or a version with query parameters. The classic template mistake is a canonical hard-wired to the homepage: search then merges every page of the section into one and drops the rest from consideration.

5. hreflang across language versions

Language versions must reference each other in both directions and point at final URLs, not at ones that redirect. Alongside hreflang, look at the internal links inside a version: if they all lead back to the main language, the version is not self-sufficient, and the crawler sees exactly what the reader sees — a dead end. How that looks from the inside, and why it stays unnoticed for years: a multilingual site that sends everyone into one language.

6. Compression and page weight

Measure with the header a real browser sends, not the one that flatters the server. Our own case was exactly that: the check reported "compression works" while a live visitor received a page twice as heavy — the breakdown with before and after figures.

7. Mobile Core Web Vitals

Take the Core Web Vitals report in Search Console rather than a lab test: it holds field data from real Chrome browsers instead of a simulation on someone else's machine. All 33 of our URL groups on mobile are marked "needs improvement", with not a single fast one. On desktop all 33 groups are fast.

That finding carries a price tag visible in the same performance report: mobile brings 27% of impressions and only 10% of clicks.

8. Snippets

A title up to 60 characters, a description between 130 and 165 — longer gets truncated in the results, shorter leaves empty space under the headline. Count them across the whole site rather than sampling three pages: the snippet length checker does it in bulk.

9. Cannibalisation

In the Performance report switch on the query-plus-page view and look for queries that surface two different URLs. Ours does that for "advertising account audit": 43 impressions at position 46 for one page and 38 impressions at position 82 for another. Neither collects the full signal, and both sit in the middle.

The broader version of the same problem is one topic scattered across several pages. Crawl budget is described in three places on our site, which is a structural question rather than a wording one. Such pairs are found by the cannibalisation check.

10. Pages with impressions and no clicks

Sort pages by impressions and look at the ones where clicks are zero. The most-shown page on our site is the audit service hub: 1,193 impressions, average position 57.8, not one click. The position explains everything — an impression on the sixth page of results almost never becomes a click.

The worse case sits right beside it. A page holding position 8 for a query with 105 impressions has no clicks either, and there the question is about the snippet, because the position is fine.

11. Internal linking

Look at how many links point to each important section, and whether any page can only be reached from the sitemap. The crawler distributes its budget along the links it can see, so a page with no inbound links competes against itself for attention.

The Links report in the console, the first screen. We have 5,226 external links from exactly 5 domains: site-wide footer links on sites we built ourselves. Five votes, not five thousand. A number that looks impressive in any deck and means nothing.

What comes out of it

The list is ordered by what pays off most, not by what is quickest to do.

Rewrite the audit hub around the query. The page with the most impressions and zero clicks sits at position 57 because it answers the query worse than the pages above it. That is content work, and it comes before any tag work.

Separate the two pages competing for one query. One stays the target page, the other is rewritten for an adjacent query and links to the first. Until that happens the signal splits in half and neither page moves.

Deal with mobile speed. Thirty-three URL groups against zero fast ones is not thirty-three separate problems but one shared cause, found once and fixed for the whole site.

Wait out the reindexing of the old URLs. The 52 redirects work correctly and Google will rewrite them itself within a few weeks. The only action here is to leave the URLs alone: every new rename resets that counter to zero.

Backlinks. Five domains is not something a day fixes, and not something technical work fixes at all. The item stays on the list so that nobody mistakes it for a technical one.

Honest limits

An audit does not deliver positions. It delivers an order of work: a list with the things worth your time at the top and the things that look alarming and change nothing at the bottom. The checking takes a day, the doing takes months.

On a young site half the findings honestly amount to "wait". A month in the index is too little to tell your own mistake apart from the normal course of reindexing, and any faster conclusion is guesswork. A site running for three years produces a completely different audit: there every finding has a history, you can see what broke and when, and there is something to compare against. One such case is an audit after a traffic drop.

One last thing worth saying out loud. None of these twelve points is the reason a site is not at the top. They explain why the crawler sees the site worse than it could. Everything after that is decided by the content of the page and by how many similar pages were written before yours.

Tags

SEO

🤔Did you like the article?

Your opinion helps us create better content

Share with friends

Found something useful? 🚀

Help others learn about it - share the article on social networks

https://lionex.com.ua/blog/audyt-sajtu-za-odyn-den

💚 Thank you for helping us grow

Vladyslav Chystiakov

Пише про те, що робить руками: інтернет-магазини на OpenCart, застосунки на Next.js, інтеграції та швидкість сайтів. У статтях — заміри й перевірки, які читач може повторити на своєму проєкті, а не загальні поради. Комерційна розробка з 2015 року.

Frequently asked questions

Answers to common questions on the topic

The checks themselves take one working day: walking every URL, the Search Console reports, status codes, snippets, cannibalisation. We deliver the write-up with conclusions within 1–3 working days, free of charge. Acting on the findings takes months, and those are different things: an audit gives you an order of work, not a result.

Most of it, yes. Status codes and the X-Robots-Tag header are checked with curl, canonical and the robots meta tag are visible in the page source, cannibalisation and click-less pages sit in the Performance report under the query-plus-page view. The hard part starts when you decide what to do about it: half the findings are technically correct and harmful at the same time.

Positions. No check will tell you when a page will rise, or whether it will rise at all — that depends on competition and on the algorithm. An audit shows something else: why the crawler sees the site worse than it could, and which pages already get impressions but no clicks.

Yes, with an allowance for age. In our own case half the conclusions amounted to "wait for reindexing" — after a month in the index there is simply nothing to compare against. Technical defects, however, are visible straight away, and fixing them is cheaper before the crawler memorises hundreds of URLs.

Get the best articles by email

Subscribe to our newsletter and receive useful tips, insights and news about web development, marketing and business.

We respect your privacy. You can unsubscribe at any time.