---
title: "Knock, knock, AI! AI bots in your server logs | Maciej Chmurkowski"
description: "A free PHP app that shows from your server logs which AI bots read your pages, whether they are genuine and which version of a page they read."
url: "https://adinspire.com/en/apps/knock-knock-ai/"
lang: "en"
published: 2026-11-12T00:00:00+01:00
updated: 2026-11-12T00:00:00+01:00
---

# Knock, knock, AI! AI bots in your server logs

Get the app on its site: [knockknock-ai.app](https://knockknock-ai.app)

![The Freshness view in the Knock, knock, AI! panel: a Knock Score of 29 out of 100, a chart of AI bot visits over 10 days and a table of bots with their last visit](https://adinspire.com/assets/media/apps/knock-knock-ai-aktualnosc.webp)

The Freshness view for the site high5ai.app, data from 2 to 11 November 2026. The interface in the screenshot is in Polish.

## Why this app

The test in [High Five, AI!](https://adinspire.com/en/apps/high-five-ai/) tells you whether AI bots can get onto your site. It is a simulation, though, and only server logs give certainty. Knock, knock, AI! reads those logs and shows which AI bots (ChatGPT, Claude, Perplexity, Google and others) actually read your pages. I wrote it for website owners and caretakers and for SEO agencies.

## What the panel shows

The panel in your browser has six views. Each answers a different question.

| View | The question it answers |
|---|---|
| Visits | Which bots read which pages. |
| Access | Whether bots are allowed onto the home page. |
| Freshness | What the Knock Score is and how fresh the whole site is. |
| Traffic from AI (beta) | How many people arrive from AI answers. |
| Pages | What each page from the sitemap looks like. |
| Errors | Which addresses return an error to bots and how to fix it. |

A seventh view, Page, has no place in the menu. You open it from the address field or from a row of the Pages table, and it tells you whether bots have the current version of one page.

## A genuine bot or a fake

The name of a bot in a log is not enough, because anyone can sign with it. So the app checks the IP address of a visit against the list that the bot's provider publishes. A visit is confirmed, unconfirmed (a possible fake) or without a list, when the provider does not publish a usable one. The app does not query DNS. In the panel you switch the view between confirmed visits only and all visits.

## Which version of a page the bot read

On a page a bot has one of three states: current, older or no confirmed read. When the panel cannot tell, it says so instead of guessing. For a bot that is behind, it also shows what has changed since its read: how many words were added and removed. The panel works out the versions of pages from the sizes of responses in the log, and for static sites also from the texts of the pages.

## Knock Score

The Knock Score is a number from 0 to 100: for how many of your pages each AI platform has fetched the current version. So it measures the fetching of a page by bots, not what a model "knows". A fetch does not guarantee that the page will be used, either. Only the search bot of each platform counts in the score, and only confirmed reads. The panel shows the score as a counter in the Visits view and as a card with a line by day in the Freshness view.

## How it works and what you need

It is a PHP app in a single folder on your domain's server: no database, the data lies in plain files, and the panel is behind a password. You upload the folder, open its address and go through seven setup steps in the browser. It takes about a dozen minutes.

You need PHP 8.2 or newer, write access to the app's folder, a cron job in your hosting panel and access to the server's access log. The app does not set the cron job, it shows what to enter. It understands Apache and nginx logs and recognises the format by itself. Nothing from the logs leaves your server: neither visitors' IP addresses nor User-Agents.

## Honest limitations

- Blocks in Cloudflare and answers from a cache do not reach the server, so they are not in the log.
- Many servers keep logs for about 7 days. Visits that vanished from the log before the cron job copied them will not come back.
- There is no full certainty about the version of a page, and a new version is known only at the first response to it, so freshness lags behind a change.
- The Access view and the Common Crawl check use my service api.adinspire.com. The rest works without it.

## Licence

The app is free. The Free Use Licence lets you install it and use it on your own sites and on your clients' sites. You may not sell it, distribute a modified version or publish it under another name. The app is provided without warranty.

