WP Manifestindependent plugin directory
manifest / utilities / seoprostack

SEO Pro Stack #4 in Utilities

SEO Pro Stack: opt-in WordPress admin and workflow features plus curated plugin, theme, hosting and tool recommendations.

★ 3stars
1.8krelease downloads
≈120active sites
v1.3.69latest · 20h ago

Install

Download seoprostack-1.3.69.zip From the v1.3.69 release on GitHub, Oct 22, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/wpallstars/seoprostack/releases/download/v1.3.69/seoprostack-1.3.69.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WPALLSTARS SEO Pro Stack: WP Admin – Solved!

SEO Pro Stack

One free plugin for a faster, tidier WordPress. It does the jobs of 40+ single-purpose plugins, each a switch you turn on.

SEO Pro Stack does the jobs that usually take dozens of small plugins: a calmer, faster admin, better writing and media tools, safer logins, and tested settings for the plugins we recommend. Each feature is one switch, so you add only what you use. Fewer plugins means fewer updates, conflicts and slowdowns. Free and open source: no pro version, nothing locked.

If this saves you time, headaches and costs, feel free to buy me a coffee, or whatever you like, to invest in making more things open-source.

Version: {SEOPROSTACK_VERSION}

Where to find it

Go to Settings → SEO Pro Stack, or click the star next to your name in the admin bar (shown to people who can change these settings). The screen has three groups of tabs:

  • Settings: Admin, Content, Media, Links, Speed, Server, Plugins, Agency and Maintenance. Changes save instantly; there is no Save button.
  • Search features (next to the plugin name) finds settings on every tab by name, description or the plugin they replace. Results can be switched on and changed in place.
  • Discover: Theme, Free Plugins, Pro Plugins, Hosting and Tools.
  • About: this Read Me.

Report a problem, at the top right of the screen, opens the plugin’s GitHub issues in a new tab. Say what you did, what you expected and what happened, with the versions of WordPress, PHP and SEO Pro Stack. Leave out passwords, licence keys and personal data, since issues are public. For questions, ask aidevops (Built with AI below). Buy me a coffee, next to it, opens the maker’s Buy Me a Coffee page in a new tab.

Features

A new install starts with the features that are safe on every site switched on, so it is faster and tidier straight away, and leaves off those that need choices about the site or change its content, files, people or other plugins’ settings. On by default:

  • Speed: Load pages before the click, Image loading, Remove WordPress extras, Lighter WooCommerce pages and Faster editor with Kadence Blocks (the last two do nothing without those plugins).
  • Server: Fewer Heartbeat requests, Clean the database weekly, Load large settings only where they are used and Hosting needs.
  • Plugins: Load plugins only where needed, with Also skip them for people who are logged in, so it takes every chance to skip plugins once it has learned; Clean up deleted plugins, Plugin sizes and Fixes for other plugins.
  • Admin and editor: Organise the admin menu, More menu in the admin bar, Hide admin bar items (Comments and + New), Hide admin notices, Tidy admin screens, Tidy the dashboard, Tidy WooCommerce admin, Readable list columns, Simpler block editor, Notification emails (plugin and theme auto-update reports, unless an update failed), No fade between admin screens, Quiet Freemius prompts and Quiet Appsero prompts.

Copies installed from GitHub releases also have Updates from GitHub on. Sites that already had SEO Pro Stack keep their own settings: the defaults apply to new installs. Each feature can be switched off on its card. Features that replace a separate plugin say so on their card (“Replaces: …”) and import that plugin’s settings once when SEO Pro Stack is updated. The other plugin’s own settings are never changed or deleted. While that plugin is active, the feature waits and the plugin keeps doing the job, so the two never run side by side; the card says so, with a deactivate link that comes back to the same settings tab. Deactivate the plugin to switch over. The Plugins screen lists installed plugins that SEO Pro Stack can replace, with what to do next for each: deactivate it (its setting is on), switch the setting on, or delete it once inactive (single sites; on multisite another site may use it). Each of those plugins also gets a note under its own row saying which SEO Pro Stack setting makes it redundant and what to do next, including inactive plugins whose setting is still off; the notes are not hidden by Hide. When an active plugin does things on the site that SEO Pro Stack does not (such as Disable Bloat’s REST API switches), the line names them instead of saying the plugin can go. Hide hides the lines shown for that person until another step is needed. Plugins that web hosts add to every new site (Hostinger AI and Hostinger Easy Onboarding) get a note under their row while active, saying what they are for and recommending deactivating them if that is not used, with a Deactivate link; nothing is deactivated or deleted for you.

SEO Pro Stack replaces 53 plugins, some of them in part, with free and Pro editions counted separately. The 44 that can be downloaded come to 41.9 MB zipped; SEO Pro Stack is 3.1 MB.

Feature Tab Replaces
Hide the admin bar, Block dashboard access Admin Admin Bar & Dashboard Access Control
Turn off unused remote access Admin Hostinger Tools and Disable Bloat (PRO), in part
Magic login links Admin WP Magic Link Login, in part
Organise the admin menu Admin Admin Menu Editor (Pro)
Hide dashboard widgets, Disable sidebar widgets Admin Widget Disable
Tidy admin screens, Tidy WooCommerce admin, Tidy the login screen, Simpler block editor, Limit post revisions, Remove WordPress extras, Fewer Heartbeat requests, Lighter WooCommerce pages Admin, Content, Speed Disable Bloat (PRO), in part
Notification emails Admin Manage Notification E-mails
Hide admin notices Admin Hide Admin Notices
Avatars without Gravatar Admin Avatar Privacy
Duplicate posts Content Carbon Copy, Yoast Duplicate Post
Staged new versions, Shareable preview links Content Post Draft Preview, Public Post Preview
Pinned posts for any post type Content Sticky Posts Switch
Select all across pages Content Bulk Actions Select All
Menu item visibility Content Nav Menu Roles
Restrict content Content Content Control, in part
Change post type Content Post Type Switcher
Order by hand Content Simple Custom Post Order
Term tools Content Term Management Tools
Tag clouds and related posts, Term tools Content TaxoPress (and Pro) and Tag Groups (and Pro), in part
Search custom fields Content ACF: Better Search
Website screenshots Content Browser Shots
Link cards Content Bookmark Card
Wikipedia previews Content Wikipedia Preview
Word documents in the editor Content Mammoth .docx converter
Like, save and share Content Favorites
Brand icons Content Popular Brand Icons – Simple Icons
Spectra block replacements Content Spectra
Paste into the Media Library Media The Paste
SVG uploads Media Safe SVG
Resize large uploads Media Imsanity
Replace media files Media Enable Media Replace
WebP and AVIF images Media CompressX
Watermark pictures Media Easy Watermark
Load pages before the click Speed Flying Pages
Delay scripts until interaction Speed Flying Scripts
Delayed Google Analytics Speed Flying Analytics
Image loading Speed Flying Images, in part
Clean the database weekly Speed WP-Optimize and WP-Optimize Premium, in part, where LiteSpeed Cache runs on a LiteSpeed server
410 Gone for removed pages Links Ultimate 410
Old post addresses Links Slugs Manager: Delete Old Permalinks
Short addresses for custom post types Links Remove CPT base
Short links Links Pretty Links
External link icons Links Link Whisper's icon only
Internal linking tools Links Selected Link Whisper workflows, after per-site retirement checks
Maintenance mode Maintenance Hostinger Tools, in part
Updates from GitHub (GitHub builds only) Maintenance Git Updater
Plugins menu in the admin bar Plugins Plugin Toggle
Clean up deleted plugins Plugins Fix ‘Plugin file does not exist’ Notices

These plugins showed what sites need. Credits thanks their makers and links to each one.

Modern admin colours (Admin)

Uses the WordPress “Modern” admin colour scheme for every user while enabled. Switching it also updates your own profile: on selects Modern, off selects the WordPress default. Other users’ saved choices are not changed and return when the setting is off.

No fade between admin screens (Admin)

WordPress 7.0 fades from one wp-admin screen to the next, using the browser’s view transitions. The fade can flash, and each screen change waits for it. With this on, screens change straight away, as before 7.0. On by default; switch it off to get the fade back.

  • Removes core’s wp-view-transitions-admin style and adds @view-transition { navigation: none; } to admin screens, so fades that other plugins add the same way stop too.
  • Also paints the toolbar's strip in the menu's colour before the toolbar is drawn. Core prints the toolbar after the admin menu, so with a long menu the first paint showed a white strip at the top for a moment on every screen change.
  • Only page changes are affected. Animations inside a screen, such as in the site editor, stay.
  • No effect before WordPress 7.0, which has no fade, or for people whose system asks for reduced motion, who never get it.
  • Goes well with Load pages before the click’s Also in the admin, which downloads admin screens when you point at their links.

Turn off unused remote access (Admin)

Off by default, with three independent choices, all unchecked:

  • Turn off XML-RPC: direct requests to xmlrpc.php return HTTP 403, including unauthenticated methods such as pingbacks. Removes the X-Pingback response header and RSD discovery link. Jetpack and some mobile apps need XML-RPC; leave this unchecked if you use them.
  • Turn off application passwords: core stops accepting application passwords and hides their profile section and the Authorize application screen. Existing application passwords are not deleted; they work again when this choice is unchecked, if core allows them. Normal password login and the REST API stay available.
  • Block web access to log and backup files: requests for .log, .sql, .sql.gz and .bak files, error_log, php_errorlog and copies of wp-config.php (such as wp-config-old.php; not the real one) return HTTP 403, in every folder. Plugins write debug logs to the uploads folder under random names (AI Engine's mwai_*.log holds chatbot conversations), and PHP's error_log holds server paths and SQL; random names do not hide them, because .log URLs are guessed and crawled. A marked block (# BEGIN SEO Pro Stack log and backup files) goes at the top of the site's .htaccess, and of the .htaccess in wp-content or the uploads folder only when that folder is outside the site's folder (rules cover the folders below them). On Nginx, which does not read .htaccess files, the options show a location rule to copy; other servers get a note to ask the host. When a file cannot be written, the options show the block to add by hand. The block follows the switch, not the plugins the feature waits for, because they do not block these files. On multisite the main site's choice covers the network, which shares the files. Files are never deleted or moved: they belong to their plugins.

Imports enabled switches from active Hostinger Tools (hostinger_tools) and Disable Bloat once, without overwriting choices already saved here or changing their options. The feature waits until those plugins are deactivated. Only these two functions are replaced here, and Hostinger’s maintenance mode by Maintenance mode: the Plugins screen names Hostinger’s HTTPS and www redirects, llms.txt generation and MCP connection when they are on, instead of suggesting removal. Keep Hostinger Tools if you still use those or its hosting tools.

Log and backup files in Site Health (always on, advice only, even with the feature off): once a day, the files with those names and something in them in the top level of the site's folder, the WordPress folder, wp-content (debug.log included) and the uploads folder are each asked for with one HEAD request, largest first, at most 10 a day. Files that answer HTTP 200 are named, with their size, as a recommended improvement under Security in Tools → Site Health, with a link to the choice above; their contents are never read. Copies of wp-config.php are blocked but not asked for, because asking for a PHP file runs it. When every request fails, the test says the files could not be checked rather than that none were found. WP_DEBUG_LOG handling is left as it is.

The block's place and state are kept in the seoprostack_hardening_files site option, and the last check in the seoprostack_exposed_files transient. Deactivation removes the block (on multisite, network-wide deactivation or the main site's), and uninstall removes it if a file could not be written then, with the option and transient.

Uses core’s xmlrpc_enabled, wp_headers and wp_is_application_passwords_available filters, removes rsd_link from wp_head, refuses XML-RPC during init, and adds the test through site_status_tests.

Magic login links (Admin)

Adds “Email me a login link” to the login screen, next to “Lost your password?”.

  • The link works once and expires after 5–60 minutes (10 by default). Requesting a new link cancels the previous one.
  • Opening the link shows a Log in button; the login happens when it is pressed. Email security scanners that open links therefore cannot use them up.
  • The response is the same whether or not the account exists, and requests are rate limited per IP address and per user.
  • Links are stored only as a keyed hash and are removed when used, when they expire, and on uninstall.
  • Passwords keep working. Administrators can be required to use their password.
  • Uses the core login screen and core wp_login / login_redirect hooks, so activity logs, redirect rules and two-factor plugins that use wp_login still apply. Two-factor plugins that only check the password step are not asked; on those sites exclude administrators or leave the feature off.
  • Pages made with WP Magic Link Login keep working after it is deactivated: its [wpmll_form] shortcode shows the login link form, with its heading, description, login-button-text, logout-link-text and redirect_to (an address on this site, or current-page) attributes. People already logged in see a log out link. While Magic login links is off, the shortcode shows WordPress’s password login form instead, so the page still lets people log in. While WP Magic Link Login is active, its own shortcode is left in place. Its other settings (allowed email domains, accounts for new email addresses, the landing page, hiding the password form, one IP address per link) are not replaced.

Admin bar and dashboard access (Admin)

  • Hide the admin bar on the front end for chosen roles.
  • Block dashboard access for chosen roles: opening wp-admin sends them to the home page or a page you choose, such as /my-account/. AJAX, uploads and other background requests keep working. With WooCommerce active and no page chosen, its My Account page is filled in.
  • Both lists start with every role that can neither manage options nor write posts (subscribers, customers and similar roles from plugins). Roles that plugins add later are ticked in both lists unless they can write posts, so staff roles such as Shop manager are never locked out. The roles seen so far are kept in the seoprostack_access_roles option.
  • People who can manage options are never affected, so roles that can (such as Administrator) are not offered.

Developer admins (Admin)

Off by default. For sites where you build or look after the site and a client also has an administrator account: choose which administrators are developers, and what only developers can do. Everyone else, client administrators included, cannot.

  • Developers: super admins on multisite. On single sites, tick them in the list of administrators. Switching the feature on ticks you; tick anyone else who builds or looks after the site.
  • You cannot lock yourself out: the person who switches the feature on or saves the list is always kept on it, people who are not developers cannot change SEO Pro Stack’s settings, and if no ticked person is an administrator any more (accounts deleted or demoted), every administrator counts as a developer. WP-CLI and cron run as nobody and are never limited.
  • SEO Pro Stack is for developers only: people who are not developers do not see Settings → SEO Pro Stack (opening it gives a 403), its star in the admin bar, or its row on the Plugins screen, and cannot deactivate it.
  • Only developers can (the first five ticked by default):
    • Install, delete or edit the code of plugins and themes: installing, uploading and deleting plugins and themes, and the plugin and theme file editors.
    • Switch plugins on or off and change the theme: Activate and Deactivate on the Plugins screen (each link and bulk action), and activating a theme in Appearance → Themes and the Customizer. The Plugins and Themes screens stay open, so updates and Appearance → Menus and Widgets keep working.
    • Make administrators, and edit or delete developers: roles that can manage options (such as Administrator) are not offered when adding people or changing roles, nor as the default role for new accounts in Settings → General; administrators’ roles cannot be changed; developers’ accounts cannot be edited or deleted (their own accounts still can).
    • Change the site’s addresses and administration email: the WordPress Address and Site Address (a typo takes the whole site down) and the administration email, which gets fatal error and recovery mode emails. Shown read-only in Settings → General, with a note; the rest of the screen still saves.
    • Change permalinks and search engine visibility: Settings → Permalinks is read-only and refuses saving (this also covers other plugins’ address bases on that screen), and “Discourage search engines” in Settings → Reading is read-only. Both can wreck a site’s search rankings.
    • Update WordPress, plugins, themes and translations: for sites where you test updates first. Update checks and automatic updates are left alone.
    • Add unfiltered HTML, such as scripts, to content: everyone else’s content is filtered as for authors, so pasted scripts and some embeds are removed.
  • With Organise the admin menu, people who are not developers also do not see the Developers menu or the developer plugins placed in it, and its Preview the admin as › Client administrator shows what a client administrator gets.
  • Capabilities are taken away with core’s map_meta_cap filter and editable_roles; core settings are left out of allowed_options and kept with pre_update_option_{option}, so other paths (such as the REST API) cannot change them either. The seoprostack_is_developer filter decides who is a developer.
  • Until 0.13.0 the developer list and the code and administrator limits were Organise the admin menu’s Client safeguards. Sites where the menu was organised with them on get Developer admins switched on with those two limits and the same developers.

Organise the admin menu (Admin)

Groups the admin menu under the headings Content, Communications, SEO, Shop and Admin, the same way on every site, so plugins’ entries are where you expect them. Dashboard stays at the top. Under Admin come two menus, Administrators and Developers, then Users.

  • Within a section, WordPress’s own entries come first, then plugins’ in A–Z order, with a thin line between them. Settings, Tools and Appearance are sorted the same way.
  • Entries under the headings keep their normal flyout submenus. Administrators and Developers open to the side like any menu, listing their entries with icons; each entry’s own submenu opens one level further to the side. On a page inside them, the menu opens in place with the page’s list shown under its entry.
  • In Developers, plugin pages moved out of WordPress’s menus (such as Scheduled Actions, WP Crontrol or a debug log viewer) share one Settings entry instead of each showing a cog. SEO Pro Stack keeps its own entry, with a star icon.
  • Fold sections (off by default): click a heading to fold it; folded sections are remembered for each person, and the section of the page you are on always opens. With the sidebar collapsed, headings become lines and every entry shows.
  • Fit the menu to its names (on by default): the sidebar widens, up to 280 px, so that entry names fit on one line instead of wrapping, including every menu’s entries as they show when their menu is open (third-level lists with their indent). Every menu and folded section counts, so the width does not change when a section opens. Each entry is measured with the spacing it has in its open menu, wherever it is, so it needs the same room on every screen. Some plugins add entries, badges or fonts on some screens only, so the widest width the menu has needed is remembered per person (in WordPress’s wp-settings cookie, as spsmw) and used on every screen until the active plugins, the language or SEO Pro Stack change. A remembered width more than 24 px wider than a screen needs is a one-off (a badge or notice since gone), so that screen’s width replaces it. It is measured as the page loads, before the page is drawn, and checked again once it has loaded (only ever wider, for styles printed later), and the content, submenus and the open menu’s list move over with it. Other plugins’ own bars and panels that are fixed to the window and laid out for WordPress’s usual 160 px menu (such as Fluent Support’s setup footer, Kadence’s and WP-Optimize’s headers, or Freemius dialogs) move over or narrow by the extra width too. They are found by where they sit, not from a list of plugins, as they appear and whenever they change; dialogs centred on the window and menus that a script places itself are left alone. Entry icons in the Administrators and Developers menus sit beside the name, so a name too long even for 280 px wraps under its first line, not under the icon. Only on screens wider than 960 px with the sidebar expanded; the collapsed sidebar and phones are unchanged, as is the block or site editor in full screen mode, where WordPress hides the menu (the menu is fitted when the editor leaves full screen).
  • Plugins that take other plugins’ scripts off their own screens (Fluent Forms, Fluent Booking and Fluent Boards do) also took the menu script, so the menu there was not fitted or folded and had no third level. The menu script is then printed with the menu, and the plugin’s choice stands for every other script. FluentCRM keeps only the scripts on its own list, so the menu script is added to that list (fluent_crm_asset_listed_slugs).
  • FluentSMTP, moved from Settings to Communications, shows its own logo instead of a cog, drawn in the menu’s colours like the other entries.
  • Fluent plugins’ names are spaced like Fluent Forms and Fluent Boards: FluentCRM shows as Fluent CRM, FluentSMTP as Fluent SMTP, FluentCommunity as Fluent Community and FluentCart as Fluent Cart. Only the name in the menu changes.
  • Shop starts with the shop plugins’ own menus, WooCommerce then FluentCart, followed by the rest A–Z.
  • Preview the admin as a role: the options panel links to each role, and to Client administrator (an administrator who is not a developer). Each opens the admin in a new tab with only that role’s permissions, never more than your own, and a Stop link in the corner and the admin bar. The preview is kept in a signed cookie in this browser, so every tab shows it until you stop it or two hours pass. Only developers who can manage options can start one.
  • Places come from a list of common menus and plugins (admin/data/admin-menu.php), made from real sites. Plugin pages under Settings or Tools that belong elsewhere move too: SEO plugins to SEO; caching, security and developer tools to Developers. Pages inside a plugin’s own menu stay there. Unknown plugins go to Administrators; post types to Content.
  • Left out: upgrade links (an entry called only Upgrade, Upgrade to Pro or premium, Go Pro, Get Pro, Unlock Pro, Premium Upgrade or Pricing), entries without a name, pages registered without a menu (such as WooCommerce’s Setup Wizard, which WordPress itself never shows), and entries listed as hidden: Freesoul Deactivate Plugins’ holder menu, the Freemius opt-in prompts of WP Sheet Editor add-ons, and AutomatorWP’s advert for ShortLinks Pro. Their pages still open and keep their place for the safeguards. The list of entries marks them “(hidden)”; choosing another place, or a line in Move menu entries, shows one.
  • A menu logo that a plugin puts in its title as a picture (Meow Apps) becomes the entry’s icon, so it looks like the others on every screen, including where the plugin’s own styles are not loaded and in the Administrators and Developers menus.
  • In the Administrators and Developers menus, plugins’ SVG icons are drawn in the menu’s text colour, as WordPress paints them at the top level, so dark ones (Site Assist, ICS Calendar, Bit Social, FluentCRM) show on the dark menu and follow hover and the current page. Picture icons keep their colours. An icon from a plugin’s own icon font (AutomatorWP) shows a cog on screens where that plugin is skipped. Code Snippets draws its icon with its own styles on its top-level entry only, so its entry shows its logo, kept in SEO Pro Stack.
  • In Developers › Settings, pages with the same name get the menu they came from after it, such as Plugin Check (Tools) and Plugin Check (Settings).
  • Choose places: the options panel lists this site’s entries (every top-level entry, and plugins’ pages in WordPress’s menus) with a Place list for each: a section, or for pages, inside any menu. Choosing a place writes its line in Move menu entries; choosing the usual place removes it. Reload to see the menu change.
  • Move menu entries: one per line, a menu address or plugin folder, =, then a place: top, content, communications, seo, shop, admin-heading (under the Admin heading, after the two menus), administrators (or admin), developers (or super-admin), or another menu’s address to go inside it, for example elementor = content or wpcf7 = administrators. To move one page out of a menu, write menu>page = place.
  • Moved pages keep their usual addresses, and WordPress checks access to them as before: the menu is only rearranged while it is printed. Nothing runs on the front end. Which plugin owns each page is worked out once and kept in the seoprostack_admin_menu option until plugins change. With Load plugins only where needed, plugins a screen skips still count as active, so the kept owners stay the same on every screen, and a skipped plugin’s menu entries keep their places using the owner learned on screens that load it.
  • Some plugins move menu entries with their own scripts, matching them by name (for example moving any entry called “Analytics” above Posts). The menu script puts the printed entries back in order as the page loads; entries such scripts add are left where they put them.
  • With Developer admins on, people who are not developers do not see the Developers menu or open its pages, and do not see or switch developer plugins (those placed in Developers) on the Plugins screen. Until 0.13.0 this, the developer list and the other limits were this feature’s Client safeguards; they moved to Developer admins, so they also work without the organised menu.
  • Writers see only writing (off by default, as it changes what people can open): contributors and authors (people who can write posts but not edit other people’s) see Dashboard, the posts and post types they can edit, Media if they can upload, Comments and their profile. Plugins often open their pages to anyone who can log in or write (settings pages that ask only for read or edit_posts, such as AI Engine’s, Media File Renamer’s, FluentCommunity’s or WooCommerce’s Home); those are hidden from writers and refused with a 403 if opened. Tools is hidden too, as it offers writers nothing of WordPress’s own. So are plugins’ post types without the content editor, such as Lasso Lite’s short links, which use the same permissions as posts but are records, not writing: their list, Add New and edit screens are refused too. Post types with the editor stay. Which plugin post types have no editor is kept in the seoprostack_writer_types option, so screens where Load plugins only where needed skips the plugin still know. Pages that ask for a capability a plugin gives the role on purpose (an instructor or support agent capability, for example) stay. Editors, shop managers and administrators are not affected. Subscribers and customers, who only log in to comment, review or buy, never need the admin: use Block dashboard access. Filters: seoprostack_is_writer, seoprostack_writer_hides_page and seoprostack_writer_hides_post_type.
  • Replaces Admin Menu Editor and Admin Menu Editor Pro. Their settings are not imported: places come from the rules above, so every site gets the same menu. Admin Menu Editor’s own settings are left alone; while it is active, this feature waits.

Dashboard and sidebar widgets (Admin)

  • Hide dashboard widgets for everyone, such as WordPress Events and News, the welcome panel or plugin promotions. Widgets added by plugins appear in the list after the Dashboard is next opened.
  • Disable sidebar widgets you never use (the Meta widget by default); they disappear from the Widgets screen, the Customizer and sidebars.
  • While Disable Bloat is active, its Dashboard box switches (WooCommerce Status and Setup, Elementor, Yoast, and PRO’s WordPress boxes) and widget switches (WooCommerce widgets, PRO’s WordPress widgets) are imported once.

Tidy the dashboard (Admin)

Lays out the Dashboard the same way on every site, from rules made from 12 sites arranged by hand with Admin Menu Editor Pro (admin/data/dashboard.php):

  • Columns: first WordPress’s browser and PHP update warnings when shown, then Quick Draft, Activity and WooCommerce reviews; then Fluent Forms, Fluent Support and FluentSMTP statistics; then visitor statistics (Burst), Rank Math, At a Glance, Site Health and AI Engine Advisor. Widgets that are not listed stay in the column their plugin chose, below the listed ones.
  • Hidden for everyone: the Welcome panel, WordPress Events and News, WooCommerce Status and WooCommerce Setup (they repeat WooCommerce → Home), Pretty Links quick add, Link Whisper’s link health box and Debug Log Manager (it reads the whole debug log on every Dashboard load; its screen under Tools shows the same entries).
  • Developers only: Site Health status and AI Engine Advisor. AI Engine Advisor (a daily list of general advice about the site’s plugins) also starts unticked in Screen Options, once per person, including people who saved Screen Options before; ticking it there shows it from then on. Developers are the ones chosen in Organise the admin menu; without it, people who can manage options (super admins on multisite).
  • People who can publish: At a Glance and the form, support and email statistics, so contributors do not see them. People who cannot edit posts, such as subscribers and customers, see no boxes.
  • Everyone gets the same layout and boxes cannot be dragged. Let people rearrange boxes (off by default) allows dragging and keeps each person’s own arrangement; until someone rearranges, they get the layout above. Saved arrangements are never deleted, so switching the feature off gives them back.
  • Works alongside Hide dashboard widgets: boxes it hides stay hidden.

Notification emails (Admin)

Stop routine emails one by one: new user notices, password and email change notices, comment notices, and WordPress, plugin and theme auto-update reports. Each is stopped with the core filter that sends it, so nothing else changes. Password reset links are only ever stopped for administrators, and auto-update reports are still sent when a core, plugin or theme update fails.

Hide admin notices (Admin)

Moves plugin and theme notices behind a megaphone at the right of the admin bar, so pages open at their content. The megaphone opens a panel over the page with the notices, which can still be read and dismissed there. The admin bar is the one place no admin screen draws over, so the megaphone never sits on a plugin’s own header, and the page never moves.

  • Kept on the page: messages about what you just did (such as “Settings saved”), inline notices inside the page’s content (inline notices printed above the page are moved), and notices that scripts add after you first click or type, since they answer what you did.
  • Optionally keep errors, or warnings and the WordPress update message, on the page. On screens that hide every notice themselves, such as WooCommerce’s and Rank Math’s, kept notices go in the panel so they can still be read.
  • Also caught: notices printed inside another plugin’s wrapper, notices that scripts add while the page loads, WooCommerce’s lasting notices (such as connect prompts and database updates, which use the same #message id as “Settings saved”), and plain boxes of text, links and pictures printed above the page without notice classes (such as MainWP Child’s connect message). Boxes with headings, tabs, lists, forms or buttons are a plugin’s own header or tools and stay. A notice drawn by React or Vue (such as WooCommerce Analytics’) stays hidden in its place and the panel shows a copy; dismissing the copy dismisses the original.
  • The megaphone sits next to the account menu (“Hi, …”), or left of the Plugins menu when that is on. Debug Log Manager’s icon, when it shows, sits just left of the megaphone; other plugins’ admin bar items go further left. A megaphone, not a bell, so it is not mistaken for other plugins’ notification bells.
  • The megaphone is on every admin screen. A dot at its top right shows there are notices: red when at least one can be dismissed in the panel (a dismiss button, or a link or button such as “Dismiss”, “Hide” or “No thanks”), and in the admin bar’s text colour (white with the default colours) when they can only be read. With none, the panel says “No notices.” Since the megaphone never appears, disappears or changes width, nothing on the bar moves when the notices are counted. Screen readers hear the count (“Notices (2)”). On phones the megaphone joins WordPress’s icons and the panel fills the width.
  • With Load plugins only where needed: a screen that skips a plugin also skips its notices. Notices that skipped plugins print on screens that load every plugin are kept for each person (only visible notice boxes; other things printed there, such as buttons above a plugin’s own list, belong to that screen and are not kept) and shown behind the megaphone on screens that skip them, so they can be read and dismissed anywhere. A kept notice goes when its plugin stops printing it on the screen it came from, when it is dismissed (the dismiss button, or a link or button such as “Dismiss”, “Hide” or “No thanks”), or after 12 hours, since links in notices carry security tokens that expire. On screens that load the plugin, the plugin shows its own notice as usual. Kept notices are in the {prefix}seoprostack_stored_notices user option, removed on uninstall.
  • Like the other admin bar menus, pointing at the megaphone opens the panel and moving the mouse away closes it. It stays open while you type in a field inside it.
  • The megaphone works from the keyboard and on touch screens: Enter, Space or a tap opens the panel and keeps it open; Escape, the megaphone again or clicking elsewhere closes it.
  • Notices are hidden with CSS until they are moved, so they do not flash or push the page down. Without JavaScript they stay on the page.
  • Empty boxes printed on the notice hooks, which a plugin’s script fills later (such as announcements loaded from the plugin maker’s site), stay hidden while empty. Filled with a notice or banner, they go behind the megaphone.
  • The block editor has its own notices and is left alone.
  • Add the class sps-keep to a notice to keep it on the page.
  • Show example notices (off by default) adds one notice of each kind to every admin screen for administrators, to see where they go: information, success, warning and error behind the megaphone, and one with sps-keep on the page. Reload the page after changing it.

Quiet Freemius prompts (Admin)

Freemius is a sales and licensing kit that some plugins bundle, such as WP Sheet Editor and its add-ons and Git Updater. Each copy asks for attention on its own: an “Opt in to make … better!” notice on every admin screen, Opt In, Upgrade and Add-Ons links on the Plugins screen, trial and affiliate offers, a jump to its opt-in page when the plugin is activated, and a “Quick feedback” survey when it is deactivated. The Plugins screen carries a hidden copy of the survey or opt-in dialog for each of them.

This turns those prompts off. On a test site with six such plugins, the five opt-in notices went from every screen, the Opt In and Upgrade links from the Plugins screen, and the hidden dialogs there from nine to two (Git Updater’s licence dialogs). Deactivating goes straight through, and activating stays on the Plugins screen. On by default; switch it off to get the prompts back.

  • Freemius itself still loads: the plugins call it to check licences and build their menus, so stopping it would break them. Only its prompts are turned off, through the per-plugin filters Freemius provides.
  • Nothing is saved in the other plugins: none is opted in or out, and turning this off brings every prompt back.
  • Kept: licence activation and its dialogs, the Account, Contact Us and Support pages, licence, trial-ending and payment notices, Opt Out for plugins you opted in to, and “Complete activation now” for plugins that only work with a licence.
  • A plugin that has not been opted in or skipped yet still s

This README is longer than the copy stored here. Read the rest on GitHub →

Releases

Newest 25 of 60 recorded releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.3.69 latest
Oct 22, 2026 20h ago
seoprostack-1.3.69.zip +1 asset
21
seoprostack-1.3.69.zip16
provenance-seoprostack-1.3.69.sigstore.json5
Oct 21, 2026 1d ago
seoprostack-1.3.68.zip +1 asset
33
seoprostack-1.3.68.zip33
provenance-seoprostack-1.3.68.sigstore.json0
Oct 21, 2026 1d ago
seoprostack-1.3.67.zip +1 asset
22
seoprostack-1.3.67.zip22
provenance-seoprostack-1.3.67.sigstore.json0
Oct 21, 2026 1d ago
seoprostack-1.3.66.zip +1 asset
10
seoprostack-1.3.66.zip10
provenance-seoprostack-1.3.66.sigstore.json0
Oct 21, 2026 1d ago
seoprostack-1.3.65.zip +1 asset
13
seoprostack-1.3.65.zip10
provenance-seoprostack-1.3.65.sigstore.json3
Oct 21, 2026 1d ago
seoprostack-1.3.64.zip +1 asset
11
seoprostack-1.3.64.zip11
provenance-seoprostack-1.3.64.sigstore.json0
Oct 20, 2026 2d ago
seoprostack-1.3.63.zip +1 asset
52
seoprostack-1.3.63.zip50
provenance-seoprostack-1.3.63.sigstore.json2
Oct 20, 2026 2d ago
seoprostack-1.3.62.zip +1 asset
19
seoprostack-1.3.62.zip15
provenance-seoprostack-1.3.62.sigstore.json4
Oct 20, 2026 2d ago
seoprostack-1.3.61.zip +1 asset
27
seoprostack-1.3.61.zip24
provenance-seoprostack-1.3.61.sigstore.json3
Oct 19, 2026 2d ago
seoprostack-1.3.60.zip +1 asset
26
seoprostack-1.3.60.zip23
provenance-seoprostack-1.3.60.sigstore.json3
Oct 18, 2026 3d ago
seoprostack-1.3.59.zip +1 asset
44
seoprostack-1.3.59.zip42
provenance-seoprostack-1.3.59.sigstore.json2
Oct 18, 2026 3d ago
seoprostack-1.3.58.zip +1 asset
21
seoprostack-1.3.58.zip19
provenance-seoprostack-1.3.58.sigstore.json2
Oct 18, 2026 4d ago
seoprostack-1.3.57.zip +1 asset
49
seoprostack-1.3.57.zip46
provenance-seoprostack-1.3.57.sigstore.json3
Oct 18, 2026 4d ago
seoprostack-1.3.56.zip +1 asset
26
seoprostack-1.3.56.zip22
provenance-seoprostack-1.3.56.sigstore.json4
Oct 18, 2026 4d ago
seoprostack-1.3.55.zip +1 asset
56
seoprostack-1.3.55.zip52
provenance-seoprostack-1.3.55.sigstore.json4
Oct 18, 2026 4d ago
seoprostack-1.3.54.zip +1 asset
42
seoprostack-1.3.54.zip35
provenance-seoprostack-1.3.54.sigstore.json7
Oct 17, 2026 5d ago
seoprostack-1.3.53.zip +1 asset
78
seoprostack-1.3.53.zip77
provenance-seoprostack-1.3.53.sigstore.json1
Oct 16, 2026 6d ago
seoprostack-1.3.52.zip +1 asset cohort
119
seoprostack-1.3.52.zip116
provenance-seoprostack-1.3.52.sigstore.json3
Oct 16, 2026 6d ago
seoprostack-1.3.51.zip +1 asset
21
seoprostack-1.3.51.zip18
provenance-seoprostack-1.3.51.sigstore.json3
Oct 16, 2026 6d ago
seoprostack-1.3.50.zip +1 asset
18
seoprostack-1.3.50.zip16
provenance-seoprostack-1.3.50.sigstore.json2
Oct 16, 2026 6d ago
seoprostack-1.3.49.zip +1 asset
35
seoprostack-1.3.49.zip31
provenance-seoprostack-1.3.49.sigstore.json4
Oct 15, 2026 7d ago
seoprostack-1.3.48.zip +1 asset
66
seoprostack-1.3.48.zip64
provenance-seoprostack-1.3.48.sigstore.json2
Oct 14, 2026 8d ago
seoprostack-1.3.47.zip +1 asset
50
seoprostack-1.3.47.zip46
provenance-seoprostack-1.3.47.sigstore.json4
Oct 13, 2026 9d ago
seoprostack-1.3.46.zip +1 asset
39
seoprostack-1.3.46.zip36
provenance-seoprostack-1.3.46.sigstore.json3
Oct 13, 2026 9d ago
seoprostack-1.3.45.zip +1 asset
27
seoprostack-1.3.45.zip22
provenance-seoprostack-1.3.45.sigstore.json5
All releases on GitHub →

Active-site estimate ≈120 comes from the v1.3.52 cohort. Method.