Skip to content
New storyWe built Skald to count visitors. It caught an AI-key thief.
SkaldEvery visit, truly told.

Integrations · WordPress

WordPress analytics: from your server's log, not a heavy plugin

WordPress analytics in Skald reads the log your web server already writes, so it sees people, AI crawlers and bots without a plugin in every page load. The tag goes in your theme's head, and one small plugin sends each form as a lead.

WordPress analytics is counting the visits, pages and sources of a WordPress site. Skald reads them from the web server's access log, counts a visit as people only when its browser loaded the site's own files from /wp-content/ or /wp-includes/, and takes Contact Form 7, WPForms, Gravity Forms, Elementor Pro and Ninja Forms leads through the Skald Leads plugin. One of the Skald integrations.

30-day free trial · no card · we set it up within one working day · free to self-host

access.log · WordPress · sample6 lines
  1. 10:02:11 198.51.100.23 "GET /services/" 200people
  2. 10:02:11 198.51.100.23 "GET /wp-content/themes/site/style.css" 200page asset · a browser drew it
  3. 10:02:30 203.0.113.24 "GET /services/" 200 "GPTBot/1.2"AI · training
  4. 10:03:05 198.51.100.140 "GET /contact/" "ChatGPT-User"AI · live fetch
  5. 10:04:48 192.0.2.77 "GET /wp-config.php.bak" 404bots and scanners
  6. 10:05:12 wpforms-123 · contact · from /services/lead

Sample lines. One log for people, AI and bots; the plugin adds the lead.

[01] how it is hosted

WordPress analytics on your own server, behind Cloudflare, or tag only

What Skald can see depends on whether it can read a log of every request. Pick how your WordPress site is hosted. The log road is server log analytics.

Where does your WordPress run? pick one

Read the web server's log, as for any server of your own: one command finds it and ships it. That sees people, AI crawlers and bots.

What Skald sees of a WordPress site, by how it is hosted
What Skald sees A server you runthe web server's log Cloudflare in frontCloudflare's log No logthe script tag alone
People, pages and sourcesYesYesPeople only, from the tag
AI crawlers and AI fetchesYesYesNo
Bots and scannersYesYesNo
Forms as leadsYes, with the pluginYes, with the pluginYes, with the plugin

[02] set up

Set up WordPress analytics in three pieces

The log, the page assets that tell a browser from a bot, and the tag. None of them is a plugin.

Add a site in the dashboard and Skald looks at it from outside, like a browser. It spots WordPress by its /wp-content/ folder and suggests the page assets and the way in, with one plain reason.

  1. Ship the log

    On a server you run, one command finds the site's access log and sends each new line to Skald, with or without Docker.

  2. Set the page assets

    /wp-content/ and /wp-includes/. A visit counts as people only when its browser also fetched one of them.

  3. Add the tag to the theme's head

    A child theme's header.php, or your theme's header scripts setting. Nothing else is needed. Serving it from your own domain is optional, set up in the web server.

the tag · copy yours from Settings › Integrations
<script src="https://stats.example.com/traffic-js/skald.js" data-site="example.com" defer></script>

[03] forms as leads

WordPress forms as leads, with one plugin and no code

Download Skald Leads from Settings › Integrations › Your site's server (lead), upload it under Plugins › Add New › Upload Plugin, and activate it. Each form sent becomes a lead, signed.

  • The action contact, the email and name fields it finds, and an id such as wpforms-123.
  • With the tag on the page and visitor IDs on, it fills a hidden skald_vid field, so the lead joins the visit.
  • Keep the secret out of the plugin file: define('SKALD_LEAD_SECRET', '<your-secret>'); in wp-config.php.
  • It sends in the background, so a form is never slower. It sends each lead once, without a retry.
skald leads · the form builders it hears · sample ids5 plugins
  1. cf7-… Contact Form 7contact
  2. wpforms-123 WPFormscontact
  3. gravity-88 Gravity Formscontact
  4. elementor-… Elementor Pro formscontact
  5. ninja-41 Ninja Formscontact

[04] what a plugin cannot see

AI crawlers, bots and scanners on a WordPress site

An analytics plugin runs inside page loads that a person makes. Your web server's log sees every request, including the ones no person made.

  1. AI crawlers and fetches

    GPTBot, ClaudeBot and PerplexityBot crawling, and ChatGPT-User or Claude-User fetching a page while someone waits, each checked against its owner's published addresses.

  2. Scanners, kept out of people

    A client that asks for secret or config files, such as a wp-config.php.bak or a .env, is a bot for the whole day, never people.

  3. Your stack and its advisories

    Security shows what serves the site, WordPress and PHP included, and whether a known flaw applies, with what to do. It shows; it blocks nothing.

[05] what it does not do

What WordPress analytics in Skald does not do

The log does the counting; the plugin only sends forms. Here is where each stops.

What it does not do

  • No log, no AI: with the tag alone, AI crawlers, fetches and bots are not seen at all.
  • The Skald Leads plugin sends each lead once, without a retry. A lead can be lost if Skald cannot be reached at that moment; the form still works.
  • The plugin was checked against stand-in WordPress hooks in Skald's tests, not on a real WordPress install. Send a test form after you activate it.
  • The plugin hears five form builders. Others need a webhook with a plain key, or the PHP lead file.
  • No dashboard inside WordPress admin: the figures are in Skald.

questions

WordPress analytics FAQ

Straight answers, including what Skald does not do.

Do I need a WordPress plugin for Skald analytics?

Not for counting. Skald reads your web server's access log, and the script tag goes in your theme's head with no plugin. The only plugin is Skald Leads, and only if you want your forms sent as leads.

How do I add the Skald script tag to WordPress?

Copy the tag from Settings › Integrations and add it to the theme's head: a child theme's header.php, or your theme's header scripts setting. Nothing else is needed. Serving it from your own domain is optional, and your web server does that, not WordPress.

What if my WordPress host gives me no access log?

Put Cloudflare in front and read its log, or use the script tag alone. The tag alone sees people only: AI crawlers, fetchers and bots run no script, so without a server or CDN log they are not seen at all.

Which WordPress form plugins does Skald Leads work with?

Contact Form 7, WPForms, Gravity Forms, Elementor Pro forms and Ninja Forms. Each form sent becomes a lead with the action contact, the email and name fields it finds, and an id such as wpforms-123. It needs WordPress 5.0 and PHP 7.0 or newer.

Does the Skald Leads plugin slow down my forms?

No. It sends in the background and waits at most 3 seconds, and a failure never breaks the form. The price of that is plain: it sends each lead once, without a retry, so a lead can be lost if Skald cannot be reached at that moment.

How was the Skald Leads plugin tested?

It was checked against stand-in WordPress hooks in Skald's own tests, not on a real WordPress install. Send a test form after you activate it, and look for the lead under Leads & sales.

$ tail -f access.log | skald

See what AI does with your site. Free for 30 days.

No card. We set up hosted Skald for you within one working day, or you self-host it free. Every line of your log, sorted and added up.

Start free trial Live demo