=== Ansico SEO ===
Contributors: andreasansico
Tags: seo, meta, sitemap, open graph, schema
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.1.0.3
License: GPL-3.0-or-later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Lightweight SEO plugin with meta titles, meta descriptions, Open Graph, Twitter/X cards, canonical URLs, XML sitemaps, and structured schema data.

== Description ==

Ansico SEO adds lightweight but powerful SEO fields to your WordPress site — without the bloat of larger plugins.

**Features:**

* Meta title and meta description fields on posts, pages, and custom post types
* Live Google search-result snippet preview while you type
* Character and pixel-width counter with colour-coded status
* Open Graph (og:) tags for Facebook and other social platforms
* Twitter/X card tags (summary and summary_large_image)
* Canonical URL control (per-post override)
* Social image override (per-post or global default)
* Robots meta tag per-page (noindex, nofollow, etc.)
* Twitter/X creator handle per-post
* SEO fields on taxonomy term pages (categories, tags, custom taxonomies)
* SEO fields on author profile pages (for author archives)
* Global SEO fields for special pages: homepage, date archives, search results, 404
* SEO fields for post-type archive pages
* JSON-LD schema.org markup (WebSite, Organization, WebPage/Article, ImageObject, SearchAction)
* XML sitemap with automatic index, per-type sub-sitemaps, and lastmod support
* Import tool: copy Yoast SEO values without overwriting existing data
* Bulk generation tool: fill missing meta titles and descriptions automatically
* Title separator choice (–, |, -, •, ·, /, »)
* Breadcrumb data hook (`ansico_seo_breadcrumbs`) for use in themes

== Changelog ==

= 1.1.0.3 =
* Fixed: automatic redirects for post type changes made from Quick Edit. The plugin now listens directly for WordPress' set_post_type action and re-reads the post after Quick Edit save hooks, because the save_post object can be stale when another plugin changes post type during the same request.

= 1.1.0.2 =
* Improved automatic redirects for post type changes made via Quick Edit or other save_post-based plugins by capturing the old URL before the update and comparing it after all save hooks have run.


= 1.1.0.1 =
* Added: automatic 301 redirects are now also created when a published post changes post type and the URL changes.
* Improved: automatic redirect notes now distinguish slug changes, post type changes, and combined URL changes.

= 1.1.0 =
* Fixed: plugin ZIP folder is now named "ansico-seo" (not versioned) so WordPress correctly recognises uploads as updates to the existing plugin rather than a new plugin

= 1.0.0.7 =
* Fixed: Sitewide redirect — Type, Status, and Note fields are now on the same line
* Added: META title and description fields now auto-suggest content while you write — the title follows the post title field in real time, and the description follows the post content (first paragraph), in both classic and block (Gutenberg) editors; a blue "auto" badge shows when a field is in auto mode, which disappears the moment you type your own value; clearing the field restores auto mode

= 1.0.0.6 =
* Fixed: blank page when creating/editing a redirect — redirect form actions are now processed on admin_init (before any output) instead of inside the page render function, which was too late for wp_safe_redirect()
* Added: SEO Statistics page (Ansico SEO → Statistics) with coverage badges and per-content-type breakdown showing what % of published posts have a META title, META description, and both; plus redirect and 404 counts and sitemap status

= 1.0.0.5 =
* Fixed: blank page after creating a redirect — POST action URL was missing the page parameter
* Fixed: From and To fields now appear on the same line as intended
* Added: Sitewide redirect gets its own dedicated tab with a clear status banner (active/inactive), quick disable button, hit counter, and a red dot indicator in the tab when active
* Sitewide redirect only affects frontend pages — /wp-admin, /wp-login.php, and wp-cron are always excluded so you can always log in and disable it
* Default type for sitewide redirect is 302 (temporary) as a safety measure — change to 301 only when permanent
* Removed: * wildcard from the regular redirects table (sitewide is now separate)

= 1.0.0.4 =
* Fixed: "Security check failed" error when adding or editing redirects (nonce was sent via URL instead of hidden POST field)
* Removed: redirect groups feature
* Added: sitewide redirect — use * as "From" to redirect all traffic to a new destination (useful when migrating an entire site)
* Sitewide redirect is processed before any other redirect and marked with a purple "entire site" badge in the table
* Improved: nonce handling — all POST forms now use hidden _ansico_nonce field; all GET links embed _wpnonce in the URL
* Improved: auto-migration drops the regex_group column from existing installs

= 1.0.0.3 =
* Redirect manager: support for 307 Temporary and 410 Gone status codes
* Redirect manager: regex support in "From" field with back-reference substitution in "To"
* Redirect manager: redirect groups — tag and filter redirects by named groups
* Redirect manager: sortable table columns (click any header)
* Redirect manager: bulk enable / bulk disable in addition to bulk delete
* Redirect manager: CSV export of all redirects
* Redirect manager: CSV import compatible with Ansico SEO and Redirection plugin exports
* Redirect manager: external domain redirects (absolute URLs in "To" field)
* Redirect manager: home-URL prefix shown inline in "From" field
* Redirect manager: import/export panel toggle with keyboard-accessible UI
* Redirect manager: bulk action bar only appears when rows are selected
* Redirect manager: auto-migration of older installs (adds use_regex, regex_group columns)
* Improved 404 log — keeps up to 100 unique paths (up from 50)
* General UI polish: tighter form layout, badge colours for all status codes

= 1.0.0.2 =
* Added Redirect Manager (301/302) with dedicated admin page under Ansico SEO → Redirects
* Automatic 301 redirect creation when a post/page slug is changed
* 404 detection and logging — view detected broken URLs and create redirects directly from the list
* Bulk delete redirects
* Per-redirect enable/disable toggle
* Hit counter and last-hit timestamp on each redirect
* Redirects stored in a custom database table for efficient lookup

= 1.0.0.1 =
* Renamed plugin from "Ansico WP Basic" to "Ansico SEO"
* Updated support URL
* Removed "Hide page title" feature
* Removed "Change post type" feature
* Added per-page robots meta tag control
* Added configurable title separator with visual picker
* Added `ansico_seo_breadcrumbs` filter hook for theme breadcrumbs
* Added SearchAction schema for site search
* Added og:image:alt tag
* Improved admin UI with toggle switches, tabbed settings, redesigned snippet preview
* Improved snippet preview: live separator, favicon, better URL rendering
* Code refactored and cleaned throughout

= 1.0.0 =
* Initial release as Ansico WP Basic
