{"id":232195,"date":"2025-05-08T08:51:56","date_gmt":"2025-05-08T08:51:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/permalink-keeper\/"},"modified":"2026-05-19T13:26:40","modified_gmt":"2026-05-19T13:26:40","slug":"permalink-keeper","status":"publish","type":"plugin","link":"https:\/\/lv.wordpress.org\/plugins\/permalink-keeper\/","author":23279987,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"6.9.4","requires":"5.7","requires_php":"7.4","requires_plugins":null,"header_name":"Permalink Keeper","header_author":"Nordic Hosting","header_description":"Automatically fixes broken WordPress permalinks by refreshing them at regular intervals. Prevents 404 errors and maintains SEO integrity by ensuring your permalinks remain functional. Perfect for sites experiencing permalink issues, large sites with many posts, or sites that have migrated content.","assets_banners_color":"7f98c3","last_updated":"2026-05-19 13:26:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/nordic.hosting","rating":0,"author_block_rating":0,"active_installs":10,"downloads":581,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"nordichosting","date":"2025-05-08 10:20:26"},"1.1.0":{"tag":"1.1.0","author":"nordichosting","date":"2026-03-09 21:46:07"},"1.2.0":{"tag":"1.2.0","author":"nordichosting","date":"2026-05-19 13:26:40"}},"upgrade_notice":{"1.2.0":"<p>Core logic changed to flush rewrite rules instead of regenerating slugs. Simpler, safer, and more efficient. Batch processing and post type settings removed.<\/p>","1.1.0":"<p>Bug fixes, batch processing for large sites, custom post type support, and status dashboard.<\/p>","1.0.0":"<p>First release of Permalink Keeper.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3478562,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3478562,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3478562,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[905,14279,732,939,186],"plugin_category":[52,55,59],"plugin_contributors":[241980],"plugin_business_model":[],"class_list":["post-232195","plugin","type-plugin","status-publish","hentry","plugin_tags-905","plugin_tags-broken-links","plugin_tags-maintenance","plugin_tags-permalinks","plugin_tags-seo","plugin_category-performance","plugin_category-seo-and-marketing","plugin_category-utilities-and-tools","plugin_contributors-nordichosting","plugin_committers-nordichosting"],"banners":{"banner":"https:\/\/ps.w.org\/permalink-keeper\/assets\/banner-772x250.png?rev=3478562","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/permalink-keeper\/assets\/icon-128x128.png?rev=3478562","icon_2x":"https:\/\/ps.w.org\/permalink-keeper\/assets\/icon-256x256.png?rev=3478562","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Permalink Keeper is a WordPress plugin that automatically flushes your rewrite rules at regular intervals. This prevents 404 errors and maintains SEO integrity by ensuring your permalink structure stays up to date.<\/p>\n\n<h4>Why do you need this plugin?<\/h4>\n\n<ul>\n<li>Sites that frequently experience permalink issues after content updates<\/li>\n<li>Sites that have migrated content or changed permalink settings<\/li>\n<li>Sites with complex permalink structures that need regular rule refreshes<\/li>\n<li>Sites that need consistent URL structure for SEO<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Automatically flushes rewrite rules (soft flush \u2014 no .htaccess rewrite)<\/li>\n<li>Prevents 404 errors caused by stale rewrite rules<\/li>\n<li>Configurable flush interval<\/li>\n<li>Debug logging via WP_DEBUG_LOG<\/li>\n<li>Status dashboard showing last run time<\/li>\n<li>Multilingual support (English, Norwegian, Dutch, German, French, Italian, Spanish)<\/li>\n<li>Minimal resource usage<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>permalink-keeper<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Settings -&gt; Permalink Keeper to configure the flush interval<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20often%20should%20i%20flush%20the%20rewrite%20rules%3F\"><h3>How often should I flush the rewrite rules?<\/h3><\/dt>\n<dd><p>For most sites, once per hour or once daily is sufficient. If you frequently publish new content or experience sporadic 404 errors, a shorter interval like every 15 or 30 minutes may help.<\/p><\/dd>\n<dt id=\"will%20this%20affect%20my%20site%27s%20performance%3F\"><h3>Will this affect my site's performance?<\/h3><\/dt>\n<dd><p>No. The plugin uses a soft flush (<code>flush_rewrite_rules(false)<\/code>) which only updates the rewrite rules in the database without touching <code>.htaccess<\/code>. It runs in the background via WP-Cron.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20multilingualism%3F\"><h3>Does the plugin support multilingualism?<\/h3><\/dt>\n<dd><p>Yes, the plugin currently supports:\n* English (en_US)\n* Norwegian Bokm\u00e5l (nb_NO)\n* Dutch (nl_NL)\n* German (de_DE)\n* French (fr_FR)\n* Italian (it_IT)\n* Spanish (es_ES)<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Changed core logic to use <code>flush_rewrite_rules()<\/code> \u2014 safer and more correct approach<\/li>\n<li>Added <code>register_activation_hook<\/code> to set defaults and schedule cron on activation<\/li>\n<li>Removed batch processing, post type selection, and batch size settings<\/li>\n<li>Removed unnecessary DB query on every request (<code>init_settings<\/code> via <code>init<\/code> hook)<\/li>\n<li>Updated <code>Requires at least<\/code> to 5.7<\/li>\n<li>Tested up to WordPress 6.9.4<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fixed deactivation hook not clearing the scheduled cron event<\/li>\n<li>Removed unused init() method<\/li>\n<li>Added debug logging via WP_DEBUG_LOG<\/li>\n<li>Added status dashboard on settings page<\/li>\n<li>Added support for all public post types with selectable checkboxes<\/li>\n<li>Added configurable batch size (10-500) for large sites<\/li>\n<li>Applied WordPress PHP Coding Standards<\/li>\n<li>Updated all translation files with new strings<\/li>\n<li>Tested up to WordPress 6.9.1<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Automatic permalink updates<\/li>\n<li>Configurable update interval<\/li>\n<li>Multilingual support<\/li>\n<\/ul>","raw_excerpt":"Automatically flushes WordPress rewrite rules at regular intervals. Prevents 404 errors and maintains SEO integrity by keeping your permalink structur &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/232195","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=232195"}],"author":[{"embeddable":true,"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nordichosting"}],"wp:attachment":[{"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=232195"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=232195"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=232195"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=232195"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=232195"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=232195"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}