=== Nolimit SEO ===
Contributors: kristianwind
Tags: seo, ai, meta description, indexnow, schema
Requires at least: 5.9
Tested up to: 7.1.2
Requires PHP: 7.4
Stable tag: 0.2.2
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

AI-assisted SEO: it drafts the titles and descriptions nobody got round to, tells the search engines when a page changes, and reports what Google actually says.

== Description ==

Nolimit SEO does the small number of things that decide how a WordPress site
appears in a search result, lets a model do the writing you never got round to,
and then gets out of the way.

* **Titles and descriptions** from templates, overridable on any single page.
* **AI drafts** for the pages that have neither — proposed next to the field,
  never typed into it, and reversible after they are applied.
* **Canonical addresses**, including the ones WordPress does not write itself.
* **Robots rules** — every one of them off until you switch it on.
* **Open Graph and Twitter cards**, so a pasted link shows a picture.
* **Structured data** as one JSON-LD graph, with WooCommerce products.
* **The sitemap WordPress already serves**, minus the pages you noindexed.
* **IndexNow, Bing and Google** told when a page changes, from one queue that
  never runs during the request that saved the page.
* **What Google actually says** about each page, read back from Search Console
  rather than guessed at.
* **An audit** that names what is wrong, with a stable code for each finding —
  and changes nothing on its own.

= Where the AI comes from =

Two doors, and you pick one. Either **Nolimit Assistant** makes the call, so a
site running several of these plugins has one key, one budget and one log; or
you paste a key for **your own provider** — OpenAI, Anthropic, DeepSeek,
Mistral, Groq, OpenRouter, Together, or a model running on your own server
through Ollama or LM Studio.

They do not fall back to one another. If you choose Assistant and later
deactivate it, this plugin stops asking rather than quietly resuming with an
old key.

= What is sent, and where =

There is **no telemetry**: nothing about this site, its traffic or its owner is
ever sent to us or to anybody else, there is no account to create, and there is
nothing to opt out of. The plugin's own network request is to its release feed,
to see whether there is a newer version, and it carries nothing about the site.

Three other things can leave the server, all of them **off until you switch
them on**, and each to a party you chose:

* **AI drafting** sends the page being described — its heading, its address and
  up to 2400 characters of its text — to the model provider you configured.
  Secrets are stripped before the request is built, not after. With AI off, no
  model is contacted at all and the buttons are not shown.
* **Search-engine submissions** send changed addresses to IndexNow, Bing or
  Google, depending on which you enabled. Those are your own public addresses,
  going to the engines you want to index them.
* **Reading back from Google** asks Search Console about your pages, using a
  service account key you generated and can revoke.

A site with all three left off makes exactly one request, to the update feed,
and the plugin works without any of them.

It does not replace the WordPress sitemap with one of its own. Core has served
one since 5.5 and it works; this plugin takes out the pages that should not be
in it, which is the one thing core cannot know.

It will not switch on a `noindex` for you. Taking pages out of a search index
is slow to happen and slow to undo, so the audit recommends and you decide.

== Frequently Asked Questions ==

= Can I run it alongside another SEO plugin? =

You can, and you should not. Two plugins writing a title tag, a canonical and a
robots directive will disagree, and the most restrictive directive is the one
search engines obey — so the symptom is usually a page that is quietly
noindexed by the plugin you thought you had switched off.

= Where is the sitemap? =

At /wp-sitemap.xml, which is where WordPress puts it.

== Changelog ==

= 0.2.2 =
* Nolimit SEO now tells WooCommerce that it works with High-Performance Order
  Storage and the Cart and Checkout blocks, so it no longer appears under
  "Incompatible with WooCommerce features" on the Plugins screen. Nothing else
  changes.

= 0.2.1 =
* **Fixed: saving a product did nothing and went to the Posts list.** The SEO box in the editor drew its AI buttons as forms, and a metabox renders inside WordPress's own form — so the stray closing tag ended the submission early and everything below the box was dropped. It only happened once AI was configured, which is why it got out. The same shape was in the category screen and is fixed there too. If you hit this, nothing was lost: the save never ran.
* Credential fields are no longer password inputs. A password field is what makes a browser extension read a whole settings screen as a login form, and one had written a username into the "Language to write in" setting — which is sent to the model verbatim, so every draft was being asked for a language that does not exist. The fields look the same; the masking moved into the stylesheet.
* Every settings field now refuses a password manager, not only the credential ones. The manager fills the field next to the password, which was the half that was missed.
* The review screen says when the next scheduled pass will run, or why there is not one. Before this it showed nothing until the first pass had happened — which looks identical to a pass that will never happen, and one that never happens is exactly what an unreachable AI causes.

= 0.2.0 =
* Category archives can now have their own search-result title and description. They always rendered one if it existed; there was no way to write it, so every category on every site fell back to whatever the theme produced.
* The AI can draft for a category. It is shown the category name and what is in it, and is told not to put a count in the text — a number in a description is wrong the first time something sells out.
* The audit reports three things about categories: how many have no description, how many are empty and still offered to search engines, and how many pairs hold almost the same items. The last one cannot be seen by looking, because each category looks reasonable on its own.
* The batch button and the scheduled pass take pages and categories in turn rather than pages first. A shop with four hundred products would otherwise never reach its categories.
* Credential fields now opt out of password managers explicitly. 1Password was filling the Bing and Google fields by itself, which put a password where a key belongs; `autocomplete="off"` does not prevent this and the code used to claim it did.
* The admin stylesheet now loads on the post editor and the category screen. The search-result preview in the editor has been rendering unstyled.

= 0.1.1 =
* Fixed a palette that measured perfectly against a surface wp-admin never paints. The overview read as pale grey on pale grey on a Mac in dark mode, because the stylesheet followed the operating system while wp-admin followed the admin colour scheme.

= 0.1.0 =
* First release.
