{"id":365419,"date":"2026-09-10T04:35:47","date_gmt":"2026-09-10T04:35:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/go-live-kit-launch-checklist-client-handoff\/"},"modified":"2026-09-10T04:55:48","modified_gmt":"2026-09-10T04:55:48","slug":"launchmender","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/launchmender\/","author":17599152,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Launchmender \u2013 Go-Live Checklist & Client Handoff","header_author":"Emtiaz Zahid","header_description":"Website launch checklist with 44 automated checks and one-click fixes, a manual checklist, client help docs and a printable handoff report.","assets_banners_color":"98c0af","last_updated":"2026-09-10 04:55:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/emtiazzahid.github.io\/plugins\/launchmender\/","header_author_uri":"https:\/\/github.com\/emtiazzahid","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"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":"emtiazzahid","date":"2026-09-10 04:35:40","revision":3689286},"1.0.1":{"tag":"1.0.1","author":"emtiazzahid","date":"2026-09-10 04:55:48","revision":3689293}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3689285,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3689285,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3689293,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3689285,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3689285,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3689285,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3689285,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3689285,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3689285,"resolution":"4","location":"assets","locale":"","width":1280,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3689285,"resolution":"5","location":"assets","locale":"","width":1280,"height":800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3689285,"resolution":"6","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"The checklist: automated checks grouped by category with one-click fixes.","2":"Manual checklist with assignees, due dates and notes.","3":"The client's Help screen with your documentation.","4":"Welcome panel on the client's Dashboard.","5":"Printable handoff report.","6":"Settings: handoff mode, welcome panel, client role menu and contextual tips."}},"plugin_section":[262246],"plugin_tags":[5590,466,6941,272185,20034],"plugin_category":[],"plugin_contributors":[191403],"plugin_business_model":[],"class_list":["post-365419","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-agency","plugin_tags-client","plugin_tags-documentation","plugin_tags-launch-checklist","plugin_tags-site-audit","plugin_contributors-emtiazzahid","plugin_committers-emtiazzahid"],"banners":{"banner":"https:\/\/ps.w.org\/launchmender\/assets\/banner-772x250.png?rev=3689285","banner_2x":"https:\/\/ps.w.org\/launchmender\/assets\/banner-1544x500.png?rev=3689285","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/launchmender\/assets\/icon.svg?rev=3689293","icon":"https:\/\/ps.w.org\/launchmender\/assets\/icon.svg?rev=3689293","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/launchmender\/assets\/screenshot-1.png?rev=3689285","caption":"The checklist: automated checks grouped by category with one-click fixes."},{"src":"https:\/\/ps.w.org\/launchmender\/assets\/screenshot-2.png?rev=3689285","caption":"Manual checklist with assignees, due dates and notes."},{"src":"https:\/\/ps.w.org\/launchmender\/assets\/screenshot-3.png?rev=3689285","caption":"The client's Help screen with your documentation."},{"src":"https:\/\/ps.w.org\/launchmender\/assets\/screenshot-4.png?rev=3689285","caption":"Welcome panel on the client's Dashboard."},{"src":"https:\/\/ps.w.org\/launchmender\/assets\/screenshot-5.png?rev=3689285","caption":"Printable handoff report."},{"src":"https:\/\/ps.w.org\/launchmender\/assets\/screenshot-6.png?rev=3689285","caption":"Settings: handoff mode, welcome panel, client role menu and contextual tips."}],"raw_content":"<!--section=description-->\n<p>Every WordPress launch has the same forgotten details: \"Discourage search engines\" still ticked, WP_DEBUG on, a Hello World post, lorem ipsum in a footer, the admin email pointing at the developer. Launchmender runs those checks for you, fixes the safe ones with one click, keeps the manual checklist next to them, and leaves the client with documentation inside their own dashboard.<\/p>\n\n<h4>44 automated checks<\/h4>\n\n<ul>\n<li><strong>Visibility &amp; SEO<\/strong> \u2013 search engines discouraged, HTTPS and mixed content, plain permalinks, default tagline, missing site icon, missing default social image, unreachable sitemap, robots.txt blocking, home page noindex.<\/li>\n<li><strong>Content hygiene<\/strong> \u2013 Hello World post, Sample Page, placeholder text (lorem ipsum, \"your text here\"\u2026), menu links to \"#\" or staging hosts, images without alt text, menus pointing at empty categories, authors exposing their username, comments open on pages, \"Uncategorized\", stale drafts.<\/li>\n<li><strong>Configuration<\/strong> \u2013 WP_DEBUG, displayed errors, an \"admin\" user, developer admin email, UTC timezone, US date format on non-US sites, file editor enabled, XML-RPC, open registration with an elevated role, front page showing posts, staging strings in URLs or title.<\/li>\n<li><strong>Maintenance &amp; security basics<\/strong> \u2013 pending updates, inactive plugins and themes, plugins abandoned by their author for two years, no backup plugin, no caching, public debug.log, public readme.html.<\/li>\n<li><strong>Email &amp; forms<\/strong> \u2013 form plugin without an SMTP plugin, pending admin email change, test email delivery, missing privacy policy.<\/li>\n<li><strong>Performance<\/strong> \u2013 images over 1 MB, native lazy loading disabled.<\/li>\n<\/ul>\n\n<h4>One-click fixes<\/h4>\n\n<p>Enable indexing, set pretty permalinks, trash the sample content, set the timezone from your browser, close comments on pages, rename the default category, disable the file editor and XML-RPC (via a generated must-use plugin, never by editing wp-config.php), set the default role, delete unused themes, trash stale drafts, send a test email. Every fix asks first and is logged in the report.<\/p>\n\n<h4>Manual checklist<\/h4>\n\n<p>Twenty sensible defaults (redirect map imported, analytics verified, forms tested to inbox, licences transferred, 2FA on\u2026) with assignee, due date and notes. Save your own list as the template, export it as JSON and reuse it on every site. Three profiles: Pre-launch, Post-launch and Site takeover.<\/p>\n\n<h4>Client handoff<\/h4>\n\n<p>Turn on Handoff mode and the client gets:<\/p>\n\n<ul>\n<li>A <strong>welcome panel<\/strong> on the Dashboard with your name, logo, launch date, quick actions and support contact.<\/li>\n<li>A <strong>Help<\/strong> menu with your documentation, written in the block editor, hierarchical, searchable, printable. Imports your existing WP Help documents.<\/li>\n<li><strong>Contextual tips<\/strong> in the editor sidebar and on list screens (\"The homepage hero is edited in the Hero pattern\").<\/li>\n<li>An optional <strong>simplified admin menu<\/strong> for the client role. Administrators are never affected.<\/li>\n<\/ul>\n\n<h4>Handoff report<\/h4>\n\n<p>A printable pass\/fail report with timestamps, who fixed what, the manual checklist status, site facts and plugin inventory. Print it to PDF or create a 7-day share link for the client.<\/p>\n\n<h4>WP-CLI<\/h4>\n\n<pre><code>wp launchmender check run --format=json exits non-zero on failures, so agencies can gate deployments. Also `wp launchmender check list`, `wp launchmender check fix &lt;id&gt;`, `wp launchmender report --out=report.html`, `wp launchmender manual export`, `wp launchmender docs import-wphelp`.\n<\/code><\/pre>\n\n<h4>Developer hooks<\/h4>\n\n<pre><code>launchmender_checks (add your own check classes), `launchmender_check_result`, `launchmender_fix_applied`, `launchmender_profiles`, `launchmender_manual_template`, `launchmender_placeholder_phrases`, `launchmender_report_sections`, `launchmender_client_role_menus`, `launchmender_capability`.\n<\/code><\/pre>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the WordPress.org Plugin API (<code>https:\/\/api.wordpress.org\/plugins\/info\/1.2\/<\/code>) to look up the last update date of active plugins for the \"abandoned plugins\" check. It sends only plugin slugs. Results are cached for seven days. See the WordPress.org <a href=\"https:\/\/wordpress.org\/about\/privacy\/\">privacy policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it from Plugins \u2192 Add New.<\/li>\n<li>Activate it.<\/li>\n<li>Open <strong>Launchmender<\/strong> in the admin menu and click <strong>Run checks<\/strong>.<\/li>\n<li>Fill in your agency details under Launchmender \u2192 Settings and enable Handoff mode when you are ready to hand the site over.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20change%20anything%20without%20asking%3F\"><h3>Does it change anything without asking?<\/h3><\/dt>\n<dd><p>No. Checks only read. Every fix has a button and a confirmation, and the report records who applied it and when.<\/p><\/dd>\n<dt id=\"is%20it%20safe%20to%20keep%20active%20after%20launch%3F\"><h3>Is it safe to keep active after launch?<\/h3><\/dt>\n<dd><p>Yes, that is the point of Handoff mode. The checklist screens are only visible to administrators; clients see the Help menu and the welcome panel.<\/p><\/dd>\n<dt id=\"does%20hiding%20menus%20for%20the%20client%20role%20make%20the%20site%20more%20secure%3F\"><h3>Does hiding menus for the client role make the site more secure?<\/h3><\/dt>\n<dd><p>No. It hides menu entries for convenience; user capabilities are unchanged. Administrators are never affected.<\/p><\/dd>\n<dt id=\"what%20does%20the%20%22disable%20file%20editor%22%20fix%20change%3F\"><h3>What does the \"disable file editor\" fix change?<\/h3><\/dt>\n<dd><p>It writes <code>wp-content\/mu-plugins\/launchmender-constants.php<\/code> containing <code>DISALLOW_FILE_EDIT<\/code>. Untick the flag under Settings \u2192 Checks to remove the file. wp-config.php is never edited.<\/p><\/dd>\n<dt id=\"can%20i%20add%20my%20own%20checks%3F\"><h3>Can I add my own checks?<\/h3><\/dt>\n<dd><p>Yes. Implement <code>Launchmender\\Checks\\CheckInterface<\/code> (or extend <code>AbstractCheck<\/code>) and add an instance through the <code>launchmender_checks<\/code> filter.<\/p><\/dd>\n<dt id=\"can%20i%20import%20documents%20from%20wp%20help%3F\"><h3>Can I import documents from WP Help?<\/h3><\/dt>\n<dd><p>Yes. When WP Help documents are found, Settings \u2192 Handoff shows an import button. Hierarchy and order are preserved and the import is safe to run twice.<\/p><\/dd>\n<dt id=\"does%20it%20send%20data%20anywhere%3F\"><h3>Does it send data anywhere?<\/h3><\/dt>\n<dd><p>The \"abandoned plugins\" check asks api.wordpress.org for the last update date of your active plugins (slugs only, cached for 7 days). Nothing else leaves your site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Plugin URI now points at the plugin's page on the author's site.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: 44 checks, one-click fixes, manual checklist with templates, three profiles, handoff mode (welcome panel, Help docs, contextual tips, client role menu), printable report with share links, WP-CLI commands.<\/li>\n<\/ul>","raw_excerpt":"Run 44 pre-launch checks with one-click fixes, track your manual checklist, and hand the site over with in-dashboard help docs and a printable report.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/365419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=365419"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/emtiazzahid"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=365419"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=365419"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=365419"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=365419"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=365419"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=365419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}