=== SEOForge ===
Contributors: avakode
Donate link: https://avakode.com
Tags: seo, schema, sitemap, meta-tags, serp-preview
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.37
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

SEO score, meta, schema and sitemap for WordPress: meta box, SERP preview, robots.txt, redirects, image SEO. A Yoast-compatible SEO plugin.

== Description ==

**SEO Forge** is a modern SEO plugin built around a single insight: an SEO score is only useful if it tells you exactly what to do next. The post-edit metabox gives you a 0-100 SEO score, a SERP preview, focus-keyword analysis, and an editable meta title / description / schema — all from one screen, with no account or API key required.

Everything in the Free plugin runs locally on your site: schema markup, XML sitemap, robots.txt, the redirect + 404 manager, image SEO (auto alt text), local business schema, and video schema. The optional **Pro add-on** layers AI on top — one-click AI meta generation, content optimization, and schema detection — plus Google Search Console, Site Audit, A/B testing and auto internal links.

= Free =
* On-page SEO score (0-100) per post
* SERP preview (Google desktop + mobile)
* Focus keyword analysis
* XML sitemap (hreflang-aware if Lang Forge is active)
* robots.txt editor
* Basic schema markup (Article, BlogPosting)
* Noindex / nofollow per post
* Coexists with Yoast / Rank Math / AIOSEO / SEOPress during migration

= Pro =
* AI meta generation (title, description, focus keyword)
* AI content expansion / simplification / external-link suggestions
* Redirect manager (301, 302, 410) with 404 log
* Google Search Console integration (rankings, indexing requests)
* Site audit (technical SEO crawler)
* A/B testing for titles + descriptions
* Local Business schema generator
* Broken-link scanner (SSRF-pinned for safety)
* Advanced schema (Product, Event, FAQ, HowTo)

Part of the **Forge Suite** — bundle includes Lang Forge, Form Forge, Field Forge.

== Third-Party Services ==

SEO Forge connects to the following third-party services. No data is sent until you actively use the relevant feature.

* **Avakode API** (https://avakode.com) — powers the AI features (AI meta generation, schema detection, content tools) and validates your license. When you trigger an AI action or activate a license, your site URL, license key, and the relevant post content are sent. Terms: https://avakode.com/terms — Privacy: https://avakode.com/privacy
* **Google Search Console / Analytics / Indexing** — contacted only after you click "Connect Google" and use the Rankings, Analytics & Traffic, or Indexing pages. Requests are proxied through the Avakode API using your authorised Google account (read-only for Search Console and Analytics; a URL is submitted only when you click "Submit to Google Index"). Google Terms: https://policies.google.com/terms — Privacy: https://policies.google.com/privacy
* **Anonymous usage analytics (opt-in, OFF by default)** — Only if you explicitly opt in from the SEO Forge settings, the plugin sends anonymous product-usage telemetry to the Avakode API (https://avakode.com/telemetry): a random install ID (UUID, not tied to your site URL or any account), your bucketed WordPress and PHP version ranges, the plugin version, and aggregate feature-usage event counters. It is sent ONLY after you opt in and can be disabled at any time. It never sends your site URL, email address, post or form content, or license key. Privacy: https://avakode.com/privacy

== Installation ==

1. Upload `seoforge` to `/wp-content/plugins/`, or install via Plugins → Add New.
2. Activate the plugin.
3. Open any post / page — the SEO Forge metabox appears below the editor.
4. (Optional) Connect to Avakode for Pro features at **SEO Forge → Connect**.

== Frequently Asked Questions ==

= Will SEO Forge conflict with Yoast or Rank Math? =

No. SEO Forge detects the active SEO plugin and suppresses its own meta output until you fully migrate. Use **SEO Forge → Migration** when ready.

= Does the SEO score use AI? =

The score itself is deterministic (keyword density, readability, internal links, image alt, etc.). AI is only used for generation actions (meta, schema, content expansion) when you click "Generate with AI".

= How are redirects stored? =

In a custom table (`wp_seoforge_redirects`) — not in `wp_options` like some plugins. This avoids the autoload-bloat that hurts your TTFB.

== Screenshots ==

1. SEO metabox on post edit (score, SERP preview, focus keyword)
2. Today's focus dashboard
3. Redirects manager (Pro)
4. Site audit report (Pro)
5. Schema markup generator

== Changelog ==

= 1.0.37 =
* Security hardening: all dynamic output is now escaped late at the output site with the context-appropriate function (esc_html/esc_attr/esc_url, esc_html__ for translated strings used as format strings, and wp_kses for trusted pre-built admin/field markup). No behavioural changes.

= 1.0.35 =
* Security: hardened JSON-LD structured-data output (schema, breadcrumbs, local business, video) against script-context breakout by escaping `<`, `>` and `&` (JSON_HEX_TAG / JSON_HEX_AMP).
* Fix: Organization structured data no longer emits an empty "description" property when the site tagline is unset.

= 1.0.32 =
* New: Support menu item that opens the Avakode support dashboard.
* New: Opt-in anonymous usage analytics (OFF by default) — see Third-Party Services.
* New: Contextual, dismissible Pro feature tips on the plugin dashboard (Free users only).


= 1.0.29 =
* Numbers / power words in the SEO title are now shown as optional "Optimization ideas" instead of issues — they affect click-through, not Google rankings.
* Clearer one-time setup guidance for the Google Indexing API ("Submit to Google Index").
* WordPress.org compliance and code-quality improvements.

= 1.0.28 =
* Fixed: the XML sitemap no longer 301-redirects to a trailing slash, so Google Search Console can fetch the sitemap index.
* Kept SEO Forge admin submenus accessible when multiple Forge plugins are active.

= 1.0.27 =
* Fix: SEO Forge admin sub-pages (Settings, Analytics, Content and Tools) now stay accessible when other Forge plugins are active alongside SEO Forge Pro.

= 1.0.26 =
* Security: the Google Account connection (Search Console / Analytics) now starts via a one-time token, so the license key is never placed in a URL.

= 1.0.25 =
* WordPress.org compliance and licensing hardening.
* Pro entitlement is now resolved by the SEO Forge Pro add-on; the free plugin bundles no licensing SDK.
* Removed a deprecated Google sitemap-ping request fired on publish.
* readme metadata cleanup.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.32 =
Adds a Support menu, optional anonymous analytics (off by default), and dashboard Pro tips.


= 1.0.29 =
Optional title "ideas" no longer counted as issues, clearer Google Indexing setup, and WordPress.org compliance fixes.

= 1.0.25 =
Licensing and WordPress.org compliance improvements.

= 1.0.0 =
Initial release.
