=== Track-A-Bot === Contributors: trackabot Tags: seo, bot tracking, crawler detection, ai activity, analytics Requires at least: 5.0 Tested up to: 6.9 Requires PHP: 7.0 Stable tag: 1.0.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Plugin URI: https://track-a-bot.com/ Track-A-Bot logs and analyzes SEO bots, AI crawlers, and other automated traffic on your WordPress site. == Description == After activation, Track-A-Bot adds an admin page that shows a traffic log of known bots (identified by User-Agent matching) including the date/time, bot name, requested URL, HTTP status, user agent, IP address, and hostname (when available). The log can be filtered by bot and paginated, and the number of rows per page can be configured in Settings. Track-A-Bot ships with a large built-in bot list (500+ bots for free) so you can quickly see which crawlers are visiting your site without complicated setup. Features: * Logs bot visits on front-end requests by matching against a known bot list (User-Agent match). * Admin traffic log with filtering and pagination. * Settings: choose how many log rows to display per page. * Optional hostname enrichment in the background via WP-Cron (reverse DNS lookup + caching). * Safe admin-only controls and nonce validation for filter actions. == Installation == 1. Upload the `track-a-bot` folder to the `/wp-content/plugins/` directory, or install the plugin through the WordPress Plugins screen. 2. Activate the plugin through the “Plugins” screen in WordPress. 3. In the WordPress admin menu, go to **Track-A-Bot** to view the bot traffic log. 4. (Optional) Go to **Track-A-Bot → Settings** to change how many rows are displayed per page. Notes: * Track-A-Bot creates a custom database table on activation to store bot traffic logs. * Track-A-Bot uses WP-Cron to enrich missing hostnames in the background. Your site must receive traffic for WP-Cron to run automatically (or you can use a real cron job that triggers wp-cron.php). == Frequently Asked Questions == = How does Track-A-Bot detect bots? = Track-A-Bot matches the request’s User-Agent string against a built-in list of known bots. If a match is found, the visit is logged. (Hostname matching can also be used by the detection function when you supply a hostname, but the front-end logger uses User-Agent matching by default.) = Does this log human visitors too? = No. Track-A-Bot only logs requests that match a known bot in the bot list. = What data is stored when a bot is logged? = The plugin stores the timestamp, bot ID/name, requested URL, HTTP status, user agent, IP address, and (when available) the hostname. = Why is the Hostname column sometimes blank? = Hostnames are resolved using reverse DNS lookups. Track-A-Bot fills in missing hostnames in the background using WP-Cron and caches lookups to reduce load. Some IPs do not have a valid reverse DNS hostname, in which case the hostname will remain blank. = Does Track-A-Bot slow down my site? = The front-end logger is designed to be lightweight: it performs a simple User-Agent match and inserts a row when a known bot is detected. Hostname lookups (the expensive part) are performed later in small batches via WP-Cron and cached using transients. = Can I change how many rows are shown per page? = Yes. Go to **Track-A-Bot → Settings** and choose “Bots per page”. = Does Track-A-Bot modify my robots.txt? = Track-A-Bot includes an (currently disabled) robots.txt integration using WordPress's virtual robots.txt filter. If a physical `/robots.txt` file exists on your server, WordPress will serve that file directly and filters will not apply. Track-A-Bot will show an admin notice if a physical robots.txt is detected. = How many bots are included? = Track-A-Bot includes 500+ bots in its built-in bot list for free. == Changelog == = 1.0.0 = * Initial release.