An access log is the file in which a web server records each request it handles, one line per request. A line typically shows when the request came in, which URL was requested, which HTTP status code the server returned, and who sent it.
What does an entry contain?
The operator decides the fields in the server configuration. In the widely used Combined Log Format, an entry holds the client IP address, a timestamp, the request line (method, path, protocol), the status code, the response size in bytes, the referer and the user agent. Apache writes this to logs/access_log by default, nginx to logs/access.log, and nginx uses the combined format unless told otherwise.
IP addresses can be personal data (CJEU, judgment of 19 October 2016, C-582/14, Breyer).
This is not legal advice.
Why do SEOs care?
The user agent field shows whether a request came from a search engine or AI bot. Together with the URL and status code, that tells you which pages a bot fetched and how the server answered. A user agent can be faked, so Google documents a check of the IP address through reverse and forward DNS lookups and published IP ranges. Apache also warns that log lines can contain client-supplied text without escaping, so write access to the log directory should be restricted.
Example
66.249.66.1 - - [10/Oct/2026:13:55:36 +0000] "GET /products/ HTTP/1.1" 200 2326 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
This invented line shows a request for /products/ that the server answered with status 200.
Sources
- Log Files - Apache HTTP Server 2.4httpd.apache.org
- Module ngx_http_log_module - nginxnginx.org
- Verifying Googlebot and other Google crawlers - Google Search Centraldevelopers.google.com
- CJEU, judgment of 19 October 2016, C-582/14 (Breyer) – EUR-Lexeur-lex.europa.eu
Last updated: