=== Masflow Search Optimization Manager ===
Contributors: adrianofigueiredo
Tags: seo, meta description, seo automation, content optimization, alt text
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Connects your site to your Masflow account, which proposes SEO improvements and applies only the ones you approve.

== Description ==

This plugin is the connector between your WordPress site and your Masflow
account. On its own it does nothing: it exposes a set of signed REST
endpoints that only your own Masflow account can call, using a secret key
you generate here and paste there.

An active account at [masflow.com.br](https://masflow.com.br) is required
for any proposal to be generated or applied. Without a connected account
the plugin stays idle.

Nothing changes on your site without your approval. Every proposal shows
the current text, the new text, and the reason for the change.

= What the plugin does on your site =

* Reads titles, descriptions, content, and categories from your pages,
  posts and products
* Applies only a fixed, predefined set of change types, never arbitrary
  code
* Stores the previous value of every change, with one-click rollback
* Clears the site cache after applying a change (LiteSpeed Cache, WP
  Rocket, W3 Total Cache, WP Super Cache, WP Engine)
* Detects Rank Math, Yoast SEO, SEOPress and All in One SEO, and writes
  to each one's native meta format

= Security =

Every request is signed with HMAC-SHA256 over the method, the route, a
timestamp, a single-use nonce and a hash of the body, so an intercepted
call cannot be replayed. The secret key is shown only once and can be
regenerated at any time from the settings screen, which immediately
revokes the previous access.

== External services ==

This plugin connects your site to Masflow, a hosted service operated by
Masflow Agentes de IA LTDA (CNPJ 68.669.853/0001-54, Brazil). The plugin
is only useful with an account on that service.

**What the service is used for**

Masflow analyses the site's content and its Google Search Console
performance data, proposes SEO improvements, and — after you approve each
one in your Masflow account — sends those changes back to this plugin to
be applied.

**What data is exchanged and when**

The plugin does not send anything on its own and makes no outbound
requests. It only responds to signed requests coming from your Masflow
account, which happen when you run a diagnosis or approve a change. Those
requests can read: the WordPress and PHP versions, the site URL and
locale, the active SEO plugin, page builder, cache plugin and e-commerce
plugin, the number of published pages, posts and products, and — for the
pages being analysed — the title, content, SEO meta fields, taxonomy
terms, permalink and image alt text.

The service also reads Search Console data for the property you connect,
using Google authorisation that you grant separately in your Masflow
account and can revoke at any time.

**Service terms**

* Terms of Service: https://masflow.com.br/terms-of-service/
* Privacy Policy: https://masflow.com.br/privacy-policy/

The Masflow service is a paid product. Account terms are arranged
directly with Masflow.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install it from
   Plugins > Add New > Upload Plugin
2. Activate the plugin
3. Go to Settings > Masflow SEO
4. If you do not have an account yet, click "Create my Masflow account"
5. Copy the site key and the secret key shown there and paste them into
   your Masflow account, on the site connection screen

== Frequently Asked Questions ==

= Do I need to pay to install the plugin? =

The plugin itself is free and GPL licensed. It requires an account on the
Masflow service to do anything, and that service is paid.

= Does the plugin change my site on its own? =

No. Every change is proposed first and only applied after you approve it
in your Masflow account.

= What types of changes can the plugin apply? =

Meta title, meta description, canonical URL, per-page indexing control,
custom schema, page title, page content, Elementor content, image alt
text and taxonomy terms. The list is fixed in the code and nothing
outside it is executed.

= Does the plugin work with any SEO plugin? =

It detects Rank Math, Yoast SEO, SEOPress and All in One SEO and writes
to each one's own meta fields. Without one of these installed, the
meta-related actions are reported as unsupported and are never proposed.

= How do I disconnect the plugin? =

Go to Settings > Masflow SEO and click "Generate a new key". That revokes
access immediately, until you paste the new key into your Masflow
account. Deactivating the plugin also stops all access.

= What happens to my data if I uninstall the plugin? =

The backup table stays in the database so that changes can still be
traced. It is never sent anywhere without a signed request from your own
account.

== Screenshots ==

1. Settings screen, showing the site key and secret key used to connect

== Changelog ==

= 1.1.0 =
* Renamed the plugin and prefixed every function, class, constant, option, transient, cache key, REST namespace and database table
* Replaced an unprefixed global helper function that could collide with other plugins
* All admin strings are now translatable, with a Brazilian Portuguese translation included
* Added the external services disclosure to the readme
* Word counting is now UTF-8 aware, so accented words are no longer split
* Existing site keys and backup history are migrated automatically on activation

= 1.0.1 =
* Added object caching to the backup count in the health endpoint
* Reworded the short description for clarity

= 1.0.0 =
* Initial release

== Upgrade Notice ==

= 1.1.0 =
The REST namespace changed to masflow-seo/v1. Update the endpoint URL in your Masflow account after upgrading.
