Skip to main content
← Back to Blog
WordPress dashboard with the Yoast SEO plugin installed

SEO for WordPress with Yoast — What It Fixed on a Client Build, and What It Couldn't

I picked up a client WordPress site that had been live for two years and was barely showing up in search. Pages had no meta descriptions, every browser tab read the same generic title, and there was no sitemap submitted anywhere. The fix wasn't glamorous: install Yoast SEO, set up the parts that matter, and do the manual work the plugin can't. Here's what that looked like, and where Yoast genuinely earned its keep versus where it left me on my own.

What I Walked Into

The site ran a heavy theme with a page builder, which is its own problem (I wrote about that in why I avoid page builders). On the SEO side, the basics were missing entirely. Every page title in the search snippet was just the page name plus the site name, no thought behind it. Meta descriptions weren't set, so Google was inventing its own from whatever text it found first. No sitemap had been submitted in Search Console and no SEO plugin was managing sitemap generation, there was no canonical strategy, and the contact and thank-you pages were fully indexed alongside the real content.

None of that is exotic. It's the default state of a WordPress site nobody configured. Yoast exists to turn that default into something deliberate.

Why Yoast First

WordPress gives you a decent SEO foundation out of the box: clean permalinks, automatic <title> tags, RSS feeds, crawlable HTML, image alt text fields, and a basic XML sitemap at /wp-sitemap.xml (since WordPress 5.5). What it lacks is the control layer: meta descriptions, Open Graph data, schema, canonicals, and per-page SEO management. An SEO plugin fills that gap, and Yoast is the one I reach for because it covers that control layer in the free version and doesn't bury it behind upsells.

Rank Math and All in One SEO do the same job, and if a client already runs one of those I leave it. What matters is that exactly one SEO plugin is active. Running two means two plugins both writing title tags and schema, which produces duplicates and conflicting signals. The first thing I checked on this site was that nothing else was already claiming the job.

Setting Up Titles and Meta Templates

This is the part of Yoast I value most, and it's easy to miss because it lives in settings rather than on each post. Under Yoast SEO → Settings, you define templates for each content type (posts, pages, categories) using variables. So instead of writing a title for all 40 existing pages by hand, I set the page template to something like:

  • Title: %%title%% %%sep%% %%sitename%%
  • Posts: %%title%% %%sep%% %%category%% %%sep%% %%sitename%%

That immediately gave every page a sensible default title derived from its own content rather than a repeated string. From there I went into the handful of pages that actually drive the business, the services and landing pages, and wrote custom titles and meta descriptions by hand in the Yoast box below the editor. The template handles the long tail; the important pages get individual attention.

One detail worth knowing: the meta description is not a ranking factor, but it is the snippet most people read before deciding to click. A clear, specific description written for a human will out-click a keyword-stuffed one even if both rank in the same spot.

The Sitemap: Set Once, Forget It

Yoast generates an XML sitemap automatically and keeps it current as content is published. You'll find it at /sitemap_index.xml, which links out to separate sitemaps for posts, pages, and taxonomies. The advantage over a hand-maintained file is that nobody has to remember to update it. On static sites the sitemap is a file someone edits manually, and it goes stale the moment they forget (more on that approach in the Next.js SEO post).

I submitted the sitemap_index.xml URL in Google Search Console once and that was it. If you haven't set Search Console up yet, it's worth doing before anything else. It's how you find out whether your pages are actually getting indexed, which I covered in the Search Console guide. Submitting a sitemap gets your URLs discovered; it doesn't guarantee they'll be indexed.

Keeping the Wrong Pages Out of Google

Not every page belongs in search results. The thank-you page after a form submission, the cart and checkout on a store, tag archives that duplicate post content. None of those should be competing for impressions. Yoast lets you set a page to noindex from the Advanced section of the post's Yoast box, and lets you switch off indexing for entire content types or taxonomies in the settings.

On this site I turned off indexing for tag and date archives because they were generating thin, near-duplicate pages, and set the thank-you page to noindex. That's a site-specific call, not a universal rule: on larger publishers or stores, well-organized tag or category archives can earn real organic traffic and are worth keeping indexed. Yoast also writes the canonical tag for every page automatically, pointing each URL at itself by default, which tells search engines the preferred version of a URL and heads off many common duplicate-content issues. Canonicals are a signal, not a directive: Google can still pick a different URL if it judges one a better fit, but a consistent self-canonical is the right default.

Schema and Social Previews

Yoast generates a schema graph automatically, which may include Organization or Person for the site, plus WebPage, Article, BreadcrumbList, and other types depending on the content. You set whether the site represents a person or an organization during the configuration, and Yoast builds the graph from there. It saves writing JSON-LD by hand, which on a custom site I do myself but on WordPress is exactly the kind of repetitive work a plugin should own.

It also generates the Open Graph and Twitter Card tags that control how a link looks when shared on social or in messaging apps. You can set a default social image for the whole site and override it per page from the Social tab in the Yoast box. The client had none of this, so every shared link showed a blank box; setting a default image fixed it across the whole site at once.

The Traffic Lights Are Useful, With a Caveat

The part everyone notices is the red, orange, and green dots for the SEO and readability analysis. You set a focus keyphrase and Yoast checks whether it appears in the title, the first paragraph, the URL, a subheading, and the meta description, plus readability things like sentence length and passive voice.

I use these as a checklist, not a target. The checks are real reminders. It's genuinely easy to forget the meta description or to write a title that doesn't mention the topic. But a green light means the page passed an on-page hygiene test, not that it will rank. Google ranks on relevance, quality, and authority, and Yoast can't see any of those. I've watched people rewrite a perfectly good sentence into something stilted just to turn an orange dot green, which helps nobody. Chase the green where it costs you nothing; ignore it where it makes the writing worse.

What Yoast Couldn't Do

The plugin handled the technical scaffolding well. It did not fix the things that actually move rankings:

  • Content. Several pages were a couple of sentences over a stock photo. No plugin rescues thin content — that's writing work, and I flagged it for the client.
  • Site speed. The heavy theme and unoptimized images were dragging the load time down, and SEO plugins don't touch performance. That was a separate job, which I go through in how to improve WordPress performance.
  • Internal linking and authority. Yoast Premium suggests internal links, but deciding what links to what, and earning links from other sites, is strategy and outreach, not a setting.

Before calling the job finished I also checked Search Console for crawl errors, confirmed HTTPS canonicalization was redirecting the non-www and http versions correctly, fixed the broken internal links the old content had accumulated, and reviewed Core Web Vitals. Yoast doesn't cover any of that.

Yoast gets you to a clean technical baseline fast. Past that point the work is content and performance, and those are on you.

Frequently Asked Questions

Is the free version of Yoast SEO enough for most sites?

For most small business and portfolio sites, yes. The free version handles title and meta templates, XML sitemaps, canonical tags, robots controls, schema, and Open Graph data, which covers the technical SEO foundation. The premium version mainly adds the redirect manager, multiple focus keyphrases, internal linking suggestions, and orphaned content reports. Those are convenience features, not requirements. I'd only upgrade once the redirect manager alone would save enough manual work to justify it.

Does a green light in Yoast mean my page will rank?

No. The green light only means the page passed Yoast's on-page checklist: keyphrase in the title, a meta description of the right length, some internal links, readable sentences. Those are hygiene checks, not ranking guarantees. Google ranks on relevance, content quality, authority, and user experience, none of which Yoast can measure. Treat the traffic lights as a reminder of things not to forget, not a score to chase.

Should I use the Yoast sitemap or submit one manually?

Use the Yoast sitemap. It generates an XML sitemap automatically at /sitemap_index.xml and keeps it updated as you publish, which is the main advantage over a hand-maintained file. Submit that index URL in Google Search Console once. Yoast splits content into separate sitemaps by type (posts, pages, categories), and you can exclude any post type or taxonomy you don't want indexed directly from the Yoast settings.

Can Yoast slow down a WordPress site?

Yoast adds some overhead (extra database queries, admin assets, inline schema in the page head), but on a normally built site the impact is small and not what you'd notice on a slow page. Performance problems on WordPress almost always come from heavy themes, page builders, and unoptimized images, not from an SEO plugin. If your scores are bad, fix those first.