{"id":390,"date":"2026-04-04T10:38:00","date_gmt":"2026-04-04T10:38:00","guid":{"rendered":"https:\/\/webcarbon.io\/news\/?p=390"},"modified":"2026-04-04T10:38:00","modified_gmt":"2026-04-04T10:38:00","slug":"agency-checklist-low-carbon-wordpress","status":"publish","type":"post","link":"https:\/\/webcarbon.io\/news\/2026\/04\/04\/agency-checklist-low-carbon-wordpress\/","title":{"rendered":"Agency checklist for low carbon WordPress sites"},"content":{"rendered":"<h2>Why an agency focused checklist matters<\/h2>\n<p>Clients expect fast reliable sites and increasing numbers ask about environmental impact. For agencies the opportunity is to deliver both predictable performance and lower carbon intensity by standardizing hosting choices, cache configuration, media workflows, and theme selection. A repeatable checklist makes implementations auditable, simplifies handoffs, and creates clear client deliverables.<\/p>\n<h2>Priorities for measurable impact<\/h2>\n<p>Prioritize reducing transferred bytes and server CPU work because those two factors drive the largest and most repeatable reductions in energy use. Work that eliminates redundant requests or moves work to a CDN or build step is easier to measure and defend than device level tweaks. The checklist below is organized so each item produces an auditable artifact you can show a client.<\/p>\n<h2>Hosting and deployment decisions to lock in<\/h2>\n<p>Choose a managed host or CDN that lets you control region selection, caching, and TLS configuration. Prefer hosts that support edge caching and allow long lived cache headers. Make region selection explicit in the project brief so latency and grid carbon intensity considerations are visible to the client. For continuous deployment use a build step that produces static assets where practical and keeps dynamic work minimal.<\/p>\n<h3>Deliverable for client<\/h3>\n<ul>\n<li>Documented hosting region and cache policy stored with the project repository.<\/li>\n<\/ul>\n<h2>Caching layers and configuration<\/h2>\n<p>Design the caching stack as multiple independent layers that complement each other. Typical layers are: browser caching with cache control headers, CDN edge caching for static and cacheable HTML, reverse proxy or page cache in front of PHP, and object cache for expensive queries. Where possible offload images and static files to the CDN so origin compute is minimal.<\/p>\n<h3>Key configuration items<\/h3>\n<ul>\n<li>Set Cache Control and Expires headers for static assets and ensure immutable assets use a content hashed filename strategy.<\/li>\n<li>Configure CDN edge rules to cache image, font, CSS and JS files and to serve compressed responses.<\/li>\n<li>Use a page cache that can be purged on content changes and that respects logged in users for editorial workflows.<\/li>\n<li>Enable an object cache backed by Redis or Memcached for higher traffic sites that run dynamic queries.<\/li>\n<\/ul>\n<h3>Deliverable for client<\/h3>\n<ul>\n<li>Cache policy document with header examples, CDN rules, and purge process.<\/li>\n<\/ul>\n<h2>Media pipeline best practices<\/h2>\n<p>Images and video are often the biggest contributors to transferred bytes. Define an automated pipeline that converts uploads into a small set of production ready derivatives, enforces modern formats, and prevents oversized originals from being published.<\/p>\n<h3>Pipeline components to implement<\/h3>\n<ul>\n<li>Automatic on upload resizing to produce only the sizes you need. Avoid storing many unneeded variants.<\/li>\n<li>Convert master assets to modern formats such as WebP or AVIF for browsers that support them while keeping fallbacks for legacy support.<\/li>\n<li>Use image processing libraries that are efficient on the server. If your stack supports libvips prefer it over older libraries because it is typically more memory efficient.<\/li>\n<li>Strip unnecessary metadata from images to reduce file size.<\/li>\n<li>Apply sensible quality settings. Test visual quality across a sample set rather than applying a single aggressive rule without review.<\/li>\n<li>Lazy load below the fold images and defer off screen video posters until needed.<\/li>\n<li>Serve video using adaptive streams or a CDN rather than embedding large files directly from the origin when the budget allows.<\/li>\n<\/ul>\n<h3>Deliverable for client<\/h3>\n<ul>\n<li>Media handling policy that lists allowed formats, derivative sizes, quality targets, and the processing pipeline.<\/li>\n<\/ul>\n<h2>Theme and front end choices<\/h2>\n<p>Theme selection and configuration determine runtime JavaScript, font loading strategy, and DOM complexity. Choose themes that prioritize minimal client side runtime and that avoid loading large UI frameworks where not required. For bespoke work, prefer component driven approaches that ship only the CSS and JavaScript needed for visible features.<\/p>\n<h3>Decision rules for theme selection<\/h3>\n<ul>\n<li>Select a theme with a small CSS and JavaScript footprint and with server side rendering for content where possible.<\/li>\n<li>Avoid themes that rely on large third party libraries unless there is a clear functional requirement.<\/li>\n<li>Use font loading strategies that reduce requests and byte cost such as system font stacks or a single variable font in WOFF2 where brand requirements allow.<\/li>\n<li>Disable or remove theme features that are not used including widgets, heavy sliders, and redundant scripts.<\/li>\n<\/ul>\n<h3>Deliverable for client<\/h3>\n<ul>\n<li>A theme audit that lists active assets, size of each asset, and a plan to remove or defer non essential files.<\/li>\n<\/ul>\n<h2>Plugin governance and minimal runtime<\/h2>\n<p>Plugins can silently add external calls, DOM work, and new requests. Maintain a curated plugin list with approval criteria. Favor plugins that do one thing well, that provide hooks for server side rendering, and that are audited for network calls.<\/p>\n<h3>Approval checklist for plugins<\/h3>\n<ul>\n<li>Must declare the network calls it makes and why.<\/li>\n<li>Must be configurable to disable client side tracking or heavy client features by default.<\/li>\n<li>Must support server side rendering or progressive enhancement.<\/li>\n<\/ul>\n<h2>Measurement and client reporting<\/h2>\n<p>Define a small set of repeatable metrics to show progress and to validate claims. Use lab tools for deterministic tests and real user measurement for production behavior. Store baseline measurements before changes so each optimization can be shown as a delta.<\/p>\n<h3>Recommended metric set<\/h3>\n<ul>\n<li>Transfer size per page view and per asset type so the client sees where bytes are going.<\/li>\n<li>Time to first meaningful paint and total blocking time to represent perceived speed.<\/li>\n<li>Cache hit rate at the CDN and the page cache hit ratio at the origin.<\/li>\n<li>Number of client side scripts and total script bytes as a proxy for runtime work.<\/li>\n<li>Optional CO2 per page estimate using an agreed public model and the measured transfer size and origin compute. Make the modelling assumptions explicit.<\/li>\n<\/ul>\n<h3>Tools to use<\/h3>\n<ul>\n<li>Use Lighthouse and WebPageTest for lab audits and to generate asset level breakdowns.<\/li>\n<li>Use real user monitoring tools that keep privacy in mind to collect transfer sizes and timing distributions. Aggregate results before reporting.<\/li>\n<li>Use host or CDN metrics to show cache effectiveness and origin request counts.<\/li>\n<\/ul>\n<h3>Deliverable for client<\/h3>\n<ul>\n<li>A dashboard or PDF report showing baseline, optimizations applied, and before and after metrics with clear measurement dates and the tools used.<\/li>\n<\/ul>\n<h2>Operational handoff and maintenance<\/h2>\n<p>Include a maintenance checklist in the client handoff so sustainability is preserved. That checklist should include purge procedures, image upload guidelines for editors, a plugin change policy, and scheduled audits. Automate as much as possible in CI so regressions are caught before deployment.<\/p>\n<h3>Maintenance items to document<\/h3>\n<ul>\n<li>How to purge cache and when to do it.<\/li>\n<li>How to add new media without producing oversized masters.<\/li>\n<li>Which plugin changes require a lightweight performance review and who signs off.<\/li>\n<\/ul>\n<h2>Examples of safe defaults to include in starter projects<\/h2>\n<p>When creating a starter theme or project template include these defaults so every new site starts lean. Enable server side page caching with a clear purge hook. Configure the image processor to create a limited set of responsive sizes and to output WebP with fallbacks. Add a build step to compress and content hash assets. Configure fonts to use WOFF2 or system stacks. Provide a small set of approved plugins and an automated audit script to report active asset sizes.<\/p>\n<h2>How to frame sustainability claims to clients<\/h2>\n<p>Be specific about what you measured and what you changed. Avoid absolute statements about carbon savings without the model and assumptions. Provide the tools and dates used to collect the baseline and the follow up measurements. When you publish an emissions estimate show the inputs and the uncertainty so clients can reuse or verify the numbers.<\/p>\n<h2>Next steps for agencies<\/h2>\n<p>Create a one page client deliverable template that contains hosting region, cache policy, media policy, theme audit, plugin whitelist, baseline metrics and the maintenance checklist. Use that document in proposals and store a copy in the project repository so every future change can be compared to the original baseline.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post gives agencies and managed WordPress hosts practical configuration steps and measurable client deliverables that cut unnecessary network transfer and server work. You will learn which caching layers to enable, how to build a predictable media pipeline, how to choose or tune themes for low runtime cost, and which metrics to report to clients.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[33,4,37],"tags":[],"class_list":["post-390","post","type-post","status-publish","format-standard","hentry","category-performance","category-sustainability","category-wordpress"],"aioseo_notices":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Webcarbon Team","author_link":"https:\/\/webcarbon.io\/news\/author\/webcarbon_wqpz61\/"},"uagb_comment_info":0,"uagb_excerpt":"This post gives agencies and managed WordPress hosts practical configuration steps and measurable client deliverables that cut unnecessary network transfer and server work. You will learn which caching layers to enable, how to build a predictable media pipeline, how to choose or tune themes for low runtime cost, and which metrics to report to clients.","_links":{"self":[{"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/posts\/390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/comments?post=390"}],"version-history":[{"count":1,"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/posts\/390\/revisions"}],"predecessor-version":[{"id":391,"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/posts\/390\/revisions\/391"}],"wp:attachment":[{"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/media?parent=390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/categories?post=390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webcarbon.io\/news\/wp-json\/wp\/v2\/tags?post=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}