=== Pfadfindr – Website Check for SEO, AI Visibility and Accessibility ===
Contributors: lazymaze43
Tags: seo, accessibility, website audit, ai search, geo
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Check your own website for SEO, visibility in AI search and accessibility. Health score and top findings right in your WordPress admin.

== Description ==

Pfadfindr checks your website for search engine optimisation (SEO), visibility in AI search and accessibility. This plugin brings the results into your WordPress admin: start an audit of your own site with one click, follow its progress and see the health score and the five most important findings, each with the affected URL and a recommendation.

The plugin is a window into the Pfadfindr service. The audit itself runs on Pfadfindr servers, not on your web server: Pfadfindr crawls the public pages of your site the way a search engine would. The plugin only starts audits and shows the results. To use it, you connect your site to a Pfadfindr account (a free account is enough).

Pfadfindr complements your SEO plugin; it does not replace it. It does not edit meta data, create sitemaps or manage redirects. It shows you what to fix, and you keep using your existing tools to fix it.

= Features =

* Connect your site to a new or existing Pfadfindr account in a few clicks. You never enter a password in WordPress.
* Start an audit of your own website with one click. The remaining quota of your plan is shown before you start.
* Progress updates without reloading the page. If an audit fails, you see the reason in plain language and whether trying again will help.
* Result: overall health score, scores for SEO, AI visibility and accessibility, and the five most important findings with affected URL and recommendation.
* "Open full report" opens the complete report on pfadfindr.com.
* History of the last 10 audits with date and score.
* Dashboard widget with the latest score, date and a link to the findings.
* Ready for translation; a German translation will be available through translate.wordpress.org.
* Only administrators (users with the `manage_options` capability) can see and use the plugin.
* Nothing is added to the public side of your website. Scripts load only on the plugin's own admin page.

= Plans and quota =

Audits use the quota of your Pfadfindr plan. The Free plan includes 25 URLs in total, once per account; it does not renew. Starter and Pro limit the number of URLs per audit (5,000 for Starter, 50,000 for Pro). The plugin itself has no locked features; limits are set by your plan on pfadfindr.com.

The plugin checks only the domain of this WordPress site (the domain of your Site Address). To check other websites, for example as an agency, use your account on pfadfindr.com.

== External services ==

This plugin connects to the Pfadfindr service at pfadfindr.com, operated by Mattis Vahldieck, Berlin, Germany (imprint: https://pfadfindr.com/impressum). The service crawls your website, runs the audit and stores the results in your Pfadfindr account. Without the service the plugin has no function.

**When:** The plugin does not contact any external server until an administrator clicks "Connect with Pfadfindr". Before that, no request is made, not even on activation or on the dashboard.

**Connecting:** When an administrator clicks "Connect with Pfadfindr", their browser is sent to https://pfadfindr.com/verbinden with these parameters: the site's domain, the return URL of the plugin page in wp-admin, a random state value, a PKCE code challenge (and its method), the source marker "wp-plugin", the administrator's admin language (locale) and the plugin version. On pfadfindr.com the administrator signs in or creates an account and approves the connection. pfadfindr.com then sends the browser back with a one-time code, which your WordPress server exchanges directly with pfadfindr.com for a connection key (plugin key). The key is stored in the WordPress database and is never shown in the browser.

**While connected:** Your WordPress server sends requests to https://pfadfindr.com/api/v1/plugin when an administrator uses the plugin page (loading account and quota, starting an audit, checking progress, loading results and history, opening the full report) and when they disconnect. Each request contains only the site's domain and the plugin key. As technical request headers, the administrator's admin language and the plugin and WordPress version numbers are also sent. Clicking "Open full report" or an upgrade link opens a page on pfadfindr.com in the administrator's browser.

**What is not sent:** No data about visitors of your website, no user accounts, no content from your database. The plugin adds nothing to the public side of your website. During an audit, the Pfadfindr crawler reads only publicly reachable pages of your site and respects your robots.txt.

**Stored in WordPress:** the plugin key; the email address, plan and quota of the connected Pfadfindr account (to show "Connected as …"); the ID of an audit that is running; score, verdict and date of the last audit (for the dashboard widget); and, for up to 30 days, the links to opened reports. Nothing of this is shown to users without the `manage_options` capability.

**Disconnecting and deleting:** "Disconnect" deletes the key in WordPress and revokes it at Pfadfindr. Deleting the plugin does the same and removes all plugin data from the database, on multisite for every site of the network. Your audits remain in your Pfadfindr account.

* Terms of service: https://pfadfindr.com/agb
* Privacy policy: https://pfadfindr.com/datenschutz

== Source code and development ==

The plugin ships its human-readable source code: the PHP in `includes/` and the JavaScript of the admin page in `src/`. The folder `build/` contains the same JavaScript, compiled with the official WordPress tools (`@wordpress/scripts`). The plugin also ships `package.json` and `package-lock.json` with the exact versions of the build tools. To rebuild `build/` from `src/` with Node.js 20, run `npm ci` and then `npm run build` in the plugin folder. The translation template is `languages/pfadfindr.pot`; translations are managed on translate.wordpress.org.

== Installation ==

1. In your WordPress admin, go to Plugins → Add New Plugin, search for "Pfadfindr", then install and activate the plugin. Alternatively, upload the plugin folder to `/wp-content/plugins/` and activate it on the Plugins screen.
2. Open "Pfadfindr" in the admin menu.
3. Click "Connect with Pfadfindr". Sign in to your Pfadfindr account or create a free one, and approve the connection. You are sent back to WordPress automatically.
4. Click "Start audit". The result appears on the same page when the audit is done; you can leave the page in the meantime.

Your website must be reachable from the public internet so that Pfadfindr can crawl it.

== Frequently Asked Questions ==

= Do I need a Pfadfindr account? =

Yes. The audits run on Pfadfindr, so the plugin needs a connected account. You can create a free account during the connection step.

= Does the plugin slow down my website? =

No. The plugin adds no code and no files to the public side of your website, and its scripts load only on the plugin's own admin page. The audit runs on Pfadfindr servers. During an audit, the crawler requests your public pages much like a search engine does. The dashboard widget only shows stored results and does not contact Pfadfindr.

= What data is sent to Pfadfindr? =

Only your site's domain and the plugin key, and only after you have connected your site. No visitor data is processed. See the section "External services" for details.

= Why does the audit of my local or staging site fail? =

Pfadfindr crawls your site from the internet. Sites on localhost, in a local network, behind a password or in maintenance mode cannot be reached. Run the audit on a publicly reachable site.

= How do I allow the Pfadfindr crawler in robots.txt? =

The Pfadfindr crawler respects your robots.txt. It does not currently identify itself with its own bot name, so it cannot be allowed by name. If your robots.txt disallows all crawlers, for example with `User-agent: *` followed by `Disallow: /`, the audit cannot run. Allow crawling of your public pages, then start the audit again. SEO plugins that edit robots.txt from the WordPress admin are a common place to look.

= Can I check other domains? =

No. The plugin checks only the domain of the WordPress site it is installed on. A different domain cannot be entered. To check other websites, for example as an agency, use your account on pfadfindr.com.

= Does the plugin make my website legally compliant? =

No. Pfadfindr shows findings and recommendations, including on accessibility, but it does not make your website legally compliant, for example under accessibility laws, and it does not replace a legal or expert review.

= Does the plugin fix the findings automatically? =

No. Each finding comes with a recommendation. You fix it in WordPress, your theme or your SEO plugin.

= Does it work with multisite? =

Yes, per site. Each site of a network connects and checks its own domain. Network-wide administration is not offered. When the plugin is deleted, the connection is revoked and the plugin data is removed on every site of the network.

= Why does connecting fail with a message about a different host? =

Pfadfindr connects to the domain of your website. Your WordPress Address and your Site Address (Settings → General) must be on the same host; a difference in "www." alone is fine. If your admin runs on another host, for example a separate admin domain, the plugin cannot connect.

= WordPress is installed in a subdirectory (example.com/blog). What is checked? =

The audit covers the whole domain (example.com), not just the subdirectory.

== Screenshots ==

1. Audit result: Health score with verdict, scores for SEO, AI visibility (GEO) and accessibility, and the five most important findings.
2. Audit in progress: after the SEO and GEO audit, Pfadfindr checks accessibility.
3. Connect your website to Pfadfindr with one click. You never enter a password in WordPress.
4. History of your audits with Health score and accessibility score.
5. Dashboard widget with the latest Health score and a link to the findings and the full report.
6. The plugin in German: the same result with findings and links to the full report.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
