What WordPress cleanup and speed work covers
A WordPress site gets slower and easier to attack for a shared reason: it accumulates. Plugins that were tried and dropped, themes nobody uses, database rows from tools removed years ago, oversized uploads, a PHP version the host never moved. Cleanup and speed work is the job of finding what is dead weight, proving it is dead, removing it with a restore point in hand, and then tuning what is left. WordPress.org's housekeeping guide asks owners to review plugins and themes on a schedule, and its hardening guide says to delete any plugin you are not using.[17],[19]
This page covers repair and tuning of a WordPress site you already have. A new site or a redesign is a different job: see web design. Search visibility work sits on the SEO, AEO and GEO page, and conventional applications and integrations on custom apps and integrations.
Audit first
A read-only review of plugins, themes, database, autoloaded data, PHP version, caching and security settings, before anything changes.
Backup before change
A database dump and an archive of every file that could be removed, with checksums, so each removal has a restore point.
Clean
Inactive plugins and themes, leftovers of removed plugins, old revisions and stray files go one proven item at a time.
Speed
Measure real-user Core Web Vitals, then fix the cause behind each slow page: caching, images, scripts, hosting.
Secure
File permissions, login protection, updates and monitoring, with the WordPress.org hardening guide as the checklist.
Recover
If the site is hacked: quarantine, restore known-clean files, close the way in and support Google's review.
You can get a free first look yourself. WordPress has a Site Health screen under Tools, then Site Health. Its Status tab sorts findings into critical issues, recommended improvements and passed tests, and it flags an outdated PHP version, plugins waiting for updates and background updates that are not working. Its Info tab lists active and inactive plugins and themes, directory sizes and the database size. WordPress.org recommends removing inactive themes you do not plan to use.[16]
- SystemRule sheet: signs of a break-in come first, then anything that stops visitors or forms from working, then speed, then tidying. Nothing is deleted before a backup exists.
- StaffMy site feels slow, and last week I noticed an administrator account I do not recognize.
- SystemRule one applies. An unknown administrator is a possible compromise, so speed work waits.
- SystemNext steps: back up the site as it is, labeled as possibly infected; list users, recently changed files and the host's access log.
- StaffCan you just install a cache plugin today and call it done?
- SystemNot yet. First find out what changed and why, then clean, then tune. A cache layer would only hide what is on disk.
- SystemResult: a written plan in the order security, backup, cleanup, speed, with an approval point before each change.
Browser simulation with fictional data and fixed rules. Not a live AI run and not a customer result.
Speed starts with measurement: Core Web Vitals
Core Web Vitals are Google's three measures of real visitor experience: loading (Largest Contentful Paint, LCP), responsiveness (Interaction to Next Paint, INP) and visual stability (Cumulative Layout Shift, CLS). web.dev recommends judging each at the 75th percentile of page loads, segmented across mobile and desktop, and treats a page as passing when it meets all three targets.[4],[1],[2],[3]
| Metric | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP, loading | 2.5 seconds or less | Above 2.5 and up to 4.0 seconds | Above 4.0 seconds |
| INP, responsiveness | 200 milliseconds or less | Above 200 and up to 500 milliseconds | Above 500 milliseconds |
| CLS, visual stability | 0.1 or less | Above 0.1 and up to 0.25 | Above 0.25 |
Field data and lab data answer different questions. Field data comes from real visitors. web.dev says only field measurement captures the complete picture, and that lab tools such as Lighthouse cannot measure INP because they have no user input. PageSpeed Insights shows both: field data from the Chrome User Experience Report over the previous 28 days, and a Lighthouse lab run that simulates a mid-tier phone on a mobile network. A page without enough real-user samples falls back to origin-level data, and a low-traffic site may have none, in which case lab data is all there is.[4],[10]
Public data shows that many WordPress sites do not pass. The 2025 Web Almanac CMS chapter describes WordPress as among the lowest-ranked platforms for mobile Core Web Vitals, with a pass rate of 45% in its figure description. We could not confirm the data month, and your site is not an average site, so treat this as context and not as your number.[11]
What Google says about ranking is more modest than most speed marketing. Its page experience documentation says Core Web Vitals are used by its ranking systems and recommends good scores, but also that there is no single page experience signal, that Search shows the most relevant content even when the page experience is sub-par, and that good results in a report or a third-party tool do not mean top rankings. It adds that chasing a perfect score purely for SEO reasons may not be the best use of your time. Its Core Web Vitals documentation points to the Core Web Vitals report in Search Console for how your own pages perform.[9],[8]
Where WordPress sites lose time and what fixes it
web.dev splits LCP into four parts and gives ideal shares of the total: time to first byte about 40%, resource load delay under 10%, resource load duration about 40% and element render delay under 10%. It calls these guidelines, not strict rules. Read in plain terms: if the server is slow to answer, no image trick can rescue LCP, so hosting and caching are checked first.[5]
| Lever | What it changes | What the documentation says |
|---|---|---|
| Hosting and server response | Time to first byte, about 40% of the LCP budget | web.dev: serve assets from a CDN, cut redirects and avoid cache-busting query parameters so cached content can be served. |
| Page cache | Serves stored HTML instead of rebuilding the page on every visit | WordPress.org: caching plugins store posts and pages as static files, which it says can improve performance several hundred times over for fairly static pages. The LiteSpeed Cache plugin's server-level page cache needs a LiteSpeed-based host. |
| Object cache | Saves trips to the database | The core object cache is non-persistent by default. A persistent one needs a cache server from your host and a plugin, for example Redis. |
| The LCP image | Resource load delay and duration | web.dev: keep the LCP resource discoverable in the HTML, use fetchpriority high on one or two images at most, and never lazy-load the LCP image. WordPress 6.3 added fetchpriority high automatically to the image it judges most likely to be the LCP image and fixed lazy-loading on images that should not have it. |
| Image size and format | Download time and bandwidth | WordPress.org: optimize every image, pick the right format and compression, consider WebP, and ask whether each image is needed at all. |
| Image and embed dimensions | CLS, the page jumping while it loads | web.dev: always set width and height attributes on images and videos, reserve space for ads and embeds, and use font-display optional to avoid a re-layout when a web font swaps in. |
| Scripts and plugins | INP, how long the page is busy after a tap | web.dev: break up long tasks, yield to the main thread and keep the DOM small. WordPress.org: deactivate and delete unnecessary plugins and test by disabling plugins selectively. |
| Database | Query time on every uncached request | WordPress.org: use InnoDB, minimize revisions and keep autoloaded options under 800kb as a general guideline. |
| PHP version | Execution speed | WordPress.org: newer PHP versions usually include better performance optimization; the requirements page recommends PHP 8.3 or greater. |
In practice we start with the cheapest, most reversible changes: update PHP where the host allows it, remove dead plugins, turn on page and browser caching, resize and convert oversized images and set image dimensions. Heavier changes such as combining or delaying JavaScript come last and one at a time, because those are the ones that break layouts.
After each optimizer or cache change we check every page listed in the sitemap, every stylesheet and script, and what a real browser shows, not only the home page. A minify or combine setting can leave inner pages unstyled while the home page looks fine, and a cache purge that reports success can still leave old pages in the cache. We test with browser-like requests as well as plain ones.
The cleanup itself: audit, backup, then remove only what is proven dead
Cleanup is where sites get damaged, so the order matters more than the tools. This is how we work.
Audit, read only
We list active and inactive plugins and themes, the largest uploads, post revisions, autoloaded options, tables that belong to no installed plugin, PHP and database versions, and the connections the site relies on: analytics, forms, Search Console, hub and API links.
Prove what is dead
A leftover table or option counts as an orphan only when its plugin folder is gone, it is not in the active plugin list and no active code still reads it. A name that looks like old junk can be the live cache of a plugin you use, so we search the code before anything is marked for removal.
Backup and restore point
A database dump and an archive of every file that could be removed, with checksums, copied off the server and checked. If there is no verified backup, nothing is deleted.
Your approval of the plan
You see the exact counts of tables, options, revisions and files. The apply step stops by itself if the live numbers differ from the plan you approved.
Clean in small steps
Inactive plugins, old revisions, leftover tables and stray files go first. Active plugins, connectors, SEO data stored in post meta, page-builder content and your media library are not touched without a separate decision.
Tune, verify, record
Speed settings are staged and every page is checked after each stage. You receive the before and after numbers, what was removed and how to roll it back.
| Item | Our default | Why |
|---|---|---|
| Inactive plugins and themes | Remove after the backup | Unused code is something else to patch. WordPress.org's hardening guide says to delete a plugin you are not using, and Site Health lists inactive themes you may remove. |
| Leftover tables and options of removed plugins | Remove only when proven orphaned | Prove first: its folders are gone, it is inactive and no active code reads it. |
| Post revisions | Trim old ones, keep recent ones | WordPress.org documents a setting that caps stored revisions and lists minimizing revisions as a database tip. |
| Active plugins and connectors (analytics, forms, security, API links) | Keep | Connections your team uses are not bloat. Replacing a plugin is a separate decision. |
| SEO data in post meta from removed SEO plugins | Keep | It is real content that other code on the site may read. |
| Media library: unattached images, oversized originals | Your decision | Deleting an image can break a page. WordPress.org suggests moving unused images to a backup folder if you are unsure. |
WordPress.org's backup guide says a backup has two parts, the database and the files. Back up the database first, then the files, and keep them together as one set; to restore, reverse the order, files first and then the database. It suggests weekly backups for smaller sites and daily for high-activity sites, and keeping at least 3 to 5 recent backups in different places such as your host, cloud storage and a local computer. It advises backing up before every upgrade or move.[18]
We take a backup before any change whatever the schedule says, we copy it somewhere other than the server being cleaned, and we check that it can be read before the first deletion.
If the site is hacked: recovery in the right order
WordPress.org lists indicators of compromise: the site is blacklisted by a search engine, the host has disabled it, it is flagged for distributing malware, visitors report antivirus warnings, someone says it is attacking other sites, you see actions you did not take such as new users, or the damage is visible in the browser. Not every hack looks alike, which is why the first job is to write down the symptoms.[26]
- Document, then take the site offline. Write down what you see, when you noticed it (with the time zone) and what changed recently. web.dev suggests stopping the web server or pointing DNS at a static 503 page hosted elsewhere, because a robots.txt block or an error code does not stop harmful content reaching visitors. The FTC's breach guide also says to take affected equipment offline right away.[26],[30],[33]
- Call the host and scan your own computer. On shared hosting a hack can reach beyond your site, and WordPress.org notes that attacks often start on the owner's own machine, where trojans capture FTP and admin logins.[26],[30]
- Back up the infected state twice and find a clean one. web.dev says to make two backups even though the site is still infected, labeled as such, and to check that your backup was created before the site was hacked. WordPress.org also recommends a snapshot before cleaning, in case of catastrophic failure.[31],[26]
- Lock the doors. Change every access point: WordPress admin, SFTP, the hosting panel and the database. Review the user list for accounts the attacker created. WordPress.org says to replace the secret keys in wp-config.php so anyone still logged in is signed out.[26],[30]
- Find and remove the malicious code. WordPress.org says /wp-admin and /wp-includes can be replaced with fresh copies of the same version, and that .htaccess is one of the files attackers most often change. WP-CLI can compare core files and plugin files with the checksums published by WordPress.org and list every file that does not match. Code that does not come from WordPress.org, such as premium plugins and custom themes, has to be compared with your own known-clean copy.[26],[27],[28]
- Close the way in, then update. web.dev says to correct the vulnerability and, for a compromised server, to perform a clean installation, not just an upgrade. WordPress.org says older versions are more prone to hacks and that you should update once the site is clean.[31],[26]
- Change the passwords again. If you only changed them when you discovered the hack, WordPress.org says to change them again after the site is confirmed clean, and to consider a new database user and password.[26]
- Request Google's review if it flagged the site. Google calls the Security Issues report in Search Console the source of truth. When every listed issue is fixed on every page, select Request Review and describe what you fixed. A review can take from a few days to a few weeks, and you should not resubmit while one is pending.[29]
Google's Security Issues report names these kinds of hacked content, among others: code injection (malicious code such as redirects or cryptocurrency mining scripts), content injection (spammy links or text added to existing pages) and URL injection (new spam pages created on your site). Many hackers show their changes only to Google's crawler, so use the URL Inspection tool to see a page as Google sees it, and use cURL or Wget with different user agents and referrers instead of a browser to look at infected pages, since malware can exploit browser flaws.[29]
Google's spam policies define hacked content as any content placed on a site without permission due to vulnerabilities in the site's security, and list code injection, page injection, content injection and redirects as examples. The policies also say that sites that violate them may rank lower or not appear in results at all.[32]
- Who is covered (Illinois Personal Information Protection Act, 815 ILCS 530). A data collector includes privately and publicly held corporations and any other entity that, for any purpose, handles, collects, disseminates or otherwise deals with nonpublic personal information. A breach is unauthorized acquisition of computerized data that compromises the security, confidentiality or integrity of personal information the collector maintains.[34]
- What counts as personal information. A first name or initial and last name combined with a Social Security number, driver's license or state ID number, account or card number, medical information, health insurance information or unique biometric data, or an email address or user name combined with a password or security question and answer that would permit access to an online account.[34]
- Notice. After a breach the data collector must notify the affected Illinois resident at no charge, in the most expedient time possible and without unreasonable delay, consistent with measures needed to find the scope and restore the system. A collector that must notify more than 500 Illinois residents because of a single breach must also notify the Attorney General, no later than when it notifies consumers.[35]
- Security duty. A data collector that holds personal information about an Illinois resident must implement and maintain reasonable security measures, and a contract for disclosing that information must require the recipient to do the same. Ask your host and your plugin vendors what they commit to.[36]
- Practical steps (FTC). The FTC's guide for businesses says to secure operations, reset credentials, remove personal information posted on your website, preserve evidence, bring in forensic experts to find the source and scope, and check state and federal breach notification laws.[33]
For a hacked site we use the same written scope, with a different order: quarantine and backup first, then cleanup, then a review of how the attacker got in. We do not delete anything we cannot restore, and we say so plainly when a site should be restored from a clean backup instead of cleaned in place.
Hardening, updates and a maintenance rhythm
The WordPress.org hardening guide is the checklist we start from. These are the items we check on almost every site:[19]
- File permissions. Directories 755 and files 644, with core files writable only by your user account. wp-config.php readable only by you and the web server, which generally means 400 or 440, and it can live one directory above the install.[19]
- Turn off the dashboard file editor. Define DISALLOW_FILE_EDIT as true in wp-config.php. WordPress.org notes this does not stop an attacker from uploading malicious files, so it is one layer, not the fix.[19],[20]
- Delete what you do not use. Keep plugins updated and delete any plugin you are not using.[19]
- Strong login. Long, unique passwords, two-step authentication and no admin or webmaster user name.[19]
- Encrypted connections. SFTP instead of FTP, and HTTPS for administration; the FORCE_SSL_ADMIN constant secures logins and the admin area so passwords and cookies are not sent unencrypted.[19],[20]
- Database. A separate database and user for each site, and a table prefix other than the default. Changing the prefix on a live site is risky, so we only do it with a tested backup.[19]
- Backups and monitoring. Dated snapshots of the whole install and the database, and a way to notice changed files.[19]
On updates, the hardening guide says older versions of WordPress are not maintained with security updates, and that once a fix ships the information needed to exploit the flaw is almost certainly public, which is a main reason to stay current. WordPress.org's security page says only the latest version is officially supported, with fixes backported to older versions as a courtesy.[19],[23]
Since version 3.7, minor and security updates for core apply automatically in the background on most sites, while major releases need a click; the WP_AUTO_UPDATE_CORE setting defaults to minor releases only. Plugin and theme auto-updates arrived in version 5.5, are opt-in for each plugin and theme, and run twice a day by default. They rely on WordPress cron, Site Health can show whether it works, and WordPress.org advises making sure you can roll back before turning them on.[21],[20],[22],[16]
On versions, the WordPress.org requirements page recommends PHP 8.3 or greater, MariaDB 10.11 or greater or MySQL 8.0 or greater, and HTTPS support. It says WordPress still works with PHP 7.4 and MySQL 5.5.5, but those versions have reached end of life and may expose a site to security vulnerabilities. The PHP project's supported-versions table, read on October 13, 2026, lists 8.2 with security fixes only until December 31, 2026, 8.3 with security support until December 31, 2027, and 8.4 and 8.5 in active support.[24],[25]
| Task | What the documentation says |
|---|---|
| Core updates | Minor and security releases apply automatically by default; major releases need a manual update. |
| Plugin and theme updates | Opt-in auto-updates run twice a day. The housekeeping guide asks owners to check for new versions at least every three months, six months at the most, which we treat as a floor and not a target. |
| Backups | Weekly for smaller sites, daily for high-activity sites, several recent copies in different places. |
| Housekeeping | Remove unused plugins, themes and images, and check the database for overhead. |
| Site Health | Review critical issues and recommended improvements on the Status tab. |
| PHP and database versions | Match the requirements page and plan upgrades before a PHP branch loses security support. |
A maintenance plan is the same list with a named owner and a written change log. We agree the list and how often each item runs in the written scope, and we report what was updated, what failed and what was rolled back.
Repair or rebuild, and where AI helps
Repair is cheaper in the short run and a rebuild is cleaner in the long run. The right answer depends on evidence, so we write the recommendation down with the reasons.
| Situation | Points to repair | Points to rebuild |
|---|---|---|
| Hacked site | A clean backup from before the compromise exists, the way in is found and closed, and core can be reinstalled from the same version. | No clean backup exists, or the server itself was compromised: web.dev says to perform a clean installation, not just an upgrade. |
| Old PHP or abandoned plugins | Theme and plugins have a maintained version that runs on a supported PHP release. | The theme or a core plugin only runs on versions that have reached end of life and has no maintained alternative. |
| Slow site | The cause is hosting, caching, images or a few heavy plugins, all fixable in place. | The theme or page-builder layer is the cause and every page depends on it. |
| Content that rarely changes | You use WordPress features such as forms, memberships or a shop. | Mostly static pages: a static rebuild can remove the update burden (see below). |
For a site that rarely changes, rebuilding as hand-edited static pages in CMS MESH 5.1 (Media Express Static Hub), our own new-generation manual CMS, is one option: ultra-fast static HTML pages, no database, no plugins to update, an AI-ready structure (schema, llms.txt, sitemap) and hand-verified QC. It is not the right choice for sites that need plugin ecosystems, shops or user accounts; those stay on WordPress. The CMS MESH page explains the trade-offs honestly.
AI-assisted editing. AI is how we work faster: drafting page copy, writing tests, summarizing audit output and checking changes. A person approves what goes live, and nothing an AI drafts is applied to a production site without that approval.
WordPress itself now has a built-in AI Client. According to the core developer note of March 24, 2026, WordPress 7.0 includes a provider-agnostic PHP API that lets plugins send prompts to AI models, site administrators configure providers on the Settings, Connectors screen, and core does not bundle any AI providers directly. The post notes that not every site will have a provider configured. It describes no site-wide switch to disable the AI Client and no usage or cost limits for site owners; developers can block specific prompts with a filter.[37]
That is why we treat any AI plugin like any other plugin that sends data to a third party: we check what it sends, who can use it and what it can change before it is switched on.
How an engagement works, what you receive and what to prepare
Request
You send the site address and what you see: slow pages, a warning, strange users, a failed update, or a plugin you want gone.
Short call
We ask what the site is for, who has access, what changed recently and what must not break, and we tell you honestly if a cleanup is not what you need.
Written scope
Goal, tools and accounts involved, approvals and the success measure, written down before we touch the site.
Audit and backup
A read-only audit, then a verified backup. You see the plan and the exact counts before anything is removed.
Clean, tune, verify
Changes are made in stages, with an approval point before risky ones. Every step is logged and has a way back.
Report and maintain
You receive before and after measurements and a change list, and a recurring maintenance scope if you want one.
Work runs through accounts you own. The AI agents we use on a site ask for approval on risky steps, log every action, use least-privilege access with their own service account, and can be switched off. We never ask for passwords or API keys in a contact form. See how we run AI agents for the detail.
Who you work with: Media Express LLC in Mount Prospect, Illinois, opened on April 1, 1995, and has delivered 2,500+ digital projects. Our own team of AI agents (Claude, ChatGPT, Gemini and open-source runtimes) keeps 100+ web properties running and monitored. Google Inc. was incorporated in August 1998, so we built websites in the dial-up era.[38]
- A written audit with findings sorted by risk.
- A verified backup and rollback instructions.
- A list of everything removed, changed or updated.
- Before and after Core Web Vitals measurements from the same tools.
- A hardening checklist: what was done and what remains.
- For a hacked site: what was found, what was restored, how the attacker most likely got in if the evidence allows, and what you must change.
- A maintenance scope, if you want one.
To prepare: the site address; who has the hosting, domain and WordPress admin access and who owns each account; what the site must keep doing (forms, shop, bookings, logins); anything that changed before the problem started, such as a new plugin, a theme edit or a host change; the last backup you know about and where it is; and any warnings from Google, your host or customers. Not the passwords: we set up access with you.
We do not publish prices. The estimate is free, we work with every budget, and scope and cost come in writing after a short call. Call 773-800-1520, Monday to Friday 9 to 5 and Saturday 10 to 2 Central. We work remotely across the United States and on site in the Chicago area, in English and in Polish.
When this is NOT a good fit
- You need a new website, not a repair. A redesign or a new build is a different job; see our web design page.
- You want a perfect score for its own sake. Google says trying for a perfect score just for SEO reasons may not be the best use of your time, and that Search shows relevant content even when page experience is sub-par.[9]
- You want ranking promises. Google says there is no single page experience signal. Speed is one input among many, and we do not promise rankings or a score. If you need search work, start with the SEO, AEO and GEO page.[9]
- Your host is the limit. If the plan cannot run a current PHP version, offer a cache server or give access to logs, tuning inside WordPress only goes so far. The fix may be a host change, and we will say so.
- You need a legal or forensic investigation. Cleanup restores the site. It is not a legal opinion, a forensic report for a court or a regulator notice. For a breach of personal information your attorney should lead; the FTC guide says to bring in forensic experts to determine the source and scope.[33]
- Nobody can say who owns the hosting, the domain or the admin accounts. We work through accounts you own, so sort out ownership first.
If one of these fits, we will say so on the first call.
Questions answered
How do I speed up a slow WordPress site?
What are good Core Web Vitals scores for a WordPress site?
Does a faster WordPress site rank higher on Google?
What does a WordPress cleanup include, and is it safe?
How do I know if my WordPress site has been hacked?
What should I do first to fix a hacked WordPress site?
How long does Google take to review a cleaned site?
Do I have to notify customers if my WordPress site is breached?
What does WordPress maintenance include, and how often should it run?
Which PHP version should my WordPress site run?
Do I need a caching plugin or Redis?
Should I repair my WordPress site or rebuild it?
Can AI edit or manage my WordPress site?
Do you work with Polish-speaking owners?
Sources
- Largest Contentful Paint (LCP) (web.dev (Google)), accessed 2026-10-13. LCP thresholds (2.5 and 4.0 seconds), 75th percentile, what counts as the LCP element.https://web.dev/articles/lcp
- Interaction to Next Paint (INP) (web.dev (Google)), accessed 2026-10-13. INP thresholds (200 and 500 milliseconds) and what INP measures.https://web.dev/articles/inp
- Cumulative Layout Shift (CLS) (web.dev (Google)), accessed 2026-10-13. CLS thresholds (0.1 and 0.25) and the 75th percentile.https://web.dev/articles/cls
- Web Vitals (web.dev (Google)), accessed 2026-10-13. The three Core Web Vitals, the 75th percentile rule, field versus lab data and Lighthouse not measuring INP.https://web.dev/articles/vitals
- Optimize Largest Contentful Paint (web.dev (Google)), accessed 2026-10-13. The four LCP sub-parts with ideal shares, fetchpriority, never lazy-load the LCP image, CDN and redirects.https://web.dev/articles/optimize-lcp
- Optimize Cumulative Layout Shift (web.dev (Google)), accessed 2026-10-13. Image dimensions, reserved space for embeds, font-display optional.https://web.dev/articles/optimize-cls
- Optimize Interaction to Next Paint (web.dev (Google)), accessed 2026-10-13. Long tasks, yielding to the main thread and DOM size.https://web.dev/articles/optimize-inp
- Understanding Core Web Vitals and Google Search results (Google Search Central), accessed 2026-10-13. Core Web Vitals report in Search Console and the three suggested thresholds.https://developers.google.com/search/docs/appearance/core-web-vitals
- Understanding page experience in Google Search results (Google Search Central), accessed 2026-10-13. No single page experience signal, Core Web Vitals used by ranking systems, relevance over page experience, good scores do not mean top rankings, perfect score not worth chasing for SEO alone.https://developers.google.com/search/docs/appearance/page-experience
- About PageSpeed Insights (Google), accessed 2026-10-13. Field data from the Chrome User Experience Report over 28 days, Lighthouse lab data, fallback to origin-level data.https://developers.google.com/speed/docs/insights/v5/about
- Web Almanac 2025: CMS (HTTP Archive), accessed 2026-10-13. Mobile Core Web Vitals pass rate for WordPress in the chapter's figure description.https://almanac.httparchive.org/en/2025/cms
- Image performance enhancements in WordPress 6.3 (WordPress Core team (make.wordpress.org)), accessed 2026-10-13. Automatic fetchpriority high on the likely LCP image and fixes to lazy-loading in WordPress 6.3.https://make.wordpress.org/core/2023/07/13/image-performance-enhancements-in-wordpress-6-3/
- Optimization (WordPress Advanced Administration Handbook) (WordPress.org), accessed 2026-10-13. Caching plugins, persistent object cache needs a host cache server, delete unnecessary plugins, InnoDB, revisions, autoload under 800kb, WebP.https://developer.wordpress.org/advanced-administration/performance/optimization/
- WP_Object_Cache class reference (WordPress.org), accessed 2026-10-13. The object cache saves trips to the database and is non-persistent by default.https://developer.wordpress.org/reference/classes/wp_object_cache/
- LiteSpeed Cache plugin (WordPress.org Plugin Directory), accessed 2026-10-13. Server-level page cache needs a LiteSpeed-based host; Redis and Memcached object cache support.https://wordpress.org/plugins/litespeed-cache/
- Site Health screen (WordPress.org), accessed 2026-10-13. Status and Info tabs, critical issues, outdated PHP, background updates, inactive themes.https://wordpress.org/documentation/article/site-health-screen/
- WordPress Housekeeping (WordPress.org), accessed 2026-10-13. Review plugins and themes regularly, delete unwanted ones, unused images, database overhead, update check every three to six months.https://wordpress.org/documentation/article/wordpress-housekeeping/
- WordPress Backups (WordPress.org), accessed 2026-10-13. Database and files, backup and restore order, weekly or daily frequency, 3 to 5 recent copies in different places.https://developer.wordpress.org/advanced-administration/security/backup/
- Hardening WordPress (WordPress.org), accessed 2026-10-13. Permissions 755 and 644, wp-config settings, DISALLOW_FILE_EDIT, delete unused plugins, SFTP, two-step authentication, backups, old versions not maintained.https://developer.wordpress.org/advanced-administration/security/hardening/
- Editing wp-config.php (WordPress.org), accessed 2026-10-13. WP_POST_REVISIONS, DISALLOW_FILE_EDIT, FORCE_SSL_ADMIN and the WP_AUTO_UPDATE_CORE default.https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
- Updating WordPress (WordPress.org), accessed 2026-10-13. Back up before updating; automatic background updates for minor and security releases since 3.7.https://wordpress.org/documentation/article/updating-wordpress/
- Plugin and themes auto-updates (WordPress.org), accessed 2026-10-13. Auto-updates since 5.5, opt-in, twice a day, rely on WordPress cron, backup advice.https://wordpress.org/documentation/article/plugins-themes-auto-updates/
- WordPress Security (WordPress.org), accessed 2026-10-13. Only the latest version is officially supported; older versions get fixes as a courtesy.https://wordpress.org/about/security/
- WordPress requirements (WordPress.org), accessed 2026-10-13. Recommended PHP 8.3 or greater, MariaDB 10.11 or MySQL 8.0, HTTPS; PHP 7.4 and MySQL 5.5.5 work but are end of life.https://wordpress.org/about/requirements/
- Supported Versions (PHP) (The PHP Group), accessed 2026-10-13. Active and security support dates for PHP 8.2, 8.3, 8.4 and 8.5.https://www.php.net/supported-versions.php
- FAQ: My site was hacked (WordPress.org), accessed 2026-10-13. Indicators of compromise, document, scan, reset access and secret keys, backups, replace core folders, .htaccess, update, change passwords again.https://wordpress.org/documentation/article/faq-my-site-was-hacked/
- wp core verify-checksums (WP-CLI) (WordPress.org (WP-CLI handbook)), accessed 2026-10-13. Verifies core files against WordPress.org checksums and lists mismatches.https://developer.wordpress.org/cli/commands/core/verify-checksums/
- wp plugin verify-checksums (WP-CLI) (WordPress.org (WP-CLI handbook)), accessed 2026-10-13. Verifies plugin files against WordPress.org checksums.https://developer.wordpress.org/cli/commands/plugin/verify-checksums/
- Security Issues report (Search Console Help) (Google Search Console Help), accessed 2026-10-13. Source of truth, code, content and URL injection, URL Inspection and cURL advice, Request Review, a few days to a few weeks, no resubmitting.https://support.google.com/webmasters/answer/9044101?hl=en
- Quarantine your site (web.dev (Google)), accessed 2026-10-13. Take the site offline with a 503 page from outside, contact the host, review accounts and change all passwords. Page last updated 2015.https://web.dev/quarantine-your-site/
- Clean and maintain your site (web.dev (Google)), accessed 2026-10-13. Two backups of the infected site, check the backup predates the hack, correct the vulnerability, clean installation for a compromised server. Page last updated 2015.https://web.dev/clean-and-maintain-your-site/
- Spam policies for Google web search (Google Search Central), accessed 2026-10-13. Definition and examples of hacked content; violating sites may rank lower or not appear.https://developers.google.com/search/docs/essentials/spam-policies
- Data Breach Response: A Guide for Business (U.S. Federal Trade Commission), accessed 2026-10-13. Take affected equipment offline, reset credentials, remove posted personal information, forensics, check state and federal notification laws.https://www.ftc.gov/business-guidance/resources/data-breach-response-guide-business
- 815 ILCS 530/5: Personal Information Protection Act, definitions (Illinois General Assembly), accessed 2026-10-13. Definitions of data collector, breach of the security of the system data and personal information.https://www.ilga.gov/Documents/legislation/ilcs/documents/081505300K5.htm
- 815 ILCS 530/10: Notice of breach; notice to Attorney General (Illinois General Assembly), accessed 2026-10-13. Notice to residents without unreasonable delay; notice to the Attorney General for more than 500 residents.https://www.ilga.gov/Documents/legislation/ilcs/documents/081505300K10.htm
- 815 ILCS 530/45: Data security (Illinois General Assembly), accessed 2026-10-13. Reasonable security measures and the contract requirement.https://www.ilga.gov/Documents/legislation/ilcs/documents/081505300K45.htm
- Introducing the AI Client in WordPress 7.0 (WordPress Core team (make.wordpress.org)), accessed 2026-10-13. What the AI Client is, who configures providers, no bundled providers, no site-wide off switch or cost limits described.https://make.wordpress.org/core/2026/03/24/introducing-the-ai-client-in-wordpress-7-0/
- How we started and where we are today (Google), accessed 2026-10-13. Google Inc. was incorporated in August 1998.https://about.google/company-info/our-story/
How we checked this page
What we checked
- Read the web.dev pages for LCP, INP, CLS, Web Vitals and the three optimization guides, and cross-checked the thresholds against a raw fetch of the pages.
- Read Google's page experience, Core Web Vitals, spam policy and PageSpeed Insights documentation, and the Search Console Security Issues report help page.
- Read the WordPress.org hardening, backup, optimization, wp-config, housekeeping, Site Health, updating, auto-updates, security and requirements pages, and the FAQ on hacked sites in full.
- Read the WP-CLI pages for core and plugin checksum verification and the WP_Object_Cache reference.
- Read the supported-versions table on php.net (dated 13 Oct 2026 on the page) and cross-checked it with a raw fetch.
- Read the Illinois Personal Information Protection Act sections 5, 10 and 45 on ilga.gov.
- Read the FTC data breach guide for business and the WordPress core developer note on the AI Client in WordPress 7.0.
- Read the LiteSpeed Cache plugin page and the 2025 Web Almanac CMS chapter.
What we could not verify
- The data month and method behind the 45% WordPress mobile Core Web Vitals pass rate: the figure comes from the Web Almanac chapter's figure description, not from a data table we could inspect.
- How long Google reviews take today for each kind of hack: the current Help page gives only a range, and the older web.dev pages (last updated 2015) give different detail, which we did not use.
- Which hosting plans support a persistent object cache or a LiteSpeed server: this depends on your host, and we did not verify any host's offer.
- The effect of any single optimization on a given site. No source predicts it, so none is stated, and no speed-up percentage is promised.
- Whether a specific breach triggers a notice duty under Illinois law or other states' laws. We read the statute text, not case law or Attorney General guidance, and this is not legal advice.
- Any malware scanner, security plugin or caching plugin benchmark: no neutral primary source exists, so none is compared.
- Prices and typical durations for WordPress cleanup, speed work or hack recovery: none are published on this page.
- Whether the WordPress AI Client has gained usage or cost limits since the March 24, 2026 developer note.
Tell us what is slow, broken or hacked
Send a request with the site address and what you see. We set up a short call, then write a scope with the goal, the approvals and the success measure before we touch the site. A backup comes first.
