Blog

  • What a WordPress multi site manager actually manages

    Key takeaways

    • Multisite puts every site in one database, one file tree and one user table. A bad plugin update or a compromised Super Admin account can reach every site on the network.
    • MainWP’s own documentation says its Dashboard was not designed for Multisite networks and that MainWP does not officially support that setup. Dashboards are built for separate installs.
    • Unrelated client sites usually belong on separate installs with a central dashboard. Multisite fits related sites under one owner, such as locations, brands or language versions.
    • Multisite problems tend to sit in one of four layers: server routing (subsite 404s), plugin activation, mapped domains and cookies (redirect loops), and migrations run without a network-aware search-replace.
    • WooCommerce on Multisite gives you separate stores. WooCommerce’s docs say each subsite has its own tables and runs as an independent store.

    The second site is easy. By the fifth you are logging into five dashboards, updating the same plugin five times and keeping track of which client is on which PHP version. Then you search for a “WordPress multi site manager” and get two sets of answers that don’t match.

    The answers don’t match because the phrase means two different products. One is WordPress Multisite, a feature built into WordPress core. The other is a management dashboard that connects separate WordPress installs to one control screen. They solve different problems, and you can’t swap one for the other. Our broader guide on how to manage multiple WordPress websites covers every setup. This article covers the choice between these two and what each one actually manages day to day.

    Which “multi site manager” do you actually mean?

    If your sites live in one WordPress installation, you mean Multisite. If each site has its own install, possibly on a different host, you mean a dashboard. The table shows the difference.

    WordPress MultisiteDashboard over separate installs
    What it isOne WordPress installation running many subsitesA control site or service connected to each install by a plugin
    Shared between sitesCore files, plugin and theme code, database, user tableOnly the control screen
    Where you workNetwork AdminThe dashboard, plus each site’s own wp-admin
    What one failure can reachPotentially the whole networkUsually one site, unless the dashboard itself is compromised
    Typical fitRelated sites under one ownerUnrelated client sites

    The two don’t stack well. MainWP’s compatibility notes say its Dashboard “was not designed for managing WordPress Multisite networks” and that MainWP does not officially support Multisite setups. Its testing on Multisite is periodic and limited. So if you are building a network and plan to put a dashboard on top of it, check that first.

    Why the real decision is shared fate, not a single login

    Multisite shares fate by design. Every subsite runs the same plugin code from the same file tree and reads from the same database. That is where the efficiency comes from: one core update, one plugin update and one set of users. It also means one bad update, one compromised Super Admin account or one resource spike can turn into a network-wide event.

    Practitioners are careful about the detail here. A broken page on one subsite doesn’t automatically break the others. The risk comes from what the sites depend on together: the shared code, the shared accounts and the shared server. One r/webdev thread made the agency version of the point plainly. A single problem plugin or database change on a network of client sites could hit all the clients at once.

    Community advice comes out in the same place almost every time:

    • Multisite fits related sites. Think of one business with several locations, one organisation with several brands, or one site in several languages. These sites share an owner, governance, a theme and most of a plugin set.
    • Separate installs plus a dashboard fit unrelated clients. Each client gets its own plugins, its own users, its own backups and its own way back if something breaks. You still get central updates and reporting.
    • Leaving a network is real work. You can export a subsite that has grown apart from the rest into its own install, but it takes planning. Decide how a site would leave before you add it.

    WordPress’s own handbook opens its Multisite preparation page by asking “Do you really need a network?” before it lists any requirements. If the answer is yes, our walkthrough of WordPress Multisite installation covers the setup.

    What Network Admin manages, and what it doesn’t

    Network Admin is the Multisite manager. A Super Admin works there on sites, network plugins, themes and users. A few of its rules catch people out:

    • Plugins are installed for the whole network, then activated per site or for every site. “Network Activate” switches a plugin on everywhere. If you network-activate a plugin for one location’s booking widget, all the other locations get it too.
    • Deleting a plugin or theme removes it from the whole network. MainWP’s notes flag this for anyone connecting subsites to a dashboard. A delete that looks like it affects one site affects them all.
    • Users are shared, roles are not. An account exists once for the network, and you give it a role on each site separately. Having a network account doesn’t make someone an editor anywhere.
    • Site admins can’t manage plugins on their own. If a plugin is available on the network, that doesn’t mean every site admin controls it.

    Network Admin also has hard limits, because some of the work happens outside WordPress. WordPress’s handbook says subdomain networks need wildcard DNS and server routing that sends every subdomain to the same install, and that Multisite needs working rewrite rules. No WordPress setting creates a DNS record, a virtual host or a certificate. A very common mistake is to change settings and expect the server to follow.

    WooCommerce has its own limit. WooCommerce’s installation docs say each subsite on a network has separate tables and runs as an independent store. Activating WooCommerce for the whole network doesn’t share products, checkout sessions or customer accounts between stores. Some extensions also don’t support network activation, and some paid licences count each subsite as a separate site.

    Where a Multisite network breaks, layer by layer

    Multisite failures usually fall into one of four layers. The order below is how often each comes up in the support threads and host docs we reviewed. It isn’t a measured frequency. Find the layer that matches your symptom before you try any general “multisite fix”.

    SymptomLayerWhere to look first
    Main site works, subsites return 404DNS and server routingWildcard DNS, document root, rewrite rules, Apache AllowOverride
    “The plugin could not be activated because it triggered a fatal error”, blank screen, missing tablesPlugin activationPHP error log, the plugin’s Multisite notes, activating per site
    Login loop, “Cookies are blocked or not supported”, ERR_TOO_MANY_REDIRECTSMapped domains, HTTPS, cookiesSite Address, home and siteurl, SSL for each domain, host redirect settings
    “Error establishing a database connection” after a moveMigrationwp_blogs against DOMAIN_CURRENT_SITE, and how the search-replace was run

    Subsite 404s mean routing, not WordPress

    WordPress’s network debugging guide says a working main site with child sites that return 404s points to routing or rewrite problems. Check that subdomains reach the same document root, that .htaccess holds the rules Network Setup generated, and that the server reads them. If your host won’t let you turn rewrites on, the handbook’s answer is to contact the host.

    Plugin activation fails network-wide but works per site

    WordPress.org support threads show plugins that crash on network activation but run fine when activated site by site. They also show plugins that never create their per-site tables. Read the error log before you retry, and check for an updated version. In one 2026 thread, a guestbook plugin’s network activation fatal error was fixed in the next point release.

    Mapped domains loop when URLs disagree

    A mapped domain has to agree in three places: the Site Address in Network Admin → Sites → Edit, the site’s home and siteurl options, and the server’s redirects and certificate. Host settings can work against you here. Kinsta’s docs warn that its “force all traffic to primary domain” option stops subsites from being reached on a mapped-domain network, and recommend forcing HTTPS on all live domains instead.

    Migrations need a network-aware search-replace

    WordPress stores full URLs in the database, some of them inside serialized data that breaks under a plain text find-and-replace. WP-CLI’s search-replace handles serialized data, but on a network it only touches every site when you tell it to:

    wp search-replace 'https://old.example.com' 'https://new.example.com' --network --dry-run

    Run it once with --dry-run to see what would change, then run it without the flag. Pantheon’s Multisite docs note that WP-CLI can return “Error: Site not found” when the command runs without the right site context. For a full domain move, our guide to changing a WordPress domain safely covers the order of steps.

    What a dashboard for separate installs manages, and where it breaks

    A dashboard is a separate control layer. MainWP’s setup is typical: you install the Dashboard on a dedicated, clean WordPress site and a Child plugin on each site you manage. Other services use a hosted console and a connector plugin. In both cases you get bulk updates, backups, uptime checks and client reports, while every site stays its own install.

    The trouble people report comes from that extra layer:

    • “Up to date” isn’t always true. Users on r/Wordpress report several tools sometimes missing available updates. Check against a site’s own Dashboard → Updates screen now and then.
    • Connections fail for reasons your browser can’t see. MainWP points out that the Dashboard reaches each site over a different path from your browser. A site can load fine for you and still not connect. Use HTTPS, confirm the Child plugin is active, and run Test Connection.
    • Self-hosted dashboards depend on cron. If the dashboard’s scheduled jobs don’t run reliably, updates and checks quietly stop.
    • Bulk actions slow down at scale. Practitioners describe bulk theme updates getting slow at around 100 sites.
    • The console is the most valuable target you own. One Reddit user described a compromised management console that spread to the connected sites. Give the dashboard its strongest password, two-factor login and the fewest admins.

    The habits matter more than the tool you pick. Update one canary site first, then the rest. Take backups, and make sure you have actually restored from a backup at least once. Give juniors and freelancers the narrowest access that lets them do the job. After an update, load each site’s checkout, contact form or booking page, because a green tick in a dashboard doesn’t show what visitors see. If you sell this as a retainer, write down what it covers. Our explainer on what a care plan should include sets out the usual scope.

    What changes when an agent does the site work

    Dashboards are good at the same action across many sites: update this plugin everywhere, back up everything tonight. They don’t do the other half of a portfolio, which is the steady stream of small requests that are different on every site. One client needs new opening hours, another wants a redirect fixed, a third has a contact form that stopped sending. Each one is a few minutes of work wrapped in a login, a hunt for the right screen and a check afterwards.

    SiteSelf takes that second kind of work. You tell the agent what needs doing in chat or from Telegram. It makes the change on the live site, fetches the changed page to check the result, and reports what changed and what it checked. It joins the stack you already run. Your dashboard, backups and uptime monitoring stay where they are. Our page for agencies handling client site requests shows how this fits a portfolio.

    Example request: “On the Harbor Dental site, Saturday hours are now 9 to 1. Update the Contact page and the footer, and tell me if any other page still says closed on Saturdays.”

    • What the agent does: Before it changes anything, it says what it is about to change and whether the change can be undone. Then it edits the Contact page, updates the footer, and searches the site’s content for other mentions of Saturday.
    • What it checks: It fetches the Contact page and a page that shows the footer, then reports what it found, including any other pages that still mention the old hours. What it did is recorded.
    • What access it needs: The SiteSelf Connector plugin from the WordPress.org directory covers content and settings. If the footer text is hard-coded in theme files, the agent needs hosting (SSH) access for that part.
    • What it can’t do: If the Contact page is owned by Elementor, Divi or Beaver Builder, the edit is refused when the agent gets to it, and it tells you why. It doesn’t update the clinic’s listings on outside platforms. Third-party systems are read at most. It doesn’t monitor the site afterwards either. Work happens on request.

    The point is the cost of coordination. Changing one line of opening hours shouldn’t need a ticket, a login hunt and a reminder to check the page afterwards. If you want to know what this costs across a portfolio, see SiteSelf pricing.

    Frequently asked questions

    Is WordPress Multisite free?

    Yes. You turn it on by adding define('WP_ALLOW_MULTISITE', true); to wp-config.php and running Tools → Network Setup. There is no licence. The cost is hosting, and not every host plan allows a network, so check your plan before you start.

    Can each site on a network have its own domain?

    Yes, through domain mapping. Point the domain at the network’s server, set it as the subsite’s Site Address in Network Admin → Sites → Edit, and make sure the site’s URLs and its SSL certificate match. Mismatches cause cookie errors and redirect loops.

    Can I switch from subdirectories to subdomains later?

    Yes, but changing SUBDOMAIN_INSTALL isn’t enough. WordPress’s handbook says site addresses and server configuration have to change too, and subdomains need wildcard DNS. Treat the switch as a migration and take a backup first.

    Can I put my existing separate sites into one network?

    Yes, as a migration. Back up the originals, create the subsites, export and import the content, and only remove the old installs once everything checks out. Watch for real folders that clash with subsite paths, and remember that users become shared across the network.

    Is Multisite slower than separate installs?

    There is no Multisite-specific speed benchmark to point to. A well-cached network can run fast. The real risk is shared resources: one busy subsite can slow down its neighbours on the same server.

    Can I run MainWP on a Multisite network?

    Some features may work, but MainWP says it doesn’t officially support Multisite. Its notes describe update notices that appear once per subsite for a single network-wide update, and deletions that remove a plugin or theme from the whole network. If you do it anyway, check what each action will affect before you run it.

  • Opt in forms on WordPress that actually add subscribers

    Key takeaways

    • Vendor data puts popup conversion at about 2.1% on average (Omnisend, 1.24 billion displays in 2025). Popups shown after 6 to 10 seconds converted at 2.4%, against 1.9% for those shown at 0 to 1 seconds. No single ‘average WordPress opt-in rate’ exists.
    • Google’s Search Central guidance lists newsletter signup as a normal use for dialogs. It recommends a small banner over a dialog that covers the content.
    • The most common reasons a working-looking form loses signups: a required field in the email service that the form lacks, cached pages serving expired security tokens to logged-out visitors, and double opt-in contacts sitting as pending.
    • Test as a logged-out visitor with a fresh address, and read the plugin’s integration log before you rebuild anything or change API keys.
    • On WooCommerce, check whether your opt-in extension supports the Checkout block before you switch back to classic checkout. WooCommerce warns that switching can hide the real problem.

    A visitor types an email address, clicks Subscribe and sees “Thanks.” The address may still never reach your list. The submission, the subscriber record and the confirmation email are three separate things. On WordPress, any one of them can fail while the other two look fine.

    That is why this guide treats an opt-in form as a pipeline, not a widget. It covers which form types and setups exist, what conversion numbers mean, how to ask for consent cleanly, and why forms that look fine still lose people. If you only need a general enquiry form, our guide to adding a contact form in WordPress covers that separately.

    What counts as an opt-in form, and which setup do you need?

    An opt-in form is any form where a visitor agrees to join an email list. It can sit inline in an article, open as a popup or slide-in, run as a bar across the top of the page, or be a checkbox on another form such as contact or checkout.

    WordPress has no single opt-in feature, so the setup depends on what you already use:

    SetupExamplesGood forWatch for
    Your email provider’s embed code or hosted signup pageMailchimp, MailerLite embedsA simple footer or page formStyling clashes; load the script only where the form appears
    A form builder with an email integrationWPForms, Fluent Forms, Gravity Forms, ForminatorSites that already run a form pluginField mapping to the email service
    A dedicated popup or opt-in pluginOptinMonster, Popup Maker, HustleTriggers, targeting, A/B testsFree tiers that lock the feature you need
    An on-site newsletter pluginMailPoet, NoptinKeeping subscribers inside WordPressYou now own email delivery from your server
    A checkout checkboxWooCommerce Subscribe to NewsletterStores capturing buyersBlock vs. classic checkout compatibility

    For one footer signup, a provider embed is often enough. A plugin earns its place when you need triggers, targeting by page, or testing. A slim announcement-style bar is another option, covered in our guide to adding a hello bar to WordPress.

    What conversion rate should you expect?

    Expect a few percent for popups. Then treat any benchmark as a direction to test, not as a target. The large datasets come from vendor platforms, not from WordPress sites, and they measure different things.

    Omnisend analysed 1.24 billion popup displays from 2025 and reported a 2.1% average conversion rate. Popups that appeared after a 6 to 10 second delay converted at 2.4%, against 1.9% for those shown in the first second. Sleeknote’s dataset of more than 516 million views reports 4.42% for timer-triggered popups and 2.64% for scroll-triggered ones. Those two vendors define and sample differently, so don’t average them together.

    The number that matters more is further down the funnel. One marketer on r/marketing described roughly 3% popup signup and 3% lead-to-sale conversion. After removing the popup, overall lead-to-sale conversion stayed about the same. Another described a lead-magnet page converting around 30% that produced zero booked sales calls. Count confirmed subscribers and what they later buy, not raw submissions.

    Should it be a popup or an inline form?

    Use both if you like, but keep the popup out of the way of the content. Google’s Search Central guidance names newsletter signup as a legitimate reason to use a dialog. It also warns that intrusive interstitials, the overlays that hide the page, make content harder to reach and can hurt search performance. It recommends a small banner that leaves the content usable instead of a full-page overlay.

    In practice, that gives four rules:

    • Delay the popup. Don’t fire it the moment the page loads.
    • Use exit intent on desktop and a time or scroll trigger on mobile, a split many practitioners recommend.
    • Cap how often the popup repeats, and make the close button as obvious as the submit button.
    • Put an inline form after the reader has seen something useful, not only in the footer.

    Popups are a real tradeoff, not a settled question. Some teams report measured revenue gains from a modal. Others see shoppers deliberately abandoning carts to wait for the discount email. Run a split test long enough to measure sales, not just signups.

    How do you ask for the address and the consent?

    Ask for an email, with name optional, and say exactly what the person will get. Every extra field is another place to quit. In one r/marketing report, a quiz with 16 or more questions lost 22% of users at the email question. Name the thing (“the Sunday briefing, one email a week”) and make the button say the action (“Send my first briefing”), not “Submit”.

    The consent checkbox has accessibility rules that people often break. W3C’s Web Accessibility Initiative says each control needs a label that is programmatically tied to it, so a screen reader announces what the checkbox means. WCAG 2.2 success criterion 3.3.1 requires that a detected error is identified and described in text, so a red border on its own is not enough:

    <input type="checkbox" id="news-optin" name="news_optin">
    <label for="news-optin">Email me the weekly briefing (optional). Unsubscribe anytime.</label>

    Keep the marketing checkbox unticked and separate from the thing the visitor asked for, such as a quote or an order. On the legal side, the FTC’s CAN-SPAM guidance covers US commercial email and requires a working opt-out and a valid physical postal address. Rules elsewhere, including the EU, are stricter. Have your wording checked for the countries you email.

    Double opt-in sends a confirmation link and holds the contact as pending until someone clicks it. It costs some signups and filters out typos and fake addresses. Some services require it. Decide based on list quality, not on whether it hides a delivery problem.

    How to set one up on WordPress

    1. Set up the list first. In your email service, choose single or double opt-in, and check which fields the list marks as required.
    2. Build the form. Use your provider’s embed, your existing form plugin’s integration, or a popup plugin. Map only the fields the list needs.
    3. Place it. Add it with a block, shortcode or widget area, and set the display rules: which pages, which trigger, how often.
    4. Exclude it from caching and script optimisation if your cache plugin or CDN offers per-page or per-script exclusions.
    5. Test as a stranger. Open a private window, use a new address you control, submit, confirm, and check that the contact shows as subscribed in your email service. Repeat on a phone and using only the keyboard.

    A correct result: the confirmation email arrives in the inbox, not spam. The contact moves from pending to subscribed. The first real email has a working unsubscribe link.

    Why a form that says “thanks” still loses subscribers

    Most failures come from configuration, caching or email delivery, not from a broken plugin. The message visitors see, such as “An error occurred, please try later”, rarely names the cause. The plugin’s integration log usually does. MC4WP, for example, keeps its log under MC4WP, then Other. Here are the causes in rough order of how often they turn up in support threads.

    A required field the form doesn’t send

    If the email service marks a field as required and the form doesn’t include it, the service rejects every submission. Hookedoncode described an email-only form failing because Mailchimp required First Name. Making that field optional in Mailchimp fixed it after two hours of searching and three minutes of work. Duplicating the broken form copies the same problem, so fix the original.

    Cached pages and deferred scripts

    The form works while you’re logged in and fails for the public. Page caching can serve an expired WordPress security token, called a nonce, to logged-out visitors. Script optimisers can defer or combine the JavaScript that submits the form. MailPoet’s changelog records 2026 fixes for signup forms failing when cached nonces expire. Gravity Forms has a whole FAQ page on cache and script optimiser problems. Turn optimisation off once to confirm the cause. Then exclude only the form page and the form’s scripts, not the whole site.

    A pending contact that looks like a failure

    With double opt-in, the popup can record a conversion while the email service holds the contact as pending. A support reply on the OptinMonster forum explains exactly this with Mailchimp. Check the contact’s status before you assume the form is broken.

    The confirmation email never arrives

    In one MC4WP thread, the log said success but confirmations were landing in spam. The owner traced it to a Mailchimp sending domain that hadn’t been verified. If your site sends the email itself through an on-site plugin, WordPress mail needs authenticated SMTP or an email API. Some hosts restrict ports: WP Engine blocks port 25 and recommends port 2525, with 587 and 465 also allowed. Fix delivery rather than switching off double opt-in.

    Styling that makes a working field look broken

    A wordpress.org thread about a “broken” Mailchimp footer form turned out to be white text on a white background. A few lines in Appearance, then Customize, then Additional CSS fixed it. Before you blame the connection, type into the field and highlight it.

    A missing checkout checkbox on WooCommerce

    Extensions that hook into classic checkout may not appear in the Checkout block. WooCommerce documents that its Subscribe to Newsletter extension supports both classic and block checkout. Its troubleshooting docs warn that switching checkout type can hide a compatibility problem instead of fixing it. Check the extension’s compatibility first, and switch only as a deliberate workaround.

    Conflicts and firewall rules

    If none of the above explains it, isolate the problem. The Health Check plugin’s troubleshooting mode turns off plugins and switches the theme for your admin session only, so visitors see the normal site. Security plugins and server firewalls such as Wordfence or ModSecurity can also block a form’s POST request. Test with protection briefly off, then allowlist the specific request and turn protection back on. Check the plugin’s changelog for your installed version too. Sometimes the bug is real and already fixed.

    Stop and get help when the log shows API errors you can’t read, when the problem only shows up on the live server, or when the fix means editing theme code. If you’d rather not chase it yourself, SiteSelf can handle fixing a broken WordPress form on request. Cache and code fixes need hosting access, and your email platform’s settings stay yours to change.

    Frequently asked questions

    Do I need a plugin for an opt-in form?

    Not always. For a single footer or page form, your email provider’s embed code or a link to its hosted signup page is often enough. A plugin helps when you want triggers, page targeting or A/B testing. Either way, test it logged out.

    Should subscribers live in WordPress or in an email service?

    On-site newsletter plugins keep the list in your database and send from your server, so delivery becomes your job. External services handle sending reputation and authentication for you. Many practitioners prefer the external route for deliverability. Plugins like MailPoet exist for people who want to avoid a separate subscription.

    Why doesn’t my popup appear when I test it?

    Usually because the plugin has set a dismissal cookie, or because it already recognises you as a subscriber. Display rules can also exclude the page you’re on. Test in a fresh private window before you look for a deeper fault.

    How do I stop fake signups?

    Double opt-in keeps unconfirmed addresses off your active list, and you can delete them periodically. Add a CAPTCHA or an invisible token check if bots get through. Server-side validation catches what browser checks miss.

    Can I reuse a test address after deleting it from Mailchimp?

    Not reliably. A deleted contact may be blocked from being added again straight away, which looks like a form failure. Use a fresh address for each test.

  • Changing the domain name of a WordPress site safely

    Key takeaways

    • Get the new domain reaching your server over valid HTTPS before you edit the WordPress Address and Site Address. Doing it the other way round is the classic lockout.
    • Replace old URLs with WP-CLI’s search-replace or Better Search Replace, run a dry run first and skip the guid column. A raw SQL REPLACE() corrupts serialized plugin and theme settings.
    • Redirect every old URL to its matching new URL with a single-hop 301. Google says to keep redirects for at least a year. Keep the old domain registered after that.
    • On WooCommerce, a new domain can put WooPayments into Safe Mode and switch Subscriptions to staging behaviour, which turns off automatic renewals.
    • Search Engine Journal’s study of 892 domain migrations found an average of 523 days to win back estimated organic traffic. Expect a dip even when every step is right.

    Under Settings → General, WordPress has two fields: WordPress Address (URL) and Site Address (URL). Change them and the site answers on the new domain within seconds. The old domain is still in your post content, theme options, plugin settings, inbound links, Google’s index and, on a store, your payment connection.

    So a domain change is a sequence of separate jobs, and each one can fail on its own. The order below is the one WordPress’s own migration handbook and Google’s site-move guidance support. Before you start, have a backup of files and database that you have actually restored somewhere, and keep it until the new domain has been running cleanly for weeks.

    Is this a domain change, a host move, or both?

    A domain-only change leaves the files and database on the same server. You point the new domain at the server and update what WordPress stores. A host move copies files and the database to a new server. The handbook notes that if you keep the same domain, you can usually move hosts without touching the site URLs at all.

    Doing both at once adds problems a domain change alone never has: database credentials and $table_prefix in wp-config.php, a different PHP version, missing files. If you can, split the work. Move hosts first, confirm everything works, then change the domain. Leave the permalink structure and the design alone while you do either one. When three things change together and traffic drops, you can’t tell which one caused it.

    What has to be ready before you touch WordPress

    Three things, in this order.

    • The new domain reaches your server. Add it at your host as an alias, add-on or primary domain, then point DNS at the server. If email runs on the domain, change only the A or CNAME records. Kinsta’s migration docs say the same: switching nameservers can drop your MX records, and the mail goes with them.
    • HTTPS works on the new domain. Issue the certificate for both new-domain.com and www.new-domain.com. WooCommerce’s SSL docs warn that switching a site to HTTPS before the certificate is valid can make it inaccessible.
    • The old domain keeps a valid certificate. An HTTPS visitor has to finish the secure connection before your server can send them a redirect. An expired certificate on the old domain means a browser warning in place of a redirect.

    Test it by opening https://new-domain.com. If the browser accepts the certificate and you land on the old domain, that is the right result at this stage. It proves the request reached your WordPress install, which is still redirecting to the address it has stored.

    How to change the domain, step by step

    1. Update the two addresses. In Settings → General, set both fields to https://new-domain.com. Leave them different only if WordPress core sits in a subdirectory on purpose. Saving logs you out because login cookies belong to a domain, so log in again at new-domain.com/wp-admin. If the fields are greyed out, WP_HOME or WP_SITEURL is defined in wp-config.php. The wp-config handbook page explains that these constants override the dashboard but never update the database. Edit them too, or remove them once the database holds the new values.
    2. Replace the old URLs stored in the database. See the next section. This is the step people skip most often.
    3. Refresh permalinks and caches. Open Settings → Permalinks and click Save without changing anything. If you have custom rules in .htaccess, check they survived. Then clear every cache: the caching plugin, the host’s server cache, the CDN and any object cache. A homepage that loads while posts return 404 almost always means stale rewrite rules or a cache. Our guide to permalinks that stop working covers that case.
    4. Redirect the old domain, page to page. See the redirects section below.
    5. Tell Google. Verify both domains in Search Console. Once the redirects are live, submit Change of Address from the old property. Then submit the new sitemap and check that robots.txt and Settings → Reading are not blocking search engines.
    6. Test as a visitor. In a private window, open a post, an archive, a media-heavy page and your contact form. Submit the form and confirm the email arrives. Open the browser console and look for mixed-content warnings and redirect loops.

    Why a find-and-replace in phpMyAdmin breaks settings

    Plugins and themes save settings as PHP-serialized data, and that format records the length of every string. Run a raw SQL REPLACE() and swap old-domain.com for a name of a different length, and the recorded lengths no longer match. PHP can’t read the value, so the widget, theme option or plugin setting silently falls back to its default.

    The handbook recommends a tool that rewrites the lengths correctly. With command-line access, use WP-CLI’s search-replace:

    wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guid --dry-run
    wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guid

    Read the dry run’s table counts before you run the real thing. Repeat for http:// and www forms if your site still has them. Always include the scheme in the search string. A bare old-domain.com also rewrites info@old-domain.com in your forms and notification settings. Skip guid because WordPress says post GUIDs should never change. On multisite, WP-CLI only touches the current site’s tables unless you add --network. The handbook calls multisite domain changes “more complicated” and asks for a manual review of the network tables. Our multisite setup guide explains which domain values live where.

    Without SSH, use Better Search Replace. It handles serialized data, lets you pick tables and offers a dry run. Page builders often keep their own generated CSS with absolute URLs, so regenerate those files from the builder’s tools screen afterwards. Then search the page source on the live site for the old domain. A clean report from the tool tells you what it processed, which is not the same as every URL a visitor sees.

    Why redirects decide the SEO outcome

    Every bookmark, backlink and search result points at the old domain. Google’s site-move documentation asks for server-side 301 or 308 redirects from each old URL to its matching new URL, in one hop. Keep them for at least a year. Sending every old URL to the homepage is the classic mistake: Google can treat those as soft 404s, and visitors lose the page they asked for.

    If your paths stay the same, one rule on the old domain handles it. On Apache, put it at the top of .htaccess, above the WordPress block:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?old-domain\.com$ [NC]
    RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]

    This keeps the path, so old-domain.com/services/ lands on new-domain.com/services/. Test the HTTP, HTTPS, www and non-www versions of a few deep URLs and check that each one takes a single hop. Update any existing redirect rules that still point at the old domain, or they will turn into chains. On Nginx or a managed host, use the host’s redirect tool. Our guides to htaccess 301 redirects and how 301s affect SEO go further.

    Keep renewing the old domain after the year is up. The redirects stop working the day the registration lapses, and someone else can buy the domain and its backlinks.

    What changes on a WooCommerce store

    Payments notice the new URL. WooCommerce’s WooPayments Safe Mode docs say a new domain, a clone, or two URLs pointing at one install can trigger Safe Mode. Choose “Transfer your connection” to keep your account and history. “Create a fresh connection” starts over without the history. Payments can carry on in Safe Mode, but dispute and refund updates may not arrive reliably.

    WooCommerce Subscriptions compares the current URL with the one stored at activation. When they differ, it switches to staging behaviour and turns off automatic payments and subscription emails. Confirm the live status after the move. If an old copy of the site is still running, shut it down. The same docs warn that a duplicate can keep processing real renewals. Then place a test order, and check refunds and renewal settings as well as checkout.

    What a correct result looks like

    The admin stays on the new domain after you log in again. Searching the page source of a few pages finds no internal references to the old domain. Every old deep link arrives at its matching page in one 301. The form email arrives. Search Console shows the new sitemap being read. On a store, WooPayments shows no Safe Mode notice and Subscriptions reports itself as live.

    Expect search traffic to wobble anyway. Google calls temporary fluctuation normal and says a small or medium site can take a few weeks or more to settle. Search Engine Journal’s study of 892 domain migrations found an average of 523 days to win back estimated organic traffic, and 17% had not recovered after 1,000 days. Those figures come from third-party traffic estimates across all kinds of sites, so treat them as a reason to get the redirects right, not as a forecast for your site.

    If something went wrong

    Match the symptom to the cause before you change anything else.

    • Locked out, or the site sends you to the wrong place. You probably changed the URLs before the new domain resolved. Set them back with wp option update home and wp option update siteurl, or edit the home and siteurl rows of wp_options in phpMyAdmin. Defining WP_HOME and WP_SITEURL also gets you in, as a temporary fix. Our login troubleshooting guide covers the rest.
    • ERR_TOO_MANY_REDIRECTS. Usually the two URL fields disagree on http versus https or www, or .htaccess, the host and a CDN are each forcing a different version.
    • Redirects back to the old domain. A constant in wp-config.php, a cached redirect, or stored URLs the replace missed.
    • “Error establishing a database connection” or a white screen. This almost always means a host move happened at the same time. Check the credentials and $table_prefix in wp-config.php.
    • The browser can’t find the domain at all. That is DNS, not WordPress. See our guide to DNS_PROBE_FINISHED_BAD_CONFIG.

    Stop and restore the backup if the admin stays unreachable, errors appear across the site, or settings look corrupted and you can’t say why. On a store, write down every order placed since the backup before you restore over it. If you would rather hand off the WordPress side, SiteSelf can run the site changes through chat: the search-replace and redirects with hosting access, then a fetch of the changed pages to check them. The DNS, registrar and Search Console steps stay with you.

    Frequently asked questions

    Will changing my domain break my email?

    It can. Email follows the domain’s MX records, not WordPress. If you change only the A or CNAME record that points the website at your host, mail keeps flowing. Problems start when someone moves the nameservers and the MX records don’t come across.

    Can I change the domain and the URL structure at the same time?

    You can, but every old URL then needs its own mapping instead of a single path-preserving rule. Diagnosing a traffic drop also gets harder. Change the domain first, let it settle, then restructure if you still need to.

    Does Change of Address cover HTTPS or www changes?

    No. Google’s help page says not to use the tool for moving from HTTP to HTTPS or between www and non-www on the same domain. Those changes only need redirects and correct canonical tags.

    Is a traffic drop after the move proof that something failed?

    Not on its own, since Google expects some fluctuation. A large or lasting drop with old URLs showing as 404 in Search Console points to missing or broken redirects. Check the redirect and indexing status of the pages that lost traffic before you rewrite their content.

    Why use WP-CLI when Settings → General already changed the domain?

    Those two fields only change where WordPress says the site lives. Links in posts, image URLs, widget settings and plugin options keep the old domain until a serialization-aware search-replace rewrites them.

  • How to edit text in WordPress, wherever it lives

    Key takeaways

    • Most failed text edits happen in the wrong place. The words belong to a template, a synced pattern, a builder widget, a WooCommerce field or a theme setting, not to the page you opened.
    • If you edit a template, template part or synced pattern, the change shows on every page that uses it. Detach a synced pattern when you only want to change one page.
    • W3Techs detects Elementor on 31.5% of WordPress sites in its November 2026 data. Edit those pages in the builder and don’t switch between the builder and the block editor.
    • “Updating failed. The response is not a valid JSON response” means the save never happened. Re-save permalinks, check Site Health, then ask your host whether something is blocking /wp-json/.
    • If your edit saved but the old text still shows, you are looking at a cached copy. Clear the browser, plugin, host, CDN and builder caches in that order. Google can take days to weeks to update its snippet.

    A price changed yesterday, the Saturday hours are wrong, or there’s a typo in the homepage headline. Typing the fix takes ten seconds. Most of the time goes into finding where WordPress keeps that sentence. On a plain block editor page the steps are short. On a site with a page builder, a block theme, WooCommerce or a commercial theme, the same visible sentence could be stored in one of six places.

    Start with the basic steps. Then use the table further down to track text that isn’t where you expected. For the wider picture of how pages are put together, see our guide to editing pages in WordPress safely.

    How do you edit text on a normal WordPress page?

    Open the page, click the text, type, and press Save or Update. WordPress keeps text inside blocks, and the Paragraph block holds ordinary body text. Here are the steps in full:

    1. Open the right item. Go to Pages > All Pages (or Posts > All Posts), hover over the title and click Edit. Check the status column first, so you don’t edit an old draft or a duplicate called “Home (copy)”.
    2. Select the block. Click the sentence. A small toolbar appears above it, showing which block you selected. On long pages, open List View from the top toolbar and jump straight to the block.
    3. Edit the words. Type the change. Ctrl+Z (Cmd+Z on a Mac) undoes a mistake.
    4. Format with the right tool. Bold, italic and links are in the block toolbar. Size, colour and spacing are in the Settings sidebar, opened from the panel icon at the top right. If you want a heading, use a Heading block. Large bold text is not a heading to a screen reader or a search engine.
    5. Save or publish on purpose. Save draft keeps the change private. Publish or Update makes it live. Preview shows roughly how the page will look.
    6. Check the live page. Open the public URL in a private window. Read the edited sentence and the text around it, then click any link you touched.

    It worked if the new wording shows on the live page, the layout around it is unchanged, and links still go where they should. If the page opened but the sentence isn’t in the editor, the text lives somewhere else. Use the next section to find it.

    The text isn’t in the editor. Where does it live?

    It belongs to something other than the page. WordPress.org’s FAQ on changes that don’t appear lists editing in the wrong location as one of the usual causes, alongside caching. Match what you see to the table below.

    What you seeWhere the text livesWhere to edit it
    The editor is nearly empty, or shows an “Edit with Elementor” style buttonA page builder widgetOpen the page in that builder
    The same text appears on every page (header, footer, contact strip)A template part or theme settingAppearance > Editor on block themes; Appearance > Customize or Widgets on classic themes
    Editing one copy changes the text on other pagesA synced patternEdit the pattern, or detach it for this page only
    Homepage text isn’t in the page chosen under Settings > ReadingA Front Page or Home templateAppearance > Editor > Templates
    The page body shows only [woocommerce_checkout] or another shortcodeOutput from a pluginThe plugin’s settings or the theme’s Customizer options
    Product wordingA product fieldProducts > All Products > Edit
    None of the aboveTheme options or a hard-coded theme fileThe theme’s settings panel, the theme’s support team, or a child theme

    Templates and synced patterns change every page that uses them

    Headers, footers and some page sections on block themes come from templates and template parts. WordPress.org’s Site Editor Pages documentation says template blocks stay locked while you edit a page, until you choose to enable template editing. That lock is there for a reason. Once you edit the template, the change shows on every page built from it.

    The homepage often catches people out. WordPress.org’s guide to the Site Editor explains that a Front Page template can take priority over the page you picked in Settings > Reading. If you changed the setting and nothing moved, the template is winning. Our guides to editing your WordPress homepage and changing footer text safely cover both cases step by step.

    Synced patterns, once called reusable blocks, are shared in the same way. WordPress.org’s synced patterns documentation says that editing one updates it everywhere it is used. If you want to change it on one page only, choose Detach pattern. The detached copy is now ordinary content and won’t receive future changes to the shared pattern. Detach only when that is what you want.

    Page builder text has to be edited in the builder

    W3Techs detects Elementor on 31.5% of WordPress sites in its November 2026 figures. That means many readers are not editing text in the block editor at all. In Elementor, text sits in the Text Editor widget. Open the page with the builder, click the widget, edit it in the left panel or directly on the canvas, then click Update inside the builder. Divi text modules and Beaver Builder modules work the same way.

    Don’t switch editors. Builders store their content separately from normal post content, so editing in the ordinary WordPress screen can leave the builder version untouched. A wordpress.org support thread from 2024 followed exactly that problem on a Beaver Builder site: the edits had been made in the WordPress editor, and a builder cache made the confusion worse. Volunteers advised sticking to one editor for each piece of content.

    WooCommerce text is split across several places

    Each product has two text fields. WooCommerce’s Product Editor documentation lists the product description (usually shown in a tab below the product) separately from the short description (usually shown next to the price). If you edit one, the other stays as it was. Where those fields appear on the page is set by the Single Product template.

    Checkout and shop pages are harder. The checkout page body often contains nothing but a shortcode, and any extra text may come from the theme’s Customizer options. An r/woocommerce thread from 2025 found that a shop page description was generated by the theme. The poster fixed it by editing a theme file, and replies pointed out that the next theme update would wipe that change. A child theme override keeps the edit through updates.

    Why won’t WordPress save my text?

    If you see a red notice in the editor, the problem is not caching. The save failed. These are the common causes and what to try for each.

    “Updating failed. The response is not a valid JSON response.” The block editor saves through the REST API at /wp-json/, and something interrupted that request. The fixes that keep coming up in wordpress.org support threads are:

    • Open Settings > Permalinks and click Save without changing anything.
    • Check Tools > Site Health for REST API errors.
    • Make sure the WordPress Address and Site Address under Settings > General match.
    • Ask your host whether a firewall or ModSecurity rule is blocking /wp-json/.

    A plugin or theme conflict. WordPress.org’s troubleshooting FAQ names plugins competing over JavaScript as a cause of editor problems. Test on a staging copy, not on the live site that visitors use. The Health Check & Troubleshooting plugin turns plugins off for your session only, but its directory listing currently warns that it hasn’t been tested with the latest three major WordPress releases. Use staging if your host offers it. Switching to the Classic Editor can get the page saved, but the conflict is still there.

    “This block contains unexpected or invalid content.” WordPress.org’s block error page says this usually comes from pasted or hand-edited HTML, or from a plugin or theme conflict. Try Attempt Block Recovery first. Convert to HTML and Convert to Classic Block will also make the error go away, but they change the block, so check the result. Our guide to editing WordPress in HTML explains when raw markup is worth the risk.

    No Edit link at all. Your user role doesn’t allow it. Pages need the edit_pages capability. Authors can edit only their own posts, while Editors can edit everyone’s. Ask an administrator for the smallest role that covers the job.

    Saved, but the live page still shows the old text

    You are looking at a stored copy. The edit saved, but one of the cache layers between WordPress and your browser is still serving the old version. Clear them in this order, and check the page in a private window after each one:

    1. Confirm the page actually shows Published, not Draft or Scheduled.
    2. Clear your browser cache, or simply use a private window.
    3. Purge your caching plugin.
    4. Purge the host’s page cache from the hosting dashboard.
    5. Purge the CDN (Cloudflare or your host’s own).
    6. On builder pages, clear the builder’s cache or regenerate its CSS.

    Clearing one layer can leave another still serving the old page. WP Engine’s cache documentation also notes that a full purge can slow the site for a short time while pages are cached again. Clear what you need, not everything, every time. Don’t keep re-editing the page while you wait. That adds revisions without changing anything. Our guide to pages that won’t update goes through each layer in detail.

    If Google still shows the old wording, that is a separate, slower problem. Google’s recrawl documentation says crawling can take days to weeks, and asking repeatedly doesn’t speed it up. Request indexing once with URL Inspection in Search Console, then leave it.

    How do you undo a text edit?

    Use revisions. WordPress.org’s revisions documentation describes a record of each saved draft and published update. The comparison screen marks what was added, kept and removed. Open the Revisions link in the page settings, drag the slider to the version you want, click Restore, then check the live page.

    There are two things to watch. Builders keep their own history, so the WordPress revision list may not include a builder edit. And if someone else edited the page after you, compare before restoring. Restoring your version would overwrite their newer work.

    When should you stop and get help?

    Stop when finding the text turns into experimenting on the live site. The warning signs keep repeating in support threads: switching themes to see what happens, turning off plugins while customers are shopping, editing a parent theme file, or copying a hard-coded sentence over the old one. Hand it off in these cases:

    • You inherited the site and can’t tell which builder or theme generates the page.
    • The text comes from the theme and there’s no setting for it.
    • The JSON error survives the checklist above. That usually needs the host.
    • The fix means changing a theme file, and there’s no child theme.

    When you hand it off, give the page URL, the exact current sentence, the replacement, and whether it should go live or stay a draft. If you’d rather send that in chat than track down the template yourself, SiteSelf’s website edits page explains how the agent makes text changes on your existing site and reports what it checked. It refuses pages owned by Elementor, Divi or Beaver Builder and tells you why.

    Frequently asked questions

    Do I need to know code to edit text in WordPress?

    Not for ordinary content. Blocks, builders and product fields are all edited visually. Edit as HTML and the Code editor are there if you need them, but hand-edited markup is the most common source of block validation errors. Only use them when the visual controls can’t do the job.

    Should I use the block editor or the Classic Editor?

    Use whichever editor the page was built with. The block editor is the default. The Classic Editor plugin brings back the older single text box with Visual and Text tabs. A page made of blocks may not open cleanly in the Classic Editor, so don’t switch just to make one edit.

    Why can’t I select or change a block?

    It’s probably locked, part of a synced pattern, or part of a template. Look for an unlock option in the block’s toolbar menu, an edit option for the pattern, or the Edit template control. Whatever you edit through a pattern or template changes every place it appears.

    How do I change the size, font or colour of text?

    Select the block and open the Settings sidebar. Typography and colour controls are there if your theme allows them. For a change across the whole site, use global styles under Appearance > Editor on block themes, or the Customizer on classic themes. Changing a heading’s level just to make it smaller breaks the page outline.

    Can I edit text by typing directly on the live site?

    No. Edits happen in the dashboard, the Site Editor or your builder. When you’re logged in, the admin bar on the live page has an Edit link that takes you to the right editor for that page.

    Google still shows my old wording. Did the edit fail?

    Not if the live page in a private window shows the new text. Google updates its copy when it next crawls the page, which can take days to weeks. Request indexing once with URL Inspection in Search Console, then wait.

  • How to switch off automatic updates in WordPress

    Key takeaways

    • To stop one plugin or theme, use its Disable auto-updates link under Plugins or Appearance → Themes. You need WordPress 5.5 or later.
    • WP_AUTO_UPDATE_CORE only affects core. AUTOMATIC_UPDATER_DISABLED turns off the whole background updater, and WordPress’s handbook discourages it.
    • If updates keep happening after you turned them off, look for a host updater or a file in wp-content/mu-plugins before you change anything else.
    • Returning false from auto_update_plugin also blocks the security updates WordPress.org pushes for actively exploited flaws.
    • Updates that never run usually come from a cron, loopback, permissions or disk space problem. Changing a setting won’t fix any of those. Tools → Site Health is where to look first.

    A plugin updates overnight. In the morning the checkout buttons are in the wrong place, or the site shows a critical error. The obvious response is to switch off automatic updates and approve everything by hand from now on.

    That works if you pick the right control, and if someone really does apply security fixes afterwards. WordPress has at least four separate update controls. Your host may run a fifth that ignores all of them. Most “I turned it off and it still updated” threads come from changing a setting that doesn’t govern the update the person wanted to stop. If an update has already failed or left the site half-updated, fix that first with our guide to failed WordPress updates. Then come back here and decide on a policy.

    Which switch stops which update

    Each control covers one kind of update. Pick the one that matches what you want to stop.

    What you want to stopControlWhere
    One plugin or one theme“Disable auto-updates” linkPlugins → Installed Plugins, or Appearance → Themes
    Major core releases onlydefine( 'WP_AUTO_UPDATE_CORE', 'minor' );wp-config.php
    All core updatesdefine( 'WP_AUTO_UPDATE_CORE', false );wp-config.php
    All plugins or all themesauto_update_plugin / auto_update_theme filtersA must-use plugin
    The whole background updaterdefine( 'AUTOMATIC_UPDATER_DISABLED', true );wp-config.php

    Start at the top of the table. The further down you go, the more you switch off, and the more likely you are to block a security fix you would have wanted.

    How to stop one plugin or theme from updating itself

    If one plugin broke something, turn off auto-updates for that plugin and leave the rest alone. WordPress.org’s documentation says these per-item controls need WordPress 5.5 or later. If you aren’t sure which version you run, check your WordPress version first.

    1. Go to Plugins → Installed Plugins.
    2. In the Automatic Updates column, click Disable auto-updates next to the plugin.
    3. For a theme, go to Appearance → Themes, open the theme’s details and click Disable auto-updates. If you use a child theme, the parent theme is the one that receives updates.

    To bulk-change plugins, tick several and pick Disable Auto-updates from the Bulk actions menu. On the command line, WP-CLI does the same with wp plugin auto-updates disable plugin-slug (available since WP-CLI 2.5.0) and wp theme auto-updates disable theme-slug.

    The link column should now say “Enable auto-updates” for that item. One limit to keep in mind: this toggle doesn’t stop your host’s updater, and it doesn’t stop a security update WordPress.org decides to push.

    How to stop major core releases but keep security fixes

    Core has its own constant. Open wp-config.php and add one of these lines above the line that reads /* That's all, stop editing! */:

    // Keep minor and security releases, skip major versions
    define( 'WP_AUTO_UPDATE_CORE', 'minor' );
    
    // Or: turn off all automatic core updates
    define( 'WP_AUTO_UPDATE_CORE', false );

    WordPress’s Developer Handbook says this constant overrides the core auto-update setting on the Updates screen. It has no effect on plugins or themes. People mix this up often enough that a WordPress.org moderator had to explain in a 2025 support thread that WP_AUTO_UPDATE_CORE covers core only, while AUTOMATIC_UPDATER_DISABLED covers everything.

    The 'minor' value is the setting most sites should use. Minor releases carry the security and maintenance fixes, and they are the ones you least want waiting on someone’s calendar.

    Edit this file carefully. A missing semicolon or a stray quote takes the whole site down. Keep a copy of the original file so you can put it back in seconds. Editing wp-config.php needs file access through your host’s file manager, SFTP or SSH.

    How to switch off all automatic updates, and what that costs

    One line turns off the whole background updater:

    define( 'AUTOMATIC_UPDATER_DISABLED', true );

    WordPress’s handbook calls this “generally discouraged”, because minor and security updates are what keep a site secure. Treat it as a policy decision, not a fix. The site stays exactly as it is until someone logs in and updates it. If nobody owns that job, the site falls further behind every week.

    To turn off plugin or theme auto-updates across the site but leave core alone, use filters. The handbook says filters belong in a must-use plugin, not in wp-config.php, where they can conflict with WP-CLI. Create wp-content/mu-plugins/update-policy.php:

    <?php
    /**
     * Plugin Name: Update policy
     * Description: Site update rules. Owner and date: write them here.
     */
    
    // Stop auto-updates for one plugin only
    add_filter( 'auto_update_plugin', function ( $update, $item ) {
        if ( isset( $item->slug ) && 'woocommerce' === $item->slug ) {
            return false;
        }
        return $update;
    }, 10, 2 );
    
    // Or stop all theme auto-updates
    // add_filter( 'auto_update_theme', '__return_false' );

    Know what returning false does. The handbook says it also blocks plugin and theme updates pushed by the WordPress.org security team. Don’t put update rules in your theme’s functions.php either. A theme switch or update can remove them without anyone noticing.

    Why updates still happen after you switched them off

    Usually something other than your setting is in charge. Check these in order.

    A forced security update

    WordPress.org can push an update for a critical vulnerability even when your toggles are off. In a 2024 WordPress.org thread, a site owner reported plugins updating with auto-updates disabled. The replies explained that security updates can be forced, and a moderator advised against overriding them when a flaw is being actively exploited. If the surprise update was a security release, the system did what it was built to do.

    Your host runs its own updater

    Managed hosts often update plugins from their own dashboard, outside WordPress. Some do it with a must-use plugin, which keeps running when you deactivate everything else. A GitHub issue logged in October 2026 shows Hostinger’s Smart Auto Updates MU plugin (v1.0.8) registering automatic_updater_disabled as true and auto_update_plugin as false. That is the opposite problem: settings switched off by the host, not by you.

    In a 2023 WordPress.org case, Site Health warned that background updates weren’t working because the automatic_updater_disabled filter was enabled. The owner’s wp-config.php didn’t contain it. The source was a “Disable Auto Updates” MU plugin the host had installed. The owner waited days for it to be removed.

    An update-management plugin

    Plugins that manage updates keep their own rules. Running one next to a host updater gives you two policies that disagree. Choose one system and turn off the other.

    To find which layer is in control:

    1. Check the item’s toggle on the Plugins or Themes screen.
    2. Look in your host’s control panel for anything labelled automatic or plugin updates.
    3. Open wp-content/mu-plugins/, or Tools → Site Health → Info → Must Use Plugins.
    4. Check for an update-management plugin in your plugin list.
    5. Search wp-config.php for the two constants above. Old sites often still have them, and nobody remembers why.

    If it’s still unclear, ask the host directly whether it updates plugins or core itself.

    When updates aren’t running at all

    Sometimes nobody switched anything off and updates still don’t happen. WordPress.org’s documentation says plugin and theme auto-updates rely on WP-Cron and run twice a day. If the scheduler or the file system is broken, no setting will help.

    Open Tools → Site Health and read the Status tab. The WordPress.org Health Check handbook lists the checks that matter here: failed scheduled events, background updates and loopback requests. Then work through the causes:

    • Cron. If DISABLE_WP_CRON is set in wp-config.php, a real server cron job has to replace it. Without one, scheduled updates never run.
    • Permissions. If WordPress asks for FTP credentials, it can’t write files as the web server user. Ask the host to fix ownership. Don’t loosen permissions across the site.
    • Disk space. A full disk stops updates from unpacking. Old backup archives are a common cause.
    • A leftover .maintenance file. If the site says “Briefly unavailable for scheduled maintenance”, WordPress.org’s troubleshooting FAQ says to delete .maintenance from the WordPress root. Deleting it brings the site back. It doesn’t finish the update, so run the update again.

    If an update broke the site, fix that one thing

    Switching everything off hides the symptom and leaves the cause in place. Find the component first. WooCommerce’s self-service guide gives the standard routine: switch to a default theme, deactivate everything except WooCommerce and the extensions involved, then reactivate them one at a time.

    Often the cause is narrow. In an October 2026 WordPress.org review, a site owner said a form plugin’s auto-update took their site down because the new version required PHP 8.3 and the server ran PHP 8.0. Turning off every update wouldn’t have fixed that. Upgrading PHP, or holding back that one plugin until the server could be upgraded, would have.

    Roll back only the plugin that broke, and only until a fix ships. The Developer Handbook warns that older code can bring back security holes and cause database version problems. When a fixed version is out, turn that plugin’s auto-updates back on. Rolling back one plugin also keeps every order and edit made since your last backup. A full restore from backup throws those away.

    Stores need extra care. WooCommerce’s update guide says some releases need a separate database update after the files update, and you can follow its progress under Scheduled Actions. The guide also says to back up the database and wp-content, test on staging, then check product pages, cart, checkout, payment, shipping, tax and email. It suggests a monthly cadence for most stores, with security fixes applied sooner.

    The policy most practitioners settle on

    WordPress.org threads and Reddit discussions keep landing on the same compromise:

    • Keep minor core releases automatic, along with your security and backup plugins.
    • Turn off auto-updates only for the plugins that can cost you money when they change: payments, checkout, page builders, heavily customised features.
    • Update those by hand on a named day. Take a backup first, use staging if your host offers it, and update one at a time, never with “Update all”.
    • After each update, load the homepage, submit a form and run a test checkout.
    • Write down what is switched off, where, and who owns the manual updates.

    WordPress.org has also started delaying some releases on its side. The Plugins Team’s phased release rollout, announced in August 2025, delays automatic updates by 24 hours for plugins that opt in. You can still update by hand during that window.

    If nobody on your team wants to own the manual queue, SiteSelf handles plugin updates on request through chat, then reports what changed and what it checked.

    Frequently asked questions

    How do I turn automatic updates back on?

    Reverse whatever you changed. Click “Enable auto-updates” on the item, delete the constant from wp-config.php, or delete the filter from your MU plugin. Then check Site Health. If it still says background updates are disabled, something else is setting the filter, usually a host MU plugin.

    Why can’t I see the auto-update links on my Plugins screen?

    Check that you run WordPress 5.5 or later. If you do, WordPress.org’s documentation says a host or a plugin may have turned the feature off. Look in wp-content/mu-plugins and in Site Health → Info → Must Use Plugins.

    Why do update notices still show after I turned off auto-updates?

    Stopping automatic installs and hiding update notices are separate things. Turning off auto-updates means WordPress waits for you to click Update. It still tells you an update exists, and you want it to.

    How often do WordPress auto-updates run?

    WordPress.org’s documentation says plugin and theme auto-updates run twice a day by default, through WP-Cron. If WP-Cron is disabled and no server cron replaces it, they don’t run at all.

    Do premium plugins and WooCommerce extensions follow the same toggle?

    The toggle only applies to updates WordPress can find. WooCommerce’s update guide says Marketplace extensions update only when the store is connected to a WooCommerce.com account. Third-party extensions follow their vendor’s own update method. Check those separately, because they fall behind without any warning.

  • WordPress tags vs categories and when to use each

    Key takeaways

    • Only categories can have parent and child terms. Every post ends up in at least one category, because WordPress files it under the default category (set in Settings > Writing) if you pick none.
    • A tag is worth creating only if it will be used on several posts across different categories. A tag used on one post creates an archive page with almost nothing on it.
    • Google has no rule about indexing category or tag pages. Judge each archive on whether it’s useful, and use noindex to keep it out of results. Blocking it in robots.txt doesn’t do that.
    • Deleting a category never deletes its posts. WordPress moves them to the default category, but the old archive URL still needs a redirect.
    • In WooCommerce, use product categories for departments, product tags for labels that span departments, and attributes for anything shoppers filter by.

    Most WordPress sites don’t get a messy taxonomy all at once. It happens one post at a time. Someone adds a tag for a word that appears in an article, then another, and a few years later the site has hundreds of tags used once and a category list nobody can scan. WordPress never shows an error, so nobody notices until an SEO audit or a Search Console report turns up a long list of nearly empty archive pages.

    The difference between the two is simple. Categories are your site’s main sections. Tags are optional labels that connect posts across those sections. The difficult part is that every term you create also becomes a page, and that is what this article covers. It sits alongside our step-by-step guide to doing SEO on WordPress.

    What actually separates a category from a tag

    Categories can be hierarchical and tags can’t. WordPress’s Theme Handbook describes both as taxonomies, which are ways of grouping posts, but only categories can have parent and child terms. Everything else follows from that one structural difference.

    CategoriesTags
    StructureHierarchical: a parent such as Services with children such as Design and MaintenanceFlat, no parents
    RequiredEffectively yes: a post with no category goes into the default categoryNo, entirely optional
    JobSays where a post belongsSays what else the post is about
    In the block editorA checkbox list, which encourages picking an existing termA text field, which makes a new term one keystroke away
    Archive URL (default)/category/services/design//tag/gluten-free/
    Healthy numberA short list that rarely changesGrows slowly, and each tag is used on many posts

    That editor row explains a lot of messy sites. Picking from a category list nudges you to reuse what’s already there. Typing in a tag field makes it just as easy to create a new tag as to reuse an old one, so you end up with “email”, “emails” and “email marketing” as three separate archives.

    Learn WordPress compares categories to a book’s table of contents and tags to its index. That comparison works. The table of contents has a few entries and every chapter is in it. The index is long, specific, and each entry is worth having only because it points to more than one page.

    When a subject should be a category, and when a tag

    Use a category when the subject is a permanent section of the site that a visitor might browse on purpose, the kind of thing you would put in a menu. Use a tag when the subject keeps coming up across several sections and a reader of one of those posts would want the others.

    Take a bakery that publishes recipes and business news. “Recipes” and “News” are categories. “Gluten free” is a good tag, because it connects a bread recipe with the announcement of a gluten-free range. Readers can follow their dietary need across both sections. A tag for this spring’s sale is a bad one: nothing will be added to it, so anyone who clicks it reaches a dead end.

    Before you create a term, run these checks:

    • Will it be used on several posts? If not, leave it out. Single-use tags are the clearest sign of a taxonomy going wrong.
    • Does it already exist under another spelling? Search Posts > Tags for singular, plural and synonym forms first.
    • Does it repeat a category? WordPress.com’s support guide advises against giving a category and a tag the same name. You would just get two archives listing the same posts.
    • Is it a format, not a subject? “Tips” and “guide” describe the kind of article. They don’t tell a reader what it’s about.

    WordPress allows more than one category per post, but one is the sensible default. A post filed under four categories has no clear home, and every archive it appears in gets a little less distinct. Use child categories when a real hierarchy exists, not to squeeze in extra labels.

    Tags are not keywords. Agency developers on r/Wordpress keep describing the same pattern: clients treat the tag box like the old meta keywords field and type in every phrase they want to rank for. One 2014 thread mentions a site with 20,000 tags. No ranking benefit comes from the label itself. Any benefit comes from the archive page being worth visiting.

    Why every new tag is also a new page

    WordPress creates an archive page for every category and tag, listing the posts assigned to it. That turns a filing decision into a navigation decision and a search decision. A tag on one post creates a page that only repeats that post’s excerpt. A site with 400 of those has 400 thin pages that crawlers can find.

    Think of each archive as a page you are recommending to visitors. Would you link to it from the sidebar of a good article? If yes, it’s earning its place. If you would be embarrassed to link it, the tag probably shouldn’t exist.

    The archive is also separate from your real landing pages. A Design service page explains and sells the service. A Design category archive is a date-ordered list of posts. Don’t let the archive replace the service page in your menu just because they share a word. If you want tag and category archives to connect visitors to your best pages, our guide to adding internal links in WordPress covers the editor side.

    Should category and tag archives appear in Google?

    Decide archive by archive. Don’t decide by taxonomy type. Google publishes no rule about WordPress categories or tags. Yoast’s settings documentation points out that useful taxonomy pages can bring in visitors. A common rule of thumb in practitioner forums is to noindex all tags and index all categories. That’s a reasonable starting point, but it’s a heuristic. Google doesn’t require it.

    Keep an archive indexable when it’s distinct and useful: it has enough posts to browse, a clear heading and, ideally, a short introduction in the term description. Keep it out of search results when it’s thin, empty or an exact overlap with another archive. In Yoast SEO, go to Yoast SEO > Settings > Categories & tags, choose the taxonomy, turn off its search visibility and save. Yoast also lets you noindex individual terms, so you can keep a strong tag archive indexed and drop the weak ones.

    Use the right tool to keep a page out of Google:

    • noindex keeps a page out of search results. Google’s documentation says the page must stay crawlable, because Google has to load the page to see the noindex instruction.
    • robots.txt controls crawling, not indexing. Blocking /tag/ there can leave URLs showing in results and hides your noindex from Google.
    • Redirects or rel=”canonical” are how Google says to merge duplicates. Its canonicalization guide says Google picks a canonical URL when a site has duplicate content, and it lists redirects and canonical tags as the ways to tell it which one you prefer.

    Check your settings before you write copy for archives. On r/woocommerce, one store owner wrote unique text for their tag pages and only later found they had set tag archives to noindex in Yoast. If you suspect tag pages are competing with your main pages, use Search Console’s Performance report: filter to the tag URLs and see which queries they share with your posts before you decide anything.

    If you would rather have someone else make the archive indexing changes, write the redirects and check the result, SiteSelf does that kind of SEO settings and redirect work on request through chat.

    How to clean up a messy taxonomy without breaking links

    Audit first and delete last. Renaming a term’s slug or deleting a term changes or removes an archive URL. Bookmarks, backlinks and Google’s index still point at the old address. Take a backup before you start.

    1. Export the lists. In Posts > Categories and Posts > Tags, record each term’s name, slug and post count.
    2. Flag the suspects. These are single-use tags, near-duplicates, and tags that copy a category. A low count is a reason to look closer. It doesn’t automatically mean delete.
    3. Decide each one. Keep it, merge it into another term, promote it to a category, convert it, or retire it.
    4. Merge or convert in bulk. WordPress’s Categories and Tags Converter (Tools > Import) converts selected terms from one taxonomy to the other. The free Term Management Tools plugin adds Merge, Set Parent and Change Taxonomy to the bulk actions on the term screens.
    5. Redirect what moved. Send each retired archive URL to its closest replacement with a 301. Don’t send unrelated archives to the homepage. See how a 301 redirect affects SEO for the details.
    6. Fix dependencies. Update menus, links inside posts, and any block or template query that names the old term.
    7. Test. Load old and new archive URLs while logged out, then watch Search Console for new 404s.

    Deleting categories needs one extra check. WordPress’s documentation says deleting a category doesn’t delete its posts. It moves them to the default category, which itself can’t be deleted. So set a sensible default in Settings > Writing first. Otherwise the cleanup quietly fills “Uncategorized”.

    A cleanup only lasts if there’s a rule behind it. Practitioners who train clients report that verbal training doesn’t stick. A written one-page policy does better: the approved category list, what each one covers, and “search before you create a tag”. Some agencies go further and turn off tags for clients who keep misusing them.

    How WooCommerce product tags differ

    WooCommerce has separate taxonomies for products and doesn’t use the post categories and tags. Its documentation describes three tools. Product categories are hierarchical departments such as Dresses or Shoes. Product tags are flat labels that cut across departments, such as “summer” or “gift idea”. Attributes are properties like size, colour or material, which shoppers filter by and which drive variations.

    The common mistakes are using tags as main departments and using tags for business logic. A tag can say “Tuesday delivery”, but it won’t enforce a delivery day or an order cutoff. That needs a plugin built for it. Normally a product keeps a single URL however many categories it has, unless your product permalink base includes the category.

    Frequently asked questions

    Can tags have a hierarchy?

    No. Only categories support parent and child terms. If you need nested subjects, use child categories. If the built-in pair doesn’t fit, as with recipes grouped by meal and by dietary need, register a custom taxonomy for each grouping.

    Do I have to use tags at all?

    No. Tags are optional, and plenty of well-run sites use categories only. Use tags if you’ll apply them consistently across sections and show them to readers. Otherwise they only add archives.

    Do tags help SEO?

    Not by themselves. The label carries no ranking value. A tag archive can bring in visitors if it’s a useful collection with real content, and a thin one only gives crawlers more pages to process.

    Why can’t I see the category and tag boxes in the editor?

    In the block editor they’re in the right-hand sidebar under the Post tab, often in collapsed panels. Check the editor’s Preferences to make sure the panels are enabled. If they’re still missing with a default theme and no plugins active, the install itself may be modified, which is worth raising with your host.

    Can I change the slug of a category without losing traffic?

    Yes, if you add a 301 redirect from the old archive URL to the new one when you make the change. Changing only the display name leaves the URL alone. Our guide to what a WordPress slug is covers where to edit each one.

    Can Pages have categories and tags?

    Not by default. Categories and tags apply to posts. A plugin or a few lines of code can add them to Pages, but first ask whether a page hierarchy (parent and child pages) already does the job.

  • Chatbot vs live chat on a WordPress site

    Key takeaways

    • In Comm100’s 2025 benchmark, chatbots handled 73.8% of chats in 2024 but resolved only 45.8%. The resolved share barely moved from the year before.
    • Handing a chat from the bot to a person is a setting, usually with separate options for staffed and offline hours. Turning on AI does not mean a person sees the questions the bot could not answer.
    • The WooCommerce AI Assistant is an admin tool that shoppers never see. The storefront chatbot is a separate product, the AI Support Assistant.
    • When a widget shows for the admin but not for visitors, the usual causes are cache and JavaScript delay or defer settings. Check those before the theme or the host.

    Most small sites that add a chat widget find out within a month what they actually needed. Either the same five questions come in every day, or every question is different and needs someone who knows the business. A chatbot is good at the first case and live chat is good at the second. Neither one works if nobody looks after it.

    So the useful question is not which one is better. It is which requests software can answer safely, who answers the rest, and how fast that person can take over. Sometimes the honest answer is that visitors only need a reliable way to reach you. In that case a contact form in WordPress may do more than either kind of chat.

    What actually separates a chatbot from live chat

    With a chatbot, software writes the replies. With live chat, a person types back in real time, usually from a dashboard or a phone app. Most of the confusion comes from treating “chatbot” as one thing, because there are two very different kinds.

    A scripted bot follows a decision tree: buttons, fixed questions and fixed answers. It cannot go off script, which makes it predictable and limited. An AI bot writes its own answers, ideally from a knowledge base made of your pages, posts, products and FAQs. It can handle questions nobody planned for. That is its strength and its risk, because it can also answer confidently when it has no idea.

    Many WordPress chat plugins now sell both modes in one widget: a bot that answers first and a person behind it. That setup is called hybrid, and it is the pattern most practitioners recommend. There is also a third pattern that often gets counted as live chat. Contact-button launchers show floating icons that open WhatsApp, Messenger or a phone call. That is a shortcut to another channel, not a chat service.

    Before you install anything, check where the conversations live. Many plugins sold as “WordPress chatbots” just place a widget for an external service. The conversations, training and settings sit on the vendor’s servers, not in your WordPress database.

    WooCommerce stores have one more trap. WooCommerce’s documentation describes the AI Assistant as an admin tool that does not appear on the storefront. The customer-facing chatbot is the separate AI Support Assistant. You have to enable it and give it an AI provider, a knowledge base and product information.

    Which questions belong to a bot and which to a person

    Decide by request, not by product. Bots do well with routine, documented, low-stakes questions that come up again and again. People are needed when the answer takes judgment, depends on a specific account, involves money, or comes from someone who is upset.

    RequestBetter first responderWhy
    Opening hours, shipping policy, returns windowBotThe answer is already written on your site
    Order status lookupBot, if it can read ordersOne fact, a clear finish, no judgment
    Inquiry outside business hoursBot that collects name, contact and job detailsNobody is there to answer, but the lead is still worth keeping
    “Will this work for my situation?”Bot first, person on buying intentPricing and fit questions are where sales are won or lost
    Refund, wrong charge, complaintPersonNeeds account access, a decision and a believable apology
    Anything the bot answered wrong once alreadyPersonA second guess costs more than a short wait

    Practitioners on Reddit and wordpress.org agree on one point: the setup most likely to disappoint is a bot that is supposed to replace people completely. It goes wrong as soon as a visitor has a real problem with an order or an account.

    Bots handle more chats than they resolve

    The Comm100 Live Chat Benchmark Report 2025 looked at accounts that use AI chatbots. In those accounts, bots handled 62.7% of chats in 2023 and 73.8% in 2024. The share the bots actually resolved stayed flat: 46.0%, then 45.8%.

    That gap matters more than any other statistic in this debate. Vendors usually advertise “handled” or “deflection” figures. A bot can take part in three quarters of conversations and still finish fewer than half. The rest either reach a person or end without an answer. Keep the source in mind, though. Comm100 sells chat software, and its data comes from its own customers, who mostly run staffed support teams rather than one-person WordPress sites.

    Why customer preference surveys seem to disagree

    The surveys measure different things, so they are not really in conflict. Salesforce’s State of the AI Connected Customer research, a YouGov survey of 15,015 consumers in 2024, found that 30% would use an AI agent instead of a person to get faster service, and 35% would do so to avoid repeating themselves. Tidio’s 2025 study of 1,300 people, Helpful or Hopeless?, found that about 30% would still wait for a human even with a bot available right away, and more than 11% would pay extra to skip the bot.

    Both are vendor studies, and Tidio recruited its respondents through Amazon Mechanical Turk and Hotjar, which is a weaker sample. The practical lesson is the same either way: preference depends on the task and the wait. Someone checking a delivery date wants speed. Someone who was charged twice wants a person.

    Handoff only happens if someone configured it

    Turning on AI in a chat tool does not mean a person will see the questions the bot could not answer. In hybrid tools, what happens after a failed answer is a setting. The usual options are to transfer the chat to an agent, keep it with the bot, or turn it into a ticket or email. Offline hours often have their own setting. Check both, because the defaults may not match what you assume.

    A bot that runs overnight does not solve problems overnight. At best, it collects the details so someone can reply in the morning. Tell the visitor that plainly, and give a time they can expect a reply.

    A good handoff has four parts:

    • The bot says it does not know instead of guessing.
    • The conversation carries over, so the visitor does not have to explain twice.
    • The “talk to a person” option is visible from the start, not hidden behind three failed answers.
    • Pricing questions and clear buying intent go to a person.

    A fallback line can be as simple as: “I can’t sort out a billing problem here. I’ve saved your question and order number, and someone will reply by email by 10 a.m. tomorrow.”

    What chat costs is mostly staff time

    Chat tools charge in several different ways, so comparing price tags directly tells you little:

    • Per agent seat each month. The bill grows with your team.
    • Bundles of conversations. The bill grows with your traffic, including spikes you did not plan for.
    • Free core with a paid AI add-on.
    • A plugin licence plus your own AI API key. The model provider bills you separately for usage.

    The bigger cost is people. Live chat needs someone covering the hours the widget promises. A bot needs someone to write, check and update the content it answers from, and to read the conversations where it went wrong. None of the research behind this article compares the total cost of the two. “Bots are cheaper” is an assumption, not a finding.

    Where chat goes wrong after it is installed

    Live chat that nobody answers

    Practitioners say this is worse than having no chat. It tells visitors nobody is there, and you lose the lead. If you cannot cover normal business hours, even shared between a few people, hide the widget when you are offline or switch to a form.

    A bot that guesses or loops

    The common complaints are bots that guess, send the wrong help article, or keep asking “Did that solve it?” Train the bot only on content you control, set clear limits on what it answers, and judge it by conversations resolved, not conversations handled. A commenter in r/woocommerce warned that a bot that cannot find the right answer in your content is more frustrating than a slow reply.

    Too few chats to matter

    Small-business threads on Reddit argue both ways. Some site owners report almost no chats after months. Others say a simple capture flow brought in evening and weekend inquiries they would have missed. The deciding factors are traffic, how often the same question comes back, and whether a short flow is enough. Long flows lose people.

    More leads, worse leads

    Agencies report that bots can bring in more leads than forms, but more of them are unqualified and take time to sort through. One or two qualifying questions based on what your business actually does will filter better than an open text box.

    Widgets that get in the way

    Google’s guidance on interstitials and dialogs recommends banners over large dialogs, so do not auto-open a full-screen chat. Google renders JavaScript and indexes the rendered HTML. An answer that exists only inside a chat conversation is not page content, so keep the important answers on the page as well. For accessibility, WCAG 2.2’s Focus Not Obscured criterion says an open chat window must not completely hide the control that has keyboard focus. W3C’s suggested fixes are to let content reflow, place the window in unused space, or let Escape close it.

    Why the widget shows for you but not for visitors

    Usually the cause is caching or JavaScript optimization. Logged-in admins normally skip the page cache, so you see the widget while visitors get an older copy of the page, or a script that loads in the wrong order. An MxChat thread on wordpress.org started exactly like this: the bot appeared for the admin but not for normal visitors. Work through these checks in order:

    1. Connection. Confirm the plugin is active and the account or site ID is saved. Use one install method only, either the plugin or pasted code, never both.
    2. Display rules. Check desktop and mobile settings, page exclusions, and any option that hides the widget when no agent is online.
    3. A clean test. Open a new private window, not one that was already open, and load the page logged out.
    4. Each cache layer. Purge the caching plugin, then the host’s server cache, then the CDN. On some hosts, the server purge does not clear the CDN. Why a page is not updating walks through each layer.
    5. Script optimization. Turn off delay and defer JavaScript for a moment. If the widget comes back, turn the options on again one at a time, exclude the chat script from the one that breaks it, and update the chat plugin. Do not leave all optimization off for good.
    6. The theme. The theme must call wp_footer() before </body>. That is how WordPress prints footer scripts, and many widgets rely on it. A console error like e(...).live is not a function means outdated jQuery code. Updating the theme fixes that. Reinstalling the chat plugin does not.
    7. Conflicts. The Health Check plugin’s Troubleshooting Mode turns off plugins and switches the theme only for your logged-in session, so visitors to a live store are not affected.
    8. Content Security Policy. If the site sends a CSP header, add the chat vendor’s domains to script-src and frame-src. Do not remove the policy.
    9. Works on staging, missing on live. Compare the page source on both, then ask the host about differences in PHP settings.

    If none of that finds it, the broader guide to WordPress plugins that are not working covers debug logs and conflict testing. If you would rather hand the problem off, SiteSelf’s WordPress bug-fix work traces it on your live site and reports what it changed. Plugin settings work through the connector plugin. Theme and script fixes need hosting access.

    How to decide for your own site

    Start with last month’s questions, from your inbox, phone notes and form entries. Sort them into routine and judgment calls. Then name who can answer, and during which hours.

    If you are unsure, have a person handle chat for a few hours a day before building a bot. You will learn what visitors actually ask, and that becomes the bot’s first knowledge base. Automate only the questions that keep coming back and already have written answers. Set up handoff for both staffed and offline hours. Then, for the first few weeks, read the conversations the bot did not resolve. Those tell you what to add to your content, and which questions should go straight to a person.

    Frequently asked questions

    Can a chatbot replace live chat completely?

    Not reliably. Billing disputes, account-specific problems, exceptions and upset customers need a person. Comm100’s figures show bots resolving under half of what they handle. A bot with a clear route to a person is the realistic setup.

    Will a chat widget slow down my WordPress site?

    It adds third-party JavaScript, so it can. There is no current, independent benchmark comparing widgets, and older forum reports no longer describe how vendors load their scripts today. Test your own pages in PageSpeed Insights with the widget on and off.

    Does a chat widget hurt SEO?

    Not by itself. The risks are narrower. Content that exists only inside chat is not indexed as page content, and auto-opening dialogs that cover the page go against Google’s guidance on intrusive dialogs. Keep answers on the page and let visitors open the chat themselves.

    Should I use the plugin or paste the vendor’s code?

    Either works, but never both. Running the plugin and pasted code at once loads the widget twice and causes display problems. The plugin is easier to remove later. Pasted code depends on the theme calling wp_footer(), or on a code snippets plugin that adds it for you.

    Why don’t shoppers see the WooCommerce AI Assistant?

    It is built for store admins and does not appear on the storefront. The customer-facing option is the AI Support Assistant. You enable it separately and configure it with an AI provider, a knowledge base and product information.

    Is chat worth it on a low-traffic site?

    Sometimes not. If visitors send a handful of different questions a month, a clear FAQ, a contact form and a visible phone number may serve them better. Chat pays off when the same questions keep coming back, or when after-hours inquiries would otherwise be lost.

  • Landing page design best practices for WordPress

    Key takeaways

    • Pick one goal and repeat its button at the top, after the persuasive content and at the bottom. A second, different goal competes with the first.
    • Unbounce’s 2024 benchmark found pages written at a 5th to 7th grade level converted at 11.1%, against 5.3% for professional-level copy. That is a correlation, not proof that simpler copy causes the lift.
    • Don’t lazy-load the hero image. It is usually the largest element on the page, and Google counts a Largest Contentful Paint of 2.5 seconds or less as good.
    • In a block theme, a Front Page template overrides Settings > Reading. That is why some homepage changes appear to do nothing.
    • A checkout that looks right in the editor proves nothing until the page is assigned under WooCommerce > Settings > Advanced and you have placed a test order on the storefront.

    You pay for the traffic. The page looks polished. The leads don’t come. When practitioners audit pages like this, they rarely blame the color palette. They find one of three problems: visitors can’t tell what the offer is, nothing nearby gives them a reason to trust it, or the page is broken in a way nobody saw from the editor.

    The first two are design problems. The third is mostly a WordPress problem, and it is the one most best-practice lists leave out. This article covers all three. If you haven’t built the page yet, start with how to build a landing page in WordPress and come back once you have a draft.

    Why one goal beats one button

    A landing page asks the visitor to take one action. Book a consultation, start a trial, or buy the bundle. If it also offers the newsletter, the blog and a careers link, each one is a decision the visitor has to make before they act.

    “One goal” doesn’t mean one button. WordPress.com’s product landing page guide recommends putting a call to action at the top, another after the persuasive content and another at the bottom. That is the same goal three times, placed where people make up their minds. Two different goals on one page compete with each other.

    Write the goal down before you touch the editor: “A qualified patient requests a consultation.” That sentence tells you what to measure. Count completed requests, not clicks on a button that opens a calendar.

    What the first screen has to answer

    Before anyone scrolls, the first screen should say what this is, who it’s for and what to do next. In practice that means four things:

    • a headline that names the outcome or the service
    • a supporting line with the detail that qualifies the visitor, such as location, price range or availability
    • an image of the actual product or result, not a mood photo
    • a button that describes what happens when it’s clicked

    “Check availability” and “Request a quote” are different promises. Choose the label that matches where the button goes. If a button says “Check availability” and opens a general enquiry form, change the label or the destination. “Learn more” says nothing at all.

    The headline also has to continue whatever brought the visitor in. If the ad said “emergency roof repair in Leeds”, that phrase belongs at the top of the page, not three sections down below a general company introduction. Practitioners call this message match. In community threads it’s one of the most common explanations for a page that converts badly.

    In the block editor, check the Cover or Group block that holds the hero. A large minimum height, heavy padding or vertical centering can push the button below the first screen on a phone, even when it fits on a laptop.

    How simple should the copy be?

    Simpler than you think, and as long as the offer needs. Unbounce’s 2024 Conversion Benchmark Report covered more than 41,000 landing pages. Pages written at a 5th to 7th grade reading level converted at 11.1%, compared with 5.3% for professional-level copy. Difficult words, reading time and word count all correlated negatively with conversion.

    These are correlations on Unbounce-hosted pages. They aren’t proof that cutting words causes the lift. A newsletter signup needs a headline and a field. An unfamiliar service at a high price needs proof, details and an FAQ that answers the objections people actually raise. Cut words that don’t explain the offer, and keep the ones that do.

    The same report puts the median conversion rate across industries at 6.6%, with industry medians ranging from 3.8% for SaaS to 12.3% for events and entertainment. Compare yourself with your own industry and offer, not with the overall figure.

    Where proof and forms belong

    Specific proof works better than general praise. “They explained our VAT position in one call and onboarding took a week” tells a prospect something. “Great service” doesn’t. Put proof next to the place people hesitate, usually beside the button or the form. A testimonials section at the very bottom doesn’t do that job. Use names, photos and logos only when you have permission.

    A form should ask only for what you need to qualify the lead and reply. Keep a field if its answer changes how you follow up. Remove it if it’s there because the template had it. The W3C’s forms tutorial says every control needs a real label, so a placeholder that disappears as the visitor types isn’t enough. Error messages should name the field and say how to fix it.

    Then send a real test enquiry from your phone. Check that the right inbox receives it, that the visitor sees a useful confirmation, and that spam protection doesn’t silently reject real submissions. A form that looks perfect but loses enquiries is broken.

    Trust also depends on what you forget to remove. Auditors regularly find Lorem ipsum, demo pages left in the sitemap and template phone numbers still linked from the call button on live pages. Read the published page from top to bottom before any traffic arrives.

    The same thinking applies to navigation. Remove the journeys that compete with the goal. Keep the information people need before they trust you: contact details, policies and the cart on a shop. Stripping the header and footer completely suits a short paid campaign better than an unfamiliar professional service.

    Design for the phone, then check the desktop

    In Unbounce’s dataset, 83% of visits came from mobile, while desktop converted 8% better on average. Most of your visitors are probably on a phone, and the phone is where the friction is. Design for it first.

    Page builders make this harder than it looks. Elementor’s responsive settings cascade from desktop to tablet to mobile, so a margin set for desktop carries down unless you override it. “Hide on mobile” fixes one screen by removing content from another, and Google indexes the mobile version of your page. Our guide to making a mobile-friendly website covers the theme and builder settings in detail.

    Two accessibility checks catch a lot of mobile breakage. WCAG 2.2 requires a contrast ratio of 4.5:1 for normal text and 3:1 for large text. It also requires content to reflow at a width of 320 CSS pixels without losing information or function. Test on a real phone with the keyboard open, and watch for a sticky bar or cookie banner covering the button.

    Why the hero image decides your load time

    On most landing pages the hero image is the largest element on the first screen, so it sets your Largest Contentful Paint. Google’s Core Web Vitals treat LCP of 2.5 seconds or less as good, along with INP of 200 milliseconds or less and CLS of 0.1 or less, measured at the 75th percentile of real visits.

    The most common self-inflicted delay is a “lazy-load all images” setting in an optimization plugin. web.dev’s LCP guide explains that lazy-loading the LCP image delays the moment the browser starts fetching it. Turn off lazy loading for the hero and keep it for images further down. Put the hero in the page HTML as a real image rather than a CSS background, give every image a width and height so the button doesn’t jump while the page loads, and compress the file. Our guide to optimizing pictures in WordPress covers formats and sizes.

    Speed shows up in results. Portent’s 2022 study found that a B2B site loading in one second converted three times better than one loading in five seconds. That is an association across a limited set of sites, but it points the same way as everything else.

    Measure the live, cached page, not your staging copy. Staging often runs without caching and looks worse than production. Run PageSpeed Insights more than once, and remember that purging the cache slows the site for a while as pages rebuild.

    WordPress checks that catch pages that look finished

    A page can be well designed and still not work. These checks come from official documentation. Each one fails without warning.

    CheckWhereWhat goes wrong
    Which template is servedAppearance > Editor > TemplatesIn a block theme, a Front Page template is used for the front page whatever Settings > Reading says.
    Header and footerElementor page settingsCanvas removes the theme header and footer. Full Width keeps them. Check the published page, not the editor.
    Old Elementor tutorialsElementor ProElementor’s separate Landing Page feature is deprecated and unsupported as of Pro 3.27. Build on a regular page instead.
    IndexingSEO plugin settings, robots.txtnoindex keeps a page out of Google. Blocking the page in robots.txt can stop Google from seeing that noindex tag.
    CheckoutWooCommerce > Settings > AdvancedA custom checkout page that isn’t assigned here won’t work as checkout, however good it looks.
    Shared templatesSite EditorEditing a shared template, including WooCommerce’s Single Product template, changes every page that uses it.

    Run the checks in this order: confirm which page and template WordPress is actually serving, look at it at phone width while logged out, submit the form or place a test order on the storefront, then measure the live page. Logged-in admins often see different banners and a fresher cache than visitors do. Website layout and design on WordPress explains how global styles and templates affect individual pages.

    If you’d rather describe the change in chat and have it made on the live site, SiteSelf handles design changes on existing WordPress sites, though it refuses pages owned by Elementor, Divi or Beaver Builder and tells you why.

    When A/B testing is worth it

    Test after the basics are right, not instead of them. A clearer headline won’t help much if the form drops submissions. Once the offer, the first screen and the plumbing are sound, test one thing at a time: the headline, the button or the hero image.

    Many small sites don’t have the traffic for a meaningful test. In an Unbounce and Ascend2 survey of 264 marketers at businesses with 500 or fewer employees, reported by MarketingProfs, 41% named low traffic as their biggest testing challenge. With limited traffic, don’t declare a winner after a handful of enquiries. Look at form errors, the questions customers ask, session recordings used with proper consent, and whether the traffic was ever a good match for the offer.

    Pages also decay after launch. Offers expire, prices change, forms stop reaching anyone and mobile layouts drift after updates. Put a date in the calendar to reread the page and resubmit the form.

    Frequently asked questions

    Do I need a page builder plugin for a landing page?

    No. The block editor and a suitable template can produce a clean, fast landing page. Builders add visual controls and ready-made layouts, and they also add weight and their own settings to maintain. Our article on whether you need a landing page builder walks through the tradeoff.

    What is a good landing page conversion rate?

    Unbounce’s 2024 median across industries was 6.6%, with industry medians from 3.8% to 12.3%. Your rate depends on your traffic, your offer and what you count as a conversion. Compare yourself with your own past results and your industry, not one headline number.

    Should I remove the header and footer?

    Remove what competes with the goal. Keep contact details, legal links and anything a cautious buyer would look for. In Elementor, Canvas removes both the header and footer, and Full Width keeps them, so pick the one that matches what you actually want to keep.

    Can my landing page be my homepage?

    Yes. Set it under Settings > Reading. If you use a block theme with a Front Page template, edit or remove that template, or your choice won’t take effect. Our guide to editing your homepage covers both cases.

    Is Elementor bad for landing page speed?

    It depends on the page. Heavy addons, nested sections and unoptimized hero images add weight, but a lean Elementor page can still pass Core Web Vitals. Measure your actual live page in PageSpeed Insights instead of going by the builder’s reputation.

    How many form fields should I use?

    No authoritative number exists. Ask for what you need to qualify the lead and reply, and drop the rest. Practitioners report gains from removing even one field, but those are single anecdotes, not rules.

  • Problems with WordPress today and how to fix them

    Key takeaways

    • Self-hosted WordPress has no central server that can go down. If your site fails, the cause is your site, your host, your domain or your network.
    • Plugin and theme incompatibility after an update is the most common trigger. Some conflicts only appear when two specific plugins are active together, so disabling everything at once can hide the cause.
    • Patchstack counted 11,334 new WordPress ecosystem vulnerabilities in 2025. 91% were in plugins and 46% had no developer fix at disclosure.
    • Read the error log before you raise the memory limit, change PHP or restore a backup. Each of those can hide the real cause or overwrite new orders.
    • On a stuck WooCommerce checkout, check WooCommerce > Orders before you retry, because the order may already exist. A staging copy can still charge real payments.

    When a WordPress site breaks today, WordPress itself is rarely the cause. The cause is usually one plugin, one theme, the PHP version, a cache or the host, and each of these fails in its own way. Patchstack’s report on 2025 found 91% of new WordPress vulnerabilities in plugins. Everyday breakage follows the same pattern: the trouble is in the layers around core.

    This matters because your first move decides how long the fix takes. Find the failing request or component before you change any settings. Our guide to fixing WordPress issues without guessing covers the method in depth. This page matches today’s common symptoms to the first safe step for each.

    Is WordPress down, or is it just your site?

    It is almost always just your site. Self-hosted WordPress has no central server that can go down for everyone. WordPress.com is a separate hosted service with its own status page, and that page tells you nothing about a site on your own hosting.

    Rule out the cheap explanations before you touch plugins:

    • Load the site on mobile data instead of your office Wi-Fi.
    • Confirm the domain hasn’t expired and the hosting bill is paid.
    • Check your host’s status page.

    Each of these can produce the same blank page or timeout as a broken plugin, and no amount of plugin testing will fix them.

    Which problems turn up most, and what to do first

    Nobody publishes a reliable count of which WordPress problems are most common. The table below follows the order that WordPress.org’s documentation, WooCommerce’s docs and the support forums consistently point to. Find your symptom before you change anything.

    SymptomUsual causeFirst safe step
    Something broke right after an updatePlugin or theme incompatibilityRoll back or disable that one component, on staging if you can
    “There has been a critical error on this website”PHP fatal error in a plugin, theme or custom codeRecovery Mode email, or the error log
    White screen or 500 errorPHP fatal error, .htaccess or memoryRead the error log
    “Allowed memory size … exhausted”The process named in the errorFix that process before you raise the limit
    Changes not showingA cache layer still serving the old copyPurge every layer and test in a private window
    Checkout stuck on a spinnerA failed background requestBrowser Network tab, then check Orders
    “Error establishing a database connection”Wrong wp-config.php details, or the database serverCheck the credentials, then ask the host
    Every post 404s, homepage loadsStale rewrite rulesSave Settings > Permalinks

    The site broke after an update

    This is the problem people hit most often. WordPress.org’s Recovery Mode documentation says fatal errors often come from an incompatible or faulty plugin, theme or custom code, and updates are when those incompatibilities show up. An update can break the whole site, only wp-admin, or a single feature such as checkout, a form or a layout.

    Start with what changed. If one plugin updated this morning and checkout broke this afternoon, roll back or deactivate that plugin first. If nothing obvious changed, run a conflict test the way WooCommerce documents it:

    1. Switch to a default theme.
    2. Disable all plugins.
    3. Turn them back on one at a time, and repeat the exact action that failed after each one.

    The common trap is disabling everything and calling the site fixed. Some conflicts only happen when two specific plugins run together. A blanket disable brings the site back but hides which pair caused the problem.

    One store owner on the WordPress.org forums handled this well. They updated a cookie consent plugin and a few others on staging, and guest checkout stopped working. Testing showed the consent plugin was blocking a WooCommerce script. A settings exception worked around it until the plugin’s author released a fix. The live store never saw the failure.

    If WordPress said the update itself failed, that’s a different problem. See why WordPress updating failed.

    “There has been a critical error” means PHP stopped

    This message means a PHP fatal error, almost always from a plugin, theme or code snippet. WordPress emails the admin address a Recovery Mode link, which pauses the failing component for your login session only. Visitors still see the error until you deactivate or fix that component. WordPress’s documentation calls deactivation a temporary fix, not the real one.

    The email often never arrives, especially when the admin address is an inbox nobody reads anymore. In that case, open your host’s file manager or connect over SFTP and rename the suspect plugin’s folder in wp-content/plugins. WordPress then treats that plugin as deactivated. The error log names the file that failed, which tells you which folder to rename. Our guide on how to fix a WordPress fatal error shows how to read that log.

    A white screen or a bare 500 is often the same failure with error display turned off. WordPress’s common-errors handbook lists .htaccess, plugins, the theme and memory limits as causes of a 500. The log tells you which one it is. See fixing a server error 500 on WordPress.

    Memory errors: fix the process, not the limit

    When the log shows “Allowed memory size of … bytes exhausted”, visitors usually see a critical error, a blank page or a 500. Kinsta’s documentation advises fixing the process named in the error rather than simply raising the limit. Raising WP_MEMORY_LIMIT in wp-config.php only helps when the limit really is the problem. Your host may also enforce a lower ceiling than WordPress requests, so the edit can do nothing at all.

    If the error names a plugin file, that plugin is your first suspect. Before you edit anything, ask your host what memory limit your plan actually allows.

    Changes not showing usually means a cache is still serving the old page

    A WordPress site can have five caches: a caching plugin, the host’s server cache, an object cache, a CDN and the browser. Clearing one doesn’t clear the others. Purge each layer you have, then check the page in a private window.

    Stores have a second cache problem. WooCommerce’s documentation says the Cart, Checkout and My Account pages usually need to be excluded from page caching because their content is specific to each shopper’s session. If they get cached, those pages can display incorrectly or stop working.

    A stuck checkout spinner means a request failed

    WooCommerce’s documentation says the spinner alone doesn’t tell you the cause. To find it:

    1. Open your browser’s developer tools and go to the Network tab.
    2. Filter by Fetch/XHR.
    3. Place a test order and find the request that failed.

    The failed request points to the layer at fault:

    • 403: a firewall, security rule or authorization check rejected the request.
    • 500: a PHP fatal error or server failure. Check the error log.
    • HTML or a redirect where JSON should be: a cache, security layer, proxy, redirect or PHP warning changed the response.

    The same document gives three warnings:

    • Check WooCommerce > Orders before you retry “Place order”. The order may already exist.
    • A staging copy can still charge real payments, send email and fire webhooks unless you turn those connections off.
    • Don’t switch between the Checkout block and classic checkout as a first step. The switch can hide the original incompatibility.

    “Error establishing a database connection”

    WordPress’s handbook gives two kinds of cause:

    • A wrong database name, user, password or host in wp-config.php.
    • A problem at the host, such as a database server that is down or over its quota.

    If you haven’t changed the credentials and the error comes and goes, suspect the database server.

    Extreme cases exist. One site on the WordPress.org forums had intermittent connection errors on shared hosting. Replies traced them to a wp_options table that had grown to about 32 GB, which caused table locking. The right fix in a case like that has three parts: find the plugin writing the data, back up, and have the host look at the database. A cleanup plugin that removes the data but leaves the plugin writing it only buys a few weeks.

    Every post 404s but the homepage loads

    This usually means the rewrite rules are stale. Go to Settings > Permalinks and click Save Changes without changing anything. That rebuilds the rules.

    If that doesn’t help, check two things. The server may not have Apache’s mod_rewrite module enabled, which WordPress.org’s troubleshooting FAQ lists as a cause. Or a page and a custom post type may share a slug. If you aren’t comfortable editing .htaccess, ask your host.

    Why the plugin security problem keeps getting bigger

    Patchstack counted 11,334 new vulnerabilities in the WordPress ecosystem in 2025, 42% more than in 2024:

    • 91% were in plugins and 9% in themes. Only six were in core, all low priority.
    • 46% had no fix from the developer by the time they were made public.

    Treat these numbers with care. Patchstack sells security products. Other security companies count vulnerabilities differently and get different totals. Some of the growth comes from more researchers looking. A vulnerability count is not a count of hacked sites. What every source agrees on is that the risk is in plugins, so an up-to-date core does not mean an up-to-date site.

    Site owners feel this too. In WordPress.org’s 2023 Annual Survey, the top frustration was “too many plugins (finding the right one)” at 18.6%. Security followed at 16.4%, slow performance at 16.2%, and maintenance and updates at 12.3%.

    The practical response is routine work:

    • Delete plugins you don’t use.
    • Keep the rest updated.
    • If a plugin has a publicly known flaw and no fix, deactivate or replace it.

    If you suspect a hack, WordPress security issues and how to fix them explains how to tell a compromise from an ordinary error.

    Which quick fixes make things worse

    Each of these feels like progress and often isn’t:

    • Raising the memory limit before reading the log. It hides a faulty plugin, and the host may ignore the new value anyway.
    • Clearing one cache and assuming the job is done. The CDN or server cache can still serve the old page.
    • Disabling the security plugin to see if it helps. Confirm that it blocked the request first. Otherwise you have removed protection and learned nothing.
    • Disabling plugins on a live store at a busy hour. Customers lose the features those plugins provide while you test.
    • Changing PHP because the site is slow. A PHP change is a compatibility project, not a speed fix. Test it on staging.
    • Restoring a full backup first. A restore overwrites every order, form entry and edit made since the backup was taken. Rolling back one plugin keeps them. If you do need a restore, how to restore a WordPress site from backup covers what to protect first.
    • Changing several things at once. If the site comes back, you won’t know which change fixed it.

    When to stop and get help

    Stop doing it yourself in any of these situations:

    • You are locked out of both wp-admin and your hosting files.
    • A live checkout is failing and you have no staging copy you can safely test payments on.
    • There are signs of a compromise: redirects you didn’t add, admin users you don’t recognise, or browser warnings.
    • Database errors continue even though the credentials are correct.

    Whoever takes the job needs the same information either way:

    • the URL;
    • the exact action that fails;
    • when it last worked;
    • what changed in between;
    • the relevant lines from the error log.

    Get the scope and any extra charges in writing before work starts. “Investigation” means different things to different providers.

    If you’d rather describe the symptom in chat than trace it yourself, SiteSelf’s agent can do WordPress troubleshooting and bug fixes on your existing site, using hosting access for file and code work, and reports what it changed and checked.

    Frequently asked questions

    How do I find which plugin is causing the problem?

    Disable all plugins, then turn them back on one at a time, repeating the exact action that failed after each one. Switch to a default theme too if the problem survives. Do this on staging for a store, because disabling plugins on the live site removes features customers rely on.

    Does updating WordPress fix every security issue?

    No. Core updates cover core. Plugins and themes update separately. PHP is updated on the server by your host. A dashboard that says everything is up to date tells you nothing about the PHP version running your site.

    Should I turn on automatic plugin updates?

    For well-maintained plugins on a simple site, auto-updates close security holes faster than you would by hand. On stores and sites with custom layouts, an update can break checkout or a template without warning, so test those updates on staging first. Either way, keep a backup you know you can restore.

    Why did my site suddenly slow down?

    “Slow” is a symptom with several possible causes: a plugin, large images, the host, caching, the theme, external scripts or the database. Measure the page with PageSpeed Insights before you change anything or pay for optimisation. Turning plugins off doesn’t always reveal the cause.

    Can two plugins that work fine on their own break the site together?

    Yes. Some conflicts only appear when two specific plugins, or a plugin and a theme, are active at the same time. That’s why the conflict test turns plugins back on one at a time instead of judging each plugin alone.

    Can my host fix it?

    Hosts handle server problems: database outages, memory ceilings, PHP versions and missing server modules. Most won’t debug a plugin conflict, and some charge for investigation. Ask your host to confirm your account’s limits and check the server logs, then take that information to whoever fixes the site.

  • Creating landing pages on WordPress, step by step

    Key takeaways

    • Build on Pages > Add New. Elementor’s separate Landing Page feature is deprecated as of Elementor Pro 3.27, and those legacy pages can’t be picked as the homepage.
    • Pick the layout on purpose. Elementor’s Canvas removes the header, footer and sidebars, and Full Width keeps the header and footer. Editing a shared template changes every page that uses it.
    • A form passes only when a test entry reaches the inbox. Every field needs a visible label whose for value matches the input’s id, as the W3C’s accessibility tutorials describe.
    • Unbounce’s 6.6% median conversion rate covers many platforms and industries. Compare against your own baseline, split by device and traffic source.
    • Near-identical pages for each city or keyword can fall under Google’s doorway abuse policy. Each page needs its own reason to exist.

    WordPress has no landing-page content type. A landing page is an ordinary Page with one job: get a visitor from an ad, an email or a post to take one action. You don’t need a special plugin, and you shouldn’t use the special feature some older tutorials describe. Elementor’s separate Landing Page feature is deprecated as of Elementor Pro 3.27.

    The build is the easy part. Practitioners on Reddit and the WordPress.org forums keep naming the same hard parts: the copy, the scope, mobile behaviour, testing the form, and keeping the page in step with the offer once it’s live. This guide covers the whole job, from the goal to the launch checks. If you’re still choosing a tool, our guide to building a landing page in WordPress compares the block editor with page builders.

    What should you decide before opening the editor?

    Decide on one action and write it down in a single sentence. For example: “This page helps homeowners in our area request an interior painting quote.” If you can’t write that sentence, the page will try to do three things and none of them well.

    Add three facts to the sentence. Where do visitors come from? What does the ad or email promise? What does your team need from the visitor to reply properly? Those answers decide the headline, the form fields and the slug.

    Also decide what counts as a good result. A quote request from outside your service area is still a completed form, but it isn’t work. Track qualified enquiries next to raw submissions. Otherwise a page can look successful while it fills your inbox with leads you can’t serve.

    What do you need before you start?

    • Access: an Editor or Administrator account. To set the page as the homepage, change a template or install a form plugin, you need Administrator.
    • Copy: a headline, three or four benefits, one or two pieces of real proof, and answers to the questions that hold buyers back. Write the copy before you build. Writing it during the build is what turns a three-hour page into a three-day page.
    • Images: one hero photo of real work, sized for the web.
    • A form tool your site already uses, if it has one.

    How to create the landing page

    1. Create the page. Go to Pages, then Add New. Give the page a title and set a short slug that uses the words from the ad, such as interior-painting-quote. If you change the slug after the campaign starts, every link already sent out breaks unless you add a redirect.
    2. Choose the layout for this page only. This is the setting behind most “my menu disappeared” and “why is the header still there” questions, and it depends on your theme:
      • In a block theme, assign a custom template (Learn WordPress builds one without header navigation).
      • In a classic theme, pick the blank or full-width template if the theme provides one.
      • In Elementor, open Page Settings, then Page Layout. Canvas removes the header, footer and sidebars. Full Width keeps the header and footer. Elementor’s Single Page templates apply only to pages on the Default layout.
      Don’t edit a shared template to change one page. The WordPress Theme Handbook warns that a template change affects every page that uses it.
    3. Write the hero to match the ad. An ad about interior painting should land on a headline about interior painting, not “Transform your space.” Say who the page is for, what they get and what to do next. Put the button beside that text. Use the same button wording (“Get a quote”) here and on the form’s submit button.
    4. Add benefits, proof and objections. The Learn WordPress landing page lesson lists a hero with a call to action, benefits and social proof as the core sections. Place proof near the button, not three screens below it. A named review that mentions the type of job beats an anonymous compliment. Add an FAQ only for real hesitations, and put another button after it.
    5. Build a short, accessible form. For every field, ask whether it changes what your team does next. If it doesn’t, cut it. Give every field a visible label. Placeholder text alone disappears as soon as someone types. The W3C’s guidance on labeling form controls says an explicit label’s for value must match the input’s id. Error messages should say what to fix. Our guide to adding a contact form in WordPress covers the plugin side.
    6. Prepare the images. Compress the hero and check how it crops on a phone. Give informative images short alt text that says what they show. Give decorative images an empty alt="". Don’t leave the attribute out.
    7. Publish, then decide about the homepage. A campaign page can live at its own URL. If it really should replace the homepage, go to Settings, then Reading, choose “A static page” and select it as the Homepage. The Homepage and the Posts page can’t be the same page. In a block theme, check Appearance, then Editor, then Templates, because a Front Page template there can override the Reading setting.

    Selling one product? On a WooCommerce store, add the Single Product block to the page and choose the product. WooCommerce’s documentation says the block displays the product’s image, title, price and add-to-cart controls. A page that only looks like a product page can’t take payment. Keep Cart, Checkout and My Account as separate assigned pages. WooCommerce warns that combining them breaks redirects and payment gateways.

    What does a correct result look like?

    Test the live URL, not the editor preview, while logged out and on a real phone. Logged-in views often skip the cache, so you may see a version your visitors don’t. The page passes when:

    • The first screen shows the offer and the button without zooming, and no popup or cookie banner covers them.
    • The button scrolls to the form, and nothing sticky, such as a header or chat widget, hides the form after the jump.
    • A test submission shows a confirmation and arrives in the right inbox. A success message on screen isn’t proof the email was delivered.
    • Submitting with a required field left empty shows an error that says what to fix.
    • The browser tab shows your real site name, not the default “My WordPress Blog” that practitioners on X keep finding on launch day.
    • The exact URL from the ad, tracking parameters included, opens the page.

    What to do if it did not work

    Most broken landing pages are a setting, not a bug. Start with the symptom:

    SymptomUsual causeFix
    New page shows a 404A cached 404, or rewrite rules that need refreshingPurge every cache layer: plugin, host and CDN. If all pages 404 but the homepage loads, open Settings, then Permalinks, and click Save Changes without changing anything.
    Visitors see an old versionOnly one cache layer was clearedPurge every layer and check in a private window. See why a WordPress page isn’t updating.
    Menu missing, or header still showingWrong layout (Canvas or Full Width)Change the layout on this page only.
    Homepage still shows postsReading setting not saved, or a block theme Front Page templateCheck both.
    Page missing from the Homepage dropdownIt was built with Elementor’s legacy Landing Page typeSave the design as a template, insert it into a regular Page, then assign that Page.
    Elementor editor won’t loadPlugin conflict or PHP memoryTry Elementor’s Safe Mode, deactivate plugins one at a time, and check the memory limit (Elementor recommends at least 256 MB).

    Don’t change the site-wide permalink structure to fix one page. WP Engine’s support docs warn that this can cause 404s across an established site. If the editor error is misleading, check the PHP error log as well as the browser console. In one WordPress.org support thread, “elementor is not defined” turned out to be the host’s 128 MB memory cap. When a fix needs server access or the cause stays hidden after these steps, ask your host or a developer.

    Should you make a version for every city or keyword?

    Only if each version has something real to offer that the others don’t. Google’s spam policies describe doorway abuse as pages that are substantially similar, target similar queries or locations, and funnel users to one destination. Swapping the city name in an otherwise identical page fits that description. One commenter on r/marketing gave a sensible rule: reuse a template when the use cases really are alike, and write separate pages when they differ.

    Paid-traffic variants are different. Pages for an ad test are usually kept out of search anyway. If you run two near-copies, point a rel="canonical" at the main one or redirect the loser when the test ends.

    How do you tell if the page is working?

    Use your own numbers first. Unbounce reports a 6.6% median conversion rate from its Q4 2024 data across about 41,000 pages. That covers many industries and builders, and none of the data is specific to WordPress. A quote request, a sign-up and a purchase are different decisions, so a benchmark is context, not a target.

    Record visits, form starts, submissions and qualified enquiries, split by device and by traffic source. Mobile falling while desktop holds points to layout, overlays or loading. People starting the form and not finishing points to fields or errors. Lots of traffic from one source with weak leads points to the ad’s promise. Change one thing at a time. On a low-traffic site, fix confirmed faults and clear confusing copy, and call untested tweaks guesses.

    Then keep the page current. Practitioners on X describe the same decline: the demo gets imported and the text swapped, and then the price goes stale, nobody tests the form again, and the mobile layout slowly breaks as people add sections. Put a date in the calendar to re-test the form and check the offer. If you’d rather describe each change in chat and have it made and checked on your existing site, that’s what SiteSelf’s page and copy edits cover, though pages owned by Elementor, Divi or Beaver Builder are refused, with the reason.

    Frequently asked questions

    Can I create a landing page without a plugin?

    Yes. A regular Page, the block editor and a blank or custom template are enough. Builders save time with templates and ready-made widgets. They also add weight and make it harder to switch tools later.

    Should a landing page hide the site navigation?

    No controlled evidence settles this. A page for paid traffic with one action usually works best without the menu. A page that people find through search, or that needs to build trust, often benefits from keeping it. Match the page to the traffic source and test.

    How long does creating a landing page take?

    Reports on r/Wordpress range from an hour or two to several days. One developer estimated three to four hours for a simple one-pager. Having the copy and images ready matters more than which tool you pick.

    Does a fast landing page rank better?

    Speed helps visitors, especially on phones, but it is one consideration among many. A well-built page still competes with established pages that have links and history. Treat speed as a requirement for the people who arrive, not as a ranking strategy.

    Can I keep my old Elementor landing pages?

    Elementor says existing landing pages are not affected, but it recommends against using the feature going forward. There’s no rush to migrate. Rebuild a legacy page as a regular Page when you next need to change it, or when it has to become the homepage.