=== 410 Response Manager === Contributors: rathly Donate link: https://rathly.com/wordpress-plugins/410-response-manager/ Tags: seo, url-management, http-status, redirect, gone Requires at least: 6.0 Tested up to: 7.0 Stable tag: 1.0.2 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Efficiently manage HTTP 410 (Gone) responses with manual entries, regex patterns, and CSV import functionality. == Description == 410 Response Manager provides a robust solution for managing HTTP 410 (Gone) responses in WordPress. Perfect for SEO and proper handling of permanently removed content. = Key Features = * Manual URL pattern entry with validation * Regular expression support for dynamic matching * Bulk CSV import/export functionality * Option to convert 404s to 410s automatically * Custom, SEO-friendly 410 error page * Secure data handling and validation = Use Cases = * Properly handle removed content for SEO * Manage discontinued products in eCommerce * Handle legacy URLs after site restructuring * Improve crawler efficiency * Maintain clean site structure = Pro Tips = 1. Use regex patterns for managing multiple similar URLs 2. Regularly export your patterns for backup 3. Monitor 404s to identify candidates for 410s 4. Use bulk import for large-scale URL management == Installation == 1. Upload the plugin files to the `/wp-content/plugins/410-response-manager` directory 2. Activate the plugin through the 'Plugins' screen in WordPress 3. Use the '410 Manager' menu item to configure the plugin 4. Optional: Configure the 404 to 410 conversion setting 5. Add URL patterns manually or via CSV import == Frequently Asked Questions == = What is a 410 Gone response? = A 410 Gone response indicates that the requested resource has been intentionally and permanently removed. Unlike a 404 Not Found, it explicitly tells search engines that the content will never return, helping with faster index cleanup. = Can I use regular expressions? = Yes! Enable the "Use as Regular Expression" option when adding URL patterns. This allows for flexible pattern matching like: * `^/old-products/.*` - Match all URLs starting with /old-products/ * `/discontinued-\d+` - Match URLs containing 'discontinued-' followed by numbers = How do I bulk import URLs? = 1. Prepare a CSV file with two columns: URL pattern and is_regex (0 or 1) 2. Use the CSV Upload tab in the admin interface 3. Select your file and click Upload 4. The plugin will validate and import valid patterns = Is it cache-friendly? = Yes, the plugin implements WordPress caching for optimal performance. URL patterns are cached and only refreshed when necessary. == Security == * All data is properly sanitized and validated * Nonce verification on all forms and AJAX requests * User capability checks for administrative actions * Safe CSV handling with proper file validation * Secure database operations with prepared statements == Changelog == = 1.0.2 = * Security: nonce verification now sanitizes the nonce value with sanitize_text_field( wp_unslash() ) in all cases; removed a redundant unsanitized nonce check in the form handler. * Consistency: unslash the AJAX delete ID before casting with absint(). * Fixed a license mismatch: LICENSE.txt now contains the GPLv2 text to match the GPLv2 declaration in the plugin header and readme. = 1.0.1 = * Confirmed compatibility with WordPress 7.0. * Reviewed and confirmed security practices: nonce verification, capability checks, prepared statements, output escaping, and validated CSV uploads. * Housekeeping: corrected the GitHub repository link in the readme. = 1.0.0 = * Initial release * Manual URL pattern management * Regular expression support * CSV import functionality * Custom 410 error page * Caching implementation * Security enhancements == Upgrade Notice == = 1.0.2 = Addresses code review feedback: stronger nonce sanitization and a corrected license file. Upgrade recommended. = 1.0.1 = Confirms compatibility with WordPress 7.0 and includes a security and guideline review. Upgrade recommended. = 1.0.0 = Initial release of 410 Response Manager == Privacy Policy == 410 Response Manager does not collect, store, or share any personal data. It only manages URL patterns and their corresponding HTTP response codes. = Technical Details = * The plugin stores URL patterns in a custom database table * No personal user data is collected or stored * All data is managed locally on your WordPress installation * CSV imports are processed securely and validated == Additional Information == * For support, visit: [Rathly Contact](https://rathly.com/contact-us/) * Documentation: [Plugin Documentation](https://rathly.com/wordpress-plugins/410-response-manager/) * GitHub repository: [GitHub](https://github.com/harrylaurel/410-Response-Manager) The plugin is actively maintained and tested with the latest versions of WordPress and PHP.