=== SEOS ===
Contributors: seosbg
Donate link: https://seosthemes.com/seos-wordpress-plugin/
Tags: statistics, analytics, seo, bots, open graph
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 2.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Visitor statistics that separate real people from bots, plus Googlebot and AI crawler tracking, Core Web Vitals and SEO meta tags.

== Description ==

**SEOS** shows who really visits your site – and who only pretends to. Every request is counted on the server, and real browsers confirm themselves with a tiny script, so human visitors are cleanly separated from bots, crawlers and scrapers. Everything is stored in your own database: no external services, no cookies.

[youtube https://www.youtube.com/watch?v=UfEMBUqaQDo]

= Visitor statistics =

* **Humans vs. bots** – user-agent detection for 140+ bots, JavaScript confirmation, headless/webdriver detection, scraper detection and **fake Googlebot/Bingbot detection** with reverse DNS.
* **Countries and IP addresses** – local GeoIP database (no external lookups). See every page a single IP has visited, and every IP that visited a page.
* **Pages** – most visited pages, landing pages, on-site searches, engaged time and scroll depth.
* **Sources** – organic search (with the exact engine domain, e.g. google.de vs google.com), Google Discover / News / Images, social networks, email, paid ads, UTM campaigns.
* **AI traffic (GEO)** – visits from ChatGPT, Perplexity, Gemini, Claude, Copilot and other AI assistants.
* **History kept until you delete it**, CSV export, optional data retention.

= SEO insights =

* **Search engine crawling** – how often Googlebot, Bingbot and others crawl you, which pages, response codes and server response time.
* **Content not crawled** – published posts that search engines have not visited.
* **AI crawlers** – GPTBot, ClaudeBot, PerplexityBot, Applebot, Amazonbot and more, and which pages they read.
* **404 errors** – for people and for bots, including the page that contains the broken link.
* **Core Web Vitals from real visitors** – LCP, INP, CLS and TTFB (75th percentile), by device and by page.

= Classic SEOS features =

* Homepage meta description, canonical URL and keywords – with a live Google preview.
* Verification for Google Search Console, Bing, Yandex and Pinterest (paste the code or the whole meta tag).
* Google Analytics 4 / Tag Manager by ID, plus a custom `<head>` code field.
* Open Graph and X (Twitter) cards with Media Library picker and share preview.
* Geo tags for local businesses.
* **Admin notes** with due dates on your dashboard – as many as you need, each in any colour.
* **Sticky notes** you can place anywhere with a shortcode such as `[seos_sticky_1]` – as many as you need, in any paper colour, each keeps its own shortcode.

= Built to be light and secure =

* One database insert per page view; the browser beacon uses a lightweight endpoint that does not load your theme or other plugins (with automatic REST API fallback).
* Reports for months and years read compact daily summaries instead of raw rows.
* Works with page caches – cached pages are still counted.
* Signed beacons, per-IP rate limiting, prepared SQL everywhere, escaped output, nonces and capability checks on every action.
* GDPR mode: no IP addresses stored at all, with one-click removal of IPs from existing history.
* No Google Fonts or other third-party requests – the sticky-note font is bundled.

= Languages =

The interface is in English and every user can choose the plugin language – with flags – from the SEOS header. Included: Bulgarian, Chinese (Simplified), Czech, Dutch, French, German, Italian, Japanese, Polish, Portuguese (Brazil), Romanian, Russian, Spanish, Turkish and Ukrainian. More languages can be added on translate.wordpress.org.

== Installation ==

1. Plugins → Add New → search for **SEOS** → Install → Activate. Or upload the ZIP via Plugins → Add New → Upload Plugin.
2. Open **SEOS → Statistics**. Statistics start immediately; the free country database downloads automatically within a few minutes.
3. Optional: **SEOS → SEO settings** for meta tags, verification codes and social sharing.

== Frequently Asked Questions ==

= I used SEOS 1.x. Will I lose my settings? =

No. SEOS 2.0 uses exactly the same option names. Your meta tags, verification codes, Open Graph and Twitter settings, notes and sticky notes stay as they are, the `[seos_sticky_1]` shortcode keeps working and old links to the settings tabs redirect to the new screens.

= Does SEOS use cookies? =

No. Visitors are counted per day using a salted hash of IP address and browser, and nothing is stored in the visitor's browser.

= Is it GDPR friendly? =

Yes. Data never leaves your server and no cookies are used. Under Statistics → Settings → "IP addresses & GDPR" you can choose:

* **Store full IP addresses** (default),
* **Anonymize IP addresses** (last part removed), or
* **GDPR mode – do not store IP addresses at all.** The IP address is only used in memory while the page loads (country and bot detection). Visitors get an anonymous ID made with a random key that changes every day and is then deleted, so nobody can recover the IP address or follow a visitor across days.

One click also removes all IP addresses already stored in the history. You can exclude IPs and roles, respect Do Not Track / Global Privacy Control and delete any part of the history. SEOS adds a matching text to your privacy policy page.

= Why can't I see Google search keywords? =

Google hides search terms from all websites. SEOS shows search terms only when an engine passes them (e.g. Yandex) or via utm_term. Use Google Search Console for Google keywords.

= Where does the country data come from? =

From the free DB-IP Country Lite database (CC BY 4.0), downloaded monthly to your uploads folder. You can also upload a MaxMind GeoLite2-Country file. Behind Cloudflare, the Cloudflare country header is used automatically.

== Screenshots ==

1. Overview: real visitors, engagement, search and AI traffic, bots.
2. Bots & SEO crawling: Googlebot, AI crawlers, fake bots, crawl health.
3. Organic search: engines, exact domains, landing pages, countries.
4. Core Web Vitals from real visitors.
5. SEO settings with Google and share previews.
6. Admin notes and sticky notes.

== Changelog ==

= 2.0.1 =
* Shorter plugin short description (WordPress.org limit of 150 characters).
* Tested with WordPress 7.1.

= 2.0.0 =
* NEW: Visitor statistics – humans vs. bots, countries, IP addresses, pages, sources, 404s, devices.
* NEW: SEO crawl insights, fake crawler detection, AI crawler and AI assistant traffic.
* NEW: Core Web Vitals from real visitors.
* NEW: GDPR mode – IP addresses are never stored; anonymous daily visitor IDs; remove IPs from existing history in one click.
* NEW: Redesigned SEO settings with Google and social share previews, Media Library picker, character counters.
* NEW: Google Analytics 4 / Tag Manager by ID; Pinterest verification.
* NEW: Plugin language switcher with flags; 15 translations included.
* IMPROVED: Unlimited admin notes in any colour with due-date badges; unlimited sticky notes in any paper colour with live preview (shortcodes never change).
* FIXED: invalid `twitter:description'` / `twitter:image'` tag names, empty `og:locale:alternate`, capitalised twitter card value, duplicate canonical tag on static front pages.
* SECURITY: all settings are sanitized; the custom head code can only be changed by users allowed to post unfiltered HTML; dashboard notes are visible to administrators only; no external Google Fonts / jQuery UI requests; assets load only where needed.

= 1.2.1 =
* ADDED: Premium descriptions.

= 1.2.0 =
* ADDED: Admin notes, sticky note.

= 1.0 =
* Initial release.

== Upgrade Notice ==

= 2.0.1 =
Small maintenance update. All settings and statistics are kept.

= 2.0.0 =
Big update: visitor statistics, bot and crawler insights, Core Web Vitals and a redesigned interface. All your SEOS 1.x settings are kept.
