If your WordPress site is slow, images are almost certainly why.
This is not a criticism. Photography sites are image-heavy by nature, and WordPress does not do much to help you out of the box. The default behaviour is to take whatever file you upload and serve it largely as-is, at whatever size and quality you uploaded it. For a site built around showing your work, that is a problem worth solving properly.
This guide covers the practical steps: how to prepare images before they reach WordPress, how to handle compression and format conversion, how to make sure WordPress is serving the right image at the right size, and a few hosting-level factors that affect speed regardless of what you do with the images themselves.
Why image optimisation matters more for photographers
For most websites, images are one factor among several in overall page speed. For photography sites, they are usually the dominant factor by some distance.
A single unoptimised full-resolution JPEG from a modern camera can be 8 to 25MB. A portfolio page showing twelve of them would ask a visitor’s browser to download somewhere between 96MB and 300MB of image data before the page finishes loading. On a fast broadband connection this is slow. On a mobile connection it is very slow, and on a capped mobile data plan it is also inconsiderate.
Page speed also affects where you appear in search results. Google has used page experience signals, including Core Web Vitals, as ranking factors since 2021. A slow-loading portfolio page is harder to rank than a fast one, and this matters if you rely on organic search to bring in enquiries.
None of this requires you to compromise on image quality in any visible way. Done correctly, an optimised image looks identical to an unoptimised one on screen. The difference is in the file size, not the appearance.
Step 1: resize before you upload
The first and most impactful thing you can do happens before WordPress is involved at all.
WordPress will display images at whatever dimensions your theme specifies, typically somewhere between 800 and 1,400 pixels wide for a full-width image. If you upload a 6,000-pixel-wide image and WordPress displays it at 1,200 pixels wide, the browser downloads the full 6,000-pixel file and then scales it down visually. The extra pixels contribute nothing to quality on screen and a great deal to file size.
Resize your images to roughly the maximum width at which they will be displayed before uploading. For most portfolio and gallery contexts, 1,600 to 2,000 pixels wide is sufficient. For thumbnail or preview images, considerably less.
You can do this in Lightroom or Capture One as part of your export workflow, in Photoshop, or in a free tool like GIMP. If you are exporting from Lightroom, setting a maximum long edge of 1,800 pixels and an output sharpening for screen is a reasonable default for most portfolio work.
Step 2: choose the right format
JPEG has been the default for photographic images on the web for a long time, and it remains a reasonable choice. But there are now better options for most use cases.
WebP is a format developed by Google that typically produces files 25 to 35 per cent smaller than JPEG at equivalent visible quality. Browser support is now effectively universal: all modern browsers, including Safari since 2020, support WebP. For new images being added to a site, WebP is worth using.
AVIF is newer still and produces even smaller files than WebP in many cases, though encoding is slower and browser support, while improving, is not quite as consistent. It is worth being aware of but is not yet the obvious default for most sites.
For most photographers the practical recommendation is: export as JPEG from your editing software, then let a WordPress plugin convert to WebP on the server as part of the upload process. This gives you the flexibility of the original JPEG while serving the more efficient format to visitors.
Step 3: use a compression plugin
Even after resizing, a JPEG or WebP image can be made smaller without visible quality loss through compression. WordPress does apply some compression to uploaded images (80% quality by default), but this is conservative and a dedicated plugin will do better.
Two plugins worth considering:
Imagify offers automatic compression on upload, WebP conversion, and bulk optimisation of existing images. The free tier covers around 500 images per month, which is sufficient for most photographers who are not uploading large volumes regularly. The paid tier removes that limit.
ShortPixel works similarly. Automatic compression, WebP and AVIF conversion, bulk processing. The free tier covers 100 images per month, with paid plans available if you need more.
Both integrate directly with WordPress’s media library, so once configured they work in the background without requiring any changes to your workflow. Upload an image and it is compressed and converted automatically before WordPress saves the final version.
Either will reduce your image file sizes meaningfully. The difference between an uncompressed upload and one processed by these tools is often 50 to 70 per cent in file size, with no visible quality difference at normal viewing sizes.
Step 4: let WordPress serve the right size
WordPress generates multiple versions of every uploaded image at different sizes: thumbnail, medium, large, and the original. When a page loads, it can serve the version that best matches the space available, rather than always serving the full-size file.
This is handled through a feature called responsive images, which WordPress has supported since version 4.4. In practice, it generates a srcset attribute on image elements listing several available sizes, and the browser picks the most appropriate one based on the display size and pixel density of the screen.
For this to work well, your images need to be uploaded at a size that gives WordPress enough to work with, and your theme needs to implement image handling properly. Most well-maintained themes do this correctly. If yours does not, or if you are using a page builder that bypasses WordPress’s standard image handling, check whether it has its own responsive image settings.
One thing worth auditing: WordPress’s registered image sizes. You can see these in your media settings (Settings > Media in your WordPress admin). If your theme or plugins have registered a large number of additional sizes, WordPress is generating many versions of every image you upload. This increases storage usage and can slow down the upload process itself. A plugin like Regenerate Thumbnails can help if you need to tidy up after changing your size settings.
Step 5: consider lazy loading
Lazy loading means images below the visible area of the page are not downloaded until the visitor scrolls down to them. For a portfolio page with many images, this can significantly reduce the amount of data downloaded on initial page load.
WordPress has supported native lazy loading since version 5.5, applied automatically via the loading="lazy" attribute on images. For most sites this is already active and requires no configuration.
Some gallery plugins and page builders override WordPress’s default image handling and may not pass this attribute through correctly. If you are using a dedicated gallery plugin (Envira Gallery, Modula, and similar), check whether it has its own lazy loading setting and enable it if so.
Step 6: galleries specifically
Most photography sites use a gallery plugin rather than WordPress’s built-in gallery block, for good reason. The built-in gallery is functional but limited. Dedicated gallery plugins offer masonry layouts, lightbox functionality, client proofing, and better control over image presentation.
From an optimisation standpoint, not all gallery plugins are equal. The main things to look for:
Does it serve appropriately sized images? Some gallery plugins load full-resolution images even for thumbnails and then scale them with CSS. This is inefficient. The plugin should load a properly sized version for the thumbnail view and the full-resolution version only when the lightbox is opened.
Does it generate its own image sizes or use WordPress’s? Either can work, but you want to make sure compression and WebP conversion from your plugin of choice applies to the sizes the gallery plugin uses, not just the standard WordPress sizes.
Does it lazy load? For a page with many thumbnails, this matters. Check the plugin’s settings.
Plugins worth considering for photography portfolios include Modula, which handles both the gallery display and has reasonable image handling, and FooGallery, which is more flexible and integrates well with standard WordPress image sizes.
What your host contributes
Image optimisation at the WordPress level makes a significant difference, but it is not the whole picture. Two hosting factors affect how quickly images reach your visitors regardless of how well optimised the files are.
Storage type. Hosts running NVMe SSDs read and write files considerably faster than those on older SATA SSDs or spinning hard drives. For an image-heavy site where many files are being read on each page load, this matters. At Angelsites, every plan runs on NVMe storage.
PHP version and server configuration. An up-to-date PHP version (8.1 or 8.2 at the time of writing) processes WordPress page requests faster. Combined with server-side caching, this means the time between a visitor requesting a page and the server beginning to send files is shorter, which affects perceived load speed even before image file sizes are considered.
A caching plugin, WP Super Cache or W3 Total Cache being the most widely used free options, will cache generated HTML pages so WordPress does not rebuild them from the database on every visit. This is worth setting up once your image optimisation work is done, as it improves load times for all page types, not just those with heavy image content.
A practical starting point
If your site is currently slow and you want to make a meaningful improvement without getting into everything above at once, start here:
- Install Imagify or ShortPixel and run a bulk optimisation of your existing media library.
- Enable WebP conversion in whichever plugin you choose.
- Check that your theme is serving responsive images correctly by loading a portfolio page on a mobile device and inspecting what image sizes are being downloaded (browser developer tools, Network tab, filter by Img).
- Make sure lazy loading is active.
Those four steps will address most of the image-related speed problems on a typical photography WordPress site. The more detailed work on export settings, image sizes, and gallery plugins is worth doing, but the plugin-based compression and WebP conversion alone will make a noticeable difference quickly.
If you are considering moving your photography site to a new host, Angelsites is built for exactly this kind of site: image-heavy, creator-run, and needing reliable performance without a complicated setup. Plans start at £5.99/month with no introductory pricing and no renewal increases. See what’s included.
Angelsites is a small UK web host for freelancers and creators. UK data centre, fixed pricing, support from a real person.