WordPress SEO Services for 2027 From a WordPress Developer

seo inside wp-admin, not around it

Welcome, my friend. My WordPress SEO services for 2027 come from someone who also builds WordPress sites for a living. So when the audit says the theme is heavy or a plugin blocks Google, I open the dashboard and fix it myself. €25 an hour, or a monthly plan from €475.

  • SEO and development, one person
  • fixes made, not just listed
  • no ranking promises
// what I look at first on a WordPress site
  1. What loads on each page. Theme, page builder, plugins, fonts. Most slow sites carry luggage they never use.
  2. What Google is allowed to index. Permalinks, the sitemap, and all those tag and date archives.
  3. What is out of date. Old plugins are a security risk first and an SEO risk right after.
wp-admin / Settingsexample checklist

// example data. It mimics a WordPress settings checklist and is not a screenshot of a real site.

Developer and SEOno ticket to a third party
€25 an hourthe same rate for code and content
SEO services since 2014freelancing since 2011
Month to monthstay because it works
developer-level seo

The Fixes I Make Inside WordPress Itself

Because I write WordPress code, many SEO fixes are a few lines in the right place instead of another plugin.

// functions.php (child theme): drop emoji scripts, keep the head lean remove_action(‘wp_head’, ‘print_emoji_detection_script’, 7); remove_action(‘wp_print_styles’, ‘print_emoji_styles’); remove_action(‘wp_head’, ‘wp_generator’);
wp-cli
$ wp plugin list –status=inactive
> unused plugins are still code to patch
$ wp option get permalink_structure
/%postname%/
check archives, attachments, tag pages
  • Remove plugins you do not use
  • Clean permalinks, one URL per page
  • Noindex thin archives and tag pages
  • Cache plus image sizes tuned for LCP
  • Updates tested, not blind

// snippets are illustrations of the kind of change I make. I test on your own site first.

// wp-cli and sql

Housekeeping I Do From the Command Line

Bloat hides in the database and in plugins. These are the commands I reach for.

wp plugin list --update=available
wp transient delete --expired
wp rewrite flush
wp post list --post_status=draft --fields=ID,post_title
SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';
SELECT COUNT(*) FROM wp_options WHERE autoload = 'yes';
// limit stored revisions in wp-config.php
define('WP_POST_REVISIONS', 5);

// run on a backup or staging copy first. Database queries on a live site get a backup first.

the scope

What My WordPress SEO Services Actually Cover

WordPress SEO services mean doing search engine optimization inside the WordPress dashboard and its code, where the real causes live. I cover seven areas, in a fixed order, and each one gets its own section below.

you

Admin Login

plus Search Console access

01

Bloat

theme, builder, plugins

02

Permalinks

URLs and structure

03

Yoast

settings that fit the site

04

Speed

caching, Core Web Vitals

05

Images

size, format, loading

06

Archives

what gets indexed

This page covers the WordPress-specific work. The keyword research, the content and the guest post links are part of every plan as well, and I explain those on the on-page SEO and off-page SEO pages. If you came for the short version of who I am, the homepage about my cheap SEO services has it.

the problem

Why WordPress Sites Underperform in Google

WordPress itself is rarely the problem. The trouble is what gets stacked on top of it over the years, and the default settings nobody went back to check.

how it usually arrives

The Site I Typically Open

  • A multipurpose theme with a demo import, of which the site uses a tenth
  • Thirty plugins, including three that do the same job and two nobody remembers installing
  • Tag, date and author archives all open to Google, each one a thin copy of the blog
  • A full-size photo from a phone, lazy-loaded, as the first thing on the homepage
how I leave it

The Site After My Work

  • Only the code each page needs, measured before and after
  • One plugin per job, each with a reason to be there
  • A short list of archive types that deserve to be indexed
  • Images sized for the layout, with the main one loaded early

// the left column is my opinion of the typical case after years of WordPress work. It is not a survey.

WORKSTREAM 01

How I Do the Theme and Plugin Bloat Cleanup

I measure what every page loads, find out which theme feature or plugin sends each file, and remove whatever the page doesn't use. Bloat simply means code and files that travel to the visitor without doing anything for them.

WordPress.org says it plainly in its own optimization guide: "Deactivate and delete any unnecessary plugins." The same guide notes that a fast, lightweight theme performs much better than a heavy one. I agree with both, and then I do the boring part, which is checking plugin by plugin.

What Counts as Bloat

The number of plugins matters less than what each one loads. For example, a contact form plugin often adds its scripts to every page, although the form lives on one. A slider plugin does the same for a slider you removed last year. So I look at the files, not at the plugin count.

what_i_do

  • List every script, style and font per template
  • Trace each file to its theme or plugin
  • Remove, replace or load it only where needed
  • Test forms, checkout and menus afterwards

what_you_get

  • A plugin list with keep, replace or remove
  • Page weight before and after
  • A site that still looks the same
page-weight.txtone homepage, by sender

// example data: a bakery site in Leeds. It shows how I report bloat, not a client result. Your numbers will differ.

WORKSTREAM 02

How I Do Permalinks and Site Structure

I set one clean URL pattern for the whole site and, if a live site has to change, I redirect every old address to its new one. A permalink is the permanent web address of a single post or page.

WordPress offers six permalink settings: Plain, Day and name, Month and name, Numeric, Post name and Custom Structure. The Plain one looks like example.com/?p=123. The WordPress documentation calls it "not user-friendly and also not optimized for search engines", and yet a fresh install starts with it.

New Site or Old Site?

On a new site I pick Post name, or a custom structure when the site needs sections. On an old site I'm careful. The same documentation reminds us that these URLs "should never be changed", hence the name. However, sometimes the old pattern really is in the way, for example dated URLs on pages that aren't news.

Then I change it once and map old to new with 301 redirects, which are permanent forwarding rules. Google lists redirects as a strong signal for which URL should be the main one.

what_i_do

  • Choose the pattern that fits the content
  • Build the redirect map before any change
  • Update menus and internal links
  • Resubmit the sitemap in Search Console

what_you_get

  • Short, readable URLs
  • A redirect sheet: old address, new address
  • No pile of 404 errors after launch
settings > permalinksmy verdict per option
settingexampleverdictwhen
Plain/?p=123avoidnever
Day and name/2026/11/11/sample-post/raredaily news
Numeric/archives/123avoidsays nothing
Post name/sample-post/goodmost sites
Custom/blog/sample-post/goodsites with sections

// the options come from the WordPress.org permalink documentation. The verdict column is my opinion.

WORKSTREAM 03

How I Do the Yoast SEO Setup

I configure Yoast SEO so it describes your site correctly to search engines, and then I switch off the parts you don't need. Yoast SEO is a plugin that manages titles, descriptions, the XML sitemap and the structured data of a WordPress site.

The Settings I Always Review

First, the site basics: your name, your logo and whether the site represents an organization. Yoast uses these for the structured data it generates automatically. Next, the title templates for posts, pages and archives. Then the content types and taxonomies, where each one has a switch for showing it in search results.

That switch matters. According to Yoast, anything you set to not appear in search results "will be noindexed and kept from the XML sitemap". One click can hide a whole section of your site, which is handy when you mean it and painful when you don't.

Free or Premium?

For most small sites the free plugin is enough, in my opinion. Yoast SEO Premium costs $118.80 a year excluding VAT (vendor-stated, checked 11 Nov 2026). Its most useful extra is the redirect manager, which prompts you to set a redirect when you move or delete a page. If you delete or rename pages often, it pays for itself.

One more thing. A green light in Yoast means you ticked its checklist. It is not a ranking, and Google has never seen your traffic light. I use the lights as a reminder, not as a goal.

what_i_do

  • Site representation and logo
  • Title and description templates
  • Search appearance per content type
  • One sitemap, submitted to Search Console

what_you_get

  • A settings sheet you can read
  • Titles written for the key pages
  • No accidental noindex on money pages
yoast-settings.txtwhat I set, and why
site basics

Organization, name and logo filled in, so the structured data is right

posts, pages

Shown in search, with a title template that fits in the result

categories

Shown, when each one has real posts and its own intro text

tags

Usually not shown, unless you use them with care

sitemap

One index, checked for pages that should not be in it

money pages

Title and description written by hand, not left to a template

// example setup for a small business site. The right choices depend on your content, so I decide per site.

WORKSTREAM 04

How I Do Caching and Core Web Vitals on WordPress

I make the server answer faster with caching, then fix what still slows the page in the browser. Caching means saving a finished copy of a page, so WordPress doesn't rebuild it from the database for every visitor.

Core Web Vitals are Google's three measurements of how a page feels to a real visitor. The "good" marks, from web.dev, are these: the main content shows within 2.5 seconds (LCP), the page reacts to a tap within 200 milliseconds (INP), and the layout shift score stays at 0.1 or less (CLS). Google suggests judging them at the 75th percentile of page loads, split by mobile and desktop.

The Server Side

A page cache comes first. WordPress.org describes it this way: caching plugins "will cache your WordPress posts and pages as static files". For busy sites and shops I add a persistent object cache, which saves repeated trips to the database. Then I check the time to first byte, the wait before the server starts answering. web.dev puts a good value at 0.8 seconds or less. It isn't a Core Web Vital itself, but a slow start makes every other number worse.

The Browser Side

Here the usual suspects on WordPress are render-blocking styles from the theme, scripts from plugins, and web fonts. So I delay what can wait, drop what isn't needed, and reserve space for images and ads to stop the page jumping.

A word of honesty. Google confirms that Core Web Vitals are used by its ranking systems. It also says that good results don't guarantee a top position, because relevance still comes first. So speed work removes a handicap. It doesn't replace good pages.

what_i_do

  • Page cache with the right exclusions
  • Object cache where the host supports it
  • Defer or remove blocking scripts
  • Fix layout shift at its source

what_you_get

  • Field data before and after
  • The cache settings written down
  • Carts and logins that still work
core-web-vitals.txtmobile, before and after
LCP (good: 2.5 s)4.1 s2.2 s
INP (good: 200 ms)380 ms170 ms
CLS (good: 0.1)0.240.04
first byte (good: 0.8 s)1.9 s0.5 s
beforeafter the work

// example data: a physiotherapy clinic site in Vancouver. The thresholds in brackets are from web.dev; the before and after values only show the report format.

WORKSTREAM 05

How I Do Image Handling in WordPress

I make sure every image is uploaded at a sensible size, served in the size the layout needs, and loaded at the right moment. Images are usually the heaviest part of a WordPress page, so this is where a few hours of work show the most.

What WordPress Already Does for You

WordPress helps more than people think. Since version 5.3 it scales down any upload wider or taller than 2,560 pixels and keeps the original file in the uploads folder. Since version 5.5 it adds loading="lazy" to image tags that have both a width and a height. Lazy loading means the browser waits to fetch an image until the visitor scrolls near it.

Where It Goes Wrong

Lazy loading is great for images far down the page. It is bad for the big image at the top, because that image is often the LCP element, the one Google times. A web.dev study of real pages found that the median page without lazy loading had an LCP of 2,922 milliseconds at the 75th percentile, against 3,546 milliseconds with it. The authors stress that this is a correlation. Their explanation was that images inside the first screen were being lazy-loaded too.

So on your site I check which element is the LCP on each template. If it's a lazy-loaded image, I change the template so that one image loads eagerly. I also check that width and height are present in the markup, because missing dimensions make the page jump while it loads.

what_i_do

  • Find the LCP element per template
  • Stop lazy loading above the fold
  • Regenerate sizes the theme really uses
  • Compress and convert the old library

what_you_get

  • Lighter pages with the same pictures
  • Alt text on the images that matter
  • A one-page upload routine
hero-image.htmlone image, six checks
file size

From a 4.8 MB phone photo to a file sized for the layout

dimensions

width and height in the tag, so nothing jumps

loading

The top image loads eagerly; the rest stay lazy

srcset

Smaller versions offered to phones

alt text

"Sourdough loaves on the counter of the bakery"

file name

sourdough-loaves.jpg, not IMG_4471.jpg

// example image for a bakery homepage. The 2,560 pixel and lazy-loading rules come from the WordPress core notes listed under Sources.

WORKSTREAM 06

How I Do Category and Tag Archive Indexing

I decide, archive type by archive type, which listing pages deserve a place in Google and which should stay out. An archive is a page WordPress builds automatically to list posts by category, tag, author or date.

Here's the catch. Every tag you ever typed creates its own page. A blog with 60 posts and 200 tags has more archive pages than articles, and most of them list one or two posts. Those pages add nothing for a searcher, and Google has to crawl them anyway.

My Rule of Thumb

Categories usually stay indexed, because a well-kept category is a useful topic page. I often add a short introduction to each one, so it's more than a list. Tags usually go to noindex, unless you use a small, tidy set. Date archives almost always go. Author archives go too on a one-author site, since they copy the blog page.

Yoast makes the switch easy. Under Settings, then Categories & Tags, each taxonomy has its own option, and Yoast itself says showing taxonomies is "usually a good idea" because they can bring visitors. I agree for categories. For 200 tags with one post each, I don't.

what_i_do

  • Count posts per category and tag
  • Merge or delete near-empty terms
  • Set index or noindex per archive type
  • Redirect deleted terms that had traffic

what_you_get

  • Fewer, stronger listing pages
  • A clean sitemap
  • Simple tagging rules for new posts
archives.csvexample: travel blog in Lisbon
archivepagesdecisionreason
categories8indexreal topics, intro text
tags212noindexmost list one post
date archives41offnobody searches by month
author archive1offsame as the blog page
search resultsmanynoindexendless combinations

// example data. The decisions are my usual starting point, and I adjust them to how you really use categories and tags.

WORKSTREAM 07

How I Handle Security and Updates for SEO

I keep WordPress, its plugins and its theme up to date on a schedule, with a backup before every round. This is SEO work because a hacked site can lose its search visibility quickly.

Google's spam policies define hacked content as any content placed on a site without permission, due to vulnerabilities in the site's security.

What the WordPress Documentation Asks For

The WordPress hardening guide is direct about it. It says you should always keep up to date with the latest version of WordPress and make sure your plugins are always updated. It also warns against plugins and themes from untrusted sources, which includes "free" copies of paid products. Automatic background updates have been available since version 3.7, and the guide recommends using them.

How I Run Updates

First a full backup of files and database. Then the updates, tested on staging when the site takes orders or bookings. Afterwards I load the key pages and submit a test form. Abandoned plugins, the ones their authors stopped maintaining, get replaced.

I also watch the Security issues report in your Search Console, where Google lists problems it has detected. If your site is already hacked or has lost rankings without a clear cause, my Google penalty recovery service page explains that work.

what_i_do

  • Backup, then core, plugin and theme updates
  • Replace abandoned plugins
  • Remove unused admin accounts
  • Check Search Console for security issues

what_you_get

  • An update log every month
  • A tested, restorable backup
  • Early warning when something looks wrong
update-log.txtexample month

// example data, to show the format of the monthly log. No security work can promise that a site will never be attacked.

timing

How Long WordPress SEO Takes, Step by Step

The technical WordPress fixes take weeks. The rankings that follow take months, and nobody controls that part. Here is the usual order of the first three months.

01

week 1

Access, Backup and Audit

You create an admin account for me and add me to Search Console. I take a backup, crawl the site and write the fix list.

admin accessbackupfix list
02

weeks 2 to 3

Bloat, Caching and Images

The heavy lifting on staging first, then live. You'll notice the site feels quicker before any tool confirms it.

plugin cleanuppage cacheimage sizes
03

week 4

Yoast, Archives and Permalinks

Settings reviewed, thin archives closed, redirects mapped if URLs change. Then the first report.

yoast settingsnoindex rulesredirect map
04

months 2 to 3

Pages, Content and Links

With the base repaired, the work moves to keywords, page rewrites and guest post links. Updates continue every month.

keyword mappage rewritesguest posts

// a work schedule for a typical small site on the Starter or Growth plan. It is my planning, not a promise of rankings.

mistakes

Common WordPress SEO Mistakes and Their Fixes

Most WordPress SEO problems are settings somebody forgot, not mysteries. These are the ones I meet again and again, with the fix for each.

The mistakeThe fix
Visibility box"Discourage search engines" left ticked after launch, under Settings, ReadingUntick it, then check the homepage in Search Console
Two SEO pluginsTwo plugins both writing titles and sitemapsKeep one, move the settings over, delete the other
URL changePermalinks changed on a live site without redirectsA redirect for every old address, checked one by one
Tag habitFive new tags on every postA short fixed tag list, or no tags at all

// the list reflects my own experience with small business sites. The fix column is what I do in each case.

check it yourself

Search Console

Open the Page indexing report. It shows which URLs Google stores and why it skips the others. Fewer junk URLs there means the archive work landed.

check it yourself

Core Web Vitals Report

Also in Search Console. It groups your URLs into good, needs improvement and poor, based on real visitors. Give it a few weeks after a fix.

check it yourself

Your Own Phone

Open the site on mobile data, not on office Wi-Fi. If the top of the page appears fast and nothing jumps, we're on the right track.

Want only the diagnosis? Then my SEO audit service gives you the fix list alone. For the wider picture beyond WordPress settings, see technical SEO.

pricing

What WordPress SEO Services Cost: Three Plans, One Rate

My WordPress SEO services cost €25 an hour, or €475, €875 or €1,275 a month on a plan. The WordPress development work is included in the same hours, so there's no separate developer bill.

starter

Starter

For a small WordPress site with a blog and a handful of service pages.

€475/month

  • On-page, technical, local and off-page
  • 1 to 2 guest post links a month
  • Links from blogs with real traffic
  • Updates, backups and a monthly report
growth · recommended

Growth

For a site with a page builder, many plugins and real competition.

€875/month

  • On-page, technical, local and off-page
  • 2 to 3 guest post links a month
  • Links from blogs with real traffic
  • More templates and pages repaired each month
full campaign

Full Campaign

For a large blog, a membership site or a WooCommerce store.

€1,275/month

  • On-page, technical, local and off-page
  • 5 or more guest post links a month
  • Links from blogs with real traffic
  • The most development hours of the three
or name your price

Set Your Own Budget

Maybe you only need the cleanup and the Yoast setup. Slide to what you can spend a month, and I'll tell you which WordPress fixes fit into those hours.

€600/month
€100€3,000
about 24 hours of my work a month, at €25/hourclosest plan: Starter (€475)

// a one-off job, such as a speed cleanup or a permalink change with redirects, is billed by the hour. I tell you the hours before I start. Need a new site instead of a repair? See WordPress web design services.

faq

WordPress SEO Questions I Get Every Week

Straight answers to what site owners ask before they hire someone for WordPress SEO services.

What do your WordPress SEO services include?

They include the WordPress-specific repairs plus the normal SEO campaign. The repairs are theme and plugin cleanup, permalinks, Yoast setup, caching, image handling, archive indexing, and security updates. The campaign adds keyword research, page rewrites, local SEO and guest post links, as in every plan.

How much do WordPress SEO services cost?

My rate is €25 an hour, and the monthly plans are €475, €875 and €1,275. The development work on your theme and plugins is billed at the same rate and counts inside the plan hours. You can also set your own monthly budget.

Do I need Yoast SEO Premium?

Usually not. In my opinion the free plugin covers what a small site needs. Premium costs $118.80 a year excluding VAT (vendor-stated, checked 11 Nov 2026), and its redirect manager is worth it when you often move or delete pages.

Should I noindex my category and tag pages?

Keep useful categories indexed, and noindex tags unless you manage them carefully. A category with real posts and a short intro is a good topic page. Hundreds of tags with one post each are thin pages that add nothing, so I usually switch those off in Yoast.

Will changing my permalinks hurt my rankings?

It can, if you change them without redirects. Every old address then returns an error and its history is lost. With a 301 redirect from each old URL to the new one the risk is much smaller, though rankings may still move for a while. I only change permalinks when the old pattern causes a real problem.

Is my page builder bad for SEO?

Not by definition. A page builder can produce a fast, well-structured page or a very heavy one, depending on how it was used. So I measure what your pages load and fix the heavy parts. I only suggest a rebuild when repairing would cost you more than starting clean.

How long does WordPress SEO take to show results?

The technical fixes take about a month on a small site, and rankings follow over the next months. That timing is my experience, not a promise. Google decides when it recrawls pages, and its Core Web Vitals data is collected from real visits over several weeks.

Do you also work on WooCommerce stores?

Yes. WooCommerce runs on WordPress, so everything on this page applies, plus the shop-specific work on category pages, product pages and filters. I describe that on my ecommerce SEO services page.

let's start

Send Me Your WordPress Site. I'll Tell You What Slows It Down.

One WhatsApp message with your URL is enough. I'll look at the theme, the plugins and what Google has indexed, and reply with the first three things I'd fix.

// prefer email? [email protected] works too. Take care, my friend.