=== Roial Redirect CSV Importer ===
Contributors: roial
Tags: redirect, 301, import, csv, seo
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Import, manage and execute 301 redirects via CSV upload or manual entry — simple, fast and SEO-friendly.

== Description ==

Roial Redirect CSV Importer lets you manage HTTP 301 (and 302) redirects directly inside WordPress — no need to edit .htaccess or configure server rules.

**Key features:**

* Import redirects in bulk from a CSV file (source, target, status).
* Download a ready-to-fill CSV template from the admin panel.
* Add single redirects manually via a simple form.
* Edit or delete any redirect from the list.
* Enable or disable individual redirects without deleting them.
* Export all redirects back to CSV at any time.
* Lightweight — redirects are matched with a single indexed database lookup.
* No bloat, no tracking, no external requests.

**CSV format:**

`source,target,status`
`/old-page,/new-page,301`
`/another-old,https://example.com/new,301`

The `status` column is optional; it defaults to `301`.

== Installation ==

1. Upload the `roial-redirect-csv-importer` folder to the `/wp-content/plugins/` directory, or install the plugin via the WordPress plugin screen.
2. Activate the plugin through the **Plugins** screen in WordPress.
3. Go to **Roial Redirects** in the admin sidebar.
4. Upload a CSV or add redirects manually.

== Frequently Asked Questions ==

= Does this plugin modify .htaccess? =

No. Redirects are handled entirely in PHP via WordPress's `template_redirect` hook.

= What happens if I import a CSV with duplicate sources? =

Duplicates are skipped and reported in the import summary. The existing record is kept unchanged.

= Can I import a URL from another domain as the source? =

No. The source must be a path on the current WordPress site (starting with `/`).

= Is the plugin multisite compatible? =

Each site in a Multisite network gets its own redirects table, so the plugin is compatible, though it has not been specifically tested on Multisite.

= What is the difference between deleting and disabling a redirect? =

Disabling (`Active: No`) keeps the record in the database but stops it from firing. Deleting removes it permanently.

== Screenshots ==

1. Main admin panel — import, add manually, and manage redirects list.

== Changelog ==

= 1.0.1 =
* Bumped "Tested up to" for current WordPress compatibility.
* Stable release metadata aligned for wordpress.org distribution.

= 1.0.0 =
* Initial release.
* CSV import with validation and error report.
* Manual redirect creation and editing.
* Per-redirect enable/disable toggle.
* CSV export and template download.

== Upgrade Notice ==

= 1.0.1 =
Maintenance: compatibility declaration and distribution metadata.

= 1.0.0 =
Initial release.
