seotools.pro Get started free

Server Log Analysis Workbook Template

Crawl tools show what could be crawled. Your server logs show what Googlebot actually requested, how often, and what it got back. That is the only way to see crawl waste for real.

This workbook walks you through it in order. Confirm the requests really came from Google, group URLs into classes, and compare hits and status codes per class.

Then put a number on the wasted share and give each problem an owner.

Google's own guidance says crawl budget mostly matters for large or fast-changing sites, so the first variant helps you decide whether you need this at all.

The original guides are updated, and there is a filled-in example.

Format
Editable Word .docx
Length
8 variants · ~8 pages
Price
100% free
Setup
Copy or download

Get the editable Word doc in one click.

4.9·Free · No signup · Instant download

Works withSemrushSe Ranking
UTechnical SEO

Server Log Analysis Workbook Template

Server log analysis workbook

Log source: [server, CDN or load balancer] · Date range: [at least 30 days] · Total verified Googlebot requests: [number]

Sheet 1: verification

CheckResult
Requests with a Googlebot user agent[number]
Verified by reverse and forward DNS or Google's IP lists[number]
Spoofed (failed verification), excluded[number]

Sheet 2: URL classes

URL class (pattern)Verified hits and share200 / 3xx / 4xx / 5xxDays between crawlsWanted in search?Action and owner
[product pages, /p/*][n, %][split][median days][yes / no][fix, name]
[filter URLs, ?color=][n, %][split][median days][yes / no][fix, name]
[redirects, old paths][n, %][split][median days][no][fix, name]

Sheet 3: key pages check

Important URLLast verified crawlStatus seenIn sitemap?Note
[URL][date][code][yes / no][note]
[URL][date][code][yes / no][note]

Wasted crawl = verified hits on URL classes you don't want in search, plus hits that end in redirects, soft 404s or errors. Write the share as a fraction of all verified hits and keep the formula next to it.

Completion check: spoofed bots excluded, every class has a wanted yes or no, every wasted class has an action and owner, and a re-pull date is set.

Download free template

Why it works

See where Googlebot really spends its requests on your site, and move them from junk URLs to pages you want found.

  • Starts with bot verification, so fake Googlebots don't distort the numbers you act on.
  • Groups URLs into classes with hits and status codes, so wasted crawl shows up as patterns.
  • Gives every wasted class one action and owner, so log findings turn into fixes.

8 ready-to-use variants

Copy all

Log Analysis Workbook (fill-in)

When to use: One row per URL class: verified bot hits, status mix, crawl frequency, wasted crawl and the action with an owner.

Server log analysis workbook

Log source: [server, CDN or load balancer] · Date range: [at least 30 days] · Total verified Googlebot requests: [number]

Sheet 1: verification

CheckResult
Requests with a Googlebot user agent[number]
Verified by reverse and forward DNS or Google's IP lists[number]
Spoofed (failed verification), excluded[number]

Sheet 2: URL classes

URL class (pattern)Verified hits and share200 / 3xx / 4xx / 5xxDays between crawlsWanted in search?Action and owner
[product pages, /p/*][n, %][split][median days][yes / no][fix, name]
[filter URLs, ?color=][n, %][split][median days][yes / no][fix, name]
[redirects, old paths][n, %][split][median days][no][fix, name]

Sheet 3: key pages check

Important URLLast verified crawlStatus seenIn sitemap?Note
[URL][date][code][yes / no][note]
[URL][date][code][yes / no][note]

Wasted crawl = verified hits on URL classes you don't want in search, plus hits that end in redirects, soft 404s or errors. Write the share as a fraction of all verified hits and keep the formula next to it.

Completion check: spoofed bots excluded, every class has a wanted yes or no, every wasted class has an action and owner, and a re-pull date is set.

Do You Even Need This

When to use: Decide whether crawl budget is actually a problem worth your time before diving into logs.

Does crawl budget matter for you?

Crawl budget is the number of URLs a search engine is willing and able to crawl on your site over a given period. For most small and medium sites, this is not a problem worth solving.

Google can usually crawl a few thousand URLs without breaking a sweat.

Google's crawl budget guide gives rough thresholds. It is written for:

  • sites with about 1 million or more unique pages that change weekly;
  • sites with 10,000 or more pages that change daily;
  • sites with a large share of URLs stuck as "Discovered - currently not indexed".

Logs are still useful on smaller sites for spotting errors and redirect loops Googlebot keeps hitting.

Red flags that justify this work

  • Faceted navigation or filters creating endless URL combinations
  • Important pages not indexed weeks after publishing
  • Search Console showing many "Discovered – currently not indexed" URLs
  • Server logs full of bot hits to parameters, sorting, or pagination

[Site URL]: note your approximate total URL count here: [Total URLs]. If it is small and pages index quickly, skip the rest and focus elsewhere.

Get & Prepare Log Files

When to use: Collect raw server access logs and clean them into something you can actually analyze.

Where to find your logs

Server access logs are the most reliable record of how bots and users actually hit your site.

Ask your hosting provider, devops team, or CDN for raw access logs covering at least a few weeks, ideally a full month so you capture normal crawl cycles.

Common sources include your web server (Apache, Nginx), your CDN (such as Cloudflare or Fastly), and any load balancer in front of them. Pull from [Log Source] for the period [Date Range].

Prepare the data

  1. Combine logs from all servers so you do not miss requests served by different machines.
  2. Confirm each line includes timestamp, requested URL, status code, user agent, and IP address.
  3. Verify Googlebot: run a reverse DNS lookup on the IP and check the host ends in googlebot.com, google.com or googleusercontent.com, then run a forward lookup and confirm it returns the same IP. For large files, match IPs against the IP range lists Google publishes for its crawlers instead. Never trust the user agent string alone.
  4. Filter to verified search engine bots before drawing conclusions about crawl behavior.

Store the cleaned dataset somewhere repeatable so you can re-run the same analysis next quarter.

Analyze Crawl Patterns

When to use: Understand what Googlebot actually crawls, how often, and which status codes it hits.

What to look at first

With verified Googlebot requests isolated, build a picture of real crawl behavior rather than guessing. Focus on volume, frequency, and response codes: these reveal where crawl effort is going.

Key questions to answer

  • Which URLs get crawled most? Compare top-crawled URLs against your most important pages. Mismatches are a signal.
  • How often are key pages crawled? Money pages should be visited regularly; rarely-crawled important URLs get stale.
  • What status codes does Googlebot see? A healthy site is mostly 200s. Watch for spikes in 404s, 301/302 redirects, and 5xx server errors.
  • Which sections dominate? Group hits by directory to see whether a low-value section is eating crawl activity.

Record your findings for [Top Crawled Section] and note any section that is over-crawled relative to its value: [Over-crawled Path].

Heavy crawling of redirects or errors is wasted effort that should be cleaned up in later steps.

Find Crawl Waste

When to use: Pinpoint the low-value, duplicate, and broken URLs that drain crawl resources.

Where crawl budget leaks

Crawl waste happens when bots spend time on URLs that should not be crawled at all. On large sites this can be the difference between important pages getting refreshed daily or monthly.

Common sources of waste

  • Faceted & parameter URLs: filters, sorting, and tracking parameters that multiply a single page into thousands of variants.
  • Duplicate content: the same page reachable via multiple URLs, trailing slashes, or upper/lowercase paths.
  • Soft 404s: empty results, expired listings, or thin pages that return 200 but offer no value.
  • Redirect chains: URLs that bounce through several hops before resolving.
  • Infinite spaces: calendars, search results, and session IDs that generate near-endless URLs.
  • Removed pages that still return content: Google's guide says permanently removed pages should return 404 or 410, not a 200.

From your log analysis, list the worst offenders here: [Waste Pattern 1], [Waste Pattern 2]. Estimate the share of Googlebot hits going to these low-value URLs: that number is your opportunity.

Prioritize fixes by how much crawl activity each pattern consumes.

Improve Crawl Efficiency

When to use: Take concrete actions so search engines spend their crawl effort on pages that matter.

Direct crawlers to what matters

Once you know where waste lives, the goal is to consolidate signals and steer bots toward valuable, canonical URLs.

  1. Strengthen internal links to important pages so they are easy to discover and signal their priority.
  2. Keep XML sitemaps clean: include only canonical, indexable URLs and remove redirects, errors, and noindex pages.
  3. Use robots.txt for URLs you never want crawled, such as internal search and infinite parameter spaces. Google advises against using it to shift budget around temporarily, and blocking crawling is not the same as removing from the index.
  4. Don't rely on noindex to save crawl. Google still has to request the page to see the tag.
  5. Handle parameters with canonical tags pointing to the clean version, and avoid linking to parameterized URLs internally.
  6. Fix redirect chains by pointing the first hop directly to the final destination with a single 301.
  7. Resolve soft 404s by returning a real 404 or 410, or improving the page so it earns its crawl.

Log your top three actions: [Action 1], [Action 2], [Action 3]. Roll out changes gradually so you can measure their effect.

Monitor with Crawl Stats

When to use: Track crawl behavior over time using Search Console and ongoing log checks.

Close the loop

Crawl efficiency is not a one-time project. After making changes, monitor whether search engines respond the way you expect.

What to watch

  • Search Console Crawl Stats (Settings, root-level properties only): review total crawl requests, average response time, and the breakdown by response, file type, purpose (discovery or refresh) and Googlebot type.
  • Host status: covers robots.txt fetching, DNS and server connectivity over the past 90 days. A slow or erroring server makes Google crawl less.
  • Status code trends: confirm that 404s, redirects, and 5xx errors are trending down after your fixes.
  • Indexing reports: check whether previously stuck pages move into the indexed state.

Build a routine

Re-pull server logs on a regular cadence (monthly or quarterly) and compare against your baseline. Record the review date here: [Next Review Date] and the owner responsible: [Owner].

If waste creeps back in, you will catch it early instead of after important pages fall out of the index.

Worked Example (fictional marketplace)

When to use: A filled-in workbook for an invented secondhand camera marketplace with filter URLs eating crawl.

Worked example: LensLoop

Example only. The company, people, URLs and figures are invented to show what a usable, filled-in version looks like.

30 days of CDN logs. 412,000 requests claimed to be Googlebot; 398,000 passed verification.

URL classVerified hitsShareWanted?FindingActionOwner
Listings /l/*121,00030%YesMost crawled within a weekNonen/a
Filter URLs ?brand=&sort=164,00041%NoThousands of combinations, all 200Block sort and multi-filter parameters in robots.txt; keep single-brand pagesDev team
Sold listings52,00013%NoReturn 200 with "sold" text (soft 404)Return 410 after 30 days, link to similar items while liveProduct
Old /item/ paths31,0008%NoTwo-hop redirect chainsPoint each straight to the final URLDev team
Other30,0008%MixedImages, CSS, JSNonen/a

What the numbers said

About 62% of verified hits went to URLs the team didn't want in search: filters, sold listings and redirects. New listings were being found, but category pages were refreshed slowly.

The first fix was the filter rules, because that class was the largest.

Next step

Trace the chains you found with the Redirect Checker, rebuild clean sitemaps with the XML Sitemap Generator, and draft parameter rules with the Robots.txt Generator before testing them.

Run a website audit to catch status and redirect problems your logs point to. For a done-for-you log audit, our partner agency SEOquick handles technical SEO projects.

How to use this template

  1. Check whether crawl budget is a real issue for you: Google's guide points to very large or fast-changing sites.
  2. Pull at least 30 days of raw access logs from every server, CDN and load balancer.
  3. Keep only requests that pass Googlebot verification: reverse and forward DNS, or Google's published IP lists.
  4. Group URLs into classes by pattern: listings, categories, filters, redirects, assets and so on.
  5. For each class, record verified hits, share of hits, status mix and how often key URLs are crawled.
  6. Mark each class as wanted in search or not, and add up the wasted share with the formula visible.
  7. Give every wasted class one action and one owner, largest share first.
  8. Re-pull the same date range after fixes and compare it with Crawl Stats in Search Console.

Pro tips

  • Verify before you count. Fake Googlebots are common and skew every number after them.
  • Work in URL classes, not single URLs. Patterns are what you fix.
  • Use robots.txt for URLs you never want crawled, not to move budget around for a few weeks.
  • noindex doesn't save crawl. Google has to fetch the page to read the tag.

Frequently asked questions

What is crawl budget?

The set of URLs Google can and wants to crawl on your site in a given time. It depends on how much load your server handles and how much demand Google has for your content.

Do small sites need log analysis?

Usually not for crawl budget. Google's guide aims at sites with roughly a million or more pages, or 10,000 or more pages changing daily. Logs can still reveal errors and redirect chains Googlebot keeps hitting.

Why use server logs instead of a crawler?

A crawler shows what can be reached. Logs show what Googlebot actually requested, how often and what status it got. They are the record of real behavior.

How do I verify a request is really Googlebot?

Run a reverse DNS lookup on the IP and check the host ends in googlebot.com, google.com or googleusercontent.com, then a forward lookup to confirm the same IP. For big files, match IPs against Google's published crawler IP ranges.

What counts as wasted crawl?

Verified hits on URLs you don't want in search, plus hits that end in redirects, soft 404s or errors. Typical sources are filter and sort parameters, duplicates, soft 404s, long redirect chains and removed pages that still return a 200.

Where do I see crawl stats in Search Console?

Under Settings, in the Crawl Stats report. It shows requests, response time and breakdowns by response, file type, purpose and Googlebot type, plus host status for the past 90 days. It is available for root-level properties.