BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
Turf Stats icon
Actively maintained Tested with WP 7.1

Turf Stats

Self-hosted, cookieless analytics: page views, visitors, clicks, searches, 404s and bots - all stored in your own database, no external services.

Active installs30+10+ tier
Downloads · 30d358▼ -22.5% vs prev. 30d
Rating—0 reviews
Health score63/100Good
All-time downloads1.5KSince Jul 2026
Support resolved—No recent threads
RequiresWP 6.0PHP 7.4+
Downloads · 7d47▼ -14.5% week over week
Our verdict

Solid choice

Turf Stats is a solid plugin choice in 2026, with a few things worth checking first. It runs on 30+ sites and was last updated 1 month ago, and scores 63/100 on our health check.

  • Tested with the latest WordPress (7.1)
  • Small user base (30+ active installs)
  • Very few reviews so far

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

153147Jul 19Sep 1Oct 16
Yesterday2
Daily average (1y)14
Peak day63Sep 9, 2026
Last 12 months1.5K

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where Turf Stats stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
analytics >100 8,036 Best analytics plugins →
cookieless #29 158 Best cookieless plugins →
page views >100 10,000 Best page views plugins →
privacy >100 10,000 Best privacy plugins →
statistics >100 3,365 Best statistics plugins →

Version adoption

Share of active sites per release.

  • 1.26100.0%

About Turf Stats

From the official readme · v1.26.0

Description

Turf is a self-hosted, cookieless analytics plugin. No Google Analytics, no
Jetpack, no external network calls – everything is measured and stored in your
own WordPress database.

Why Turf

  • Cookieless. Visitor deduplication uses a one-way hash of IP + user-agent,
    never a cookie and never the raw IP address.
  • Self-hosted. All data lives in your own database; nothing is sent to any
    third party.
  • Zero configuration. Every public post type and taxonomy is tracked
    automatically, including ones you add later.

What it tracks

  • Page views (deduplicated and raw), unique visitors, views per visitor, and
    average visit duration
  • Device, browser, operating system, language, and country (via Cloudflare’s
    header when available – no GeoIP lookups)
  • Referrers / traffic sources, UTM campaign parameters, and automatic outbound
    link tracking (full destination URL + the page clicked from)
  • New vs. returning visitors, scroll depth, and reading time
  • On-site search terms, including zero-result searches
  • Visitor routes (page-to-page transitions), landing pages, and a bounce-rate
    proxy – all reconstructed from sessions
  • Cache offload: how much traffic is served by a page cache (SiteGround,
    Cloudflare, …) instead of hitting WordPress
  • 404 hits, comments per period, editorial content activity, per-author stats
  • Bots & LLM crawlers (Googlebot, GPTBot, ClaudeBot, …) – tracked server-side
    and kept separate from human visitor numbers
  • WooCommerce funnel (views, add to cart, checkout) and form submissions
    (Contact Form 7, Gravity Forms) when those plugins are active

The admin pages use native WordPress postboxes: collapsible, draggable,
hideable via Screen Options, and styled by your admin color scheme. The
interface is English and ships with a full Dutch (nl_NL) translation.

Installation

  1. Install and activate the plugin.
  2. That’s it – views start counting immediately for every public post type and
    taxonomy. Find the reports under the “Statistics” menu in wp-admin.

Optional extras (a visible view counter, click tracking on specific elements,
social-share links, importing historical Jetpack/entry-views view counts via
the “Statistics > Import” admin page or WP-CLI) are documented in the plugin’s
README on GitHub.

Frequently asked questions

Does Turf set cookies or require a consent banner?

Turf sets no cookies and sends no data to any external service. Deduplication uses a one-way hash of IP + user-agent; the raw IP is never stored. It is designed to fit a “legitimate interest” basis for first-party, aggregate analytics – but that is not legal advice: check with whoever maintains your privacy policy.

What data does Turf collect, and where does it go?

Per page view Turf stores, in your own database only: a one-way visitor hash, timestamp, the page viewed, device type / browser / OS family (parsed from the user-agent), language, country code (only if Cloudflare provides it), referrer hostname, UTM parameters, scroll depth, and reading time. Raw event rows are pruned automatically after 18 months (filterable); aggregate totals are kept. Nothing is ever transmitted off your server.

Why are Turf’s numbers lower than Jetpack’s or a raw hit counter’s?

“Views” is deduplicated: a repeat view of the same page by the same visitor within 30 minutes doesn’t count again (the same default Google Analytics and Matomo use). The separate “Raw views” number counts every page load, for an apples-to-apples comparison with hit-counting tools.

Does it work with page caching?

Yes. Tracking runs client-side, so cached pages are still counted. Turf even reports how much of your traffic is served from cache.

Where is the country data coming from?

From Cloudflare’s CF-IPCountry request header, if your site is behind Cloudflare. Turf deliberately does not call any geolocation API – that would mean sending visitor IPs to a third party. Without Cloudflare, country stays empty unless you hook up your own local database via the turf_visitor_country filter.

Does uninstalling remove my statistics?

By default, no – analytics history is precious, so the data survives an uninstall/reinstall. To remove everything on uninstall, add define( ‘TURF_REMOVE_DATA_ON_UNINSTALL’, true ); to wp-config.php (or set the turf_remove_data_on_uninstall option to 1) before deleting the plugin.

Where do I suggest a feature or report a bug?

On the plugin’s GitHub repository: https://github.com/fbloemhof/turf-stats/issues

Changelog

Listing/packaging update only (screenshots); no functional changes.

1.26.0

  • Added “Load time trend” and “Time/visit trend” daily line charts to the
    Analysis page, next to the existing peak-hours heatmap.
  • Added a “PWA vs. browser” breakdown to the Statistics page: detects
    whether a pageview ran inside an installed PWA (Add to Home Screen /
    Install app) or a normal browser tab. This is a rough estimate of active
    PWA usage, not a hard install count – browsers don’t report installs to
    the server.

1.25.2

  • Reverted 1.25.1: “mln” for millions reads fine on Dutch sites too, so
    the “k”/”M” abbreviation is back to a plain, always-on suffix instead
    of going through translation.

1.25.1

  • Fixed: the abbreviated view/visitor counts added in 1.25.0 always showed
    the Dutch “mln” for millions, even on English (and other) sites. The
    “k”/”M” suffixes are now translatable, so non-Dutch locales show “1.2M”
    instead of “1,2 mln”.

1.25.0

  • Large view/visitor counts are now shown abbreviated (“12,3k”, “1,2 mln”)
    in the totals tiles, the [turf_stats] shortcode widget, and the view
    count shown to visitors on single posts – so big numbers keep fitting
    their fixed-width space. Tables and CSV exports still show exact figures.
  • Fixed the “Go to date” button showing the Dutch word “Toon” instead of
    “Show” for every locale except Dutch.

1.24.0

  • The Statistics page now loads noticeably faster: most boxes (device/
    browser/OS/country breakdowns, sources, UTM campaigns, top pages/terms,
    peak hours, etc.) load their data in the background right after the page
    appears, instead of making you wait for every query to finish first.
  • The heaviest stats queries are now cached for a few minutes, so reloading
    the page or switching periods no longer repeats the same slow database
    query every time.
  • Visual refresh of the Statistics page: breakdown lists, the totals tiles,
    the daily chart, and report tables (top pages, top search terms, 404s,
    clicks, etc.) now share one consistent, more compact look with a hover
    highlight per row and a full-width bar behind each breakdown item instead
    of a separate small bar – including the Bots page’s breakdown, which now
    matches the rest of the plugin instead of using its own older style.
  • New sortable “Views” column on the posts/pages list (and any other tracked
    post type), so you can see view counts without leaving the list.
  • Fixed the “From/To” (session routes) and outbound-links tables showing
    their second column right-aligned instead of left-aligned.
  • Fixed the “Show more” toggle not working on boxes that load their data in
    the background.

1.23.0

  • Custom date ranges: pick any start/end date instead of just the fixed
    presets, and save frequently-used ranges by name to jump back to them
    later.
  • CSV export for the overview totals, top pages, top referrers,
    device/browser/OS breakdown, search terms, and 404s boxes – respects
    whatever period (including a custom range) is on screen.
  • Weekly/monthly email report: a summary of your stats sent to one or more
    addresses on a recurring schedule, with a “Send test email now” button to
    check formatting/delivery without waiting for the schedule.
  • Fixed several period-filtered boxes (404s, per-author stats, click and
    outbound-link breakdowns, WooCommerce funnel, peak-hours heatmap) silently
    including data all the way through “now” instead of stopping at the end
    of “Yesterday” or a picked date – only affected those two period choices,
    not the day/week/month tabs.
  • Dutch (nl_NL) translation updated for all new strings.

Full changelog on WordPress.org →

Screenshots

Statistics overview - views, visitors, device/browser/OS breakdowns, cache
offload, peak hours, and top pages and posts for the selected period.
Statistics overview - views, visitors, device/browser/OS breakdowns, cache offload, peak…
Analysis - landing pages with bounce rate, on-site search terms
(including zero-result searches), trending content, and per-author stats.
Analysis - landing pages with bounce rate, on-site search terms (including zero-result…
Bots & LLMs - crawler and AI-bot visits (Googlebot, GPTBot, ClaudeBot, ...)
tracked separately from human visitors, with the pages they crawl most.
Bots & LLMs - crawler and AI-bot visits (Googlebot, GPTBot, ClaudeBot, ...) tracked…

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best Turf Stats alternatives

All analytics plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 Site Kit by Google – Analytics, Search Console, AdSense, Speed Site Kit by Google Site Kit is a one-stop solution for WordPress users to use everything Google has to offer… by Google 5M+ ★★★★★★★★★★ 4.2 (1K) 2 weeks ago 92
2 MonsterInsights – Google Analytics Dashboard for WordPress (Website Stats Made Easy) MonsterInsights The best free Google Analytics plugin for WordPress. See how visitors find and use your… by chriscct7 2M+ ★★★★★★★★★★ 4.5 (3.2K) 1 month ago 93
3 WP Statistics – Simple, privacy-friendly Google Analytics alternative WP Statistics Cookieless, privacy-friendly WordPress analytics. GDPR/CCPA compliant visitor data and… by VeronaLabs 500K+ ★★★★★★★★★★ 4.1 (759) 3 days ago 91
4 GA Google Analytics – Connect Google Analytics to WordPress GA Google Analytics – Connect Google Analytics to WordPress Adds Google Analytics tracking code to your WordPress site. Supports many tracking features. by Jeff Starr 400K+ ★★★★★★★★★★ 4.9 (158) 2 months ago 89
5 ExactMetrics – Google Analytics Dashboard for WordPress (Website Stats Plugin) ExactMetrics Connects Google Analytics with your WordPress site. Displays stats to help you understand… by Syed Balkhi 300K+ ★★★★★★★★★★ 2.5 (1.5K) 1 month ago 81
6 Head, Footer and Post Injections Head, Footer and Post Injections Head and Footer plugin lets you to add HTML code to the head and footer sections of your… by Stefano Lissa 200K+ ★★★★★★★★★★ 4.9 (735) 7 months ago 53
7 HubSpot All-In-One Marketing – Forms, Popups, Live Chat HubSpot All-In-One Marketing – Forms, Popups, Live Chat The CRM, Sales, and Marketing WordPress plugin to grow your business better. Capture and… by HubSpot 200K+ ★★★★★★★★★★ 4.3 (207) 1 month ago 81
8 Burst Statistics – Simple WordPress Analytics (Google Analytics Alternative) Burst Statistics Simple, lightweight WordPress analytics with privacy-friendly visitor tracking. Cookieless… by Burst Statistics B.V. 200K+ ★★★★★★★★★★ 4.9 (186) 3 weeks ago 96
9 UserFeedback – Create Interactive Feedback Form, User Surveys, and Polls in Seconds UserFeedback Ultimate user feedback plugin to ask questions, surveys, polls, from your website in seconds by Syed Balkhi 200K+ ★★★★★★★★★★ 4.8 (308) 1 month ago 82
10 Post Views Counter Post Views Counter Count and display post views, track site-wide visits, and see what content works – inside… by dFactory 100K+ ★★★★★★★★★★ 4.9 (1.2K) 1 week ago 81

FAQ

Turf Stats: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Oct 17, 2026

Is Turf Stats free?

Yes. Turf Stats is free to download and use from the official WordPress.org plugin directory.

Is Turf Stats safe to use in 2026?

Turf Stats is a solid plugin choice in 2026, with a few things worth checking first. It runs on 30+ sites and was last updated 1 month ago, and scores 63/100 on our health check.

How many websites use Turf Stats?

Turf Stats is active on 30+ WordPress websites and has been downloaded 1,453 times since it launched in July 2026. It was downloaded 358 times in the last 30 days.

Does Turf Stats work with WordPress 7.1?

Yes. The developer has tested Turf Stats up to WordPress 7.1.3, the latest release. It requires WordPress 6.0 or newer.

What PHP version does Turf Stats need?

Turf Stats requires PHP 7.4 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was Turf Stats last updated?

The latest version, 1.26.0, was released on September 9, 2026 (1 month ago).

Who makes Turf Stats?

Turf Stats is developed and maintained by Freek.

What are the best alternatives to Turf Stats?

The most popular alternatives to Turf Stats are Site Kit by Google (5M+ installs), MonsterInsights (2M+ installs) and WP Statistics (500K+ installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.