{"id":229951,"date":"2025-05-28T17:11:27","date_gmt":"2025-05-28T17:11:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/surflink\/"},"modified":"2026-03-27T14:40:55","modified_gmt":"2026-03-27T14:40:55","slug":"surflink","status":"publish","type":"plugin","link":"https:\/\/tw.wordpress.org\/plugins\/surflink\/","author":23270088,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.5.4","stable_tag":"2.5.4","tested":"6.9.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"SurfLink - Link Manager & Backup Restore","header_author":"SurfLab","header_description":"A comprehensive WordPress plugin for URL management, database operations, and redirect handling.","assets_banners_color":"613769","last_updated":"2026-03-27 14:40:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/surflabtech.com","header_author_uri":"https:\/\/surflabtech.com","rating":5,"author_block_rating":0,"active_installs":20,"downloads":5050,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.3.6":{"tag":"2.3.6","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.3.7":{"tag":"2.3.7","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.3.8":{"tag":"2.3.8","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.3.9":{"tag":"2.3.9","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.4.1":{"tag":"2.4.1","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.4.3":{"tag":"2.4.3","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.4.4":{"tag":"2.4.4","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.4.5":{"tag":"2.4.5","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.4.6":{"tag":"2.4.6","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.4.7":{"tag":"2.4.7","author":"surflabtech","date":"2026-03-28 13:39:05"},"2.4.8":{"tag":"2.4.8","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.4.9":{"tag":"2.4.9","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.5.1":{"tag":"2.5.1","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.5.2":{"tag":"2.5.2","author":"surflabtech","date":"2026-03-27 14:40:55"},"2.5.4":{"tag":"2.5.4","author":"surflabtech","date":"2026-03-27 14:40:55"}},"upgrade_notice":{"":"<p>New Feature: Title Updater ! Now you can easily update post titles in pages, posts and custom post types. Dry run is also supported for safe testing. Also includes History Logs.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3424891,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3456424,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.3.6","2.3.7","2.3.8","2.3.9","2.4.1","2.4.3","2.4.4","2.4.5","2.4.6","2.4.7","2.4.8","2.4.9","2.5.1","2.5.2","2.5.4"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3458125,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3451292,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3451292,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3448576,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3451292,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3451292,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3451292,"resolution":"7","location":"assets","locale":""}},"screenshots":{"1":"<strong>Module Manager (LIGHT MODE):<\/strong> Easily toggle Search &amp; Replace, Redirects, Backup, and Security modules.","2":"<strong>Search &amp; Replace (DARK MODE):<\/strong> Interface showing search and replace process.","3":"<strong>Advanced Redirects (LIGHT MODE):<\/strong> Setting up regex rules in Advanced Redirects.","4":"<strong>Backup &amp; Restore (LIGHT MODE):<\/strong> Managing saved backups.","5":"<strong>Login Security (DARK MODE):<\/strong> Configuring custom login slug.","6":"<strong>Ban notice in the log in form<\/strong>","7":"<strong>Failed Login Attempts (LIGHT MODE):<\/strong>"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[151,175,726,11104,538],"plugin_category":[59],"plugin_contributors":[243009],"plugin_business_model":[],"class_list":["post-229951","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-links","plugin_tags-redirects","plugin_tags-shortlinks","plugin_tags-url","plugin_category-utilities-and-tools","plugin_contributors-surflabtech","plugin_committers-surflabtech"],"banners":{"banner":"https:\/\/ps.w.org\/surflink\/assets\/banner-772x250.jpg?rev=3456424","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/surflink\/assets\/icon-256x256.png?rev=3424891","icon_2x":"https:\/\/ps.w.org\/surflink\/assets\/icon-256x256.png?rev=3424891","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/surflink\/assets\/Screenshot-1.png?rev=3458125","caption":"<strong>Module Manager (LIGHT MODE):<\/strong> Easily toggle Search &amp; Replace, Redirects, Backup, and Security modules."},{"src":"https:\/\/ps.w.org\/surflink\/assets\/screenshot-2.png?rev=3451292","caption":"<strong>Search &amp; Replace (DARK MODE):<\/strong> Interface showing search and replace process."},{"src":"https:\/\/ps.w.org\/surflink\/assets\/screenshot-3.png?rev=3451292","caption":"<strong>Advanced Redirects (LIGHT MODE):<\/strong> Setting up regex rules in Advanced Redirects."},{"src":"https:\/\/ps.w.org\/surflink\/assets\/screenshot-4.png?rev=3448576","caption":"<strong>Backup &amp; Restore (LIGHT MODE):<\/strong> Managing saved backups."},{"src":"https:\/\/ps.w.org\/surflink\/assets\/screenshot-5.png?rev=3451292","caption":"<strong>Login Security (DARK MODE):<\/strong> Configuring custom login slug."},{"src":"https:\/\/ps.w.org\/surflink\/assets\/screenshot-6.png?rev=3451292","caption":"<strong>Ban notice in the log in form<\/strong>"},{"src":"https:\/\/ps.w.org\/surflink\/assets\/screenshot-7.png?rev=3451292","caption":"<strong>Failed Login Attempts (LIGHT MODE):<\/strong>"}],"raw_content":"<!--section=description-->\n<p><strong>SurfLink<\/strong> is designed to Search &amp; Replace, Easy Redirection, 404\/410 Manager, Link Shortener, Auto Linking, Backup &amp; Restore, Hide Login\u00a0Url\u00a0Security.<\/p>\n\n<h3>\ud83d\ude80 Module 1: Search and Replace<\/h3>\n\n<p>Safely perform bulk find-and-replace operations directly on the database.\n* <strong>Database Management:<\/strong> Supports all tables and handles <strong>serialized data<\/strong> (critical for preventing data corruption).\n* <strong>Safety First:<\/strong> Includes a \"Dry Run\" mode to test before applying, case-sensitivity toggles, and specific GUID handling.\n* <strong>Title Updater:<\/strong> Update post titles in pages, posts and custom post types.\n* <strong>History Logs:<\/strong> View detailed logs of changes with a \"View Changes\" diff modal (Before vs. After).\n* <strong>Easy URL Updater (Pro):<\/strong> A dedicated visual interface to update old domain names or migrate HTTP to HTTPS across contents, attachments, and links.\n* <strong>Rerun Operation (Upcoming):<\/strong> Re-run a Search &amp; Replace operation from the History Logs.<\/p>\n\n<h3>\ud83d\udd17 Module 2: Redirects, 410 &amp; 404s<\/h3>\n\n<p>A complete suite for managing traffic and broken links.\n* <strong>Redirect Manager:<\/strong> Create 301, 302, or 307 redirects.\n* <strong>Advanced Rules (Pro):<\/strong> Redirect based on Regex, \"Starts With\", \"Contains\", \"Is 404\", User Agent, or even redirect to Random Posts.\n* <strong>Redirect List:<\/strong> View redirects in a nice table. Create, edit, and delete redirects.\n* <strong>Dead Link Handling:<\/strong> Monitor 404 logs and easily convert them to Redirects or <strong>410 Gone<\/strong> status (to tell Google a page is permanently deleted).\n* <strong>Import\/Export:<\/strong> Support for CSV import\/export for bulk management.<\/p>\n\n<h3>\ud83d\udcbe Module 3: Backup and Restore<\/h3>\n\n<p>Secure your site data with a few clicks.\n* <strong>Flexible Backups:<\/strong> Backup the entire database, specific directories (Uploads, Themes, Plugins), or both.\n* <strong>Selective Restore:<\/strong> Restore an entire site or just specific components (e.g., restore only the database, keep the themes).\n* <strong>Scheduled Auto Backups (Pro):<\/strong> Set it and forget it. Schedule daily or weekly backups to ensure you never lose data.\n* <strong>Upload &amp; Restore (Mix):<\/strong> Restore backups from external files easily. Unlimited file size support in premium version. \n* <strong>Cross domain Restore:<\/strong> Restore backups from a different domain (e.g., staging, localhost, or a new production domain).\n* <strong>Remote Backups (Upcoming):<\/strong> Backup to a remote location (e.g., Google Drive) for long-term storage.<\/p>\n\n<h3>\ud83d\udd12 Module 4: LoginHider Security<\/h3>\n\n<p>Protect your site from brute-force attacks.\n* <strong>Hide Login URL:<\/strong> Change your default <code>wp-login.php<\/code> to a custom slug (e.g., <code>\/my-secret-entry<\/code>) and show a nice login form.\n* <strong>Options:<\/strong> Configure the custom login slug, max login attempts, and IP ban duration.\n* <strong>Limit Attempts:<\/strong> Log failed login attempts and automatically ban IPs after a set threshold.\n* <strong>Failed Login Logs:<\/strong> View detailed logs of failed login attempts.\n* <strong>IP Unbanning:<\/strong> Easily remove IP addresses from the ban list.<\/p>\n\n<h3>Module Manager<\/h3>\n\n<ul>\n<li><strong>Module Manager:<\/strong> Enable\/disable modules to keep your admin interface clean.<\/li>\n<li><strong>Background Processes:<\/strong> Also enable\/disable background processes to optimize performance as needed.<\/li>\n<\/ul>\n\n* <strong>Advanced Options (Upcoming):<\/strong> You can enable\/disable a specific sub-module in the Module Manager.\n\n<h3>\ud83d\udfe2 Free Features vs \ud83d\udd34 Pro Features<\/h3>\n\n<h4>Free Version Includes:<\/h4>\n\n<ul>\n<li><strong>Search &amp; Replace:<\/strong> Standard DB search\/replace, Dry Run, History Logs, \"View Changes\" diff.<\/li>\n<li><strong>Easy Title Updater:<\/strong> Update post titles with a single click in post, page and custom post types. Dry Run, History Logs, \"View Changes\" diff.<\/li>\n<li><strong>Redirects:<\/strong> Add specific (single\/bulk) redirects, 404 Logs, Specific 410 (Gone) status, Import\/Export.<\/li>\n<li><strong>Backup:<\/strong> Manual Backup creation, Saved Backup logs, Manual Restore, Selective Restore.<\/li>\n<li><strong>Security:<\/strong> Login Hider settings, Failed login logs, IP Unbanning.<\/li>\n<li><strong>General:<\/strong> Module Manager (enable\/disable features).<\/li>\n<\/ul>\n\n<h4>Pro Version Includes:<\/h4>\n\n<ul>\n<li><strong>Easy URL Updater:<\/strong> Visual interface for URL migration.<\/li>\n<li><strong>Advanced Redirect Rules:<\/strong> Regex, Wildcards, Parameter handling, Random post redirects.<\/li>\n<li><strong>Link Shortener:<\/strong> Create and track branded shortlinks.<\/li>\n<li><strong>Auto Linker (Pro):<\/strong> Let SurfLink handle your affiliate linking for you. Enter your keywords once, and watch every existing and future post monetize itself automatically.<\/li>\n<li><strong>Hard Linker (Pro):<\/strong> Automatically link posts, pages, categories, tags, and custom post types.<\/li>\n<li><strong>Hard Unlinker (Pro):<\/strong> Automatically unlink posts, pages, categories, tags, and custom post types.<\/li>\n<li><strong>Group Tagging:<\/strong> Create, edit, and delete groups of shortlinks.<\/li>\n<li><strong>Advanced 410:<\/strong> Add 410s automatically from deleted items (trash\/delete hooks).<\/li>\n<li><strong>Add Multisite 410:<\/strong> Add multiple 410s at once.<\/li>\n<li><strong>Scheduled Backups:<\/strong> Automated daily\/weekly backups to keep your data safe.<\/li>\n<li><strong>Upload large files &amp; Restore:<\/strong> Restore backups from external files with no size limitation.<\/li>\n<\/ul>\n\n\n\n<h3>SurfLink is compatible with these plugins<\/h3>\n\n<p>You can use these similar type plugins while keeping Surflink installed: PrettyLinks, BetterLinks, Redirection, Better Search Replace, UpdraftPlus, All-in-One WP Migration, Duplicator, BackWPup. \nSurflink will continue working alongside these. If you don\u2019t want a specific module, you can always disable that Surflink module from module manager.<\/p>\n\n<!--section=installation-->\n<p>Install SurfLink like you would install any other WordPress plugin.<\/p>\n\n<p>Dashboard Method:<\/p>\n\n<ol>\n<li>Login to your WordPress admin and go to Plugins -&gt; Add New<\/li>\n<li>Type \"SurfLink\" in the search bar and select this plugin<\/li>\n<li>Click \"Install\", and then \"Activate Plugin\"<\/li>\n<\/ol>\n\n<p>Upload Method:<\/p>\n\n<ol>\n<li><strong>Download:<\/strong> Download the plugin zip file.<\/li>\n<li><strong>Upload:<\/strong> Go to your WordPress Dashboard &gt; Plugins &gt; Add New &gt; Upload Plugin. Select the <code>surflink.zip<\/code> file.<\/li>\n<li><strong>Activate:<\/strong> Click \"Activate Plugin\".<\/li>\n<\/ol>\n\n<!--section=faq-->\n<p><strong>Can I damage my site with the Search and Replace module?<\/strong>\nYes! Database operations are powerful. Entering a wrong search or replace string could break your site. <strong>Always<\/strong> perform a Backup (using Module 3) before running a Search &amp; Replace operation. Use the \"Dry Run\" feature first to verify what will be changed.<\/p>\n\n<p><strong>Can I restore database on a different domain?<\/strong>\nYes, SurfLink supports restoring database on a different domain (WordPress Multisite Installation).<\/p>\n\n<p><strong>Can I restore the database backup on a different table prefix?<\/strong>\nYes, SurfLink automatically handles differences in database table prefixes.<\/p>\n\n<p><strong>Why do I see a 404 error or get redirected when trying to access default wp-login.php after a restore?<\/strong><\/p>\n\n<p>This issue can occur if the login session expires after restoration and the active login security plugins interfere with your access to <code>wp-login.php<\/code>. There are two possible causes:<\/p>\n\n\n<dl>\n<dt id=\"1.%20login%20security%20plugins%20%28wps%20hide%20login%2C%20loginizer%2C%20etc.%29\"><h3>1. Login Security Plugins (WPS Hide Login, Loginizer, etc.)<\/h3><\/dt>\n<dd><p><strong>The Issue:<\/strong> Third-party login security plugins may block access to <code>wp-login.php<\/code> or change the login URL. After a restore if login session expires, these settings may cause 404 errors or unwanted redirects if you try to access wp-login.php default login page.<\/p>\n\n<p><strong>Solutions to try:<\/strong><\/p>\n\n<p><strong>Option 1: Use your custom login URL (if known)<\/strong>\n- If you remember the custom login slug configured in the other plugin, access it directly\n- Example: <code>yourdomain.com\/your-custom-login-slug<\/code><\/p>\n\n<p><strong>Option 2: Deactivate via FTP\/File Manager<\/strong><\/p>\n\n<ol>\n<li><p><strong>Connect to your site<\/strong> using an FTP client (like FileZilla) or your hosting control panel's File Manager<\/p><\/li>\n<li><p><strong>Navigate to the plugins folder:<\/strong><\/p>\n\n<ul>\n<li>Go to: <code>wp-content\/plugins\/<\/code><\/li>\n<\/ul><\/li>\n<li><p><strong>Deactivate the conflicting plugin<\/strong> by renaming its folder:<\/p>\n\n<ul>\n<li>Find the plugin's folder (e.g., <code>wps-hide-login<\/code>, <code>loginizer<\/code>, etc.)<\/li>\n<li>Rename it by adding <code>-disabled<\/code> to the folder name<\/li>\n<li>Example: Rename <code>wps-hide-login<\/code> to <code>wps-hide-login-disabled<\/code><\/li>\n<li>This automatically deactivates the plugin<\/li>\n<\/ul><\/li>\n<li><p><strong>Log in normally:<\/strong><\/p>\n\n<ul>\n<li>Go to <code>yourdomain.com\/wp-login.php<\/code><\/li>\n<li>Log in with your credentials<\/li>\n<\/ul><\/li>\n<li><p><strong>Decide which plugin to use:<\/strong><\/p>\n\n<ul>\n<li>Go to <strong>Plugins<\/strong> \u2192 delete the disabled plugin (optional)<\/li>\n<li>Configure SurfLink's Login Security if you want to use SurfLink instead<\/li>\n<li><strong>Important:<\/strong> Don't enable multiple login security plugins simultaneously<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<\/dd>\n<dt id=\"2.%20surflink%27s%20loginhider%20feature%20is%20on\"><h3>2. SurfLink's LoginHider Feature is ON<\/h3><\/dt>\n<dd><p><strong>The Solution:<\/strong><\/p>\n\n<p><strong>Option 1: Use your custom login URL (if known)<\/strong>\n- If you remember the custom login slug configured in the plugin, access it directly with your current domain\n- Example: <code>yourdomain.com\/your-custom-login-slug<\/code><\/p>\n\n<p><strong>Option 2: Deactivate via FTP\/File Manager<\/strong> \n- If grace period is over and you don't remember your custom login slug,  then connect to your site using an FTP client or your hosting control panel's File Manager. \n- Navigate to the plugins folder, deactivate SurfLink plugin by renaming its folder.\n- Afterwards Log in via wp-login.php.\n- Finally, Don't forget to rename Surflink folder and activate it again in your dashboard.<\/p>\n\n\n\n<p><strong>How does the Login Hider work?<\/strong>\nIt provides a custom login url with a nice login form. It also logs failed login attempts and automatically bans IP addresses after a set threshold.<\/p>\n\n<p><strong>Does this work on WordPress Multisite Installation?<\/strong>\nNo. It is not fully compatible with WordPress Multisite. Use with caution on Multisite installations.<\/p>\n\n<p><strong>How to switch between light and dark mode?<\/strong>\nYou don't have to change anything it will adjust with your browser's preferred theme.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.4<\/h4>\n\n<ul>\n<li>Fix: Security issue fixed in 410 import.<\/li>\n<\/ul>\n\n<h4>2.5.3<\/h4>\n\n<ul>\n<li>Fix: Subtle bug fixed in LoginHider.<\/li>\n<\/ul>\n\n<h4>2.5.2<\/h4>\n\n<ul>\n<li>Fix: Empty source field bug in Redirect.<\/li>\n<\/ul>\n\n<h4>2.4.8<\/h4>\n\n<ul>\n<li>Fix: text-domain bugs fixed.<\/li>\n<li>Update: SurfLink backup directories are restructured.<\/li>\n<\/ul>\n\n<h4>2.4.7<\/h4>\n\n<ul>\n<li>Improved: Backup\/Restore UI Improved.<\/li>\n<li>Fix: Minor bugs fixed.<\/li>\n<\/ul>\n\n<h4>2.4.5<\/h4>\n\n<ul>\n<li>Improved: Progress bar UI Improved.<\/li>\n<\/ul>\n\n<h4>2.4.4<\/h4>\n\n<ul>\n<li>Fix: Bugs fixed in Module Manager and Select Backup Modal.<\/li>\n<li>Improved: Custom Login Form UI Improved.<\/li>\n<li>Security: Overall security is improved.<\/li>\n<\/ul>\n\n<h4>2.4.3<\/h4>\n\n<ul>\n<li>Improved: UI Improved, more professional and user-friendly.<\/li>\n<li>Security: Overall security is improved.<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li>Improved: Restore UX Improved (Retry Logic Added).<\/li>\n<li>Improved: Upload &amp; Restore UX Improved (Pending Restore Logic for uploaded files added).<\/li>\n<li>Improved: Cross Domain Restore is now more stable.<\/li>\n<li>Updated: Backup &amp; Restore FAQ is updated.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Fixed: UI bug fixed in 410.<\/li>\n<\/ul>\n\n<h4>2.3.9<\/h4>\n\n<ul>\n<li>Fixed: Critical bug fixed in loginhider.<\/li>\n<li>New Feature: SurfLink now support Cross Domain Restoration (Database Migration).<\/li>\n<\/ul>\n\n<h4>2.3.8<\/h4>\n\n<ul>\n<li>Fixed: Critical bug fixed in backup and restore modules.<\/li>\n<li>Improved: Loginhider strategy is improved.<\/li>\n<\/ul>\n\n<h4>2.3.6<\/h4>\n\n<ul>\n<li>Improved: Import operations are more optimized for better and safe performance. UX is also improved.<\/li>\n<\/ul>\n\n<h4>2.3.5<\/h4>\n\n<ul>\n<li>New Feature: Title Updater ! Now you can easily update post titles in pages, posts and custom post types. Dry run is also supported for safe testing.Also includes History Logs.<\/li>\n<\/ul>\n\n<h4>2.3.4<\/h4>\n\n<ul>\n<li>Improved: search and replace now support handling nested serialized data.<\/li>\n<\/ul>\n\n<h4>2.3.3<\/h4>\n\n<ul>\n<li>Fixed: Subtle bug in restore backup fixed.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Improved: UX is improved in Redirects module. And some minor fixes.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Performance: More optimized query in case of redirection is optimized for better and faster performance.<\/li>\n<\/ul>\n\n<h4>2.2.9<\/h4>\n\n<ul>\n<li>Fixed: Important bug fixed.<\/li>\n<\/ul>\n\n<h4>2.2.8<\/h4>\n\n<ul>\n<li>Fixed: Critical bug fixed.<\/li>\n<\/ul>\n\n<h4>2.2.7<\/h4>\n\n<ul>\n<li>Fixed: Critical bug fixed.<\/li>\n<\/ul>\n\n<h4>2.2.7<\/h4>\n\n<ul>\n<li>Improved: Backup &amp; Restore Module UX is improved.<\/li>\n<li>Fixed: Important bug fixed.<\/li>\n<\/ul>\n\n<h4>2.2.6<\/h4>\n\n<ul>\n<li>Improved: Search &amp; Replace Module UX is improved.<\/li>\n<li>Improved: User accessibility is improved.<\/li>\n<li>Updated: Dark mode theme is updated.<\/li>\n<\/ul>\n\n<h4>2.2.5<\/h4>\n\n<ul>\n<li>Improved: Search &amp; Replace now fully supports UTF-8, Emojis, and all international languages.<\/li>\n<li>Fixed: Case-insensitive matching for accented characters.<\/li>\n<\/ul>\n\n<h3>2.2.4<\/h3>\n\n<ul>\n<li><strong>Fix:<\/strong> Side nav bar bug fixed.<\/li>\n<li><strong>Update:<\/strong> Minor CSS fixed.<\/li>\n<\/ul>\n\n<h3>2.2.3<\/h3>\n\n<ul>\n<li><strong>Update:<\/strong> Light mode theme is updated.<\/li>\n<li><strong>Fix:<\/strong> Important bugs fixed.<\/li>\n<\/ul>\n\n<h3>2.2.2<\/h3>\n\n<ul>\n<li><strong>Update:<\/strong> minor update.<\/li>\n<\/ul>\n\n<h3>2.2.1<\/h3>\n\n<ul>\n<li><strong>Fix:<\/strong> Upload and restore limit exceed bug fixed.<\/li>\n<li><strong>Fix:<\/strong> Loginhider's custom login page is restricted from editing and indexing.<\/li>\n<li><strong>Fix:<\/strong> A subtle bug in create custom login page fixed.<\/li>\n<\/ul>\n\n<h3>2.2.0<\/h3>\n\n<ul>\n<li><strong>Fix:<\/strong> Minor CSS fixed.<\/li>\n<li><strong>Update:<\/strong> Premium version of SurfLink is released.<\/li>\n<\/ul>\n\n<h3>2.1.1<\/h3>\n\n<ul>\n<li><strong>Fix:<\/strong> Possible naming conflicts with other plugins and the SurfLink Premium is fixed.<\/li>\n<li><strong>Update:<\/strong> SurfLab User Dashboard link is updated.<\/li>\n<\/ul>\n\n<h3>2.1.0<\/h3>\n\n<ul>\n<li><strong>Fix:<\/strong> Accidentally deleting other version's data of SurfLink while uninstalling is fixed.<\/li>\n<li><strong>Update:<\/strong> New Settings: User can decide whether to delete redirects and 410 data during uninstall or not. As they are user created data.<\/li>\n<\/ul>\n\n<h3>2.0.2<\/h3>\n\n<ul>\n<li><strong>Update:<\/strong> Target url is now validated less strictly to be more user-friendly.<\/li>\n<\/ul>\n\n<h3>2.0.1<\/h3>\n\n<ul>\n<li><strong>Update:<\/strong> used date() instead of gmdate() to avoid timezone issues.<\/li>\n<\/ul>\n\n<h3>2.0.0<\/h3>\n\n<ul>\n<li><strong>New Feature:<\/strong> Added Module Manager to enable\/disable specific sections.<\/li>\n<li><strong>Module 1 (Enhanced):<\/strong> Added Easy URL Updater (Pro) and improved Search\/Replace History Logs with visual diffs.<\/li>\n<li><strong>Module 2 (New):<\/strong> Added comprehensive Redirect Manager (301\/302\/307).<\/li>\n<li><strong>Module 2 (New):<\/strong> Added Shortlinks manager (Pro).<\/li>\n<li><strong>Module 2 (New):<\/strong> Added 410 Gone status manager and 404 Error logging.<\/li>\n<li><strong>Module 3 (New):<\/strong> Added full Backup and Restore system (Database + Files).<\/li>\n<li><strong>Module 3 (New):<\/strong> Added Scheduled Auto Backups (Pro).<\/li>\n<li><strong>Module 4 (New):<\/strong> Added LoginHider (Brute-force protection and custom login URL).<\/li>\n<li><strong>Update:<\/strong> Tested compatibility up to WordPress 6.9.<\/li>\n<\/ul>\n\n<h3>1.0.0<\/h3>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Basic Search and Replace functionality.<\/li>\n<li>Serialized data support.<\/li>\n<\/ul>","raw_excerpt":"Search &amp; Replace, 301\/302\/307 Redirection, 404\/410 Manager, Link Shortener, Auto Linking, Backup &amp; Restore, Hide Login\u00a0Url\u00a0Security.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/229951","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=229951"}],"author":[{"embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/surflabtech"}],"wp:attachment":[{"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=229951"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=229951"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=229951"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=229951"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=229951"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=229951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}