{"id":386919,"date":"2026-10-14T09:12:51","date_gmt":"2026-10-14T09:12:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/permalink-autopilot\/"},"modified":"2026-10-14T09:12:37","modified_gmt":"2026-10-14T09:12:37","slug":"permapilot","status":"publish","type":"plugin","link":"https:\/\/me.wordpress.org\/plugins\/permapilot\/","author":23585936,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Permapilot \u2013 Automatic Permalink Refresh","header_author":"Guy Argaman","header_description":"Refreshes permalinks automatically when post types, taxonomies or rewrite rules change, so you never have to re-save Settings \u2192 Permalinks.","assets_banners_color":"1d224d","last_updated":"2026-10-14 09:12:37","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"guyargaman","date":"2026-10-14 09:12:37","revision":3745814}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3745814,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3745814,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3745814,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3745814,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[905,1487,3851,939,12054],"plugin_category":[59],"plugin_contributors":[286699],"plugin_business_model":[],"class_list":["post-386919","plugin","type-plugin","status-publish","hentry","plugin_tags-905","plugin_tags-custom-post-types","plugin_tags-flush","plugin_tags-permalinks","plugin_tags-rewrite-rules","plugin_category-utilities-and-tools","plugin_contributors-guyargaman","plugin_committers-guyargaman"],"banners":{"banner":"https:\/\/ps.w.org\/permapilot\/assets\/banner-772x250.png?rev=3745814","banner_2x":"https:\/\/ps.w.org\/permapilot\/assets\/banner-1544x500.png?rev=3745814","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/permapilot\/assets\/icon-128x128.png?rev=3745814","icon_2x":"https:\/\/ps.w.org\/permapilot\/assets\/icon-256x256.png?rev=3745814","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>When a theme or plugin adds or changes a custom post type, a taxonomy, a rewrite rule or an endpoint, WordPress keeps serving its old, cached rewrite rules. The new URLs return 404 until someone goes to Settings \u2192 Permalinks and clicks Save.<\/p>\n\n<p>Permapilot does that for you. On every request it compares a lightweight fingerprint of the registered routes with the one the rules were built from. When they differ, it rebuilds the rules once. When nothing changed, it costs one option read and one hash.<\/p>\n\n<p>It catches:<\/p>\n\n<ul>\n<li>New custom post types and taxonomies.<\/li>\n<li>Changed post type or taxonomy slugs.<\/li>\n<li>Rules added with <code>add_rewrite_rule()<\/code>.<\/li>\n<li>Endpoints added with <code>add_rewrite_endpoint()<\/code>.<\/li>\n<\/ul>\n\n<p>There are no settings. Activate it and forget it.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20slow%20my%20site%20down%3F\"><h3>Does it slow my site down?<\/h3><\/dt>\n<dd><p>No. The check runs once per request and reads one cached option. Rules are only rebuilt when the routes actually change.<\/p><\/dd>\n<dt id=\"does%20it%20rewrite%20my%20.htaccess%20file%3F\"><h3>Does it rewrite my .htaccess file?<\/h3><\/dt>\n<dd><p>No. It does a soft flush, which rebuilds the rules stored in the database and leaves .htaccess alone.<\/p><\/dd>\n<dt id=\"what%20if%20another%20plugin%20registers%20routes%20only%20on%20some%20pages%3F\"><h3>What if another plugin registers routes only on some pages?<\/h3><\/dt>\n<dd><p>Some plugins register their routes only in wp-admin, so the routes keep changing between requests. Permapilot rebuilds the rules at most 5 times in 10 minutes, so this never turns into a rebuild on every request.<\/p><\/dd>\n<dt id=\"does%20it%20catch%20rules%20added%20with%20the%20rewrite_rules_array%20filter%3F\"><h3>Does it catch rules added with the rewrite_rules_array filter?<\/h3><\/dt>\n<dd><p>Not yet. Changes made only inside a filter callback are not part of the fingerprint. Save Settings \u2192 Permalinks once after changing such code.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Never re-save Settings \u2192 Permalinks again. Fixes 404s on new post types, taxonomies and custom routes automatically.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386919"}],"author":[{"embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/guyargaman"}],"wp:attachment":[{"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386919"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386919"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386919"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386919"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386919"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/me.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}