Written by the person who does the work

// 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.

Top Rated Plus - 100% Job Success, 100+ sites
// every post - newest first

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.

Showing 54 of 54
WordPress SEO setup: illustration for "Running an internal link audit"
// wordpress setup - 7 min read

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 →
WordPress SEO setup: illustration for "Choosing an SEO plugin for WordPress"
// wordpress setup - 8 min read

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 →
Hiring, pricing and results: illustration for "Is SEO still worth it? How I decide"
// hiring - 9 min read

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 →
WooCommerce and store SEO: illustration for "My WooCommerce SEO checklist"
// woocommerce - 8 min read

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 →
WordPress SEO setup: illustration for "Adding schema to WordPress"
// wordpress setup - 10 min read

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 →
Migrations and redesigns, SEO side: illustration for "Changing a WordPress domain, the SEO side"
// migrations - 10 min read

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 →
Migrations and redesigns, SEO side: illustration for "Changing WordPress permalinks safely"
// migrations - 10 min read

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 →
Clicks, rankings and AI search: illustration for "Checking where a site really ranks on Google"
// clicks and ai - 10 min read

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 →
Indexing and Search Console: illustration for "Checking a Japanese keyword hack in Google"
// indexing - 10 min read

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 →
Migrations and redesigns, SEO side: illustration for "301 vs 302 redirects, and avoiding chains"
// migrations - 10 min read

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 →
WordPress SEO setup: illustration for "Rank Math vs Yoast, how I choose"
// wordpress setup - 10 min read

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 →
Indexing and Search Console: illustration for "Choosing www or non-www in WordPress"
// indexing - 10 min read

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 →
Speed and Core Web Vitals: illustration for "Clearing every WordPress cache layer"
// speed - 10 min read

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 →
WordPress SEO setup: illustration for "Crawling WordPress with Screaming Frog"
// wordpress setup - 10 min read

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 →
Hiring, pricing and results: illustration for "One-off SEO or a monthly retainer"
// hiring - 10 min read

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 →
WordPress SEO setup: illustration for "WordPress tags and categories"
// wordpress setup - 10 min read

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 →
Hiring, pricing and results: illustration for "What an SEO contract can promise"
// hiring - 10 min read

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 →
Clicks, rankings and AI search: illustration for "High impressions, low clicks in Search Console"
// clicks and ai - 10 min read

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 →
WordPress SEO setup: illustration for "Technical SEO in plain English"
// wordpress setup - 10 min read

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 →
Indexing and Search Console: illustration for "Finding and fixing soft 404 errors"
// indexing - 10 min read

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 →
Speed and Core Web Vitals: illustration for "Finding why a WordPress site is slow"
// speed - 10 min read

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 →
Speed and Core Web Vitals: illustration for "Finding what slows INP"
// speed - 10 min read

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 →
Indexing and Search Console: illustration for "Fixing 4xx and 403 blocks in Search Console"
// indexing - 10 min read

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 →
Indexing and Search Console: illustration for "Fixing Excluded by noindex tag"
// indexing - 10 min read

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 →
Indexing and Search Console: illustration for "Fixing 404 errors with the right redirect"
// indexing - 10 min read

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 →
WordPress SEO setup: illustration for "Wrong favicon or site name in Google"
// wordpress setup - 10 min read

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 →
Speed and Core Web Vitals: illustration for "Fixing a slow Largest Contentful Paint"
// speed - 10 min read

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 →
WooCommerce and store SEO: illustration for "Fixing Product snippet errors, no fake reviews"
// woocommerce - 10 min read

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 →
Local SEO: illustration for "Getting ready for Business Profile verification"
// local - 10 min read

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 →
WooCommerce and store SEO: illustration for "Out-of-stock and discontinued products"
// woocommerce - 10 min read

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 →
Migrations and redesigns, SEO side: illustration for "Protecting rankings in a redesign"
// migrations - 10 min read

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 →
Local SEO: illustration for "Ranking higher on Google Maps"
// local - 10 min read

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 →
Clicks, rankings and AI search: illustration for "Measuring ChatGPT referral traffic"
// clicks and ai - 10 min read

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 →
Migrations and redesigns, SEO side: illustration for "Moving WordPress to a new host"
// migrations - 10 min read

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 →
WordPress SEO setup: illustration for "Planning SEO for a new website"
// wordpress setup - 10 min read

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 →
Hiring, pricing and results: illustration for "How I price SEO work"
// hiring - 10 min read

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 →
Indexing and Search Console: illustration for "Reading Page with redirect in Search Console"
// indexing - 10 min read

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 →
Indexing and Search Console: illustration for "Removing a page from Google search results"
// indexing - 10 min read

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 →
Local SEO: illustration for "A local SEO checklist for service sites"
// local - 10 min read

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 →
WordPress SEO setup: illustration for "A technical SEO checklist for WordPress"
// wordpress setup - 10 min read

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 →
Migrations and redesigns, SEO side: illustration for "Website migration SEO checklist"
// migrations - 10 min read

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 →
WordPress SEO setup: illustration for "Breadcrumbs in WordPress, set up properly"
// wordpress setup - 10 min read

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 →
Speed and Core Web Vitals: illustration for "Cloudflare on WordPress without hurting SEO"
// speed - 10 min read

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 →
Indexing and Search Console: illustration for "Setting up Search Console on WordPress"
// indexing - 10 min read

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 →
Local SEO: illustration for "Testing location pages for doorway risk"
// local - 10 min read

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 →
Speed and Core Web Vitals: illustration for "Tracking down Cumulative Layout Shift"
// speed - 10 min read

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 →
Indexing and Search Console: illustration for "Using URL Inspection before Request Indexing"
// indexing - 10 min read

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 →
Hiring, pricing and results: illustration for "Honest SEO timelines from real client data"
// hiring - 10 min read

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 →
Indexing and Search Console: illustration for "Why a site isn't showing up on Google"
// indexing - 10 min read

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 →
Hiring, pricing and results: illustration for "Vetting an SEO consultant before you hire"
// hiring - 10 min read

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 →
Hiring, pricing and results: illustration for "Writing a monthly SEO report"
// hiring - 10 min read

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 →
WordPress SEO setup: illustration for "Writing alt text for search and screen readers"
// wordpress setup - 10 min read

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 →
WooCommerce and store SEO: illustration for "Product descriptions that aren't stock copy"
// woocommerce - 10 min read

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 →
Migrations and redesigns, SEO side: illustration for "Moving Wix to WordPress, the SEO side"
// migrations - 10 min read

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 →
// categories - one service behind each

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.

// how these are written - three rules

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.

i.

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.

ii.

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.

iii.

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.

// your site

Rather I just did it?

Send the URL and I'll scope the job in writing before any work starts.

Book a call on Upwork
// the blog - questions

Before 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.

// next step

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
WordPress performance dashboard with a speed gauge and rising traffic chart