Guides · Industry playbooks
Published · 12 min
The WordPress SEO guide
WordPress can be one of the cleanest platforms for search or one of the slowest, and the difference is almost entirely decisions made in the first hour and never revisited. This guide goes through them in order: core settings, the category and tag structure, the single SEO plugin and what it must do, images and media, speed, structured data, and the theme bloat worth removing. Every platform fact is from WordPress.org documentation, read 9 October 2026.
On this page
- Settings first: five screens that decide a lot
- Categories, tags and archives: structure without duplication
- The one SEO plugin you need, and what it must do
- Images and media
- Speed: hosting, caching, theme and plugins, in that order
- Structured data on WordPress
- What to remove from a theme
- The WordPress SEO checklist
WordPress runs a large share of London business websites, from a Clapham dental practice to a Mayfair law firm to a Hackney studio selling prints through WooCommerce. Out of the box it is reasonably good for search. What goes wrong is accumulation: a page builder, four plugins doing the same job, a theme carrying ten unused features, images uploaded at camera size, and settings left as they were on installation day.
This guide is the reset. It is written for the owner or marketing manager who has the admin login and an hour, and it says plainly where a developer is needed. It does not recommend a plugin by name as the answer; it describes what the one SEO plugin you keep must do, so you can judge whichever you have.
Settings first: five screens that decide a lot
Before content, five screens in Settings. Each takes a minute and each is a common cause of a site that cannot rank.
| Screen | Setting | What to choose and why |
|---|---|---|
| Settings, Permalinks | Permalink structure | WordPress lists six options and notes the default is Plain (?p=123). Choose "Post name" for most business sites so the URL carries the words of the page; "Custom structure" with a category tag only if the site is a large publication |
| Settings, Reading | Search engine visibility | Make sure "Discourage search engines from indexing this site" is unticked. WordPress documents that ticking it generates a meta robots noindex,nofollow tag on every page. Staging sites get built with it ticked and launched the same way |
| Settings, General | Site address and WordPress address | One canonical host (www or not, https) and nothing else, so every internal link uses the same form |
| Settings, Media | Image sizes | WordPress generates Thumbnail, Medium and Large versions on upload; set Large to the widest your theme displays so the theme never serves a 4,000 pixel original |
| Settings, Discussion | Comments | Disable comments site-wide on a business site unless you moderate them; open comment forms attract spam links and add weight to every page |
On permalinks, the documentation is clear that "the default setting is Plain, which is automatically configured when you install WordPress", and it lists Day and name, Month and name, Numeric, Post name and Custom structure as the alternatives. Changing the structure on a live site changes every URL, so do it once, early, and with redirects if the site already ranks. On search engine visibility, the reading screen documentation describes the "Discourage search engines" box and what it does; we check it on every WordPress site we review because it is the single most expensive tick box in the CMS.
Categories, tags and archives: structure without duplication
WordPress gives every post a category and allows unlimited tags, and then creates archive pages for each category, each tag, each author, each month and each year. Left alone that is five or six routes to the same posts, most of them thin pages that compete with the content they list.
The structure that works for a business site:
- Pages for services, locations and the company; posts for guides and news. Do not publish a service as a blog post.
- A handful of categories that mirror how customers think about your subject, each with an introduction written on the category page so the archive is a real page, not a list.
- Tags used sparingly, or not at all. A tag with one post is a duplicate of that post. If you keep tags, noindex the tag archives in your SEO plugin.
- Author archives set to noindex on a single-author site (they duplicate the blog index); date archives set to noindex on almost every business site.
- Attachment pages (the page WordPress creates for every uploaded image) redirected to the image or to the parent post, which most SEO plugins offer as a setting.
The principle is the same one Google states for stores: it reads structure from links, so the menu, the category introductions and the links between posts and service pages do the work. A guide that never links to the service it supports is a missed opportunity on every visit.
The one SEO plugin you need, and what it must do
Install one SEO plugin, not two. Running two creates duplicate title tags, two sitemaps and two sets of structured data, and every one of those confuses Google. Whichever you keep, it must do the following, and most of the established plugins do all of it in the free version:
| Job | What good looks like | Check |
|---|---|---|
| Title and meta description per page | A template per post type (pages, posts, products) with per-page overrides | Look at the source of three pages: one title tag each, under about 60 characters |
| Canonical tags | Self-referencing on every page; paginated archives pointing to themselves, not page one | Source view: one rel="canonical" per page |
| XML sitemap | Pages, posts and products included; tags, authors, dates and attachments excluded | Google notes a CMS such as WordPress has likely already made a sitemap available; submit the plugin’s one in Search Console and remove any second sitemap from another plugin |
| Noindex controls | Per page and per archive type | Tag, author, date and attachment archives set as described above |
| Breadcrumbs with BreadcrumbList markup | Visible on every page below the header | Rich Results Test on a deep page |
| Structured data | Organization or LocalBusiness for the site, Article for posts, FAQPage where you have FAQs, Product on WooCommerce | Rich Results Test; no self-serving review markup |
| Redirects | A redirect manager, or a separate small plugin for it | Change a slug and confirm the old URL returns a 301 |
Two cautions. First, the plugin’s traffic-light content score is a readability toy, not a ranking signal; write for the reader. Second, the plugin cannot fix a theme that outputs its own title tag or its own schema. If you see two titles or two Organization objects in the source, the theme is the culprit and a developer removes the theme’s version.
Images and media
Images are the most common reason a WordPress page fails Core Web Vitals, and the fix is mostly discipline. Upload images at the size they will be displayed, or at most twice that for high-density screens, in WebP or AVIF where your host supports them. Name the file for what it shows before uploading ("velvet-corner-sofa-grey.webp", not "IMG_4821.jpg"), because WordPress uses the file name as the default title and the URL. Write alt text that describes the image for someone who cannot see it, which is also what Google indexes.
The media settings screen controls the Thumbnail, Medium and Large sizes WordPress generates on upload. Set Large to the widest slot your theme uses so the theme has a correctly sized version to serve. Core WordPress adds native lazy loading to images below the fold; a theme or plugin that lazy-loads the hero image as well is doing harm, because the largest element on the page is then the last to appear.
Speed: hosting, caching, theme and plugins, in that order
WordPress’s own performance documentation organises the subject as performance factors, hosting, WordPress configuration, testing tools and then the improvements: hardware, software and caching. That order is right. A fast theme on slow shared hosting is still slow; a caching plugin on a site with 40 active plugins is a plaster.
The targets are Google’s Core Web Vitals: Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint of 200 milliseconds or less, Cumulative Layout Shift of 0.1 or less, at the 75th percentile of page loads. Read them from field data (the Core Web Vitals report in Search Console) for your template types: home, service page, post, and product if you sell. Then work down this list:
- Hosting: a current PHP version, server-level caching and a UK or EU data centre. For a London business, a server in Europe shaves latency on every request.
- Caching: one page-cache plugin, or the host’s cache if it has one, never both.
- Theme: a lightweight theme without a bundled page builder. If the site depends on a builder, keep it but disable its unused modules.
- Plugins: list them, note what each loads on the front end, and remove the duplicates and the dormant ones. Five well-chosen plugins beat thirty.
- Scripts: load analytics, chat and embeds after the main content, and remove the ones nobody reads the reports from.
- Fonts: two font files at most, served from your own domain, preloaded.
- Images: as above. Then re-measure after 28 days, because field data turns over slowly.
If the site is a WooCommerce store, cart fragments, product sliders and review widgets add to the list; the ecommerce SEO guide covers the store-specific structure and the Core Web Vitals guide goes deeper on each metric.
Structured data on WordPress
Most WordPress sites get usable structured data from the SEO plugin: an Organization or LocalBusiness object for the site, Article for posts, BreadcrumbList for the breadcrumb, FAQPage where the plugin’s FAQ block is used. What needs attention:
- One source only. If the theme, a page builder and the SEO plugin each output schema, Google sees three organisations. Disable all but the plugin’s.
- LocalBusiness only if you have a place customers visit, with the address, hours and telephone that match your Google Business Profile exactly. A London office used by appointment is still a LocalBusiness; a PO box is not.
- No self-serving review markup. Google’s review snippet guidelines limit LocalBusiness and Organization reviews to sites that collect reviews about other businesses, so do not mark up your own testimonials as a rating.
- Product markup on WooCommerce: Google requires the product name plus one of review, aggregateRating or offers; WooCommerce outputs offers with price and availability, and a reviews plugin should add to that object rather than create a second.
- Validate with the Rich Results Test on one page of each type after any theme or plugin change.
The schema markup guide explains each type and when it earns a rich result; the short version for WordPress is that the plugin’s defaults, de-duplicated and validated, are enough for most business sites.
What to remove from a theme
Commercial WordPress themes are sold on feature counts, and most of those features cost speed or create duplicate pages. On the sites we review these are the usual candidates for removal, each of which a developer can do in an hour:
- Sliders and carousels in the hero. They push the real heading down the page, delay the largest element and get almost no clicks beyond the first slide. One image, one heading, one call to action.
- Bundled plugins the theme installed for its demo content: a second SEO plugin, a form builder you do not use, a social share bar, a portfolio post type nobody filled in.
- The theme’s own title tag and schema output, which duplicate the SEO plugin’s.
- Tag clouds, date archive widgets and author boxes on single-author sites, which link to thin archives from every page.
- Google Fonts loaded from Google’s servers in six weights. Two files, self-hosted.
- Lazy loading applied to the hero image, and "preloader" animations that hide the page until every script has run.
- Demo pages and posts left published ("Hello world", "Sample Page", "Elementor #2041"), which are indexable and embarrassing.
If the theme cannot be trimmed, moving to a lighter one is a design project as much as an SEO one, and a redesign is the moment URLs get changed by accident. The redesign checklist exists for that; read it before the designer starts, not after.
The WordPress SEO checklist
- Permalinks set to Post name (or a deliberate custom structure), with redirects if URLs change.
- "Discourage search engines from indexing this site" unticked; confirm no noindex in the source of the home page.
- One canonical host (https, www or not) in Settings, General, with the other redirecting.
- Comments disabled unless moderated; attachment pages redirected.
- Categories with written introductions; tags minimal and noindexed; author and date archives noindexed on business sites.
- One SEO plugin configured for titles, canonicals, sitemap, noindex rules, breadcrumbs, schema and redirects; sitemap submitted in Search Console.
- No second title tag or schema from the theme or page builder.
- Images uploaded at display size in a modern format, named descriptively, with alt text; Large size set to the theme’s widest slot.
- Hosting with a current PHP version and server caching; one caching plugin at most.
- Plugins audited; duplicates and dormant ones removed; front-end scripts deferred.
- Two font files, self-hosted and preloaded; hero image not lazy-loaded.
- Core Web Vitals read from field data for each template type; the slowest template fixed first.
- Structured data validated on one page of each type; no self-serving review markup.
- Demo content deleted; every service page linked from the menu and from the posts that support it.
If you would like a person to go through this on your site, the free SEO audit does exactly that within two working days, with the three fixes that matter most written as instructions your developer can follow. The WordPress SEO service page covers the ongoing work, and the pricing page explains what drives the cost; prices there are indicative until confirmed in a written proposal. Not ready to talk? Score your own site in five minutes instead.
Get your free SEO auditA person reviews your WordPress site within two working days: settings, structure, plugins, speed and schema, with the three fixes that matter most.
Sources
9 sources · accessed 9 Oct 2026
Questions
6 questions