Blog

  • How to undo changes in WordPress without losing work

    Key takeaways

    • Revisions restore a post’s title, author, content and excerpt. They don’t bring back menus, settings, SEO plugin fields or page builder data.
    • Block theme design changes are stored in the database, so deleting and reinstalling the theme leaves them in place. Reset the template or the styles instead.
    • WP Rollback swaps a plugin’s files for an older version. It doesn’t reverse database changes the update made, so keep a backup from before the update as your fallback.
    • Since WordPress 6.3, core puts the old plugin or theme back only when a manual update fails to install. An update that installs fine and then breaks the site stays in place.
    • On a WooCommerce store, a database restore can delete orders placed after the backup, and restoring with Subscriptions can trigger duplicate renewal charges.

    You rewrote the shipping page on Tuesday and only noticed today that a heading is missing. Or a plugin updated at lunchtime and the cart is now an empty column on mobile. In both cases you want an undo button, and WordPress doesn’t have one for the whole site.

    What it has is a set of separate recovery tools. Each one covers one part of the site and has its own limit. The skill is matching the tool to the place where the change is stored, then using the smallest tool that can reach it. Picking the wrong one is how a typo turns into a lost week of orders. A full restore is the last step on that ladder, and our guide to restoring a WordPress site from backup covers it in detail.

    Which undo tool fits the change you made?

    Find the row that matches what changed. The last column shows what that tool can’t reach, which is usually the reason an undo fails.

    What changedWhere it livesUndo withWhat it can’t reach
    An edit you haven’t savedThe editor sessionUndo arrow or Ctrl+ZAnything already saved
    Saved post or page contentRevisions in the databaseRevisions panelMenus, settings, plugin and builder data
    A deleted post or pageTrashRestore from TrashItems already emptied from Trash
    Block theme styles or templatesDatabase customizationsStyles revisions or template resetChanges outside the Site Editor
    A plugin or theme updateFiles, sometimes data tooIsolate, then roll back the filesDatabase changes the update made
    Damage across files and dataEverywhereBackup made before the problemNothing, which is the danger

    Check the cache and save the broken state first

    Before undoing anything, make sure the problem is real. WordPress.org’s FAQ on changes that seem to do nothing lists browser caching, server-side caching and caching plugins as common reasons a page looks wrong when the site is fine. Do a hard reload first. Then clear your caching plugin or builder cache, then your host’s cache and any CDN.

    If the problem is still there, take a backup of the site as it is now, even though it’s broken. That copy lets you undo your undo. It also holds any orders, comments or form entries that came in since your last good backup. You may need to copy them back later.

    How to undo an edit you haven’t saved yet

    Use the Undo arrow in the editor’s top toolbar, or press Ctrl+Z on Windows. Each press steps back one action in the current editing session. Redo, next to it, steps forward again.

    Undo only covers the current session. Once you save or publish, use revisions instead. One quirk confuses people: after you undo every change, the Save button can stay active. If you want to throw away a whole session of experiments, close the tab or reload without saving.

    How to restore a saved post or page from revisions

    WordPress records a revision every time you save a draft or publish an update. Restoring one replaces the content of that single post or page and leaves the rest of the site alone. For content mistakes, it’s the safest undo there is.

    1. Open the post or page in the block editor.
    2. Open the Settings sidebar, select the Post or Page tab, and click Revisions. If you don’t see it, the item may only have been saved once, or revisions are switched off.
    3. Drag the slider to the last good version and check its date and time. The good and bad versions are often one step apart.
    4. Read the comparison. Anything added on purpose after that version, such as a corrected price or a colleague’s paragraph, will be lost if you restore past it.
    5. Click Restore This Revision. The version you replaced stays in the history, so you can undo this step too.
    6. View the live page in a private window and check links, forms and the SEO title before you move on.

    Know the limits before you rely on this. WordPress’s revisions documentation says core tracks the title, author, content and excerpt. It doesn’t track menus, widgets, site settings or most plugin data. People testing SEO changes on r/Wordpress warn that revisions don’t always restore SEO plugin fields or page builder data cleanly. Revisions are unlimited by default, but the WP_POST_REVISIONS constant in wp-config.php can limit or turn them off. A host or plugin may have set it without telling you.

    Autosaves are separate. WordPress keeps one per user per post, each new one replaces the last, and an autosave never overwrites published content. To get a reliable restore point, save by hand before a big edit.

    How to get back a page you deleted

    Go to Posts or Pages, open the Trash view at the top of the list, hover over the item and click Restore. Restored items may come back as drafts, so check the status and publish again if needed.

    Trash only holds items for a limited time before deleting them for good, and the window depends on your setup. Once an item is gone from Trash, you need a backup made before you deleted it. Restore that backup to a staging copy and copy the page across, rather than rolling the whole site back for one page.

    Why reinstalling a block theme doesn’t undo design changes

    Block themes save your Site Editor changes in the database, not in the theme files. In a wordpress.org support thread, a user deleted and reinstalled the theme and found their customizations still there. Clearing the template’s customizations is what removed them.

    Go to Appearance → Editor. For site-wide colours, fonts and spacing, open Styles and use its revision history to compare and restore an earlier version, or reset it. For a template or template part, open it, then use the three-dot menu to reset it to the theme’s version. Menu labels have changed between WordPress versions, so look for “Reset” or “Clear customizations”.

    Be careful with what you reset. A template controls every page that uses it, and resetting it removes all of its customizations, including the ones you wanted to keep. Global styles affect the whole site. If you edit a classic theme’s files directly instead, a theme update can overwrite those edits. Learn WordPress’s advice is to use a child theme, and our guide to updating a WordPress theme safely covers the checks to run before an update.

    How to undo a plugin or theme update

    Find the component that’s causing the problem before you roll anything back. WordPress.org’s plugin documentation suggests checking the plugin’s support forum or deactivating plugins one at a time. If you updated five plugins and rolled all five back, you still wouldn’t know which one broke the site.

    Once you know which plugin it is, the free WP Rollback plugin from the WordPress.org directory can install an earlier version. Go to Plugins → Installed Plugins, click Rollback under the plugin, choose a version and confirm. For premium plugins, download the earlier version from your account with the vendor and upload it.

    Rollback only replaces files. WP Rollback’s own FAQ says a downgrade doesn’t reverse database changes a newer version made, and that older versions can be missing security fixes. If the update changed how the plugin stores its data, the old code is now running against new data and can stay broken. The changelog is the best clue. Look for words like “migration”, “database update” or a major version jump. In that case, restoring the pre-update backup is the real undo.

    WordPress core won’t do this for you. Since 6.3, core automatically puts the previous version back only when a manual plugin or theme update fails to install. Make WordPress Core’s announcement says it doesn’t keep the old version once an update succeeds. An update that installs cleanly and then breaks the site stays installed.

    If you can’t reach the dashboard

    When the site shows “There has been a critical error on this website,” check the admin email inbox for WordPress’s recovery link first. If that doesn’t work, connect by SFTP or your host’s file manager and rename the plugin’s folder inside wp-content/plugins. WordPress deactivates a plugin it can’t find. Renaming the whole plugins folder also works, but it turns off every plugin at once. Our guide to fixing a WordPress fatal error walks through reading debug.log to find the cause.

    When a backup restore is the right undo, and what it erases

    Use a backup when the damage covers both files and data, or when you can’t find the cause and the narrower tools have failed. WordPress’s backup handbook says a complete backup needs both the files and the database. A database-only backup doesn’t bring back themes, plugins or uploads.

    The cost is everything that happened after the backup’s timestamp. One r/Wordpress poster restored a five-month-old backup to fix a problem. It wiped theme changes, a slider, an infographic and their stock counts. Kinsta’s documentation makes the same point about staging: pushing a whole staging database to live replaces the live database. That loses orders, comments, form entries and users created since the copy was made.

    To keep the damage small, choose the newest backup taken before the problem, not just the newest backup. Restore it to staging first if your host allows, and compare it with live. If your host offers selective restore, restore only the files or only the database, whichever actually needs it. Our article on backups that actually restore covers setting this up before you need it.

    On a WooCommerce store, protect orders first

    WooCommerce’s update guide recommends a current backup, testing on staging, and keeping checkout out of use while you restore or troubleshoot. Rolling back a plugin’s files doesn’t delete orders, but a database restore can. Practitioners on r/woocommerce export orders and customers before a restore and re-import them afterwards. They add that the right method depends on whether High-Performance Order Storage is enabled.

    Subscriptions add a money risk. WooCommerce’s Subscriptions documentation warns that restoring a backup can remove orders, customer details, payment tokens and subscriptions from the gap between the backup and the restore. Renewals may then run again and charge customers twice, unless you fix the renewal schedule. If you need to refund anyone afterwards, WooCommerce’s refund docs are clear: changing an order’s status to Refunded doesn’t return the money. The refund has to go through the payment gateway.

    How to tell the undo actually worked

    The error going away isn’t the finish line. Log out, open the page in a private window, and check whatever the change touched: the form submits, the cart adds an item, the menu opens on a phone. A restored page can bring back an old form, an outdated offer or missing image alt text you had already fixed. Then save the post or take a fresh backup, so the repaired state becomes your next restore point.

    When to stop and get help

    Stop undoing and start diagnosing when:

    • a critical error survives a plugin rollback
    • the files are back but the data is still wrong
    • a restore would erase live orders
    • a fix removes the error but breaks something else

    At that point you’re fixing a bug, not reversing a change. Collect the error message, the time it started and what changed just before, then take it to the plugin’s support forum or your developer. If you’d rather not do it yourself, SiteSelf handles finding and fixing WordPress errors on request. It needs hosting (SSH) access for code and file work, says what it is about to change and whether that can be undone, then fetches the page and reports what it changed and what it checked.

    Frequently asked questions

    Why is the Restore This Revision button greyed out?

    You’ve selected the revision that matches the current content, so there’s nothing to restore. Move the slider one step to the left to an earlier version and the button becomes active.

    Can I restore one paragraph instead of the whole post?

    Yes. WordPress.com’s revisions documentation describes copying selected blocks from an older revision. You can also open the comparison, copy the text you need, and paste it into the current version. This keeps everything else on the page as it is.

    Why didn’t a revision bring back my menu or header?

    Revisions only track post content, title, author and excerpt. Menus, widgets and site settings are stored elsewhere. On a block theme, the header is a template part you can reset in the Site Editor. On a classic theme, you need a backup.

    How do I recover text after the browser crashed?

    Reopen the post. If WordPress has an autosave newer than the last saved version, the editor offers to restore it. There is only one autosave per user per post, so do this before you start typing again.

    Who is responsible for backups on a site someone else built?

    Whoever your contract or hosting plan says. Often nobody wrote it down. Find out who configures backups, how often they run, where they’re stored, and whether restores are included or billed separately. Do this before you need one.

  • WordPress forgot admin password and how to get back in

    Key takeaways

    • “Lost your password?” emails a reset link. WordPress never sends your old password, and requesting a new link can make the earlier ones invalid.
    • If the email never arrives, sending the form again will not help. Check that the right account is linked to that address, then fix mail delivery or skip email and reset another way.
    • Without email, go in this order: your host’s tool, then WP-CLI (`wp user update USERNAME –prompt=user_pass`), then phpMyAdmin with a temporary MD5 value after a backup. Theme code and emergency scripts are the last resort.
    • A 404 at /wp-login.php usually means a plugin such as WPS Hide Login has moved the login page. A reset link that is “invalid” every time usually points to caching, not to your password.
    • Without access to the hosting account, the only legitimate way back in is through your host and the site’s owner. WordPress.org support cannot reset a self-hosted site’s password.

    WordPress has a working reset built in, and in most cases it takes a couple of minutes. It works when three things are true: you know which account you are resetting, the email reaches you, and the reset page loads without interference. Lockouts that go on for days nearly always mean one of those three has failed, not the password.

    So treat this as a diagnosis. Start with the standard reset. If it fails, find out why before you try something heavier. If the problem turns out to be a login that rejects you even though your password is correct, our guide to fixing a WordPress login by symptom covers that separately.

    What “Lost your password?” actually does

    It emails you a link to set a new password. It does not send your old password or a new one. WordPress’s Developer Handbook describes this as the standard recovery route and the one to try first.

    1. Go to your site’s login page, usually yoursite.com/wp-login.php or yoursite.com/wp-admin.
    2. Click “Lost your password?” under the form.
    3. Enter the username or the email address on your WordPress user account. The site name and your display name will not work.
    4. Open the newest email you receive and click the link. Choose a new password and save it in a password manager.
    5. Log in with the new password in a private browser window to check that it works.

    Ask for one link and wait. WordPress checks each link’s reset key against your account, and a newer request can make older links stop working. If you click the form five times while the mail is slow, you get five emails and only one link that still works.

    Why the reset usually fails before the password does

    Nobody publishes data on how often each failure happens. In WordPress.org and Reddit support threads, the same causes come up again and again, roughly in the order below.

    The email never arrives

    When WordPress says the email was sent, it means the site passed the message to its mail system. It does not mean the message was delivered. WordPress’s troubleshooting FAQ explains that it sends mail through PHP’s mail() function, so a badly configured server or sender address can stop delivery completely. Many cheap hosts and every local development site have this problem.

    Check spam and any other inboxes you use. Then confirm which address is on the account. If you inherited the site from a developer or agency, the admin account often points to their old mailbox, and no number of retries will change that. If the address is right and nothing arrives, ask your host to check the outgoing mail log. On a WooCommerce store, don’t rely on WooCommerce’s email log for this. WooCommerce’s email troubleshooting docs send you to your SMTP provider’s logs or a mail-logging plugin instead.

    Fixing mail delivery for good, with an SMTP plugin connected to a real sending service and a test email, usually needs you to be logged in. So while you are locked out, the faster route is often to skip email and reset another way (see below).

    WordPress doesn’t recognise the username or email

    The messages are “The email address provided is not associated with a user account” or “The username … is not registered on this site.” The usual cause is that the address you are using receives the site’s notifications but does not belong to an administrator account. WordPress keeps these separate. The address under Settings, General is the site’s contact address, and each user has their own email address on their profile.

    Other causes are a username that was changed, a migration that brought over a different user table, or a staging copy that you have mistaken for the live site. To see which accounts really exist, you need a second administrator or access through your host (the WP-CLI and database routes below).

    The reset link says it is invalid or expired

    “Your password reset link appears to be invalid. Please request a new link below.” Request one fresh link and use it straight away. If you still get the error, look at the reset URL, not your password.

    The most common hidden cause is caching. If your host, a caching plugin or a CDN caches the reset page, the key in your link never reaches WordPress. In one WordPress.org thread about WPS Hide Login, the invalid links stopped as soon as WP Engine’s support team added action=rp to the site’s cache exclusions. Other causes people report are switching between www and non-www or between HTTP and HTTPS partway through, old cookies, and custom login or membership plugins that take over the reset form.

    /wp-login.php returns a 404 or a blocked page

    A 404, a redirect to the homepage or a “blocked” screen means you never reached WordPress’s login. That is not a password problem. Login-hiding plugins such as WPS Hide Login move the login page to a custom address. Use that address, and the lost-password page that goes with it.

    If nobody remembers the custom address, WPS Hide Login’s documentation describes two ways out, and both need hosting access. You can look up the whl_page option in the database, or you can temporarily rename or remove the plugin’s folder in wp-content/plugins so the default login page comes back. Put the plugin back afterwards. Security plugins that limit logins by IP address or require a secret word cause the same kind of lockout, and the fix is the same: whoever controls the hosting disables the plugin for a few minutes, or the host does it for you.

    You are trying the wrong login

    WordPress sites often involve several separate accounts, and people mix them up:

    • Your hosting control panel login is not your WordPress admin login.
    • A WordPress.com account is separate from a self-hosted site. WordPress.com has its own account recovery process.
    • Your WordPress.org forum account cannot reset your site’s password.
    • WooCommerce’s docs say the mobile app can sign you in with a WordPress.com account or with your site’s own credentials. Test your password on the site’s login page first.
    • A customer resetting their password on a WooCommerce “My Account” page is not an admin reset.

    How to reset the password without email

    All of these routes need access to the hosting behind the site. Go down the list and stop at the first one that works. Each step down is more powerful and easier to get wrong.

    1. Use your host’s tool or ask support

    Many managed hosts have a “change admin password” option in their WordPress management screen. Where they don’t, the host’s support team can often reset the password from a ticket once they have confirmed you own the account. If mail is broken, this is often faster than trying to fix mail first. It is the safest route for a non-technical owner because nothing on the site has to be edited by hand.

    2. Reset with WP-CLI over SSH

    WordPress’s Developer Handbook recommends WP-CLI for a technical reset. Connect over SSH and go to the folder that contains wp-config.php. If the server hosts more than one site, run wp option get siteurl to make sure you are working on the right one. Then list the administrators:

    wp user list --role=administrator

    Choose the account by its exact username or ID. Don’t assume the admin is user 1, because many inherited sites deleted the original admin long ago. To set a password you choose yourself, run:

    wp user update USERNAME --prompt=user_pass

    This asks for the password at a prompt, so it never appears in your shell history. Some guides suggest --user_pass='newpassword' instead, but that saves the password in plain text in your history file. The other option is wp user reset-password USERNAME --show-password, which creates a password and prints it on screen. Treat that output as sensitive and keep it out of screenshots and tickets.

    3. Edit the database in phpMyAdmin as a fallback

    Use this when you can open the database through your hosting panel but have no SSH access. The Handbook gives the steps and says to back up first. Export the database and download the file before you change anything. Our guide to backing up a WordPress site explains what a backup you can restore should contain.

    1. Open wp-config.php and check the database name and $table_prefix. The prefix is often not wp_.
    2. In phpMyAdmin, open yourprefix_users and find your row. Check user_login and user_email, not just the ID.
    3. Click Edit. In the user_pass row, set the Function dropdown to MD5 and type a temporary password in the Value field.
    4. Click Go, log in, and then change the password again from your profile in wp-admin.

    The most common mistake is forgetting to choose MD5. If you do, the column holds plain text that WordPress will never accept. One WordPress.org support thread was solved by doing exactly that step. The Handbook describes the MD5 value as temporary: WordPress replaces it with its own hash after you log in successfully. That is why you should change the password again from inside wp-admin once you are back in.

    4. Theme code or the emergency script, only as a last resort

    WordPress.org’s reset guide still documents two methods that only need file access over FTP. One is a line of code in the theme’s functions.php. The guide warns that this code resets the password every time a page loads, until you remove it. The other is an emergency reset script that you upload to the site’s root folder, and the guide says to delete it when you are done. Both leave a password in a file on a live server, so they are risky if anyone forgets to clean up. If you have to use one, remove the code or file in the same sitting, then check that it has really gone.

    What if the reset worked and login still fails?

    Then something other than the password is wrong. Go through these in order, because the first ones take the least time:

    • Exact username and case. Passwords are case-sensitive. Try the user_login value rather than your email address.
    • A clean browser session. Use a private window or clear the site’s cookies. An old session cookie can make a good password look wrong.
    • The same address throughout. Mixing www and non-www, or HTTP and HTTPS, can bounce you back to the form. Check that the site address and WordPress address match.
    • Login and security plugins. Too many failed attempts can block your IP, and from the outside that looks exactly like a wrong password. Disable the plugin by renaming its folder, test, then put it back.
    • Your role. If you get in but see “You do not have sufficient permissions to access this page,” the account may no longer be an administrator. That is a separate fix, done in the database or with WP-CLI.

    Don’t add another method on top of one that has not worked. A half-finished database edit plus a theme snippet is harder to undo than one attempt that failed cleanly.

    When to stop and get help

    Stop if you have only the login page. Every route above needs either the account’s email or access to the hosting. Without either, you cannot reset the password from inside WordPress. A WordPress.org moderator said the same thing in a recent thread: the owner has to get hosting access or contact the host. WordPress.org’s own support cannot reset a self-hosted site’s password.

    That makes it a question of ownership. Find out who pays for the hosting and the domain, because whoever pays can usually get the hosting account back from the host. If you are a freelancer and the client cannot prove they have legitimate access, work through the client and the host. Don’t look for a way around the login. Be wary of anyone who offers to “get you in” through an unusual sign-in flow. Practitioners report fake client requests used to hijack accounts.

    Also stop if the reset keeps failing for reasons you can’t see: a reset loop that clearing the cache doesn’t fix, a plugin that takes over the reset form, or two-factor codes that never arrive. That is a troubleshooting job. If you would rather not do it yourself, SiteSelf takes on WordPress troubleshooting work like this through chat. While you are locked out of wp-admin, it needs hosting (SSH) access to reach the site, and it cannot recover a hosting account you don’t hold.

    What to do once you are back in

    Check the email address on your profile first. It should be a mailbox you control, not a former contractor’s. Then set things up so the next lockout takes two minutes instead of two days:

    • Set up an SMTP plugin with a real sending service and send a test email. Then you will know a reset email can actually be delivered.
    • Add a second administrator with a different email address, held by someone you trust.
    • Write down who owns the hosting account, the domain and the login details for each.
    • Give collaborators their own user accounts instead of sharing yours, and remove admin accounts nobody can explain.
    • Delete any reset code, emergency script or database export left on the server.

    If you find admin users you did not create, or files you don’t recognise, treat it as a possible break-in rather than a lockout. Read what to do when a WordPress site is hacked before you go any further.

    Frequently asked questions

    Can WordPress tell me my current password?

    No. WordPress stores a hash, not the password, so neither the site nor your host can read it back to you. Every recovery method sets a new password. That includes anything you find in wp-config.php, which holds the database password, not your login.

    How long should the reset email take?

    Learn WordPress says it should arrive within a few minutes. If nothing has come after that, sending the form again won’t help. Check spam, confirm the address on the account, then ask your host about mail or reset another way.

    Can another administrator reset my password?

    Yes. Another administrator can open Users, edit your account and set a new password. If your site has a second admin, this is the quickest route that doesn’t rely on email. It is also a good reason to set up a second admin after you recover access.

    Is the phpMyAdmin method safe?

    It is safe if you take a backup first and check the database, table prefix and user row before saving. Editing the wrong row or forgetting to choose MD5 are the usual ways it goes wrong. Change the password again from wp-admin once you can log in.

    Why did my site lock me out after the host changed something?

    Some plugins encrypt stored secrets, such as SMTP API keys or two-factor settings, using the salts in wp-config.php. Practitioners report that when the salts change, those secrets can stop working, so reset emails and two-factor codes stop arriving. Getting back in usually needs SSH or WP-CLI to turn off two-factor and enter the keys again.

    Does this work the same on WordPress.com?

    No. WordPress.com accounts recover through WordPress.com’s own process, using a recovery email, a text message or proof of ownership. The host, WP-CLI and database methods here only apply to self-hosted WordPress.

  • How to fix the HTTP error in WordPress uploads

    Key takeaways

    • Check Media, then Library, before you retry. WordPress.com support notes that an upload can succeed even when the uploader reports an error, and retrying creates duplicates.
    • In the browser’s Network panel, find the failed async-upload.php request. A 413 points at a size cap, a 500 at PHP failing, and a 403 at a security rule or an expired session.
    • Tools, then Site Health, then Info, then Media handling shows the effective upload limit and whether GD or Imagick resizes your images.
    • Raising PHP limits doesn’t lift a web-server or proxy cap. Kinsta warns that more memory per PHP thread can mean fewer threads.
    • Hand it to the host when the evidence points at server configuration, a firewall rule or a missing image module. Give them the URL, the timestamp and the status code.

    You drag a photo into Media, then Add New. The progress bar fills, then turns red with two words: “HTTP error.” There’s no status code, no file name and no hint of what failed. WordPress shows this one message for very different failures: the image was too big to resize, a firewall refused the request, PHP ran out of memory, the server couldn’t write the file, or your login session expired.

    So the fix is never “raise the memory limit” by default. First find out which layer failed. That takes about five minutes, and the checks below need nothing more than your browser and wp-admin. If the whole site returns a 500 rather than only the uploader, follow our guide to fixing a server error 500 instead. That’s a different problem with a different starting point.

    Did the upload actually fail?

    Check first, because sometimes it didn’t. WordPress.com’s upload troubleshooting page notes that “Unexpected response from the server” can appear even when the file uploaded fine. The same goes for the plain HTTP error: the original file is saved, and then a later step such as making thumbnails or running an optimizer fails.

    Open Media, then Library, and reload it. If the image is there, perhaps with a blank or grey thumbnail, the upload worked and the processing did not. That points at image resizing, not at upload limits. If you skip this check and retry five times, you end up with five copies.

    How to find the real cause in five minutes

    WooCommerce’s documentation on HTTP response codes recommends the same two sources for any HTTP error: the browser’s Network panel and the server logs. For uploads, add Site Health and a test image.

    1. Capture the failed request. Open your browser’s developer tools (F12 or Cmd+Option+I), go to the Network tab and upload the file again. Find the request to async-upload.php and note three things: the status code, the response body and the time.
    2. Upload a small, known-good image. Use a screenshot of around 100 KB. If it uploads, the problem is something about the failing file, such as its size, dimensions or format. If it also fails, the problem is site-wide: permissions, a security rule, a plugin or the server.
    3. Check Site Health. Go to Tools, then Site Health, then Info. Under Media handling you’ll see the maximum upload file size, the max size of a POST request, the effective upload limit, and whether GD or Imagick is the active image editor. The Server section shows your PHP version.
    4. Read the log at that timestamp. Your host’s control panel usually has an error log. If it doesn’t, turn on WordPress logging in wp-config.php so errors go to wp-content/debug.log and don’t show to visitors.
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );

    Remove these lines when you’re done. The log can contain file paths and other details you don’t want left on a live server.

    Now match what you found against this table.

    What the Network panel showsWhere it pointsFirst move
    413 Request Entity Too LargeA size cap on the web server, proxy or CDN, or PHP’s post_max_sizeCompare the file size with Site Health; ask the host about the server limit
    500PHP failed, often running out of memory while resizing, or a plugin errorRead the log entry at the same time
    403, or a firewall block page in the responseA security plugin, ModSecurity or a host firewall rule, or an expired sessionLog out and back in, then check the security plugin’s log or ask the host
    502, 504, or a long wait then failureProcessing took longer than the server allowsTry a smaller image; check any optimizer plugin
    200, but the response contains HTML or a PHP warningA plugin or theme printed output that broke the responseRead the response body; run a conflict test

    Which cause fits what you found

    These causes are listed in the order worth checking. The order is not measured. Nobody publishes data on how often each one happens, so use what you collected to decide which one applies.

    The image is too big to process

    This is the classic case. When a 12-megapixel phone photo uploads, WordPress makes several resized copies of it, and that work runs inside PHP’s memory and time limits. Newer WordPress versions sometimes show a clearer message for this, starting “The server cannot process the image,” which suggests uploading a smaller image. The log, if you have it, often says Allowed memory size of ... bytes exhausted.

    The fastest fix is on your side. Resize the image to about 2560 pixels on the long edge before uploading. That’s the size where WordPress starts scaling large uploads down anyway, so a larger original rarely improves what visitors see. If you need full-size originals, ask the host about memory for image processing. Don’t just raise the limit blindly. Kinsta’s server-error docs point out that giving each PHP thread more memory can mean fewer threads, so a bigger limit can slow the rest of the site.

    The image library itself can be the problem. In a resolved WordPress.org thread from 2024, images over roughly 1 MB timed out on a Bluehost site. Switching the default editor to GD with the “Default to GD” plugin fixed it, and uploads got faster. Treat that as a workaround to test, not proof that GD is better. Site Health tells you which editor is active before you change it.

    A size limit at a layer WordPress cannot see

    Upload size is capped in several places, and each cap works on its own. PHP has upload_max_filesize and post_max_size, and the lower one wins. The web server (for example nginx’s client_max_body_size), a reverse proxy and a CDN can each reject a request before PHP ever runs. Kinsta’s client-error docs say exactly this: oversized requests are rejected before WordPress receives them, and they can show up in the uploader as a general upload error.

    This is why the popular php.ini and .htaccess snippets often do nothing. They raise a PHP limit while a server limit somewhere else stays where it was. A 413, or a failure that always starts at the same file size, means you should ask the host which layer has the cap. For very large files, Kinsta suggests skipping the browser: upload over SFTP, then import with WP-CLI using wp media import.

    A plugin, theme or security rule is in the way

    Image optimizers, offload-to-cloud plugins and security plugins all run during or right after an upload. If the error started after an update, or the response body contains a block page, one of them is the likely cause.

    Don’t deactivate plugins on a live store to find out. The Health Check and Troubleshooting plugin has a Troubleshooting Mode that turns off plugins and switches to a default theme for your logged-in session only, so visitors and customers see the normal site. Test the upload there, then turn plugins back on one at a time until the error returns. Our guide to fixing plugins that are not working covers what to do with the culprit once you find it.

    A 403 with a firewall page usually comes from the host’s ModSecurity or a similar rule. You can’t change that from wp-admin. Send the host the timestamp and ask which rule matched.

    The server can’t write the file

    Errors such as “could not be moved to wp-content/uploads/…” point at file writing: ownership, permissions or a full disk. Check disk space in your hosting panel first. Never fix this by setting the uploads folder to 777, because that opens the folder to anyone on the server.

    Permissions are suspected more often than they’re guilty. In a 2025 WordPress.org thread, a small 600 by 800 image failed with exactly that “could not be moved” message. Replies suspected folder permissions, but the fix was the host updating the site’s PHP version. If the PHP version in Site Health is old, ask about that before you touch permissions.

    The session or connection dropped

    If the failure is one-off rather than repeatable, log out and back in, then try again in another browser or on another network. Make sure the address bar shows https:// in wp-admin when your site runs on HTTPS, because a mixed setup can break admin requests. If the multi-file uploader itself keeps failing, WordPress’s Media Add New screen offers a simpler browser uploader as a fallback.

    Renaming a file to remove spaces or accented characters is cheap to try. It is rarely the actual cause of a repeatable HTTP error.

    When to stop and get help

    Stop troubleshooting on your own when any of these is true:

    • You can’t get at the logs.
    • The response is a host firewall page.
    • Site Health shows a missing image module or a PHP version your host controls.
    • You’ve worked through the checks above and the failing layer is still unclear.

    From that point, more guessing costs hours, and many confirmed fixes in support threads came from the host.

    Make the request specific. Send the host or developer:

    • the page you uploaded from
    • the exact time and time zone
    • the status code and response body from the Network panel
    • the file’s size and pixel dimensions
    • what you’ve already ruled out

    Then ask about the request-size limit, firewall or ModSecurity rules, PHP memory and timeouts for image processing, GD and Imagick, and disk space. A support request like that gets an answer. “Uploads are broken” gets a reply asking for more information.

    If you’d rather hand the whole investigation over, SiteSelf can do the troubleshooting work on your site. With hosting (SSH) access, it reads the logs, makes the change and reports what it changed and what it checked.

    Frequently asked questions

    Is the WordPress HTTP error the same as a 500 error?

    No. “HTTP error” is the uploader’s catch-all message, and the request behind it can return 500, 413, 403 or something else. Check the actual code in the Network panel. A 500 on every page of the site is a separate problem with its own diagnosis.

    Why do phone photos fail when screenshots upload fine?

    Phone photos are often 4000 pixels or more across and several megabytes in size. Resizing them into thumbnails takes far more memory than a small screenshot needs. Resize to around 2560 pixels before uploading, or ask the host about memory for image processing.

    What does “This file cannot be processed by the web server” mean?

    WordPress.com’s support page says this message means the file type isn’t supported, not that the file is too big. Convert it to JPG, PNG or WebP and try again.

    Should I switch to GD permanently?

    Only if testing shows GD fixes the failure on your server and the image quality is acceptable. It’s a workaround that has helped on some hosts. If Imagick is failing, ask the host why, because the underlying problem may affect other things too.

    Will raising the memory limit in wp-config.php fix it?

    Only if the log shows memory running out, and only up to whatever ceiling the host allows. It does nothing for a 413 from the web server, a firewall block or a permissions problem.

    Why does the error only happen in the editor, not in Media, then Add New?

    The editor uploads through a different request, the REST API, so a security rule or plugin can affect one route and not the other. Compare the failing request in the Network panel with a successful upload from Media, then Add New.

  • How to change your WordPress site title

    Key takeaways

    • Settings → General → Site Title → Save Changes works on every install. In a block theme, the Site Title block and the Site Editor’s Identity panel write to the same setting.
    • If the browser tab shows the old name, check your SEO plugin first. Yoast’s Website name field overrides the WordPress setting in Yoast’s output.
    • View the page source and search for <title>. You should find exactly one, and it should contain the new name.
    • Google writes its own title links and site names. It says recrawling takes a few days to a few weeks, so don’t rebuild a site because search results are slow to change.
    • Renaming the site doesn’t change its URL, domain or permalinks. WooCommerce emails that use {site_title} pick up the new name automatically.

    Go to Settings → General in your WordPress dashboard, type the new name into Site Title, click Save Changes, then load your homepage in a private window. That works on every WordPress install, whatever the theme. If the new name appears in the header and the browser tab, you’re finished.

    If it doesn’t appear, the save almost certainly worked. The word “title” covers several separate things on a WordPress site, and each one is set in a different place. Most of this guide is about finding the one that is actually wrong.

    Which title are you actually trying to change?

    Start by finding where the wrong name is showing, because that tells you which control sets it. The site title is one setting. The header, the browser tab and Google can each show something different.

    Where you see the nameWhat controls it
    Site-wide name, feeds, store emailsSettings → General → Site Title
    Text in the headerThe theme: the Site Title block, Customize → Site Identity, or a page builder’s header
    Headline of one page or postThat page’s own title (the Title block)
    Browser tab and page sourceThe HTML <title>, often written by an SEO plugin
    WooCommerce order emailsThe {site_title} placeholder, which reads Settings → General
    Google search resultsGoogle, using your pages as input

    If you wanted to change one page’s headline, or hide it, you need the page editor, not this setting. Our guide on hiding page titles in WordPress explains the difference between the Title block and the Site Title block.

    How to change the site title in Settings → General

    This is the main route, and every other route saves to the same value. WordPress stores that value as the blogname option. WordPress.org’s Settings General documentation says themes commonly show it in the layout and the browser title bar, and that WordPress uses it to identify the site in feeds.

    1. Log in with an Administrator account. Other roles can’t save core settings.
    2. Open Settings → General.
    3. Copy the current Site Title into a note. A setting has no revision history, so that note is how you undo the change.
    4. Type the new name in Site Title, with the exact spelling and capitalisation of the brand.
    5. Leave Tagline alone unless you mean to change it too. It’s a separate field for a short description, and many themes print it under the name.
    6. Click Save Changes at the bottom of the screen.
    7. Open the homepage in a private window and check the header and the browser tab.

    The WordPress Address and Site Address fields are on the same screen. Don’t touch them. They set the site’s URL, and getting them wrong can lock you out of your own dashboard. Renaming the site doesn’t change your domain, permalinks or URLs.

    How to change it in a block theme’s Site Editor

    Block themes such as Twenty Twenty-Four and Twenty Twenty-Five give you two more routes, and both save back to Settings → General. WordPress.org’s Site Title block documentation says that editing the block and saving the template changes the name everywhere it appears.

    1. Go to Appearance → Editor.
    2. Open the Identity section and edit Site Title there. Or open the header template part and click the Site Title block on the canvas.
    3. Type the new name.
    4. Click Save. Until you save the template, nothing changes on the live site.
    5. Go back to Settings → General to confirm the field shows the new name.

    WordPress.org’s Site Editor Identity documentation says the Identity section only exists when a block theme is active. If your Appearance menu has no Editor item, you have a classic theme. Use the next section.

    Two blocks look the same as the Site Title block on the canvas but behave differently. A Heading block with the name typed into it is just static text. Editing it changes the header but not the site title, and changing the site title won’t update it. A Title block shows the current page’s title, and editing it renames that page only. If your header ignores your changes, click the text and check the block name in the toolbar.

    How to change it in a classic theme’s Customizer

    Classic themes usually show the same fields under Appearance → Customize → Site Identity, with a live preview next to them. Edit Site Title, then click Publish. Changing the preview alone saves nothing.

    The same panel has a Display Site Title and Tagline checkbox, which most themes include. If the name is saved correctly but missing from the header, that box is probably unticked, or the theme is showing a logo instead. The reverse also happens. One WooCommerce shop owner on Reddit found a large, unwanted site-title link above their menu and removed it from Site Identity. For header layout changes that go beyond the name, see our guide to modifying a WordPress header.

    Page builders such as Elementor and Divi often build the header in their own editor. In that case the header shows whatever the builder template contains, so edit it there.

    Why the old name still shows after you save

    Work through these checks in order. Each one rules out a layer, and the order keeps you from clearing caches over and over when the cause is something else.

    1. Confirm the saved value

    Reload Settings → General. If the field still shows the old name, the save failed. Skip to “When to stop and get help” below. If the field shows the new name, the setting is fine and something further along is showing the old one.

    2. An SEO plugin is writing the browser tab title

    The text in the browser tab comes from the HTML <title>. On most sites an SEO plugin writes it. In Yoast SEO, the Website name field under Yoast SEO → Settings → Site basics overrides the WordPress setting in Yoast’s output. The homepage also has its own SEO title. Yoast’s homepage guide says to edit it under Settings → Content types → Homepage when the homepage lists your latest posts, or in that page’s own Yoast search appearance settings when you use a static homepage. Rank Math, AIOSEO and SEOPress have similar settings in their own menus.

    Check that only one plugin is writing titles. In one wordpress.org support thread, a site kept its old title after the setting was changed. Clearing WP Fastest Cache didn’t help. The cause was several plugins with title settings that clashed.

    3. The page has two titles, or none

    Open the page, press Ctrl+U (Cmd+Option+U on a Mac) to view the source, and search for <title. There should be exactly one result. Yoast’s troubleshooting page for SEO titles lists a missing or duplicated <title> as a source-code problem. Older themes that don’t support WordPress’s title-tag feature can print their own title from header.php.

    Yoast has a Force rewrite titles option for those themes, but warns it may considerably slow the site. It also warns that theme updates overwrite edits made directly to theme files. A hard-coded header belongs in a child theme, and that is usually work for a developer.

    4. A cache is serving the old page

    If a private window shows the new name, only your own browser was out of date. If it doesn’t, clear the caches in this order: your caching plugin, then your host’s cache, then your CDN. Clearing the browser cache doesn’t clear the server’s copy. WordPress.org notes that managed hosts often cache pages even when no caching plugin is installed. Our article on pages that won’t update covers each layer and how to clear it.

    5. Google still shows the old name

    Google doesn’t read your title setting. It builds title links and site names from your pages. Google’s title link documentation says it creates them automatically, may rewrite titles it considers outdated or unclear, and that recrawling and reprocessing can take a few days to a few weeks. For the site name, Google recommends WebSite structured data with name and url on the homepage. Google still makes the final choice. Yoast and other SEO plugins usually output this markup from their site name field.

    Once the live page is correct, request indexing in Search Console’s URL Inspection tool and wait. In one wordpress.org thread, a site owner spent hours resetting and rebuilding before learning that re-indexing was all the site needed. Reddit users report waits of 10 days or more. One still saw no change three weeks after adding site-name markup. If Google shows leftover demo text from an imported template, check the Tagline and the homepage’s SEO title before you resubmit.

    Usually the hard part of this job is the diagnosis, not typing the name. If you’d rather send the new name in chat and have it changed, checked on the live page and reported back, that is one of the routine website edits SiteSelf handles. A settings change like this needs only the SiteSelf Connector plugin.

    Changing the title from WP-CLI or the REST API

    If you have SSH access, WP-CLI’s option command reads and writes the setting directly. Read the old value first so you can put it back.

    wp option get blogname
    wp option update blogname "Acme Dental"
    wp option update blogdescription "Family dentistry in Leeds"

    blogdescription is the tagline. On a Multisite network, each site has its own title, so point the command at the right site with --url=. Run without it, the command changes the main site. Our explainer on multi site websites covers how networks keep each site’s settings apart.

    The REST API settings endpoint calls the same values title and description. An authenticated POST to /wp-json/wp/v2/settings with a new title changes the name, and you can use an application password as the credential. Whichever route you use, a success response only proves the value was saved. Load the live page afterwards to confirm visitors see the new name.

    When to stop and get help

    Hand it to your host or a developer if any of these apply:

    • The setting won’t save. The usual causes are a host firewall rule returning a 403, a conflict with a plugin or theme, or a leftover object-cache.php or advanced-cache.php file in wp-content. Ask your host to check its firewall logs before you start disabling plugins.
    • The title is hard-coded in the theme. Editing header.php on a live site without a child theme risks breaking the layout, and the next theme update will undo your edit.
    • The name changed and nobody changed it. That can be a sign the site has been hacked, especially if Google shows a name you never used. Read our guide on what to do when WordPress is hacked before you just rename it back.

    Frequently asked questions

    Will changing my site title change my URL?

    No. The Site Title and the site address are separate settings. Renaming the site leaves your domain, permalinks and links as they were, so you don’t need any redirects.

    Does changing the site title hurt SEO?

    There’s no evidence it affects rankings. It changes what your SEO plugin puts in title templates and what Google may eventually show as your site name. Keep the name accurate and short, and don’t stuff keywords into it.

    Should my site title match my domain?

    It doesn’t need to. Use the name customers know you by. Old forum advice that matching them helps SEO isn’t backed by any evidence.

    Will WooCommerce emails show the new name?

    Yes, wherever the email uses the {site_title} placeholder. WooCommerce’s email documentation says that placeholder reads the WordPress Site Title. Changing an SEO plugin’s title won’t affect it.

    How do I change the site title on WordPress.com?

    Use the same Settings → General screen, or edit the Site Title block in the Site Editor. WordPress.com’s support documentation describes both routes.

    Should every page use the site title as its title?

    No. WCAG 2.2 success criterion 2.4.2 requires each page to have a title that describes its topic or purpose. Use the site name as branding at the end of each page title, not as the whole title.

  • Social media plugins for WordPress, sorted by job

    Key takeaways

    • Decide the job first: share buttons, follow icons, a feed, auto-posting, social login, link previews or WooCommerce catalog sync. No single plugin does all of them well.
    • Feeds need the most upkeep. Expired tokens, a stalled WP-Cron and JavaScript conflicts cause most blank or stale feeds, and Wake Forest University’s WordPress guide plans for reconnecting roughly every six weeks.
    • Free share buttons are easy to find. AddToAny shows 300,000+ active installs on WordPress.org. Facebook no longer reliably gives share counts to third-party buttons, so changing plugins won’t bring them back.
    • Link previews come from og:image tags, which your SEO plugin usually sets. A social plugin is rarely the fix for a wrong preview image.
    • On a WooCommerce store, Troubleshooting Mode does not put payment gateways into sandbox, so test conflicts on staging.

    Search the WordPress.org directory for “social media” and you get share buttons, Instagram galleries, auto-posters, profile icons, login tools and catalog sync, all in one list. These are different products. They connect to different things, they break in different ways, and they cost different amounts to keep running.

    So “which social media plugin is best” has no single answer. A better question is which job you need done, and how much upkeep you’re signing up for. The installation itself is the easy part, and our guide to installing a WordPress plugin safely covers it. This article covers the decision that comes before it.

    Which social job do you actually need done?

    Name the job before you look at any plugin. Practitioner threads are full of mismatched answers. In one, someone asked for Pinterest share buttons and was pointed to a feed plugin, which does the reverse.

    JobWhat it doesWhat it connects toOngoing upkeep
    Share buttonsVisitors share your page to their own networksNothing; buttons open share linksLow
    Follow iconsLink to your own profilesNothing; they are plain linksVery low
    Social feedsShow your Instagram, Facebook, YouTube or TikTok posts on your siteThe platform’s API, through an access tokenHigh
    Auto-postingPublish your new posts to your own social accountsEach network’s API, one connection per accountMedium to high
    Social loginVisitors sign in with a social accountEach provider’s OAuth appMedium, and it touches security
    Link previews (Open Graph)Set the image and title shown when someone shares your linkNothing; these are meta tags in your pageLow, usually handled by your SEO plugin
    Catalog syncPush WooCommerce products to Facebook or Instagram shopsMeta’s commerce toolsHigh

    The upkeep column matters more than the feature list. Anything that holds a token for someone else’s platform will break when that platform changes its rules, and you’ll be the one who notices.

    Why share buttons are the easy part

    Share buttons need no account and no API key. Each button opens the network’s share dialog with your URL already filled in. That’s why good free options exist. AddToAny, one of the most installed, showed 300,000+ active installs in the WordPress.org directory.

    There are three things to know before you add them.

    • Share counts are mostly gone. In a Jetpack support thread on WordPress.org, Jetpack’s team explained that Facebook no longer reliably makes share-count data available to third-party sharing buttons. Switching plugins won’t restore the numbers.
    • Icon-only buttons need accessible names. W3C’s guidance on functional images says the text alternative should describe what the control does. “Share on Facebook” works. “icon” or “facebook-logo” doesn’t. Check that your plugin outputs a label, and add one if it doesn’t.
    • Buttons add some weight. Isolated benchmarks of individual share plugins showed small effects. They used different metrics on different setups, so none of them ranks one plugin above another. Measure your own page before and after, on mobile.

    Some practitioners take share buttons off entirely as mobile clutter, and nobody has published usage data that settles the argument. If your analytics show almost no social referrals, removing the buttons is a reasonable choice.

    Why feeds need the most maintenance

    Feeds bring the most visible value and the most support threads. Smash Balloon’s Instagram feed plugin is the most installed in the category, with 1,000,000+ active installs on WordPress.org. Its own documentation also lists the most failure modes, which tells you what running a feed actually involves.

    The token expired or the platform changed its API

    This is the most common cause. The plugin reaches Instagram or Facebook with an access token, and tokens expire, get revoked when someone changes a password or admin role, or stop working when Meta retires an API. Smash Balloon’s error reference covers API error 190: Error validating access token. The fix is to remove the source, save, and reconnect.

    Update the plugin before you reconnect. When Meta retired the older Instagram connection method, reconnecting through an outdated plugin version didn’t help. Wake Forest University’s WordPress guide expects feed connections to need reconnecting roughly every six weeks and recommends turning on the plugin’s feed-issue email report. That interval is one institution’s experience, not a rule. Still, it’s a sensible calendar reminder.

    The feed only updates when you clear the cache

    This usually isn’t a broken plugin. Smash Balloon’s doc on this symptom names three causes: WP-Cron or the server cron isn’t running, the page cache lifetime is too long, or the feed’s own cache interval is too long. WP-Cron only runs when someone visits, so a quiet site can go hours without a refresh.

    Clearing the cache by hand brings the feed back, and it also hides the cause. Check whether cron is running with a plugin such as WP Crontrol, or ask your host about a real server cron. Then shorten the cache lifetime for the feed page, or exclude that page from the page cache.

    The feed is blank or the loader keeps spinning

    Open the browser console first. Smash Balloon’s troubleshooting list includes another plugin’s JavaScript error, outdated or duplicate jQuery, lazy-loading conflicts, script combining by an optimization plugin, a wrong shortcode or feed ID (curly quotes pasted from a document break it), and a theme that never calls the hooks plugins rely on:

    <?php wp_head(); ?>   <!-- inside <head> -->
    <?php wp_footer(); ?> <!-- just before </body> -->

    If you have to edit the theme, do it in a child theme so the next theme update doesn’t undo your fix. Don’t apply site-wide workarounds such as turning off lazy loading everywhere until the console has shown you that’s the cause. Firewalls can also block feeds: support threads point to Cloudflare rules, ModSecurity and Wordfence blocking requests or settings saves. For the wider method, see our guide on fixing plugins that stop working.

    Connecting feeds for clients

    Agencies don’t need client passwords. Spotlight’s directory listing describes an Access Token Generator that lets the client authorize the connection themselves, and it supports separate accounts and feeds for each site.

    Why free auto-posting usually comes with limits

    Auto-posting is where “free” most often stops meaning free. Commenters on r/Wordpress keep reporting the same pattern: the free tier covers one or two networks, and Instagram or LinkedIn needs a paid plan or an add-on. Others ended up switching between plugins until one covered the networks they actually used.

    The underlying reason sits with the platforms. Self-hosted tools that post to Meta’s networks need an approved developer app, and one Reddit user described waiting months for that approval. Before you install anything, write down the exact networks you post to. Then check that the free tier, or the plan you would buy, covers all of them. Also check whether “posting” means the full post with an image or just a link.

    Auto-posters also depend on WP-Cron, the same as feeds. A scheduled share on a low-traffic site can go out late because nobody visited to trigger it.

    Why the wrong image shows when your link is shared

    Link previews come from Open Graph tags in your page’s head, mainly og:image and og:title. On most sites your SEO plugin writes these tags, not a social plugin. Installing a share plugin to fix a preview usually adds a second set of tags and makes things worse.

    Google’s image documentation says its choice of preview image is automated and draws on several sources. og:image is one way to influence it, not a way to control it. Set a relevant image per post in your SEO plugin, give crawlers time to revisit, and never use noindex to “reset” a preview. Image optimization plugins that rewrite image URLs can also change these tags, so check the page source when the preview looks wrong. Our guide to doing SEO on WordPress covers where those settings live.

    What to check before you install any social plugin

    Spend a few minutes on the directory listing first. It saves more time than any feature comparison.

    1. Confirm it does your job. Read the description for the one thing you named above. A plugin that bundles login, counters and sharing adds code for jobs you may not need.
    2. Check maintenance. Look at “Last updated” and “Tested up to”. A feed or posting plugin that hasn’t been updated since the platform’s last API change will fail.
    3. Check the free tier against your network list. Every network, not just the first one.
    4. Decide where it loads. A feed belongs on the page it supports, such as a portfolio or a product page, not on every article template.
    5. Test one workflow. Connect one account and publish one post or one feed. Check the result logged out before you add a second network.
    6. Keep one plugin per job. Two share plugins or two plugins writing Open Graph tags cause conflicts, and removing the unused one closes off code you no longer need.

    Social plugins look finished on the day you set them up, and then they need updates, reconnections and clean-up for as long as they’re installed. If you’d rather not do that yourself, SiteSelf handles plugin updates, settings and removals on request through chat, using its connector plugin for settings work and hosting access for file-level fixes. Reconnecting a social account still needs whoever owns that login.

    If you run a WooCommerce store

    Catalog sync to Facebook and Instagram shops gets mixed reports. Store owners on r/woocommerce describe one update to the official integration syncing every product, including disabled variations. Others report the integration working nearly out of the box. When you troubleshoot any social plugin on a store, WooCommerce’s documentation warns that Health Check’s Troubleshooting Mode does not switch payment gateways to sandbox, so an order placed during a test can take a real payment. WooCommerce recommends a backup and a staging site for conflict testing.

    Frequently asked questions

    Do social media plugins slow down WordPress?

    They can, depending on the scripts they load and the external requests they make. Isolated tests of share-button plugins showed small effects, but nobody has published comparable benchmarks for feed plugins, which tend to be heavier. Measure the specific page before and after, and load feeds only where they are used.

    What is the difference between sharing and auto-posting?

    Share buttons let your visitors post your page to their own accounts. Auto-posting publishes your new content to your own accounts. Each one needs a different plugin, and only auto-posting needs you to connect accounts.

    Can WordPress post to Instagram automatically for free?

    Sometimes, but free tiers often leave Instagram out or put it behind a paid plan. Network support changes, so check the plugin’s current listing for Instagram specifically before you build a workflow around it.

    Why did my feed stop working after a theme or plugin update?

    Usually a JavaScript conflict, a script optimization setting, or a theme that dropped the wp_head() or wp_footer() call. Check the browser console, update the feed plugin, then isolate the cause with the Troubleshooting plugin, which disables plugins only for your logged-in session, or on a staging copy.

    Are follow icons the same as share buttons?

    No. Follow icons are plain links to your profiles and connect to nothing. Many themes and the block editor’s Social Icons block can add them without a dedicated plugin.

    How many social plugins is too many?

    There’s no safe number. One per job is the rule that matters. Duplicates, especially two plugins writing Open Graph tags or two loading share scripts, cause most of the conflicts.

  • How to speed up a WP site without breaking it

    Key takeaways

    • Check Time to First Byte (TTFB) first. If it is slow, look at hosting, PHP or a missing page cache. If TTFB is fast but the main content appears late, look at images, CSS and scripts.
    • In SpinupWP’s 2023 lab test, page caching raised server throughput from 42 to between 213 and 287 requests per second. Caching does nothing about heavy pages or too many scripts.
    • Don’t lazy-load the hero image. Resize images to the size they actually display at. The weight of each image matters more than how many there are.
    • On WooCommerce, keep Cart, Checkout, My Account, AJAX and Store API requests out of every cache. Place a full test order after each change.
    • Run one page cache, one CDN and one optimization tool. Find out what your host already does before you add anything.

    HTTP Archive’s 2025 Web Almanac found that 45% of WordPress sites passed all three Core Web Vitals on mobile, and 53% had a good Largest Contentful Paint. So most WordPress sites are still slow on phones. The usual reaction is to install another speed plugin. In support threads, that is the most common way people make a site slower or break it.

    The method that works is boring. Measure the page that is slow, find out where the time goes, make one change and test again. A speed setting that breaks a menu, a form or checkout is a bug, not an improvement. Stacked optimization features are also a common reason WordPress plugins stop working.

    What do you need before you start?

    You need an administrator login, access to your hosting dashboard (that is where server cache, PHP version and CDN settings usually live) and a recent backup you know you can restore. If your host offers a staging copy, test the risky steps there first.

    You also need three free tools: PageSpeed Insights, your browser’s developer tools (the Network tab), and the Query Monitor plugin, which shows slow database queries and outside HTTP calls. Most image and plugin work happens in the WordPress admin. Changing caching rules, PHP or theme files needs hosting access.

    Step 1. Measure the page that matters, on mobile

    Test the page that earns money or leads, such as a product page, a service page or the booking form. The homepage alone doesn’t tell you enough. Run it through PageSpeed Insights on the mobile setting.

    A single run is noise. The WordPress Performance Team’s measurement best practices recommend taking several measurements with the same setup. Run the test at least three times and use the middle result. Write down LCP, INP, CLS, TTFB, total page weight and the LCP element (the image or text block the test flags).

    MetricWhat it measuresGood
    Largest Contentful Paint (LCP)When the main content appears2.5 s or less
    Interaction to Next Paint (INP)How fast a tap or click gets a response200 ms or less
    Cumulative Layout Shift (CLS)How much the page jumps while it loads0.1 or less

    The thresholds come from Google’s Core Web Vitals documentation. Google also says that meeting them doesn’t guarantee better rankings. Aim for real visitors’ numbers (the field data at the top of the report). The lab score is there to help you diagnose.

    Step 2. Work out whether the server or the page is slow

    TTFB tells you which half of the problem you have. If the first byte takes a long time, the browser is waiting for WordPress to build the page. Compressing a stylesheet won’t help with that. If TTFB is fast but LCP is slow, the page itself is too heavy.

    SymptomLikely causeWhere to look
    High TTFBNo page cache, slow PHP, heavy queries, hosting limitsHost dashboard, Query Monitor
    Fast TTFB, slow LCPOversized or lazy-loaded hero image, render-blocking CSSNetwork tab, LCP element
    Poor INPHeavy JavaScript from the theme, a page builder or widgetsPerformance trace, plugin list
    High CLSImages or ads without dimensions, late fontsMissing width and height

    If a theme or plugin is the suspect, isolate it. WooCommerce’s slow site troubleshooting guide suggests switching to a default theme for a while and turning extensions off one at a time. Do that on staging, not on the live site.

    Step 3. Fix server response with hosting, PHP and one page cache

    Start by finding out what your host already caches. Many hosts run their own server or edge cache, and some won’t let you add a caching plugin. Kinsta’s technical FAQ says it doesn’t allow them. A second page cache on top of the host’s cache causes conflicts and old pages that won’t go away.

    Page caching matters when TTFB is the problem. In SpinupWP’s 2023 lab test, uncached WordPress handled 42 requests per second. With WP Rocket, WP Super Cache or W3 Total Cache it handled 213 to 253, and with Nginx FastCGI Cache it handled 287. That was one setup measuring server capacity, not what a visitor feels. If your host doesn’t cache, add one plugin that suits your server, for example LiteSpeed Cache on a LiteSpeed server.

    Then check that the cache is actually working. Open the page in a private window, reload it, and look at the response headers in the Network tab for a cache “HIT” from your plugin or host. An installed cache that never hits does nothing.

    Next, check PHP. Go to Tools > Site Health > Info > Server. WordPress’s requirements page recommends PHP 8.3 or newer. Check that your theme and plugins support it, then switch PHP in your host’s dashboard. On stores and membership sites, which can’t serve every page from cache, a persistent object cache such as Redis can reduce repeated database work if your host supports it.

    If TTFB is still high while the cache is hitting, or you see 502, 503 or 504 errors, the server is running out of capacity or a request is too slow. Our guide to the 504 error on WordPress explains how to read the logs. Only upgrade hosting once you have measured that the server is the bottleneck. A pricier plan doesn’t fix a heavy plugin.

    Step 4. Make pages lighter, starting with images

    The usual image problem is size, not number. A 4,000 by 3,000 pixel camera photo shown 800 pixels wide makes every visitor download pixels nobody sees. A large Media Library doesn’t slow a page. Only the images on that page count.

    1. In the Network tab, filter by images and sort by size. Fix the largest files first.
    2. Resize to the width the theme displays, compress, and use WebP or AVIF where your setup supports them. WordPress then serves smaller copies to small screens through srcset.
    3. Lazy-load images below the fold. Never lazy-load the hero image. Load it straight away and give it fetchpriority="high". Lazy-loading the LCP image delays the one thing the test measures.
    4. Give every image a width and height so the browser can save space for it. This keeps CLS down.

    Our guide to optimizing pictures in WordPress covers formats, bulk tools and how WordPress decides which images to lazy-load.

    Step 5. Remove scripts and plugins you can’t justify

    Plugin count is a poor guide. One badly built plugin can do more damage than twenty small ones. Use Query Monitor and the Network tab to see what each plugin loads and which queries it runs. Then delete any plugin nobody can explain, especially abandoned ones. That is cheaper than faster hosting, and every deleted plugin is one less thing to keep patched.

    Third-party scripts such as chat widgets, trackers and ad code are often the heaviest items on the page. Removing one can be a business decision, so ask whoever owns it before you cut it.

    Front-end optimization features (minify, combine, delay JavaScript, remove unused CSS) break things more often than anything else in this list. Turn them on one at a time. WP Rocket’s documentation says to turn off Combine JavaScript files when Delay JavaScript Execution is on. If a feature breaks a script, exclude only that script. After each change, open the mobile menu, submit a form and press the main button with the keyboard as well as by tapping.

    If a heavy theme or page builder is the cause, replacing it is a redesign, not a quick fix. A builder your team edits every week can be worth its overhead. In that case, turn off the builder features you don’t use.

    Step 6. On WooCommerce, protect checkout first

    A faster store that can’t take payment is broken. WooCommerce’s checkout spinner documentation says to keep Cart, Checkout and My Account out of page and edge caching, and to make sure AJAX and Store API requests are never served from cache. If they are, customers see the wrong cart, a spinner that never stops, or wrong shipping rates.

    After every change, purge every cache layer and place a full test order using your payment provider’s test mode. Add a product, change the quantity, apply a coupon and check the shipping and tax totals. Turning off cart fragments can speed pages up, but it can also stop the header cart from updating, so test that on staging first.

    Step 7. Test the same way again, then keep or undo

    Retest the same page with the same settings and the same number of runs, and compare it with your baseline. Keep a change only if it improved the metric you aimed at and nothing broke. Otherwise undo it before you try the next one. Write each change down in one line, because three weeks later nobody remembers which setting broke the contact form.

    If a change doesn’t show up, an old copy is being served from somewhere. Purge the plugin cache, the host cache, the CDN and then the browser, in that order. Our guide to a page that isn’t updating explains how to tell which layer answered. Field data in Search Console takes weeks to catch up, so judge field results over time.

    What if it’s still slow, or only the admin is slow?

    A slow wp-admin is a different problem. Common causes are a bloated wp_options table, very large numbers of posts or custom fields, no object cache, old PHP, host limits and outgoing calls that time out. WooCommerce’s wp_options and site speed guide points out that autoloaded options load on almost every page. Check what is autoloaded before you delete anything, because removing rows blind can wipe settings a plugin still needs.

    Stop and get help if checkout breaks and you can’t trace why, if you’re unsure what a database table belongs to, or if a script conflict goes beyond what the plugin settings can fix. If you’d rather hand the work over, SiteSelf’s speed optimization work starts from your slow page URL in chat. The agent makes the change on your site using hosting (SSH) access and reports what it changed and what it checked. Speed also drifts as content and plugins change, so a website care plan should name who retests and when.

    Frequently asked questions

    Do too many plugins slow WordPress down?

    Quality matters more than count. One plugin that loads heavy scripts on every page or runs slow queries can outweigh many small ones. Measure what each plugin loads instead of deleting by number.

    Do inactive plugins slow my site?

    No official source in our research settles this. Delete inactive plugins anyway if nobody needs them. They clutter the admin and can still be a security risk if they fall out of date.

    What is the best caching plugin?

    The one that suits your host and server. If your host already caches pages, you may not need one at all, and some hosts don’t allow them. In SpinupWP’s lab test, the three popular plugins it measured landed in a similar range.

    Do I need a CDN?

    A CDN serves static files from servers closer to your visitors. It helps with delivery but won’t fix a slow server or a heavy page. Use one CDN, not two.

    Why is my site fast on desktop but slow on mobile?

    Phones have slower processors and less steady connections, so heavy JavaScript and large images hurt more there. PageSpeed Insights tests mobile on a slowed-down profile on purpose. Always test mobile directly.

    How often should I run a speed test?

    There is no official schedule. Retest after any plugin, theme or major content change, and check your key pages now and then for slow drift.

  • What makes a high converting landing page work

    Key takeaways

    • Unbounce’s 6.6% median comes from more than 41,000 pages built on Unbounce, not on WordPress. Industry medians in the same data run from 3.8% for SaaS to 12.3% for entertainment, so use your own baseline.
    • Before you change any copy, submit the form on a phone and confirm the email arrives, then place a test order. A missing Email action in Elementor’s Actions After Submit or a From address that doesn’t match your domain can quietly lose every lead.
    • Google rates LCP at 2.5 seconds or less, INP under 200 ms and CLS under 0.1 as good. Never lazy-load the hero image. Only 40% of WordPress sites passed all three on mobile in 2024.
    • W3C’s guidance is to drop irrelevant or excessive form fields, not necessary ones. Every field needs a real label, and text, including placeholder text, needs 4.5:1 contrast.
    • Change one thing at a time and compare it with a dated baseline. Almost every published landing-page win changed several things at once, so none of them can say which change worked.

    Paid traffic doesn’t tell you when a page is broken. One r/smallbusiness poster spent $2,000 on ads at $75 a day without a conversion. Threads like that one keep finding the same thing: the visitor arrived, but something between the button and the inbox failed, or the page never said clearly what the ad had promised.

    A high-converting landing page isn’t a template. It’s a page that works, loads fast on a phone, and gives one clear offer to the people the ad sent. Check those in that order. Rewriting the headline won’t help if the form email never leaves the server.

    This article covers the diagnosis and the order of work. For layout and visual hierarchy, see our landing page design best practices. If you still need to build the page, start with how to build a landing page in WordPress.

    What counts as “high converting” depends on your offer, not a benchmark

    No single number qualifies a page as high converting. Unbounce’s 2024 benchmark report puts the median landing-page conversion rate at 6.6%, based on more than 41,000 landing pages, 464 million visitors and 57 million conversions. Those are pages built on Unbounce’s own platform, not on WordPress, and the median hides a wide spread.

    In the same data, industry medians run from 3.8% for SaaS to 12.3% for entertainment. Traffic source moves the number just as much. Unbounce reports averages of 19.3% for email traffic, 12% for paid social and 10.9% for paid search. A free download and a $900 service booking aren’t the same conversion. One r/marketing commenter pointed out that 8% might be fine for SaaS account creation and poor for product sales.

    Your real benchmark is your page’s own rate, over a fixed date range, using one definition of a conversion. Count completed actions: a submitted lead, a booked call, a paid order. Don’t count button clicks. Our guide to measuring landing page conversion rate shows how to set up that event so the number holds still while you make changes.

    Why a page that “doesn’t convert” is often a page that doesn’t work

    A page can look perfect and still lose every lead. The form shows its thank-you message while the email never leaves the server. Checkout sits behind a spinner. The tracking tag never fires, so a working page reports zero. The fixes for these are known, so test the real path before you change anything else.

    1. Open the page on a phone, on mobile data, from the ad’s actual URL with its tracking parameters.
    2. Fill in the form as a visitor would, and submit it.
    3. Confirm the lead arrived in the inbox or CRM where your team actually works. Check spam too.
    4. Confirm the thank-you page loads and your analytics recorded the conversion.
    5. If the page sells something, complete a test order with a test payment method and check that the order appears in WooCommerce.

    This test tells you the page works. It doesn’t tell you whether it persuades anyone. Still, it’s the cheapest check you can run, and it rules out the failures that copy changes can’t fix.

    When the form says “sent” but nothing arrives

    Start with the form’s own settings. Elementor’s documentation says Email has to be listed under Actions After Submit for notifications to go out at all. Elementor also warns that form emails can land in spam, and it recommends sending site email through a dedicated email service.

    The next most common cause is the From address. In one 2026 wordpress.org support thread, Contact Form 7 returned mail_failed because the server refused to send mail from an address that didn’t belong to the site. The suggested fix: use a From address on your own domain, put the visitor’s email in Reply-To, and install WP Mail Logging to see what the server said. If your form plugin stores entries in the WordPress admin, check whether submissions are landing there. If they are, the form works and only the email is failing.

    When checkout spins and never finishes

    WooCommerce’s troubleshooting docs say a spinner alone doesn’t tell you the cause. It can be a cached response, an extension conflict, a request blocked by a firewall or a server error. Find out first whether the store uses the Checkout block or the classic checkout. WooCommerce advises against switching checkout types as your first step, because the switch can hide the conflict instead of fixing it.

    Open the browser’s developer tools, find the failing request under Network, and read its status code. WooCommerce maps 403 to a firewall or authorization problem, 404 to a URL or rewrite problem, and 500 to a server-side failure. Separately, WooCommerce’s docs say to exclude Cart, Checkout and My Account from page caching. Before a buyer or tester tries again, check WooCommerce > Orders, because an order may already exist. Our guide to fixing WordPress issues without guessing covers the full sequence.

    When the numbers themselves can’t be trusted

    Check your measurement tools before you trust what they tell you. One r/Wordpress user reported an A/B testing plugin that wasn’t splitting traffic and wasn’t recording most sessions. Submit a test conversion and watch it appear in your analytics before you make any decision based on the data.

    Does the page say exactly what the ad promised?

    Once the page works, the most common advice from practitioners is message match. The visitor should see the ad’s promise in the headline, in the same words, within a second of arriving. Brochure-style homepages, rotating carousels and clever headlines fail this test because the visitor has to work out the offer for themselves.

    The fixes repeated across Reddit, X and agency write-ups are consistent:

    • One audience, one problem. A page for “anyone who needs a website” persuades nobody in particular.
    • Proof on the first screen. A named result, a sourced rating or a short case study (problem, fix, outcome) near the button, not in the footer.
    • Price and commitment in plain view. Fees, contract length and “card required” belong near the button. Visitors who find them in the FAQ later trust the page less.
    • One obvious next step. Repeat the same action after the proof. Don’t add a second, different offer.

    The supporting numbers are self-reported, so treat them as direction, not forecasts. A coaching business on r/smallbusiness said its ad return rose from about 2× to 3× ad spend after it stopped sending ads to the homepage and built a dedicated page. A home-inspection company on the same subreddit tested two calls to action. “Free Quote” converted 23% of visitors, and 29% of those leads became customers. “Contact Now” converted 20%, and 38% of those leads became customers. The button with the lower conversion rate brought in better leads. That is one reason to judge a page on qualified leads, not on submissions alone.

    Is it fast on the phone your visitors actually use?

    In Unbounce’s data, 83% of landing-page visits came from mobile, while desktop visitors converted 8% better. A slow page loses people before they read the headline. Google rates Core Web Vitals as good when Largest Contentful Paint is 2.5 seconds or less, Interaction to Next Paint is 200 ms or less, and Cumulative Layout Shift is 0.1 or less. Most WordPress sites still miss that bar. HTTP Archive’s 2024 Web Almanac found that 40% of WordPress sites passed all three on mobile, up from 28% in 2023.

    The most common self-inflicted problem is lazy-loading the hero image. Google’s lazy-loading guidance says not to lazy-load content that is likely to be visible straight away. On most landing pages, the hero image is the LCP element, so it should load first, with high priority. Lazy-load the images further down the page.

    Builder speed settings come with their own warnings. Elementor labels Element Caching and Optimized Control Loading as experimental. Its optimized image loading, which prioritizes the LCP image and lazy-loads below-the-fold images, is listed as stable. Third-party form embeds can undo your optimizations too. One wordpress.org thread reported Kit forms loading about 750 KB of JavaScript that skipped WP Rocket’s and Perfmatters’ delay settings.

    Make one change, then measure again. After you purge a cache, run the test several times: Kinsta’s docs note that the first request after a purge may be a cache MISS, which isn’t how cached visitors experience the page. For the wider responsive checks, see making a mobile friendly website.

    How many form fields should a landing page ask for?

    Ask for as many fields as your team needs to take the next step, and no more. W3C’s forms tutorial says excessive or irrelevant questions can increase abandonment. The wording matters, though: the advice is to cut irrelevant fields, not necessary ones. A quote form without the service area just moves the work to a phone call.

    The form also has to be usable. W3C says each field needs a real <label> whose for matches the field’s id. A placeholder is not a label. Explain required fields and expected formats before the visitor submits. Error messages should name the fix (“Enter a phone number with area code”), not just the fault. WCAG sets minimum text contrast at 4.5:1, or 3:1 for large text, and that applies to the pale grey placeholder text many themes ship with.

    How to tell which change worked when traffic is thin

    Record a baseline before you touch anything: the conversion rate, the date range, the device split and the traffic source. Then make one change and compare a similar period afterwards, with the same ads running. A split test only gives a clear answer when each version gets enough conversions. On a small-business page, an honest before-and-after comparison is usually the better tool.

    Published case studies show why this matters. Elementor’s 2018 NinjaOutreach write-up reports a rise from 0.73% to 5.8%. The same project moved hosts, cut plugins from 30 to 12 and redesigned the page at the same time, so no single change can claim the result. Keep a short log with the date, page, what changed, why, and the metric you expect it to move. A few weeks of that log will tell you more than any benchmark.

    How the work changes when the site does it

    Most of the fixes above are small: a From address, a headline, a cache exclusion, one image’s loading priority. The slow part is the process around them. A marketer who wants six words changed to match a new ad often waits in the same development queue as a site rebuild. Meanwhile the ad keeps spending.

    SiteSelf is an AI agent that works on your existing WordPress site. You describe the job in chat or from Telegram, and the agent does the work on the live site, checks the result and reports what changed. For landing pages that covers both kinds of work: editing page copy and layout and fixing a broken form or page.

    Example request: “Our spring offer page at /spring-offer is getting ad clicks, but no leads have come in since Tuesday. Find out whether the form is sending, fix it, and change the headline to match the ad: ‘Same-week oven cleaning across Leeds.’”

    The agent reads the form plugin’s notification settings and recipient. It checks whether the From address belongs to your domain, and it reads mail or error logs where they exist. Before it changes anything, it tells you what it is about to change, such as moving the From address to your domain and putting the visitor’s email in Reply-To, and whether that change can be undone. It edits the headline and then fetches the changed page to confirm the new text is live. Its report says what it changed, what it checked, and what it found but left alone.

    Access depends on the task. The SiteSelf Connector plugin from the WordPress.org directory covers content and settings work, like the headline and the form plugin’s options. Server logs, code and speed work need hosting (SSH) access.

    The limits matter here. The agent can’t read your inbox, so you still send a test submission and confirm the lead arrived. It doesn’t write to your ad account, analytics or CRM. If Elementor, Divi or Beaver Builder owns the page, the agent refuses the edit and says why. It doesn’t watch the page after the fix, either. Work happens when you ask for it. For cost, see pricing.

    Frequently asked questions

    Do I need a paid page builder to make a landing page convert?

    No. A landing page is an ordinary WordPress page with one job, and the block editor can build one. A builder can save build time, but no source in our research shows that paying for one raises conversions. Our article on whether you need a landing page builder covers the tradeoffs.

    My Elementor Landing Pages menu disappeared. Did I lose my pages?

    No. Elementor deactivated its separate Landing Pages feature for new sites in version 3.22 and deprecated it in Pro 3.27. Elementor says existing landing pages are not affected. Build new campaign pages as regular pages in the standard editor.

    Should a landing page remove the site navigation?

    Focused campaign pages often remove it, so the visitor’s only path is the offer. That’s a design choice, not a rule. Some landing templates hide the menu by design, which confuses site owners who didn’t expect it. Keep the menu if visitors need to check something before they commit, such as your service area.

    One call to action or two?

    Usually one primary action, repeated after the proof. The home-inspection test above suggests a gentler second option can catch visitors who aren’t ready yet. If you add one, track lead quality for each button, not just the click count.

    My landing page returns a 404 while the rest of the site works. What first?

    Go to Settings > Permalinks and click Save Changes without editing anything. WordPress rebuilds its rewrite rules when you do. Then clear every cache layer and test again. If the page is still missing, check whether a plugin or theme conflict is involved.

  • How to back up a WordPress site that will restore

    Key takeaways

    • Back up the database first and the files second. Restore in the opposite order: files first, then the database. That is the order WordPress’s Advanced Administration Handbook gives.
    • Tools > Export is not a backup. It saves content only, and WooCommerce’s docs say the XML export leaves out orders, products and settings.
    • A backup stored only in your hosting account can disappear with it, through a suspension, a compromised login or a host failure. Keep one copy somewhere you control.
    • Read the backup log, not the status label. On wordpress.org, one UpdraftPlus user reported a run marked as succeeded with no database archive and no failure email.
    • On a live WooCommerce store, restoring an older database removes every order placed since that backup. When only code broke, roll back the code and leave the data alone.

    Your hosting dashboard probably says backups are on. That sounds fine until something breaks and you have to answer three questions: what does the copy contain, where is it stored, and has anyone ever restored it? Most failed recoveries had a backup. The backup just had a problem nobody found until the day it was needed.

    This guide covers making a backup you can actually use: what it has to include, three ways to make one, how often to run it, where to keep it and how to prove it works. If you already have a backup and need to use it, our guide on restoring a WordPress site from backup covers that side.

    Why a WordPress backup is always two things

    A full backup is the database plus the files, taken at the same moment. Leave out either half and you can’t rebuild the site.

    The database stores posts, pages, comments, users, settings and most plugin data. On a store, it also holds products, orders and customers. The files are WordPress core, your theme, your plugins, the wp-content/uploads folder with every image you have uploaded, and wp-config.php. WordPress’s Advanced Administration Handbook on backups warns that downloading the WordPress folder does not include the database, because the database is stored separately. The handbook’s order is to back up the database first and then the files, and to restore the files first and then the database.

    The common mix-up is Tools > Export. That screen produces an XML file of your posts and pages. It contains no theme, no plugins and no settings. WooCommerce’s backup documentation says a store’s data lives in two places, the wp-content folder and the database, and that the XML export does not include orders, products or settings. Use the export to move content around, not as a backup.

    Treat every archive as sensitive. wp-config.php holds your database password and security keys, and a store’s database dump holds customer names and addresses.

    Which backup method suits your site

    There are three ways to do it, and many sites use two of them together.

    • Host backups. You don’t have to set anything up, and you can usually restore with one click or a support ticket. Ask your host what the backups include, how long they are kept and where they are stored. They often sit in the same account as the live site.
    • A backup plugin. You choose the schedule and send copies to storage you own, such as Google Drive, Dropbox or S3. It is one more piece of software to keep updated, and it can fail when the server runs out of memory, time or disk space. Our explainer on what a backup plugin does and where it fails covers the failure modes.
    • A manual backup. You export the database and copy the files yourself. You get full control and no plugin limits, but it takes more skill, and nothing happens unless someone remembers to do it. It works best as a one-off copy before a risky change.

    For an owner without a web team, a sensible default is to keep the host’s backups as one layer and add a plugin that sends copies off-site. Plugin choice matters less than people think. Practitioners on Reddit and wordpress.org disagree about which plugin is most reliable, and the same plugin works for one person and fails for another depending on the server. Pick one plugin, not two, and check that it works.

    How to make a manual backup

    You need your hosting control panel login, SFTP or file manager access, and access to phpMyAdmin or SSH. Check the database name in wp-config.php (the DB_NAME line) before you start, because exporting a staging database by mistake is easy to do.

    1. Pause writes if they matter. On a store or a busy membership site, pick a quiet hour. Orders that arrive while you copy can end up in one half of the backup but not the other.
    2. Export the database. In phpMyAdmin, select the database named in wp-config.php, open the Export tab and export all tables as SQL. Name the file with the site and the date and time.
    3. Copy the files. Using SFTP or the host’s file manager, download the whole WordPress folder, including wp-content and wp-config.php. Turn on hidden files so you also get .htaccess. Check that the transfer finished and didn’t just stop partway.
    4. Write down the environment. Note the WordPress, PHP and database versions. Restoring an old backup onto a newer PHP version is a known way for restores to fail.
    5. Move the copy off the server. Put the SQL file and the file archive together in storage outside your hosting account, encrypted if it holds customer data.

    With SSH access, the same backup is two commands, run from the WordPress folder:

    wp db export ~/backup-$(date +%F).sql
    tar -czf ~/files-$(date +%F).tar.gz .

    Then copy both files somewhere other than that server. Before you rely on the backup, open the SQL file and check that the tables you expect are there, including the plugin tables, and that the archive size makes sense for your site.

    How to set up a plugin backup that you can trust

    Installing the plugin is the easy part. What makes it work is the setup and a habit of checking it.

    • Include everything. Back up the database, plugins, themes, uploads and other wp-content folders. Leaving out uploads makes the archive smaller, but the backup is no longer complete.
    • Set a remote destination. A copy that stays in the plugin’s folder on your server is not off-site.
    • Turn on email reports. Then actually read them.
    • Read the log after the first run. In a 2026 wordpress.org thread, an UpdraftPlus user’s log showed errors and no database archive, yet the run ended as succeeded and no failure email was sent. Other people in the thread questioned the cause. Either way, the status label was not enough to go on.
    • Check the remote storage directly. In another thread, a remote upload failed, the local copies kept building up, and the server filled until the site went down. Open the Drive or S3 folder now and then and check that new files keep arriving.

    How often should you back up?

    Back up often enough that you never lose more work than you could stand to lose. WordPress’s handbook suggests weekly backups for small sites with little activity and daily backups for busy ones. Neither is a rule. A brochure site edited once a month is fine with weekly backups. A blog publishing every day needs daily backups. A store taking orders all day needs database backups more often than daily, and Reddit commenters suggest every few hours.

    Files usually change less than the database, so a common pattern is to back up the database daily and the files weekly. Separately from the schedule, take a fresh backup before every plugin, theme or core update, before a migration and before any developer starts work on the site.

    Where should backup copies live?

    Keep at least one copy outside your hosting account, in storage only you control. A backup in the same account as the site goes down with it: if the account is suspended, if someone steals the login, or if the host has an outage, you lose both. Practitioners call this a “3-2-1 style” setup: the live site, the host’s backup and one independent copy.

    Keep enough old copies to go back past a problem you didn’t spot right away. A hack often starts days before anyone sees it, and the newest backup may already include it. Our guide on what to do when your site is hacked explains why to restore only a backup you know is clean, and only after the way in has been closed.

    How do you know the backup will actually restore?

    Restore it somewhere that isn’t the live site. A host staging copy or a local install with LocalWP both work. Do it once now and then on a regular schedule. Some practitioners do it monthly. Restore the files, import the database, then check the pages, images, forms and logins, and count posts or products against the live site. A homepage that loads can still hide missing tables.

    A staging copy is a working site and can do real things. The Make WordPress Hosting handbook on staging warns that a clone can be indexed as duplicate content, can send emails to customers, and can run scheduled tasks that call payment or subscription services. Put a password on the copy, stop or catch outgoing email, switch payments to sandbox mode and turn off cron. If you push from staging back to live, check Settings > Reading on the live site afterwards. WordPress’s Reading settings documentation explains that “Discourage search engines” adds a noindex tag, so if that setting comes across from staging, search engines get the same instruction for your live site.

    What is different on a WooCommerce store?

    Restoring an older database takes the whole store back to that moment, and every order placed since then disappears. One store owner on r/woocommerce rolled back to fix a payments problem and lost several days of orders. Restoring the site doesn’t bring back the business records. You would have to match up the missing orders against your payment provider by hand.

    When an update breaks something, roll back the one plugin or theme that caused it and leave the database as it is. Use a partial restore if your tool offers one. Test updates on staging before they reach checkout. Never push a staging database over a live store, because the Make WordPress Hosting handbook notes that this overwrites orders, comments and users created since the copy was made.

    When to stop and get help

    Stop and ask for help if a restore freezes partway through, if a backup is too big for your host’s upload limit, if the site shows “There has been a critical error on this website” after a restore, or if you suspect the backup itself is infected. Running the same browser restore again rarely works unless something has changed, such as higher PHP limits or more free disk space. If a former developer or host ran the site, ask them for a backup before you rebuild anything. They often have one.

    If a backup before every update is the step you keep skipping, SiteSelf can take on routine WordPress updates and maintenance on request through chat. Before each change it says what is about to change and whether it can be undone. You still need your own off-site backup. A WordPress care plan should say who is responsible for that.

    Frequently asked questions

    Does WordPress back up my site automatically?

    Self-hosted WordPress doesn’t back itself up. Backups come from your host or from a plugin you install. On WordPress.com, whether you get automatic backups depends on your plan.

    Are my host’s backups enough?

    Usually not on their own. Ask what they include, how long they are kept and how a restore works. Then keep one more copy outside the hosting account so a suspension or a stolen login can’t take away both the site and its backups.

    Do I need the files if I have the database?

    Yes. The database brings your text and settings back, but not the images, theme or plugin code needed to display them. A full restore needs both halves, taken at the same time.

    Will restoring a backup undo recent changes?

    Yes. Anything stored in the database goes back to the moment of the backup, including posts, users, settings and orders. That is why a partial or code-only rollback is safer when only a plugin broke.

    Should one site run two backup plugins?

    Usually not. Two plugins double the load on the server and the chance of hitting its limits, and you end up with two restore processes to learn. One plugin with an off-site destination, plus the host’s backups, covers most sites.

    Who is responsible for backups, me or my developer?

    Whoever the contract names. If it names nobody, assume it’s you. Write down who backs up, how often, where the copies go and who pays for a restore.

  • What a multi site website is and when it fits

    Key takeaways

    • WordPress Multisite shares core files, plugins, themes and the user list across every site. Each site keeps its own content tables and its own uploads folder.
    • It fits a franchise, a school district or a group of closely related brand sites. Unrelated client sites usually belong on separate installs with a management dashboard.
    • Moving a site out of a network is a project, not a setting. One estimate puts the first extraction at four to six hours.
    • WooCommerce stores on one network are independent. Products, checkout sessions and user accounts are not shared unless you add an integration.
    • Most broken networks are infrastructure problems. Check DNS, then the Site Address, then SSL, then cookies, then rewrite rules.

    People search for “multi site website” when they mean three different things. Usually they mean WordPress Multisite, where one installation runs a network of sites. Some of them mean several separate websites run by one person or team. Some are a business with several locations, asking whether each location needs its own site. Each meaning has a different right answer, so work out which one you have before you change anything.

    Which kind of multi site website do you actually have?

    Here are the three setups side by side.

    SetupWhat it isUsually right for
    WordPress Multisite networkOne install, one database, many sites, managed from Network AdminSites that share an owner, a theme, a plugin set and a team
    Separate installs, one operatorEach site is its own WordPress install, with updates often handled from a central dashboardAgencies, freelancers and anyone running unrelated sites
    One site, many locations or servicesA single WordPress site with a distinct page for each location or serviceMost small businesses with several branches or service lines

    The rest of this article is mostly about the first setup, because that is where the expensive mistakes happen. If you already know you want a network, our WordPress Multisite installation steps cover the setup in detail. If your sites are separate installs, see how to manage multiple WordPress websites.

    What a Multisite network shares and what it keeps separate

    A network shares the engine but not the content. WordPress keeps one copy of core, plugins and themes, and one user list. Each site gets its own posts, pages and settings in its own database tables, and its own uploads folder under /wp-content/uploads/sites/, named by site ID.

    • Core: one copy. When you update WordPress, every site moves to that version at once.
    • Plugins: installed once. A Super Admin can network-activate a plugin so it runs on every site, or a plugin can be activated on individual sites. The code is shared either way.
    • Themes: installed once and enabled per site.
    • Users: one list for the whole network. A role on one site gives no role on another until someone adds it.
    • Content: separate per site. Sites cannot share posts or pages without a plugin or custom code.

    This is what makes the decision hard. Shared code helps when the sites are meant to stay the same. Once the sites start to differ, it gets in the way.

    When one network is the right call

    Multisite fits when the sites are really one operation: one owner, one set of rules, the same theme and plugins, and one team running them. WordPress’s own Before You Create A Network page opens by asking whether you really need a network, and it warns against creating one just to get sites that look different.

    Good fits that come up again and again: franchise locations on one template, a school district whose sites share a footer and admins, university departments, and closely related brand sites. Practitioners on X and Reddit sum it up the same way. If each site is basically the same site on the same theme and plugins, a network saves work. If not, it creates work.

    Site count matters less than similarity. One wordpress.org moderator suggests separate installs for two to four sites, with Multisite becoming more appealing above that. That is one person’s opinion. Most practitioners decide by asking whether the sites are alike, not by counting them.

    Interest is also cooling at the top end. In the State of Enterprise WordPress survey, the share of respondents who rated Multisite capabilities very or quite important fell from 56% in 2023 to 46% in 2024. The sample is small and the question measured importance, not usage, but the trend matches what practitioners are saying.

    Why unrelated sites usually belong on separate installs

    Every site on a network shares the same code and database, so they also share failures. One vulnerable plugin, one bad update, one weak password on a sub-site admin account or one traffic spike can reach every site. How far it spreads depends on the host. You still can’t fully isolate one site from the rest.

    Agencies feel this most. A client wants a plugin nobody else needs, so it goes onto the shared codebase. Another client wants to leave, so you have to extract their site. Plenty of agencies have moved client sites off a single network for these reasons. Some went back to separate installs and some moved to isolated hosting. One Reddit user split off about 15 client sites but kept a network of around 50 nearly identical ones, which is the right pattern.

    Leaving a network is harder than joining one. To extract a site you separate its database tables, media, users, URLs and plugin records. One estimate puts the first extraction at four to six hours, and it notes that some hosts charge per site to do it. Changing the network type later is also a migration. WordPress’s Multisite Network Administration page says that switching between subdomains and subdirectories takes more than editing SUBDOMAIN_INSTALL and the rewrite rules. The stored addresses, DNS, virtual hosts, TLS, redirects and cookies all have to change too.

    The practical rule: if you might want separate sites later, start with separate sites. You can get the single-dashboard convenience with a management tool across isolated installs. Our explainer on what a multi site manager manages covers that choice. If you’d rather not handle the routine client requests yourself, SiteSelf for agencies handles the work on each connected site when you ask for it in chat.

    Backups are the other hidden cost. In one wordpress.org thread about an 18-site network, a backup plugin’s free version could back up sub-sites manually, but it needed the paid version for scheduled backups and for the main site, and it could not back up the whole network as one package. Before you consolidate, test whether you can restore one site without touching the others. The usual steps to restore a WordPress site gain an extra step on a network: making sure you import only that site’s tables.

    WooCommerce stores on a network do not share anything

    Owners often expect one network to mean one catalogue. It doesn’t. WooCommerce’s installation docs say each sub-site stores its data in separate tables and runs on its own. Network activation does not share product databases, checkout sessions or user accounts. A customer who buys from two of your stores has two order histories.

    Shared stock needs an extension, such as WooCommerce’s Central Stock or a sync plugin. For two related product lines, the usual advice on r/woocommerce is one store with categories and landing pages.

    Does a business with several locations need several sites?

    Usually not. Advice in small-business and marketing communities favours one site with a distinct page for each location or service. Separate sites duplicate the maintenance, make it harder to compare conversions, and split your search authority across several domains.

    The location pages have to differ in more than the name. A page that is a clone of another with only the city swapped won’t do you any favours. Give each one real local content: staff, hours, the area served and reviews. Keep each one consistent with that location’s business profile.

    What breaks after setup, and the order to check it

    Most broken networks are infrastructure problems: DNS, the web server, certificates or cookies. A mapped domain only works when three layers agree: DNS and the host, the Site Address in WordPress, and SSL. Check them in this order.

    1. DNS and host routing. Sub-sites on a subdomain network that return “Not Found” almost always come down to a missing wildcard DNS record, or a wildcard document root that doesn’t point at the WordPress directory. Creating an empty folder for each subdomain makes this worse. DNS changes can take up to 24 hours to propagate.
    2. The Site Address. In Network Admin, go to Sites, then Edit, and set the Site Address (URL) to the full mapped URL, including https://. WordPress has supported this natively since version 4.5, according to the domain mapping handbook, so you don’t need an old mapping plugin.
    3. SSL for every domain. The primary domain’s certificate does not cover mapped domains. A host rule that forces all traffic to the primary domain makes every mapped site unreachable.
    4. Cookies. Only check these if login loops or “Cookies are blocked” errors remain on mapped domains. The handbook’s fix goes in wp-config.php after the network setup lines.
    5. Rewrite rules. Replace the old WordPress rules with the exact ones that Network Setup generates, and back up the file first. On Apache, confirm that mod_rewrite is on and that AllowOverride permits .htaccess.
    define( 'COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );

    That line fixes one login problem. It does nothing for DNS, SSL or routing.

    After a migration, “Error establishing a database connection” can mean more than bad credentials. On a network it can also mean the requested domain is missing from wp_blogs. A common cause is a search-replace that only reached one site. WP-CLI’s search-replace works on the current site unless you add --network. Our guide to changing a WordPress domain safely covers the network case.

    Plugins are the other common source of trouble. WP Activity Log 5.3.4 was reported to make a network’s main site show the wrong content, and the developer shipped a redirects fix in 5.3.4.1. Gwolle-Gb 5.1.0 failed to network-activate with a fatal error, and the person who reported it said 5.1.1 worked. Test on staging or on one sub-site before you network-activate anything.

    When to stop and get help

    Stop if you are editing server configuration on a host you don’t control, if the main site is now broken as well, or if you are about to run SQL from the handbook’s debugging page on a production database. Those examples cover specific cases and can do damage if copied blindly. Ask your host whether your plan supports Multisite before you start. Many setup problems on shared hosting turn out to be host limits.

    Frequently asked questions

    Is WordPress Multisite free?

    The feature is built into WordPress. Hosting is a different matter. Some managed hosts only allow Multisite on certain plans, so check with yours before you enable it.

    Should I choose subdomains or subdirectories?

    Neither is better in general. Subdomains need wildcard DNS if you want to create sites on demand, and certificate coverage for every subdomain. Subdirectories need only rewrite support. Choose carefully, because switching later is a migration.

    Is a Multisite network slower than separate installs?

    There is no controlled comparison. Forum consensus is that the network itself makes little difference, and that hosting and plugin load matter far more. Large networks that report slowness tend to also run a very large number of plugins.

    Can each site have its own plugins?

    Each site can activate plugins separately, but every plugin is installed on the shared codebase. A common hardening step is to let only Super Admins install plugins and themes.

    Can I add an existing site to a network?

    Yes. WordPress documents how to migrate single sites into a network. Do a test run on staging first, and confirm you could take the site back out if you needed to.

  • Choosing a WordPress theme for a landing page

    Key takeaways

    • Check three things before you pick a theme: it has a blank or full-width page template in the free version, it is lightweight, and it fits the person who will edit the page each week.
    • On a block theme like Twenty Twenty-Five you can build a landing page with patterns and a custom template, with no page builder at all.
    • Elementor’s separate Landing Pages feature is deprecated as of Elementor Pro 3.27, and those pages can’t be set as the homepage. Build on a regular Page with the Canvas or Full Width layout instead.
    • If you set a homepage and nothing changed, look at the block theme’s front-page.html template first. WordPress’s template hierarchy lets it override the Reading setting.
    • Canvas layouts remove the theme’s header and footer, which also removes navigation and privacy links. Put the legal links back by hand.

    Most people who search for a landing-page theme have the same problem. The offer is ready and the ad goes live on Friday, but the site’s header won’t go away and the form breaks on a phone. A new theme looks like the fix. Usually it isn’t.

    On a landing page, the theme supplies the frame: header, footer, content width, base typography and the page templates on offer. The page itself is built on top of that frame with blocks, a builder or a plugin. When the frame can’t step aside cleanly, switching themes rarely fixes it. The template and the build route do. If you want the build steps, our guide on how to build a landing page in WordPress walks through them. This article covers the choice that comes first.

    What should a landing-page theme actually give you?

    Three things. Theme demos rarely show any of them.

    A blank or full-width template in the free version. A landing page usually needs one of two layouts. One drops the header and footer completely. The other stretches content edge to edge and keeps the site frame. Check that the free tier includes the template you need before you build on the theme. A Virtue theme user on the wordpress.org forums tried a blank-slate plugin and several other fixes to remove the header and footer from one page. In the end, page-specific CSS was the workaround, because the theme’s own landing template was a paid feature.

    A light base. The theme loads on every page, so a heavy theme makes every landing page heavy too. Pressidium, a host, tested default installs on its own servers. Hello loaded in under 230 ms, Neve in under 250 ms, and Astra and GeneratePress in under 300 ms. OceanWP took about 500 ms. Read these as a direction, not a promise. They are a host’s own test on an empty site, and they say nothing about conversions.

    A fit with the editing model. Who will change the headline next month, and with what tool? A marketer who iterates every week needs something different from a developer who builds once and hands off. Decide this before you pick a theme, because the theme often pulls a builder in with it.

    If you want names to start from, roundups such as ThemeBurn’s keep coming back to Astra, GeneratePress, Kadence, Blocksy and Neve as free starting points. Hello is the usual choice under Elementor. ThemeBurn itself says there is no universal winner. These are affiliate-funded lists, so treat them as a shortlist and check each theme against the three points above. Our guide to installing a WordPress theme safely covers testing one without breaking the live site.

    Which build route matches who edits the page?

    Pick the route first. The theme follows from it. There are three common routes, and each one fails in its own way.

    A block theme with no builder

    On a block theme you can build the whole page in the WordPress editor. WordPress.com’s support guide describes the route: create a Page, add patterns or blocks, then create a separate template without a header or footer and assign it to that page. WordPress’s own default theme, Twenty Twenty-Five, ships patterns for landing and services pages. It is free and has more than a million active installs.

    The catch: WordPress.org’s documentation says the Site Editor only appears when a block theme is active. If Appearance shows Customize and no Editor, you have a classic theme, and block-theme tutorials won’t match your screens. Classic themes handle templates in PHP files instead.

    A lightweight theme plus a page builder

    This is the most common setup in practice. HTTP Archive’s 2025 Web Almanac found that about 60% of WordPress sites use a page builder. The theme stays minimal and the builder does the layout. In Elementor, the page layout setting decides how much of the theme shows. Canvas removes the theme’s header, footer and sidebars. Full Width keeps the header and footer and widens the content. Theme uses the theme’s normal layout.

    The tradeoff is lock-in. A page built in a builder is edited in that builder, and moving off it later means rebuilding the layout, not swapping a theme. Our article on whether you need a landing page builder covers when that cost is worth paying.

    A dedicated landing-page plugin

    Plugins such as PluginOps bundle templates and campaign features. Some store pages as their own content type, outside the normal Pages list. One PluginOps user on wordpress.org thought publishing had failed because the page wasn’t in Pages. It was live the whole time and reachable from the plugin’s View link. That matters later, when someone else needs to find the page or wants to make it the homepage.

    Why “I set the homepage and nothing changed” is rarely the theme

    WordPress has precedence rules, and they catch people out. Check these before you blame the theme.

    • The block theme’s front-page template wins. WordPress’s template hierarchy uses a front-page.html template for the front page even when Settings, Reading names a static page. Edit or remove that template, or build your landing design into it. Our guide to setting a page as the front page covers the full setting.
    • Elementor Landing Pages can’t be the homepage. Elementor’s help center says the feature is deprecated as of Elementor Pro 3.27. Those pages are a custom post type, so they never appear in the Reading dropdown. Save the design as a template, insert it into a regular Page, and set that page as the homepage.
    • The WooCommerce Shop page is set somewhere else. WooCommerce assigns its Shop page under WooCommerce, Settings, Products, and it can render as a product archive rather than a normal page. The homepage is still set in Settings, Reading.
    • A custom template is missing the content call. If Elementor says “Sorry, the content area was not found in your page. You must call the_content function in the current template, in order for Elementor to work on this page.”, the page template doesn’t output content. Elementor’s fix is to switch the page to Elementor Full Width or Canvas.

    If the page looks right in the editor and wrong when live, you are probably looking at a stale cache, not a template problem. Clear the caches one layer at a time: plugin, host, CDN, then check in a private window. On Elementor sites, also regenerate the CSS files. Our guide to a WordPress page not updating goes through that order. Clearing caches won’t fix a page that has the wrong template assigned, so check the template first.

    What a blank template takes away that you still need

    Removing the theme’s frame is the point of a landing page, and it also removes things you need. Elementor’s own example landing page keeps a footer with privacy and terms links. If your page collects email addresses, put those links back by hand.

    Headings are next. Many themes print the page title as an H1. If your hero also uses an H1, the page has two, and both screen readers and search engines lose track of the structure. Hide the theme title properly, or make the hero heading an H2. Our guide on hiding page titles safely shows how for each theme type.

    Last, check the form and the colours yourself. No theme does it for you. W3C’s WCAG 2.2 guidance sets minimum contrast at 4.5:1 for normal text and 3:1 for large text. Every form field needs a visible label, not just placeholder text. Bold hero designs often fail both checks.

    When the theme is fine and the page is slow

    A light theme only sets the starting weight. Hero videos, oversized images, animation libraries, chat widgets and tracking scripts are added at page level, and they can make any theme slow. One Salient theme owner on Reddit found the landing-page demo slow on mobile. They dropped the separate landing page and improved the existing product page instead. Sometimes that is the better campaign page anyway.

    Measure the finished page with your real form, analytics and consent banner loaded, not the theme demo. If you’d rather not do the template and layout work yourself, SiteSelf handles design changes on your existing site from a chat request. It checks the changed page and reports what it did. Pages owned by Elementor, Divi or Beaver Builder are refused, with the reason.

    Frequently asked questions

    Do I need a special landing-page theme?

    No. A general lightweight theme with a blank or full-width template does the same job, and it keeps working when the campaign ends. A dedicated landing theme can save setup time for one page, but it usually suits a growing site poorly.

    Do I still need a theme if I use a page builder?

    Yes. WordPress always runs an active theme, and builder layouts work with it. Elementor’s Theme, Full Width and Canvas options each decide how much of the theme shows. That is why builder users pick a minimal theme such as Hello: there are fewer styles to fight.

    Can I still use Elementor’s Landing Pages feature?

    Existing pages keep working, but Elementor says the feature is deprecated as of Pro 3.27, so don’t start new pages with it. Page building in Elementor in general is not deprecated. Build new campaign pages as regular Pages with Canvas or Full Width.

    Should my landing page be my homepage?

    Only if the whole site has one job. A page made for an ad or an email campaign usually works better at its own URL, with the normal homepage left alone. Then you can retire the campaign without redesigning the front of the site.

    Why can’t I find my published landing page in the Pages list?

    The plugin or builder that made it probably stores it as its own content type. Look in that plugin’s menu and use its View link to confirm the page is live. If you want it to be the homepage, rebuild it as a regular Page.