// blog - how i work
How I fix WordPress SEO, written down
Each post is one job I do for clients, written in the first person and in the order I do it. The answer comes first and the method follows. Any rule that comes from Google or a platform links to where it's written.
Every post, by the problem it solves
Pick the category that matches what's going wrong on your site. Each post opens with the short answer, so you'll know in a few lines whether it's the one you need.

How I run an internal link audit on WordPress
An internal link audit maps every link between your own pages, then shows which pages collect too many, which get too few and which get none at all. I run mine from a Screaming Frog crawl plus Search Console data, and I read the whole map before I change a single link.
September 29, 2026Read the post →
How I choose an SEO plugin for a WordPress site
The best SEO plugin for WordPress is the one that prints correct titles, canonicals, sitemaps and schema for your kind of site and is still being maintained. For most sites that's Rank Math or Yoast SEO, both free to start. SEOPress, All in One SEO, The SEO Framework and Slim SEO suit narrower needs.
September 28, 2026Read the post →
How I decide if SEO is still worth it for a business
SEO is worth it when people already search for what you sell, one new customer is worth more than the work costs, and you can wait months rather than weeks for it to pay back. If nobody searches for it, or you need leads this month, paid ads or other channels come first.
September 28, 2026Read the post →
How I run a WooCommerce SEO checklist on a live store
My WooCommerce SEO checklist covers what a store builds on its own that a blog doesn't: product and category URLs, filter and sort parameters, cart and checkout pages, product markup, stock changes and heavy templates. I run it in that order, because each layer decides whether the next one can rank.
September 28, 2026Read the post →
How I add schema to WordPress so it validates and matches the page
To add schema to WordPress, I write it as JSON-LD, either through the SEO plugin's schema settings or as one small block printed on wp_head, and join the pieces with @id so they describe one business. Every type has to match what's visible on the page, and I never mark up reviews the page doesn't show.
September 28, 2026Read the post →
How I change a WordPress site's domain and keep its search history
To change a WordPress site's domain and keep its search history, I move the site, run a serialized search and replace so no old domain is left in the database, and 301 every old URL to the same path on the new domain. Then I tell Search Console and keep the old domain renewed.
September 28, 2026Read the post →
How I change WordPress permalinks without breaking rankings
Most of the time I don't change WordPress permalinks that already rank, because every changed URL has to be redirected and its place re-earned. When a change is worth it, like dropping dates from post URLs, I export every old URL, map each one to its new address with a 301, and test the map on staging first.
September 28, 2026Read the post →
How I check website ranking on Google without paid tools
The most accurate free way to check website ranking on Google is the Performance report in Search Console, because it shows the positions Google actually served, by query, page, country and device. I filter by query or page, read average position next to impressions, and don't trust an incognito search, which location and device still shape.
September 28, 2026Read the post →
How I check what a Japanese keyword hack did to a site's Google results
After a Japanese keyword hack is cleaned up, I check what it left behind in Google: every spam URL it got indexed, whether each one now returns a 404 or 410, and anything it added to the sitemap or robots.txt. Then I request a review in Security issues. The malware cleanup itself is a security specialist's job.
September 28, 2026Read the post →
How I choose between a 301 and a 302 redirect, and avoid chains
A 301 redirect tells Google a page has moved for good, so Google normally indexes the new URL in its place, while a 302 says the move is temporary and the old URL usually stays in results. I use 301 for anything permanent, 302 only for short-term cases, and I point every redirect straight at its final address.
September 28, 2026Read the post →
How I choose between Rank Math and Yoast on a client's WordPress site
Rank Math vs Yoast isn't a ranking decision, because neither plugin ranks a site on its own. What differs is the output each one prints: schema, sitemaps, redirects and indexing defaults. I keep whichever the site already runs unless its output is wrong, and when I switch, I import, compare a sample of pages, then remove the old one.
September 28, 2026Read the post →
How I choose www or non-www and make a WordPress site stick to one
For SEO, www vs non-www makes no difference on its own, so either version is fine. What matters is picking one and making every other version 301 to it, with the canonical tag, the sitemap and your internal links all naming the same host. Leave both answering and Search Console can report two homepages.
September 28, 2026Read the post →
How I clear every cache layer when WordPress changes don't show up
To clear cache in WordPress when your changes don't show, I purge every layer from the inside out: the page builder's CSS files, the caching plugin, the host's server cache, the CDN such as Cloudflare, then the browser. After that, I prove what's live by requesting the page over HTTP, not by trusting my own screen.
September 28, 2026Read the post →
How I crawl a WordPress site with Screaming Frog before I change anything
To use Screaming Frog on a WordPress site, I crawl it first without JavaScript rendering, then compare that crawl with the XML sitemaps and Search Console, because pages that turn up in only one list are where the problems hide. Then I filter for errors, noindexed sitemap URLs, duplicate titles and unlinked pages.
September 28, 2026Read the post →
How I decide between a one-off SEO project and a monthly SEO retainer
An SEO retainer is worth paying for only when there's continuing work, like content, updates or measurement. Technical faults usually get fixed once: an audit finds them and a fixed-price project clears them. So I start one-off, and I only suggest a monthly plan once the fixes show what's actually left.
September 28, 2026Read the post →
How I decide what to do with categories vs tags in WordPress
Categories vs tags in WordPress comes down to structure: categories are the site's main sections and tags are optional labels, so I treat them differently. Every category should be a hub worth landing on. A tag with one or two posts is a thin archive, so I trim or noindex it, and redirect any tag URL that already earns clicks.
September 28, 2026Read the post →
How I decide which SEO guarantees a contract can honestly make
An SEO guarantee is only honest when it covers work the consultant controls, and Google's rankings aren't that. What I put in writing instead is named deliverables by a date, 10% off for every day I'm late, Core Web Vitals green on mobile for speed projects or free fixes until they are, and a reply within one business day.
September 28, 2026Read the post →
How I diagnose high impressions and low organic CTR in Search Console
To improve organic CTR when Search Console shows high impressions and low clicks, I first check whether the rate is low for the position each page holds, because position nine won't click like position one. Queries Google answers on the results page stay low whatever I do, so I rewrite titles only where the query is commercial.
September 28, 2026Read the post →
How I explain technical SEO to a business owner in plain English
Technical SEO is the work that lets search engines find, crawl, render and index a site's pages and understand what they're about, before content and links can do their job. I explain it to owners as plumbing: when it's right nobody notices, and when it's wrong, good pages don't show up in Google at all.
September 28, 2026Read the post →
How I find and fix soft 404 errors in Search Console
A soft 404 is a page that answers 200 OK but looks empty or missing to Google, so Search Console treats it like a 404 and leaves it out of the index. On WordPress I usually trace it to one of three causes, and each one needs a different fix.
September 28, 2026Read the post →
How I find out why a WordPress site is so slow before fixing anything
Why is my WordPress site so slow? Usually one layer is to blame: the server's response, the weight of the front end, or the admin and its database. I find which one before touching anything, because each layer has its own fix, and that's why another cache plugin so often changes nothing.
September 28, 2026Read the post →
How I find what's slowing Interaction to Next Paint
Interaction to Next Paint measures how long a page takes to show a visible response after a tap, click or key press, and web.dev counts 200 milliseconds or less as good. I don't start with a lab score. I find the slow interaction in field data, then trace it in DevTools to the script blocking the main thread.
September 28, 2026Read the post →
How I fix 'Blocked due to other 4xx issue' and 403 errors in Search Console
Blocked due to other 4xx issue means Googlebot asked for the URL and your server refused it with a 4xx code other than a 401, 403 or 404, so Google won't use the page. The 403 line works the same way. On WordPress it's usually a firewall or bot rule, and I find it and let verified Googlebot through.
September 28, 2026Read the post →
How I fix 'Excluded by noindex tag' on WordPress pages that should rank
Excluded by noindex tag means Google found a noindex rule on the page and left it out on purpose. On WordPress it usually comes from the search engine visibility box, an SEO plugin setting, a staging copy pushed live, or an X-Robots-Tag header. I prove which from the source and headers, fix it there and ask for a recrawl.
September 28, 2026Read the post →
How I fix 404 errors in WordPress with the right redirect for each URL
To fix 404 errors, I sort them by value first, because most don't need fixing at all. The ones that matter have backlinks, impressions or internal links pointing at them. Each of those gets a 301 to the closest matching page, a 410 if it's gone for good, or stays a 404. None go to the homepage.
September 28, 2026Read the post →
How I fix a favicon not showing in Google Search, or the wrong site name
A favicon not showing in Google Search, or showing the wrong one, gets fixed on the homepage, because that's the page Google reads the icon from. The site name works the same way, and Google weighs WebSite structured data on the homepage most. I fix both there, then ask Google to recrawl it.
September 28, 2026Read the post →
How I fix a slow Largest Contentful Paint
I fix a slow Largest Contentful Paint by finding the LCP element first, because the fix depends on what it is: usually a hero image, a heading or a background image. Then I split its time into four parts and fix the biggest one, which on WordPress is often a lazy loaded hero, a late image or a slow server.
September 28, 2026Read the post →
How I fix the error saying either offers, review or aggregateRating should be specified
The Search Console error Either "offers", "review", or "aggregateRating" should be specified means Google found Product markup carrying none of the three. The honest fix is almost always offers: price, currency and availability, which your product page already shows. I add review or rating markup only when real customer reviews are visible on that page.
September 28, 2026Read the post →
How I get a business ready for Google Business Profile verification
Google Business Profile verification is how Google confirms you own and run the business: you find or claim the profile, select Get verified, and pass whichever method Google offers, from a phone code to a video. My part comes first, making everything Google sees agree before that check starts.
September 28, 2026Read the post →
How I handle out-of-stock and discontinued products in a store
Out of stock products SEO has one rule for items coming back: keep the page live and indexed with its availability marked out of stock, because it'll sell again. A discontinued product is different: it gets a 301 to its closest replacement, a page pointing to alternatives if it still earns traffic, or a 410.
September 28, 2026Read the post →
How I handle website redesign SEO and protect a site's rankings
Website redesign SEO comes down to one fact: Google doesn't rank designs, it ranks URLs and the content on them. So I benchmark the pages that earn clicks, agree with the designer which URLs stay, map every one that changes to its closest new page, and review the staging build before it goes live.
September 28, 2026Read the post →
How I help a service business rank higher on Google Maps
How to rank higher on Google Maps: be more relevant and better known than the businesses near the searcher, because Google says local results are mainly based on relevance, distance, and popularity. Nobody can move distance. So I fix relevance first, then show the owner where popularity is being lost.
September 28, 2026Read the post →
How I measure ChatGPT referral traffic in Google Analytics
ChatGPT referral traffic shows up in GA4 as sessions from chatgpt.com, filed under the AI Assistant channel Google added on 13 May 2026 when the referrer matches Google's list of AI assistants. I check that channel, then catch strays in Referral and Unassigned with a custom channel group. The total is a floor.
September 28, 2026Read the post →
How I migrate WordPress to new hosting and check nothing broke for Google
When I migrate WordPress to new hosting and the URLs stay the same, there's no redirect map to build. The risk is what breaks quietly: DNS, email records, a leftover noindex and a slower server. I test the copy on the new server first, then check each of those over HTTP on switch day.
September 28, 2026Read the post →
How I plan the SEO for a new website before it launches
SEO for a new website is mostly decided before launch: which search each page answers, the URL structure, titles and headings that name the service and the place, and nothing blocking indexing. On launch day I verify Search Console and submit the sitemap, then spend the first 90 days on click rate, new pages and first links.
September 28, 2026Read the post →
How I price SEO work, and how much SEO costs across the market
How much SEO costs comes down to three things: how big the site is, how much of it's broken, and whether the fixes are included or only listed. Ahrefs' survey puts most SEO budgets between 500 and 5,000 US dollars a month. My own prices are fixed, published and agreed on Upwork before I start.
September 28, 2026Read the post →
How I read 'Page with redirect' in Search Console and decide if it needs fixing
Page with redirect usually isn't a fault: Google found a URL that redirects elsewhere, so it won't index that URL; the destination's judged separately. That's what should happen to old URLs and to http or non-www versions. I only act when a listed URL should be indexed itself, or when my own sitemap and links keep naming redirects.
September 28, 2026Read the post →
How I remove a page from Google search results, and when I don't
To remove a URL from Google for good, I put a permanent signal on the page first, a noindex tag, a 404 or 410, or a login, and only then file a Removals tool request, which hides the result for about six months. For a page on someone else's site, only Google's outdated content tool applies.
September 28, 2026Read the post →
How I run a local SEO checklist on a service business website
My local SEO checklist for a service business covers the Business Profile, the same name, address and phone everywhere, one page per core service, town pages with something true to say, matching structured data, citations, reviews and local links. I run the website half myself. Reviews, posts and photos stay the owner's job.
September 28, 2026Read the post →
How I run a technical SEO checklist on a WordPress site
My technical SEO checklist for WordPress starts with the settings that can switch search off, then checks crawling, indexing, redirects, mobile rendering, duplicates, Core Web Vitals, structured data and AI crawler access. It doubles as a WordPress SEO checklist for the layer under your content, and I rank every fix by the clicks it puts at risk.
September 28, 2026Read the post →
How I run a website migration SEO checklist before, during and after launch
My website migration SEO checklist runs in three phases, and each check sits in the phase where it can still change the outcome. Before launch I build the URL list and the redirect map. On launch day I test the live responses. After launch I compare Search Console page by page at 7, 14 and 28 days.
September 28, 2026Read the post →
How I set up breadcrumbs in WordPress for SEO and for visitors
Breadcrumbs help SEO in two ways: they show visitors where a page sits and give Google a clean path of links up the site, and BreadcrumbList markup describes that path. I add them through the SEO plugin or the theme, make the trail follow the real hierarchy, and check the visible trail matches the markup.
September 28, 2026Read the post →
How I set up Cloudflare on a WordPress site without hurting SEO
Cloudflare doesn't hurt SEO on its own: its nameservers, shared IPs and caching don't count against a site, and a faster site helps. What can hurt is three kinds of setting: bot rules that challenge Googlebot, cache rules that serve the wrong HTML, and redirect rules that fight WordPress. I test each one over HTTP.
September 28, 2026Read the post →
How I set up Google Search Console verification on a WordPress site
For Google Search Console verification on WordPress, I add a Domain property and verify it with a DNS TXT record. It covers http, https, www and every subdomain at once, and no theme or plugin change can remove it. A URL-prefix property with an HTML tag works, but it only covers one version of the site.
September 28, 2026Read the post →
How I test location pages before launch so they aren't doorway pages
Doorway pages are pages built to rank for similar searches, such as one per town, that funnel visitors on without much value of their own. My test: if the town name could be swapped and the page would still read true, it's a doorway, so I check each page for local facts and measure shared text before launch.
September 28, 2026Read the post →
How I track down and fix Cumulative Layout Shift
Cumulative Layout Shift scores how much visible content jumps around unexpectedly on a page, and 0.1 or less is good. I find the element that moves in DevTools before I change anything. On WordPress it's usually images and embeds without dimensions, web fonts swapping, cookie banners, or ad and embed slots that load late.
September 28, 2026Read the post →
How I use the URL Inspection tool before I press Request Indexing
The URL Inspection tool shows Google's stored record for one URL: whether it's indexed, which canonical Google chose, when it was last crawled, and whether a live test can fetch the page now. I read all of it before I press Request Indexing, because the button asks for a sooner crawl and can't overturn Google's decision.
September 28, 2026Read the post →
How I work out how long SEO takes to work, from real client data
How long SEO takes to work depends on where the site starts: a technical fault can show results within weeks of the fix, while a site that begins on page four needs quarters, not months. I set every timeline from the site's own Search Console baseline, never from a stock range.
September 28, 2026Read the post →
How I work out why a website isn't showing up on Google
When a website isn't showing up on Google, I first check whether Google has it at all, with a site: search and the URL Inspection tool. If it's missing, I look for a block: a noindex, robots.txt, a password, or a new site nothing links to. If it's indexed but invisible, it's a ranking problem.
September 28, 2026Read the post →
How I would vet an SEO consultant if I were the one hiring
To hire an SEO consultant well, I'd ask to see past results in Search Console on a live screen share, a written scope with dated deliverables, two references and a straight answer about what they won't do. The red flags are ranking promises, secret methods, and any plan that doesn't start with your own data.
September 28, 2026Read the post →
How I write a monthly SEO report a business owner can read
What to include in an SEO report: the changes made on the site with dates, Search Console clicks, impressions and position against last month and last year, the pages that went down as well as up, leads where they're tracked, and what happens next. I send those sections every month, in the same order.
September 28, 2026Read the post →
How I write alt text that helps image search and screen readers
I write alt text by describing what the image shows in the context of the page, in one short plain sentence, and I name a product or place only when it's really in the picture. Decorative images get an empty alt attribute. On a store, every product image gets its own, because image search can bring buyers.
September 28, 2026Read the post →
How I write product descriptions that aren't the manufacturer's copy
Product description SEO starts with what buyers search and ask before they buy, such as size, material, compatibility or price, answered in the first lines. Then I add what only the store can say: stock, shipping, care and how it compares. The manufacturer's text can stay as a spec table, but it shouldn't be the only copy.
September 28, 2026Read the post →
How I handle the SEO side of moving a Wix site to WordPress
Wix to WordPress SEO comes down to one job: every URL Google knows gets a one to one 301 to its new WordPress address before the domain points at the new site. Copying the content is the easy half. The map is the hard half, because Wix names posts and products its own way.
September 28, 2026Read the post →Eight categories, one job each
Each category has one service behind it, and its page opens with what the posts cover and which problem they solve.
Three rules every post follows
They're the same rules the rest of this site keeps, and they're checked by a script before a post goes up.
First person, first hand
Each post is a job I do myself, in the order I do it. There's no ghostwriter and no team, because there isn't one.
Sourced, or it isn't said
A rule from Google, WordPress or a platform links to the page it came from. Every source is opened on the day the post's written.
Only numbers I can show
A client figure appears only when it's in a published case study. No invented clients and no borrowed results.
Rather I just did it?
Send the URL and I'll scope the job in writing before any work starts.
Book a call on UpworkBefore you read, four answers
Why are the posts written in the first person?
Because one person does the work. Each post is the method I use on client sites, so "I" is accurate, and it's easier to judge whether I'd suit your site when you can see exactly how I'd go about it.
Are the posts the same as the guides?
No. A guide explains one problem and how it's fixed, often with a free tool. A post shows how I handle one job from start to finish. Where they share a topic, the post links the guide rather than repeating it.
Can I hire you to do what a post describes?
Yes. Every post names the service it belongs to, and you can book a call on Upwork to scope it. The scope and the price are fixed in writing before any work starts, and it's all done remotely.
Do you build or design WordPress sites?
Not here. This site covers the search side of WordPress: audits, fixes, migrations, speed and local SEO. When a post touches a move or a redesign, it covers the SEO half, and the build stays with your developer.
Read the method, or hand me the site
Book a call on Upwork, send the URL and read-only Search Console access, and you'll get back what's actually wrong, ranked by the clicks it's costing. I don't guess at a fix before I've seen the site.
Book a call on Upwork