All posts
Blog

WordPress SEO: The Complete Guide to Ranking a WordPress Site

By Dakshesh13 min read

  • wordpress seo
  • wordpress seo guide
  • wordpress permalinks
  • technical SEO
Continue with GoogleFree plan · No credit card required

AI Overview

WordPress SEO means making your site indexable, using Post name permalinks, running one SEO plugin for titles and meta descriptions, keeping a clean sitemap, speeding up pages, adding schema and checking that updates don't silently break any of it.

Key takeaways

  • Untick "Discourage search engines from indexing this site" in Settings > Reading, or every page carries a noindex tag.
  • Use the Post name permalink structure, and only change permalinks on a live site with 301 redirects from every old URL.
  • Run exactly one SEO plugin, such as Yoast SEO, Rank Math or AIOSEO, to control titles, meta descriptions, canonicals and schema.
  • Trim thin tag, author, date and attachment archives, keep the sitemap to indexable pages, and fix speed with caching and lighter themes.
  • Plugin, theme and core updates can silently change titles, canonicals, noindex and tracking, so check key pages after every update.

Summarize with AI

Opens the assistant in a new tab with a link to this post.

On this page

WordPress is a good platform for SEO. It produces clean URLs, outputs a sitemap on its own, lets you edit every title and description with a plugin, and powers a huge share of the sites that rank in Google. But "good for SEO" doesn't mean "does SEO for you". Most WordPress sites that struggle in search have the same handful of problems: a setting left on from development, a weak permalink structure, thin archive pages, a slow theme, or an update that quietly changed something important.

This guide walks through WordPress SEO in the order that matters, from the settings that can block your whole site to the ongoing work of keeping rankings safe after updates.

Step 1: Make sure search engines can see your site#

Before anything else, check Settings > Reading > Search engine visibility. If the box "Discourage search engines from indexing this site" is ticked, WordPress adds a noindex, nofollow robots meta tag to every page on the front end. Google respects it, and your pages drop out of search.

The box is meant for sites under construction, which is exactly why it causes so much damage: it gets ticked on a staging site, the site is copied to production, and nobody unticks it. A launch can go weeks without traffic before anyone notices.

Check it now, and check it again after every migration, staging push or host change. You can confirm any page in seconds with the free Noindex Checker, which reads both the robots meta tag and the X-Robots-Tag HTTP header.

While you're there, open yourdomain.com/robots.txt. WordPress serves a virtual robots.txt that allows crawling by default. If you see Disallow: / under User-agent: *, something (a plugin, a host setting or a hand-made file) is blocking every crawler from the entire site. Our robots.txt guide explains what a safe file looks like.

Permalinks are your URLs. The WordPress documentation lists six options under Settings > Permalinks: Plain, Day and name, Month and name, Numeric, Post name and Custom.

StructureExample URLSEO verdict
Plain/?p=123Avoid. Tells users and Google nothing
Day and name/2026/10/26/wordpress-seo/Dates make evergreen posts look old
Month and name/2026/10/wordpress-seo/Same problem, slightly shorter
Numeric/archives/123Avoid
Post name/wordpress-seo/Best choice for most sites
Custom/%category%/%postname%/Fine if categories are stable

For most sites, Post name (/%postname%/) is the right choice: short, readable and keyword-friendly.

The important warning: changing permalinks on an established site changes every URL. WordPress redirects some old post URLs on its own, but don't rely on that. Map every old URL to its new one, add 301 redirects, and test them before you switch. Our 301 vs 302 guide explains why the redirects must be permanent. On a new site, set the structure before you publish anything.

Step 3: Choose one SEO plugin#

Core WordPress doesn't let you write a custom meta description per page, set canonicals or add schema without code. An SEO plugin fills that gap. The three most widely used are Yoast SEO, Rank Math and All in One SEO (AIOSEO).

FeatureYoast SEORank MathAIOSEO
Custom titles and meta descriptionsYesYesYes
Title templates for posts, pages and archivesYesYesYes
XML sitemapYesYesYes
Schema markup outputYesYesYes
Canonical and robots meta controlsYesYesYes
Redirect manager in the free versionNo, Premium onlyYesNo, paid tier
Focus keywords per post (free)OneMultipleMultiple

All three cover the basics well, and the differences matter less than people think. What matters is the rule: run exactly one. Two SEO plugins mean two sets of titles, two canonicals, two sitemaps and conflicting robots tags. If you switch plugins, use the importer the new plugin provides so your custom titles and descriptions carry over, then check a sample of pages before and after.

Step 4: Write strong titles and meta descriptions#

Your title tag is the blue headline in Google, and the meta description is often the snippet under it. In your SEO plugin:

  • Set sensible templates for posts, pages, categories and products, such as %title% | Brand, so nothing is left without a title.
  • Override the template on important pages. Your homepage, top service pages and best posts deserve hand-written titles that lead with the main keyword and stay around 50 to 60 characters.
  • Write a unique meta description of roughly 140 to 160 characters for each important page. It doesn't directly change rankings, but a clear, specific description earns more clicks.
  • Avoid duplicates. Templates make it easy to end up with dozens of pages titled "Archives | Brand".

Our guides to title tags and meta descriptions go deeper on length, wording and the mistakes Google rewrites. The free Meta Tag Checker shows what any page currently outputs.

Try it on your site · free

Check your own page's meta tags

Title, description, canonical and robots - including an accidental noindex - in a few seconds.

Open the full tool

Step 5: Get your XML sitemap right#

Since WordPress 5.5, core generates a sitemap at /wp-sitemap.xml. Most SEO plugins replace it with their own (Yoast and Rank Math use /sitemap_index.xml, AIOSEO uses /sitemap.xml) and switch the core one off.

Whichever you use:

  • Submit it in Google Search Console under Sitemaps.
  • Include only pages you want indexed. Exclude tag archives, author archives on single-author sites, media attachment pages and thin utility pages.
  • Make sure it doesn't list URLs that redirect, 404 or carry noindex.

Our XML sitemap guide covers the format and common errors.

Step 6: Clean up categories, tags and thin archive pages#

WordPress creates an archive page for every category, tag, author and date. On a small blog that can mean hundreds of near-empty pages that each list two posts. They compete with your real content, waste crawl time and look thin.

  • Categories: keep a short, logical list. Each category page should be worth landing on, ideally with an intro paragraph.
  • Tags: use them sparingly or not at all. A tag used once creates a page with one post on it. Consider noindexing tag archives in your SEO plugin.
  • Author archives: on a single-author site they duplicate the blog page. Noindex or disable them.
  • Date archives: rarely useful for search. Most SEO plugins let you disable them.
  • Media attachment pages: make sure they redirect to the file or parent post. Yoast, Rank Math and AIOSEO all have a setting for it.

Step 7: Optimize images and alt text#

Images help pages rank in Google Images and make content easier to understand, but they're also the biggest cause of slow WordPress pages.

  • Write descriptive alt text in the media library or block editor. Describe what the image shows, not a list of keywords. Our alt text guide has examples.
  • Use descriptive file names before uploading (blue-running-shoe.jpg, not IMG_4821.jpg).
  • Resize before uploading. A 4,000 pixel photo shown at 800 pixels wastes bandwidth.
  • Serve modern formats such as WebP or AVIF. Recent WordPress versions support both, and image plugins can convert existing files.
  • Keep lazy loading on for images below the fold. WordPress adds it by default, but make sure your main hero image isn't lazy loaded, because that delays Largest Contentful Paint.

Step 8: Make WordPress fast#

Speed affects rankings through Core Web Vitals and affects conversions directly. On WordPress, most speed problems come from four places:

ProblemFix
Slow or overloaded hostingMove to managed WordPress hosting or a better plan with server-side caching
No page cachingAdd a caching plugin or use your host's built-in cache
Heavy theme or page builderUse a lightweight theme and limit builder add-ons
Too many plugins loading scripts on every pageRemove unused plugins and load scripts only where they're needed

Add a CDN for static files, keep PHP on a supported version, and measure with PageSpeed Insights before and after each change. Our Core Web Vitals guide explains LCP, INP and CLS, and the website speed guide has a full checklist. The free Page Size Checker shows how heavy a page is and what's making it heavy.

Step 9: Add schema markup#

Schema markup (structured data) helps Google understand what a page is about and can make it eligible for rich results such as breadcrumbs, product details and review stars.

Your SEO plugin already outputs a basic schema graph: Organization or Person, WebSite, WebPage and Article for posts. For more, Rank Math and AIOSEO include schema builders, WooCommerce adds Product data, and dedicated schema plugins cover recipes, events and local businesses.

Two cautions. First, only mark up what's visible on the page; adding fake reviews or FAQs is against Google's guidelines. Second, avoid running two plugins that both output the same schema type, which creates duplicates. Check any page with the free Structured Data Checker, and see our guide on how to check structured data.

Internal links tell Google which pages matter and help it find new content. WordPress makes linking easy in the block editor, but it doesn't do it for you.

  • Link from your strongest pages to the ones you want to rank.
  • Use descriptive anchor text, not "click here".
  • Link new posts from older, related posts, not only the other way around.
  • Add breadcrumbs (all three SEO plugins provide them) so every post links back to its category.
  • Fix broken internal links after you delete or rename posts. The free Broken Link Checker finds them on any page.

Step 11: Run the whole site on HTTPS#

HTTPS is a lightweight ranking signal and a hard requirement for user trust. Make sure both the WordPress Address and Site Address in Settings > General start with https://, that every HTTP URL 301 redirects to HTTPS, and that no images or scripts still load over HTTP (mixed content). Keep your certificate valid with the free SSL Certificate Checker.

The biggest WordPress SEO risk: updates#

Here's the part most WordPress SEO guides skip. You can do every step above perfectly and still lose rankings overnight, because WordPress sites change constantly. Core, themes and plugins update, often automatically, and any of them can change what your pages output.

Real examples of what an update can do:

  • A theme update changes the template so the title tag or H1 comes out differently.
  • An SEO plugin update or migration resets settings and drops custom meta descriptions or canonicals.
  • A staging sync turns the "Discourage search engines" noindex back on.
  • A caching or optimization plugin strips or delays the Google Analytics or Tag Manager script, so tracking silently stops.
  • A security plugin rewrites robots.txt and blocks crawlers you rely on.
  • A deactivated plugin takes your forms, schema or breadcrumbs with it.

None of these throw an error. The site looks fine, so nobody checks until traffic falls weeks later. Our guide on how to safely update WordPress plugins covers the process, and the WordPress maintenance checklist shows how to fit checks into a routine. Security matters here too: see our WordPress security guide.

How MyKavo catches SEO changes on WordPress#

MyKavo saves an approved baseline of each page you monitor and compares every scan against it. On WordPress, that means you hear about the changes above as they happen:

ChangeMyKavo alert severity
Page changes to noindexCritical
robots.txt starts blocking all crawlersCritical
Page goes from 200 to 404 or a 5xx errorCritical
Canonical URL changed or removedHigh
Title tag removedHigh
Google Analytics, Tag Manager or another known script disappearsHigh
Sitemap stops respondingHigh
Page renders with a different themeHigh
Title tag changedMedium

MyKavo also reads plugin and theme versions from your pages, so when something changes it can show the update that came with it, such as a plugin moving from one version to the next in the same scan.

The free MyKavo WordPress plugin brings this into wp-admin. On Pro and Agency, Safe Updates checks your monitored pages straight after every plugin, theme, translation and core update, automatic ones included, and labels any change with the update it appeared after. You can keep updates on and still know within minutes if one broke your SEO.

Frequently asked questions

Is WordPress good for SEO?

Yes. WordPress produces clean URLs, generates a sitemap and supports full control of titles, meta descriptions, canonicals and schema through an SEO plugin. Rankings still depend on your content, speed and settings.

Do I need an SEO plugin for WordPress?

Not strictly, but it is the easiest way to set custom titles and meta descriptions, control indexing and output schema. Use exactly one SEO plugin, such as Yoast SEO, Rank Math or AIOSEO.

Which is better, Yoast or Rank Math?

Both handle titles, meta descriptions, sitemaps, canonicals and schema well. Rank Math includes more in its free version, such as a redirect manager. Pick one and configure it properly; that matters more than the brand.

What is the best permalink structure for WordPress SEO?

Post name (/%postname%/) is best for most sites because it is short and readable. Only change permalinks on an existing site with a full set of 301 redirects from the old URLs.

Why is my WordPress site not showing in Google?

Check Settings > Reading first. If "Discourage search engines from indexing this site" is ticked, every page carries noindex. Then check robots.txt, submit your sitemap in Search Console and inspect a page with URL Inspection.

Can a plugin or theme update hurt my SEO?

Yes. Updates can change titles, remove canonicals, turn on noindex, rewrite robots.txt or stop analytics from loading, all without any visible error. Check key pages after every update or monitor them automatically.

The bottom line#

WordPress SEO comes down to a few decisions done right and then protected. Make sure the site is indexable, use Post name permalinks, run one SEO plugin with good title and description templates, keep your sitemap clean, trim thin archives, optimize images and speed, add honest schema, link internally on purpose and serve everything over HTTPS. Then watch for the updates that undo that work, because on WordPress they will come.

Check any page for an accidental noindex right now with the free Noindex Checker, then start free with MyKavo to get alerted the moment a plugin, theme or core update changes your titles, canonicals, robots tags or tracking.

Share this post

Get alerted when your site breaks. Free, no card.

Start free