=== Presslyte AI Search Check ===
Contributors: presslyte
Tags: ai seo, content review, readability, seo
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 0.1.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Check headings, link text and long paragraphs. Optional AI writing help with your own OpenAI or OpenRouter connection. No automatic edits.

== Description ==

Presslyte AI Search Check is a free on page content checker for WordPress. Check heading structure, unclear link text, missing image alt attributes and long paragraphs while viewing a page you can edit.

Find the part that needs attention, open the normal WordPress editor, make your correction, then refresh and check again. Use it to review business pages, blog posts, client sites and WordPress project websites.

For optional AI writing help, connect your own OpenAI or OpenRouter account. Improve wording, shorten a paragraph or draft a heading, then review and copy useful text into the appropriate WordPress field yourself. Suggestions do not automatically edit or save your page. Provider access, charges and usage limits apply.

The page checks run locally in your browser using fixed rules and work without an AI account. They do not confirm indexing, predict AI citations or provide a complete SEO or accessibility audit.

= What it checks =

* HTML robots meta tags that contain a noindex directive.
* Missing or multiple H1 headings and skipped heading levels.
* Visible images missing an alt attribute and images that failed to load.
* Common vague link labels, such as "click here".
* Visible placeholder text and possible unrendered shortcodes.
* Paragraphs longer than 120 words.

= Private, read-only checks =

Checks run locally in your browser using fixed rules. These checks do not use an AI model or send your content to an AI provider. Optional AI writing assistance is separate and runs only after your explicit request. No account, API key or subscription is required for the page checks.

The checker does not change your content, crawl your entire site, create database tables, schedule background tasks, or collect telemetry.

= Scope and limits =

The plugin reviews the page you are viewing, one page at a time. It looks for the page's content area and falls back to the full page when it cannot identify one. Theme markup can affect what is included in a check.

Its findings are prompts for an editor to review. It does not assess factual accuracy, confirm search-engine indexing, inspect HTTP response headers, or guarantee search rankings or AI citations. A Ready result means the included checks did not flag an issue; it is not a complete SEO or accessibility audit.

Presslyte AI Search Check works independently. The separate Presslyte content editor is not required.

= Optional Presslyte resources =

The plugin's dashboard includes clearly labeled links to Presslyte documentation, support, and commercial plans. These open only when you select them. The plugin makes no automatic request to Presslyte, and the front-end results panel contains no sales link.

When two or more compatible Presslyte plugins are active, their on-page tools share one compact workspace with tabs for the available tools. Switching tools keeps your current draft and findings available. Each plugin also works on its own; no separate hub plugin is required. Older versions keep their independent interfaces until updated.

= Optional AI writing assistance =

Optional OpenRouter account connection: clicking "Connect with OpenRouter" opens OpenRouter's authorization page. OpenRouter receives this site's callback URL, a temporary security challenge and the plugin name. After you approve access, this WordPress server exchanges a one-time authorization code with https://openrouter.ai/api/v1/auth/keys for a key belonging to your account. No password is read by Presslyte, and no suggestion request is made during connection. The key is encrypted for your WordPress user on this site and remains disabled until you enable and save the connection. A new OpenRouter connection defaults to openrouter/free; an existing OpenRouter model is preserved for your review. Provider availability and usage limits apply.

You may instead use the direct provider links to create and paste an API key. OpenAI setup in this version uses an API key; being signed into ChatGPT does not populate this form. The optional account-connection flow requires HTTPS outside localhost. It uses short-lived, session-bound verification data. Disconnecting erases the local stored key; you can also revoke the provider key in your OpenRouter account. If you approve access but the return or local save fails, an unused key may remain in your OpenRouter account; review your provider keys before reconnecting.

The existing checks work without AI, accounts or API keys. AI drafts are a separate, optional feature. Each WordPress user may connect their own OpenAI or OpenRouter API key and text model in My AI connection. A chat subscription may not include API access. Presslyte supplies no credits, model or paid fallback. Provider availability, charges and data policies apply.

Saving API-key settings or running an ordinary check does not request AI inference. The optional OpenRouter account-authorization flow contacts OpenRouter only when you start and approve it. A draft request requires explicit consent beside the reviewed text. Only that text and the chosen writing instruction are sent by your WordPress server to the chosen provider. OpenRouter routes the request to its model provider. Review the input for private information. No image, full page, account email or website address is added to the AI request. Provider retention policies still apply; OpenAI store:false is not a zero-retention guarantee.

Suggestions are plain-text drafts. Review accuracy, then copy useful wording into the appropriate WordPress field yourself. The checker cannot apply, save, publish or automatically repair content. Save in WordPress, return to the page, refresh and run the relevant check again. This text-only assistant cannot see images or certify accessibility, indexing, search rankings or AI citations.

Keys are encrypted in site-scoped user metadata and never displayed. Disconnect removes your key; WordPress privacy erasure and plugin deletion also remove this plugin's stored API keys. Temporary authorization attempts expire after ten minutes. Drafts and request text are not saved by this plugin. Site AI policy is respected. Existing saved page content is unaffected by disconnect or deletion.

Services used only for requested drafts:
* OpenAI Responses API: https://api.openai.com/v1/responses — privacy https://openai.com/policies/privacy-policy/ — terms https://openai.com/policies/services-agreement/
* OpenRouter Chat Completions API: https://openrouter.ai/api/v1/chat/completions — privacy https://openrouter.ai/privacy — terms https://openrouter.ai/terms

== Installation ==

1. Upload and activate the plugin.
2. Open **AI Search Check** in the WordPress dashboard for the quick-start guide.
3. Visit a post or page while logged in as a user who can edit it.
4. Select **AI Search Check** from the front-end admin bar.

== Frequently Asked Questions ==

= Does this plugin use AI? =

The checks use fixed browser-based rules to flag common content and search-readiness issues. Optional user-connected AI drafts help with wording only. The checks do not predict whether an AI service will cite your page.

= Do I need the main Presslyte plugin? =

No. AI Search Check is a standalone plugin.

= Does this plugin change my content? =

No. The checker is read-only.

= Does it send my content to Presslyte or an AI provider? =

Ordinary checks run in your browser. Only an explicitly requested AI draft sends the reviewed text and writing instruction to your chosen provider; see Optional AI writing assistance below.

= Does it guarantee search rankings or AI citations? =

No. It provides a small set of practical review suggestions and makes no ranking or citation guarantee.

= Does the plugin contact an external service? =

The page checks make no automatic request to an AI service. OpenRouter account authorization contacts OpenRouter when you start and approve the connection. An AI draft request sends only the reviewed text and writing instruction to your chosen provider after consent. Optional dashboard links visit Presslyte only when selected. See Optional AI writing assistance for the endpoints, privacy policies and terms.

== Changelog ==
= 0.1.4 =
* Combine compatible on-page tools in a compact, padded workspace while preserving standalone use and separate AI connections.
* Added Presslyte-styled AI connection settings, direct provider setup links and optional OpenRouter account authorization. Connections stay disabled until explicitly enabled; page content is never changed by connection setup.
* Explain findings, manual corrections and rechecking more clearly.
* Add optional, user-connected OpenAI/OpenRouter text drafts for review and copying; no automatic page edits.
* Keep existing checks, permissions and uncertainty labels unchanged.


= 0.1.3 =

* Show every finding instead of silently limiting the results list.
* Remove empty passed-check sections and nonfunctional disabled result controls.
* Tighten the admin-bar trigger and results-panel relationship.
* Add a focused Presslyte-branded quick-start dashboard.
* Keep promotional links out of the checker panel and place optional Presslyte resources in the dashboard.

= 0.1.2 =

* Add the official Presslyte icon and clearer Ready, Review, and Needs attention labels.
* Improve accessible-link detection and page-content targeting.
* Improve mobile panel containment, control sizes, contrast, and new-tab disclosure.
* Preserve the free plugin's read-only, local, one-page-at-a-time scope.

= 0.1.1 =

* Narrow the page area used for content checks and disclose whole-page fallback behavior.
* Improve HTML noindex detection and clarify that HTTP response headers are not checked.
* Respect accessible link names and reduced-motion preferences.
* Make checker result messages translation-ready.

= 0.1.0 =

* Initial release.
