Everyone installs WooCommerce to sell products. Then they discover the interesting part: a "product" can be a hotel room, a job posting, a consulting hour, or a membership — and "add to cart" can be book, apply, subscribe or donate. Once you see WooCommerce as a generic transaction engine, it stops being a shop plugin and becomes a business-model toolkit.
Most "speed up WordPress" advice hands you a pile of plugins and wishes you luck. That is how sites end up slower, not faster. The reliable way is a loop: measure a baseline, fix the biggest bottleneck, re-measure — and stop when the numbers say you are done.
Search is no longer only a list of blue links. ChatGPT, Claude, Perplexity and Google's AI Overviews now answer the question directly — and either cite you as the source or leave you out. LLM optimization is how you make a WordPress site one of the sources they trust.
A subsite whose mapped domain is parked looks deleted from every angle — the front end shows a parking page, the REST API returns nothing, and no URL you guess resolves. It isn't gone. Here's why it hides, and the thirty-second fix.
Every active plugin is code that loads, updates, and can break. A small, well-scoped snippet is often the leaner answer — but only for the right jobs. Here's how to tell them apart.
You're mapping a messy source vocabulary onto a clean target taxonomy. The target has about 5,600 slots, so the job must be roughly 5,600 decisions — right? The backlog is already past 8,900, and still climbing.
You shipped a fix to how one field is computed, re-ran the pipeline across everything, and it reported a clean run. Then the consistency check still flags those records as wrong. The fix is in the code, the rebuild "ran" — and the records never changed. Your own optimisation skipped them.
The report said 80 duplicate groups still to resolve. You'd been resolving them for days. You run it again after a big batch and it *still* says 80-ish. The backlog isn't stubborn — the scan is counting work you already finished.
You hardened a skill in the repo, shipped the PR, and the agent kept loading the old one. Or you fixed the live skill by hand, and the versioned copy quietly stayed behind. Same root cause: the copy you run and the copy you version are two different files.