/ โ† Learning Hub / Real Traffic Audit Fixes
On this page
  1. Which finding to fix first
  2. Your own server inflating analytics
  3. Bots and automated browsers in analytics
  4. Deciding what AI crawlers may fetch
  5. Fixing errors real visitors hit
  6. Acting on security events
  7. Short, partial or unreadable logs
  8. Analytics and Search Console set-up
  9. Order of work
  10. Questions and answers

Which finding to fix first

The audit is a measurement tool, so most of what it reports is information rather than a fault. A finding only needs work when it means one of three things: visitors are being let down, the site is exposed, or the numbers you use to make decisions are wrong. Rank anything you see by that order.

PriorityFindingWhy it comes here
1Security events, especially unknown visitors reaching an admin area or new accounts you did not createPossible compromise. Everything else can wait an hour.
2Server errors (5xx) seen by real visitorsPeople are getting a broken page right now.
3Missing pages (404s) that real visitors keep requestingLost enquiries and dead ends from links you or others published.
4Your own server or automated browsers counted in analyticsReports are inflated, so every decision based on them is skewed.
5Analytics or Search Console set up wronglySame problem from the other side: the comparison cannot be trusted.
6AI crawler activity you have not decided aboutA business choice, not an emergency.
7Short log history, CDN gaps or unrecognised linesLimits what the next audit can tell you.

Jump straight to the finding you are looking at:

๐Ÿ’ก If you have not run the audit yet, the illustrative example report shows how each finding is presented, and the beginner tutorial explains the ideas behind them.

Your own server inflating analytics

The section Your Own Server & Automated Browsers counts requests that came from the server IP address you typed into the optional field. Those requests are your website talking to itself. A few are normal: a scheduled task calling a script, a cache being warmed, a health check. They become a problem for analytics when the server loads pages in a real browser engine, because the page then runs your tracking tag and each load can be counted as a brand-new user that never keeps a cookie. The tool page describes one site where half of all page loads came from the site itself.

Exclude the server in Google Analytics

  1. In GA4 open Admin โ†’ Data streams, choose your web stream, then Configure tag settings โ†’ Show more โ†’ Define internal traffic.
  2. Create a rule with the traffic type value internal and add your server's public IP address. Add your office and home addresses too.
  3. Go to Admin โ†’ Data collection and modification โ†’ Data filters, open the Internal Traffic filter and set it to Active.

This cannot hide genuine visitors, because nobody browses your site from your server's own address. Bear in mind that GA4 data filters apply from the moment they are switched on and do not clean up figures already collected, so expect older reports to stay inflated. If you want to check the rule before committing, a filter can be left in its testing state for a few days first.

Then find out why the server loads its own pages

Excluding the address treats the symptom. It is worth asking what is doing the loading, because it also uses CPU and memory you are paying for. Common causes are a headless browser used to generate PDFs, social images or screenshots of your pages; a pre-rendering or server-side rendering set-up that fetches full pages; a cache-warming script that requests every URL on a schedule; and plugins that call the site's own front end through its public address. Look at what the report shows for your server IP, then check your scheduler (cron, Plesk Scheduled Tasks, cPanel Cron Jobs, or your CMS's task list) for anything that runs at matching times.

โš ๏ธ Use the server's public address, the one that appears in the access log, not an internal 10.x or 192.168.x address. If your host puts several sites on one IP, excluding it only affects requests from that machine, which is still what you want.

Bots and automated browsers in analytics

Google Analytics already drops traffic from bots and spiders on industry known-bot lists, and you cannot switch that off. What slips through is software that behaves like a browser: uptime and speed-testing services that use a real browser engine, audit tools, scrapers that execute JavaScript, and headless browsers driven by scripts. The audit separates the ones that identify themselves, under headless browsers and tools or other bots and scanners. If your analytics user count is far higher than the likely people figure for the same dates, these are usually part of the gap.

Ways to stop them being counted

Expect some difference to remain. Analytics counts devices and cookies; the audit counts IP addresses. Several people in one office share an address, and one person moving between Wi-Fi and mobile data gets two. Aim to explain the gap rather than make it zero.

๐Ÿ’ก Enter your analytics user total for the same period in the optional Analytics users field, or connect Google Analytics, and the report compares the two figures for you. Re-run after each change to see the gap shrink.

Deciding what AI crawlers may fetch

The AI Crawlers & AI Assistants section splits AI traffic into three kinds, and each calls for a different decision. Training crawlers such as GPTBot and ClaudeBot collect pages for future models. AI search crawlers such as OAI-SearchBot and PerplexityBot build the indexes assistants cite from today. Live fetches such as ChatGPT-User, Claude-User and Perplexity-User happen because a person asked an assistant about your page. When the same live fetch arrives at the same minute on several days, the audit flags it as scheduled, because people do not ask at an identical time every day.

A sensible default for most businesses

Allow the AI search crawlers and live fetchers if you want to be mentioned and linked in AI answers. Decide separately about training crawlers: blocking them does not stop assistants finding you through search, but it does withhold your text from future model training. Publishers and anyone selling content often block training; most small service businesses gain more from being visible.

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: *
Disallow: /admin/

Remember that a crawler obeys only the group that names it most specifically, so a bot listed in its own group ignores the rules under User-agent: *. Repeat any shared disallow lines inside each named group. robots.txt is a request, not a lock: reputable crawlers follow it, others do not, and providers have said that fetches a person triggers directly may be treated differently from automated crawling. Check each provider's current documentation before relying on it, and block at the server or CDN if you need enforcement.

The AI crawler access guide covers user agent names in more depth, and fixing accidental AI blocks helps when the report shows crawlers you wanted are absent.

Fixing errors real visitors hit

Error lists from crawlers are long and mostly noise: bots request old URLs and invented paths endlessly. Errors Real Visitors Hit is narrower and more useful because it only shows failures served to browser-like visitors. Each line is a person who wanted something and did not get it.

Missing pages (404)

Server errors (5xx)

A 500 means the application failed. A 502 means the web server got an invalid response, or none at all, from the back end such as PHP or Node; a 504 means it timed out waiting for one. Note the failing path, then check the server's error log around that time, which usually names the script, plugin or limit involved. Repeated errors on one form or checkout path deserve immediate attention because they often hit the visitors most likely to buy. The 404 guide, 500 guide and 502 guide go step by step, and the HTTP Error Audit fixes cover status codes across a whole site.

Acting on security events

Security Events reports failed logins, password-guessing bursts, admin areas reached, new accounts, attack probes and bursts of server errors. Attack probes on their own are the background noise of the internet: automated scans for WordPress logins, leaked .env files and similar weak spots reach every public site and are not evidence of a breach. The other events deserve a closer look.

EventWhat to checkWhat to change
Failed loginsWhich addresses the attempts came from, and whether one of them later succeeded.Unique long passwords, two-factor sign-in, no account called admin.
Password-guessing burstsRapid repeated attempts from one address or a few.Rate limiting or lockout at the login form, a tool such as fail2ban, or a CDN rule on the login path.
Admin areas reachedAny address you do not recognise as yours or your team's.Change passwords, end all sessions, restrict the admin path to known IPs where possible.
New accountsWhether you or a customer created them.Remove unknown accounts, review their role, turn off open registration if you do not need it.
Attack probesWhether any probe got a 200 response rather than 403 or 404.Keep secrets out of the web root, block hidden files and folders such as .git, update plugins.
Bursts of server errorsWhether they line up with probes or heavy bot traffic.Rate-limit the source and fix the code path that fails under load.

If an unfamiliar address reached your admin area, treat it as a possible compromise: change every administrator password, rotate API keys and database credentials stored in configuration files, check for recently changed files, and ask your host for help if you are unsure. The report's results file for the Security Audit contains the security events, for use in the Security Audit. See also the Security Audit fixes.

Short, partial or unreadable logs

The audit can only describe what your log contains. Three set-up problems quietly limit it.

Too little history

Many hosts keep only days or a couple of weeks. In Plesk, raise the number of files kept under Websites & Domains โ†’ Logs โ†’ Manage Log Rotation. In cPanel, open Raw Access and tick the option to archive log files to your home directory, and untick the one that removes the previous month's archive. On your own server, logrotate controls it: in /etc/logrotate.d/nginx or the Apache equivalent, the rotate value sets how many old files are kept. Weigh history against privacy, because access logs hold IP addresses, which are personal data. Choose a period you can justify, state it in your privacy notice, and delete downloaded copies when you have finished. This is general information, not legal advice.

Traffic the CDN answers

Pages served entirely from a CDN cache never reach your server, so they are missing from the log. Many CDNs cache images, styles and scripts by default but pass HTML through, in which case page views still appear but the supporting files may not. Since the audit's likely-people test looks for a browser loading a page together with its images, styles or scripts, heavy asset caching can make real visitors harder to tell apart from bots. If you can, analyse a period when caching settings were stable, and keep in mind that the log describes what your server handled rather than every visit.

Unrecognised lines

The audit reads the standard combined format used by Apache, nginx, Plesk and cPanel; anything else is counted as unrecognised. In nginx the built-in combined format is the default for access_log, so a custom log_format is the usual culprit. In Apache, make sure the CustomLog line ends in combined rather than common, which leaves out the referrer and user agent the audit depends on. Also check you downloaded the access log rather than the error log or a statistics file.

Analytics and Search Console set-up

The Google Analytics & Search Console vs Your Server Log section is only as good as the accounts behind it. When the comparison looks odd, check these before blaming either side.

Connecting is optional, needs a free aiwebpageseo account and uses read-only access granted on Google's own sign-in page. You can disconnect at any time from the tool.

โš ๏ธ Google data is only shown for websites you have verified you own with aiwebpageseo, through domain verification. A verified Search Console property is not enough on its own, so if the comparison stays empty, verify the domain with aiwebpageseo first.

Order of work

  1. Collect a decent log. Download every access log file your host keeps, including the compressed ones, so you cover at least a few weeks.
  2. Run the Real Traffic Audit with the domain and every optional field filled. Server IP, your own IPs and your analytics user total for the same dates. Each one makes the sorting more accurate.
  3. Clear security events first. Confirm every admin access and new account is yours; act straight away if not.
  4. Fix server errors, then the most-requested 404s. Work from the top of Errors Real Visitors Hit down.
  5. Clean up analytics. Add the internal traffic rule, deal with monitors and audit tools, and check for shared Measurement IDs and consent.
  6. Make your AI crawler decision and write it into robots.txt deliberately.
  7. Extend log retention so the next run has more to work with.
  8. Re-run on a fresh log after two to four weeks with the same settings, and compare the likely people figure and the analytics gap with the first run. Download the PDF report each time so you have a record of what changed.

The Real Traffic Audit Guide explains every report section in detail if a finding is unclear.

Questions and answers

1. Why does Google Analytics show so many more users than my server log?

Analytics counts anything that runs its tracking script, and many automated visitors do: headless browsers used by monitoring and audit tools, bots that execute JavaScript, and sometimes your own server rendering its own pages. They rarely keep cookies, so each load can look like a new user. The server log records every request with its source, which lets the audit separate them. Some gap always remains because analytics counts devices and the audit counts IP addresses.

2. Will excluding my server's IP in GA4 hide any real customers?

No. Real visitors connect from their own home, office or mobile network addresses, never from the address of the machine hosting your website. The only things that come from your server's IP are processes running on that server, such as scheduled tasks, rendering tools and cache warmers. Excluding it through an internal traffic rule and an active data filter therefore removes only self-generated traffic. Note that the filter is not retroactive, so historical reports keep their old figures.

3. Should I block GPTBot and other AI crawlers?

It depends on what you want from AI tools. Blocking training crawlers such as GPTBot or ClaudeBot keeps your text out of future model training but does not stop AI search crawlers or live assistant fetches, which are what lead to being cited in answers today. Most small businesses benefit from allowing the search crawlers. Publishers and businesses that sell content often block training. Whatever you decide, name each crawler explicitly in robots.txt so the choice is deliberate.

4. The audit shows attack probes. Has my site been hacked?

Not necessarily. Probes are automated scans looking for common weak spots, such as WordPress login pages or exposed configuration files, and they reach every public website many times a day. What matters is the response. If probes received 403 or 404 responses, they found nothing. Look harder if a probe received a 200 response for a sensitive file, if an unknown address reached your admin area, or if accounts appeared that nobody on your team created.

5. How long should I keep server access logs?

Long enough to answer the questions you need answered, and no longer. A few weeks to a few months is common for small sites, because it shows trends and lets you investigate incidents. Logs contain IP addresses, which count as personal data under UK GDPR, so pick a period you can justify, mention it in your privacy notice and delete downloaded copies after analysis. Your host's rotation settings decide how much history exists. This is general information, not legal advice.

6. Why are my real visitors' 404 errors worth fixing if Google ignores them?

Because the visitor does not ignore them. A 404 seen by a likely person means someone followed a link, typed an address or used a bookmark and hit a dead end. That might be a lost enquiry or sale. The fix is usually a single redirect to the right page, or correcting the link on your own site. Search engines also prefer working links, but the main reason to fix these particular errors is that people are actually experiencing them.

7. My site uses Cloudflare. Is the audit still useful?

Yes, with one caveat. Anything Cloudflare serves from its cache never reaches your server, so it is not in your access log. By default Cloudflare caches static files such as images, styles and scripts rather than HTML pages, so page requests generally still arrive. That means your log shows the pages people asked for, but some of the supporting files may be missing. Treat the figures as what your server handled and avoid comparing periods with different caching rules.

8. Do I need an account to fix these findings?

No. The log analysis itself works without an account, and every fix on this page is made in your own tools: Google Analytics, robots.txt, your hosting control panel or your server configuration. An aiwebpageseo account is only needed if you want to connect Google Analytics and Search Console so the report can compare their figures with your server log for the same dates. That connection is read-only, and you can disconnect it whenever you like.

See who really visits your site

The Real Traffic Audit analyses your access log in your browser, separates people from your own server, AI crawlers, search engines, automated browsers and scanners, and reports where people came from, what they read, the errors they hit and security events.

Run the Real Traffic Audit โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: Real Traffic Audit Guide  ·  Example Report  ·  Beginner Tutorial  ·  Security Audit Fixes  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.