Performance

35 performance optimisations for your WordPress site

A page built with Canvas downloads the CSS and JavaScript of the blocks it renders and nothing else. On top of that sit 35 optimisations, each one a switch you control, with conservative defaults and a plain explanation of what it does.

Always on

Per-block asset loading

Most themes ship one large stylesheet and one large script, and every page pays for every feature in the theme. Canvas maps each of its 258 blocks to the CSS and JavaScript that block needs, then enqueues the union of what the page actually rendered.

  • A pricing page never downloads the slider script
  • A page with no form never downloads the form handler
  • The editor loads block styles the same way
  • Nothing to configure, and no way to accidentally turn it off

See the block library

Declared, not guessed

Each block declares its own assets. The map lives in the block, so there is no central list for somebody to forget to update.

Works with core blocks

Core and third-party blocks keep their own loading behaviour. Canvas does not take over their assets or fight WordPress for them.

Templates count too

Headers, footers, page titles and sliders are blocks as well, so a page that uses a simple header does not load the mega menu code.

Nothing to buy

Conditional loading is not a premium feature or an add-on. It is how the library works on every plan and on an expired licence.

The switches

35 optimisations, grouped by what they touch

Nothing here is magic and nothing here is hidden. Each one does a specific, checkable thing to the page WordPress sends.

Loading 7

Stop CSS and JavaScript blocking the first render, and start the next page early.

  • Load non-critical stylesheets asynchronously
  • Defer non-critical JavaScript
  • Delay JavaScript until the first interaction
  • Preload the largest image above the fold
  • Preconnect to the origins the page will use
  • DNS prefetch for third-party hosts
  • Speculative loading, so the next page is fetched before it is clicked

Fonts 3

Text stays readable while a web font is still arriving, and Google fonts need not be a third-party request at all.

  • Add font-display swap to your web fonts
  • Preload the fonts the first screen needs
  • Serve Google fonts from your own server

Media 6

Images are the heaviest thing on most pages and the easiest to get wrong.

  • Lazy load images below the fold
  • Lazy load iframes and embeds
  • Set the JPEG quality WordPress generates
  • Cap the maximum width of uploaded images
  • Control the responsive image sets WordPress writes
  • Control which image sizes are generated at all

Cleanup 8

WordPress ships features every site pays for and few sites use.

  • Remove query strings from static resources
  • Disable emoji scripts and styles
  • Disable oEmbed discovery and the embed script
  • Disable Dashicons on the front end
  • Disable XML-RPC
  • Disable RSS feeds
  • Remove jQuery Migrate
  • Disable self pingbacks

Database 5

The admin side of a slow site: revisions, autosaves and a heartbeat that never stops.

  • Limit how many revisions a post keeps
  • Set the autosave interval
  • Throttle or disable the admin heartbeat
  • Clean revisions, transients and spam out of the database
  • Restrict the REST API to logged-in users

WooCommerce 5

A store loads its scripts on every page of the site, including the ones that sell nothing.

  • Remove WooCommerce JavaScript on pages with no store output
  • Turn off order attribution tracking
  • Stop the cart fragments script polling on every page
  • Drop the password strength library outside account pages
  • Drop the bundled Select2 library outside checkout

Content delivery network rewriting 1

Point your stylesheets, scripts, images and fonts at a delivery network you already pay for by rewriting their addresses as the page renders. Canvas does not sell you a network and does not proxy your traffic through ours.

That is 35 switches in total, and the WooCommerce five only appear when WooCommerce is active. More on the store integration.

In Theme Options

Every one of them is a switch, and the defaults are conservative

Canvas turns on what is safe for any website and leaves the rest to you, with the reason written next to the control. The one setting that is usually a bad idea says so in the panel, where you are standing when you decide.

The Asset Optimization tab of the Canvas performance options, with switches for deferring JavaScript, removing jQuery Migrate, delaying JavaScript until interaction and loading non-critical CSS asynchronously
Asset Optimization
The Loading and Fonts tab of the Canvas performance options, with preload, preconnect, DNS prefetch and font handling switches
Loading and Fonts
The Image Optimization tab of the Canvas performance options, with lazy loading, JPEG quality and image size controls
Image Optimization
The WordPress Cleanup tab of the Canvas performance options, with switches for emojis, embeds, Dashicons, XML-RPC, RSS and pingbacks
WordPress Cleanup
The Database Optimization tab of the Canvas performance options, with revision limits, autosave interval, heartbeat control and database cleanup
Database Optimization
The Advanced tab of the Canvas performance options, with speculative loading for instant page transitions and a content delivery network address for static assets
Advanced
The other half of a fast site

SEO and accessibility foundations

A page that loads quickly and cannot be read, crawled or operated with a keyboard is not finished. All of this is in the theme itself, on every plan, with nothing tiered behind an upgrade.

Metadata from your content

Titles, descriptions, social cards, canonical URLs, robots rules and a sitemap, all derived from the page as it renders. There is no second copy of your own content to keep up to date.

16 schema types

Organization, WebSite, WebPage, Person, breadcrumbs, Product, Brand, Offer, Review and rating, address, geo coordinates, opening hours and site search, emitted where they apply.

Semantic landmarks

Header, navigation, main and footer landmarks, a skip link to the content, headings that follow their order, and visible focus on everything you can reach.

Keyboard menus

Menus, mega menus, side panels and modals open, move and close from the keyboard, and motion respects a visitor's reduced-motion setting.

Accessibility, security and data export are never premium features. They stay available on an expired licence, because a website that stops being usable is a support problem, never a licensing decision.

Method

How we verify this

Claims about speed and accessibility are easy to make and easy to check. We check ours, and here is how.

Pages are compared with their designs in a real browser

Every demo page is rendered in a browser and measured against the design it comes from: document height, section widths, computed spacing, and anything driven by JavaScript measured once it has run, never at first paint.

This website is audited at three widths

Every page here is run through axe-core against WCAG 2.1 A and AA at 1440, 1024 and 390 pixels, together with the checks axe does not make: one h1, heading levels that never skip, the four landmarks, a working skip link, no horizontal overflow, no text under 12 pixels, links that read as text and tap targets of at least 24 pixels.

Requirements

What Canvas needs to run

6.8+

WordPress

Canvas is built on the block editor, so it needs a WordPress with the Site Editor. Version 6.8 or newer.

7.4+

PHP

PHP 7.4 or newer. A current PHP release is the single cheapest speed improvement most sites can make.

7.1

Tested up to

Canvas is tested against WordPress 7.1, and an update follows each WordPress release.

Questions

About performance

Including the one we get asked most, which is why there are no scores on this page.

Do I still need a caching plugin?

Probably, and that is the honest answer. Canvas controls what a theme and WordPress control: which assets a page loads, how fonts and images behave, and how much work the database does. Page caching, object caching and edge delivery belong to your host or a caching plugin. They are different jobs, so running both is the normal setup.

Will turning these on break my website?

Each switch is reversible, and the ones most likely to conflict with another plugin start off. Every switch explains what it does and when to leave it alone, and the setting that is genuinely risky says so in the panel. Turn them on one at a time and reload the front end after each.

Do I have to configure per-block asset loading?

No, there is nothing to find and enable. It is how the block library works. Each block declares the CSS and JavaScript it needs, and the page enqueues the union of what it actually rendered.

Do the demos arrive optimised?

A site-wide demo import adopts the demo's Theme Options, and the performance switches are part of them, so a demo starts from the settings it was built and checked with. Change any of them afterwards.

Why does this page not publish speed scores?

Because a score from a synthetic test on our hardware tells you nothing about your host, your plugins, your images or your visitors. What we publish is exactly what each optimisation does, so you turn it on and measure your own site on your own infrastructure.

A fast website you can still edit

Every plan ships the same block library, the same 35 optimisations and the same conditional asset loading. There is no performance tier.