=== Jagelon Guard – Technical SEO & Site Monitoring ===
Contributors: securplan
Tags: seo, website monitoring, canonical, sitemap, open graph
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 0.10.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Free SEO Health Check for WordPress: technical SEO audit of noindex, robots.txt, canonicals, titles and sitemaps. Optional site monitoring.

== Description ==

Jagelon Guard gives every site owner a free, one-click SEO Health Check. It reads
the public home page, robots.txt and XML sitemap, then explains what is correct,
what needs attention and what could not be checked. The audit is read-only, works
without an account or key and does not send site data to Jagelon.

The plugin also keeps the technical foundations of SEO in order locally inside
WordPress. An optional monitoring service checks the public site every 15 minutes
and warns you when a quiet change could cost visibility or traffic.

= Free technical SEO — no account required =

* a one-click, read-only SEO Health Check for the home page, robots.txt,
  XML sitemap, HTTPS, metadata, Open Graph, JSON-LD and the main H1 heading
* an SEO panel in the editor of every page and post: title and description in
  Google with a live preview and character counter, and a "hide from Google" switch
* home page title and description, with the same preview
* canonical links, with WordPress core's own tag replaced by one you control
* the native WordPress sitemap, without author pages
* robots.txt rules
* Open Graph tags
* Organization and WebSite schema (JSON-LD)
* an optional "business card site" mode for sites without a blog: category,
  tag and author archives and RSS feeds are hidden

These features run on your own site, do not expire and need no connection key.

= Optional monitoring every 15 minutes =

Sites rarely break loudly. An update quietly sets `noindex`, someone edits a
page title that used to rank, a redirect behind a paid ad starts returning 404.
The site still looks fine in a browser, so nobody notices for weeks.

The optional Jagelon Guard service checks your public site every 15 minutes and
tells you what changed, where it happened, how long it has lasted and what to
check next:

* an event log in your WordPress dashboard
* a weekly email report, including the quiet weeks
* recommendations ranked by importance, each listing the affected addresses

Jagelon Guard observes and advises. It never changes your content, settings or files.

Jagelon Guard reports, the event log and recommendations are currently written in
Polish. The free features above are fully available in English.

= Privacy and resilience =

Connecting is optional. Without a connection every local feature listed above
keeps working.

What the plugin sends to the service, and only after you paste a connection key:

* your site address
* WordPress, PHP and plugin versions
* the results of the service's own checks of your public pages
* a timestamp for each connection

It does not send post content, user data, database contents or anything from
inside wp-admin. If the service is unavailable, the local SEO features keep
working. Only monitoring and reports pause.

Service terms: https://securplan.pl/regulamin/
Privacy policy: https://securplan.pl/polityka-prywatnosci/

== Installation ==

1. Install and activate the plugin.
2. Open **Jagelon Guard** in the main admin menu.
3. Fill in the metadata fields. That is all the free part needs.
4. To use Jagelon Guard, paste the connection key you received by email under **Connection**.

== Frequently Asked Questions ==

= Does the free plugin work without an account or key? =

Yes. Titles, descriptions, canonicals, the sitemap, robots.txt, Open Graph and
schema run locally and do not expire. The manual SEO Health Check is also fully
available without registration or a connection to the monitoring service.

= What does the free SEO Health Check inspect? =

It checks whether the public home page can be loaded and reviews its title, meta
description, canonical URL, indexing directives, Open Graph tags, JSON-LD and H1.
It also checks robots.txt, the XML sitemap, HTTPS and redirects. The audit is
read-only and never edits content or settings.

= Why does a check sometimes say "Could not check"? =

Some hosting providers block a site's own loopback HTTP requests. Jagelon Guard
reports those tests as unavailable instead of presenting a false SEO error. No
setting is weakened and no remote service receives the page data.

= What does the optional monitoring service check? =

It checks the public site every 15 minutes for high-impact changes such as
noindex, robots.txt changes, missing or foreign canonicals, changed titles,
sitemap failures and HTTP errors.

= Does Jagelon Guard change or repair my site? =

No. It is read-only: it observes, records and recommends. It does not change
content, settings or files.

= Will it fight my other SEO plugin? =

No. When Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework,
Slim SEO or Squirrly SEO is active, Jagelon Guard does not add duplicate SEO
output. Optional monitoring can continue alongside the other plugin.

= What data is sent to the monitoring service? =

Only the site address, WordPress/PHP/plugin versions, results of checks of public
pages and connection timestamps, and only after a connection key is entered. No
post content, user data, database contents or wp-admin data is sent.

= What happens if the service is unavailable? =

The local SEO features remain active. Monitoring and reports pause until the
service is available again.

== Screenshots ==

1. What the plugin already does, the moment it is activated: sitemap,
   robots.txt, canonical addresses, social previews and organisation data.
   No account, no key, no setup.
2. Home page title and description, with a live preview of how the page
   looks in Google results and a character count for each field.
3. See exactly how a page will look in Google before you publish it:
   title, description, a live preview and a character count that tells
   you when you have said enough. A switch hides a single page from
   Google, for pages such as "thank you for your order".
4. Indexing and technical SEO settings, each with a plain-language note on
   what it changes and when to leave it alone.
5. The free SEO Health Check showing a real read-only audit, clear result counts
   and practical explanations for correct items and warnings.

== Changelog ==

= 0.10.0 =
* Adds the free, manual SEO Health Check. It works without an account, changes
  no site settings and clearly separates correct, warning, error and unavailable
  results.
* The check remains available alongside Yoast SEO, Rank Math and All in One SEO,
  without producing duplicate metadata.
* Adds same-site request restrictions, nonce and capability checks, a short
  per-user rate limit, responsive results and deterministic regression tests.

= 0.9.30 =
* The plugin is now Jagelon Guard. The previous name could be confused with
  an unrelated trademark, so the plugin, its text domain and its admin screen
  were renamed.
* The character counter label is JSON-encoded with escaped angle brackets, so
  a translation cannot break out of the inline script.

= 0.9.29 =
* Admin styles and scripts are loaded through the WordPress enqueue API.
* Structured data (JSON-LD) escapes HTML tags, so no site value can close the
  script element.
* Translations are delivered through translate.wordpress.org; the package no
  longer bundles language files.

= 0.9.28 =
* Build fix: the paid package is buildable again. The update channel was
  dropped from the whole source tree instead of only from the directory
  build, so paid sites shipped since 0.9.18 could no longer update
  themselves. The directory package is unchanged: it carries no update
  channel and no Fix module.

= 0.9.27 =
* Ready for the Jagelon Guard trial: the expiry reminder counts down 3 days and
  1 day for a trial (30 and 7 days for a yearly plan), and the event log stays
  visible after monitoring stops.

= 0.9.26 =
* Screenshots and listing graphics for the plugin directory.

= 0.9.25 =
* The settings screen is now fully translatable. The indexing section mixed
  an English heading with Polish labels, and the event log and
  recommendations headings stayed Polish on every site, connected or not.

= 0.9.23 =
* "Tested up to" is declared only in the readme, where the directory expects
  it, so the two cannot drift apart.

= 0.9.22 =
* Plugin URI now points at the plugin's own page, separate from the author
  URI, as the directory requires.

= 0.9.21 =
* The request URI is unslashed and sanitised before use, as recommended by
  Plugin Check.

= 0.9.20 =
* The SEO panel keeps a readable width after being moved out of the editor
  sidebar with the "move up" arrow.

= 0.9.19 =
* A site set to "Discourage search engines" no longer serves a working XML
  sitemap, and robots.txt no longer advertises one. Staging copies could be
  found and indexed despite the setting.

= 0.9.18 =
* Jetpack no longer adds a second set of Open Graph tags next to ours.

= 0.9.17 =
* SEO panel in the page and post editor: title, description, live Google
  preview and a "hide from Google" switch.
* Steps back automatically when another SEO plugin is active.
* Hiding category, tag and author archives and RSS feeds is now an opt-in
  "business card site" setting, and blog posts stay in the sitemap. Sites
  updated from an earlier version keep their previous behaviour.
* Home page metadata fields explain their defaults, with a Google preview and
  a character counter.
* The monitoring service is now consistently called Jagelon Guard.
* The settings screen now starts with what already works, a next step and
  what Jagelon Guard adds, instead of unavailable modules.
* A fresh install no longer reports a lost connection it never had.
* Removed the plugin author's product and e-mail address from the structured
  data (schema) added to every site.

= 0.9.16 =
* Comments and pingbacks are no longer switched off without asking. The
  setting is off by default.
* English is now the source language; Polish ships as a translation.
* The paid Fix module is no longer part of this package.

= 0.9.15 =
* Event log shows the previous and current value of what changed.

= 0.9.14 =
* Recommendations list the affected addresses instead of only counting them,
  with a link straight to the editor.
