September 5, 2026 / SEO

Is WordPress Good for SEO? The Honest Answer

Quick answer

Is WordPress good for SEO? It is neutral. Out of the box WordPress gives you clean URLs, canonical tags, XML sitemaps and responsive images: a solid foundation and nothing more. It will not write your titles, manage redirects, generate rich schema or make your site fast. Several defaults, notably attachment pages and thin archives, actively create index bloat until you switch them off.

Search the phrase “is WordPress good for SEO” and you get a wall of yes, followed by eleven plugin recommendations. That answer is not wrong, it is just useless. It tells you nothing about what WordPress is doing on your behalf and nothing about what it is quietly doing against you.

The accurate framing is that WordPress is SEO-neutral. It hands you a clean, crawlable, editable foundation, and then hands you six loaded guns with the safety off. The foundation is genuinely good. The guns are enabled by default.

This post names each one: what core does for you, what it flatly refuses to do, where the defaults cost you crawl budget and rankings, and the order in which to fix them on a fresh install.

Is WordPress good for SEO, or just popular?

Both, and the two facts are unrelated. WordPress ranks well because it is easy to publish on, easy to edit, and produces sane HTML that crawlers have parsed for two decades. It does not rank well because of anything magical in the software.

Think of it the way you would think of a text editor. A good editor does not write good prose, it removes the friction between you and the page. WordPress removes the friction between you and a crawlable, indexable, revisable page. Everything past that is your job, your theme’s job, or your host’s job.

WordPress will not lose you rankings. Your theme, your host and your unattended defaults will.

What WordPress genuinely gives you for free

Core ships a real technical SEO baseline that most people credit to their plugin. Clean permalinks, a self-referencing canonical tag on singular views, an XML sitemap, responsive image markup, lazy loading, a virtual robots.txt, revision history and a proper taxonomy system are all in core, with no plugin involved.

Two of those are worth pinning down. XML sitemaps landed in core in WordPress 5.5, so a bare install has been discoverable from first publish since 2020. And rel_canonical() has been outputting canonical tags on singular queries since 2.9, switching to wp_get_canonical_url() in 4.6. Responsive srcset and sizes markup arrived in 4.4.

CapabilityIn WordPress core?What you still have to add
Clean, keyword-readable permalinksYes, but the default is not Post nameSet it once at Settings > Permalinks
Self-referencing canonical on singular viewsYes, since 2.9Cross-domain and archive canonicals
XML sitemapYes, since 5.5Exclusion rules, image and video entries
srcset and sizes on imagesYes, since 4.4WebP or AVIF, real compression, correct hero sizing
Native lazy loadingYesExcluding the LCP image from it
robots.txtYes, generated virtuallyCustom disallow rules for parameter URLs
Revisions, drafts, scheduling, rolesYesNothing. This part is genuinely done
Categories, tags, custom taxonomiesYesA policy on which of them should be indexed
Title and meta description templatesNoAn SEO plugin
Open Graph and Twitter card tagsNoAn SEO plugin
Article, Product, FAQ, HowTo schemaNoAn SEO plugin or hand-written JSON-LD
Redirect managementNoA plugin, or rules at the server
Per-URL noindex controlNoAn SEO plugin
Breadcrumbs with markupNoTheme support plus a plugin
Core versus plugin responsibility on a stock WordPress install.

What WordPress does not do, whatever the marketing says

WordPress does not do any of the work that actually moves a page up a results page. It does not write your title tags, it does not write meta descriptions, and the fallback title your theme prints is usually just the post name plus the site name.

It does not manage redirects. Change a slug and core will occasionally guess its way to the right destination through its old-slug lookup, but that is a courtesy, not a redirect strategy, and it does not survive a restructure. It does not generate schema beyond whatever your theme happens to emit. It does not stop index bloat, it does not build links, and it certainly does not make you fast. A stock install on cheap shared hosting will fail Core Web Vitals just as reliably as any other CMS on the same box.

None of that is a criticism. It is a division of labour, and knowing where the line sits is the difference between a site you control and a site that surprises you. If you want the full build-out, the walkthrough in our guide to improving WordPress SEO covers the configuration side in more depth than fits here.

Where WordPress actively works against your SEO

This is the part the ranking pages skip. WordPress has a handful of defaults and ecosystem habits that generate crawlable junk without you touching anything. Each one has a specific fix.

Attachment pages

Every image you upload historically got its own URL with almost no content on it. Upload 800 images and you have created 800 thin pages. WordPress 6.4 added the wp_attachment_pages_enabled option: new installs default to disabled, but sites upgrading from earlier versions were set to 1 to preserve existing behaviour. If your site predates 6.4, it is probably still on. Turn it off.

wp option get wp_attachment_pages_enabled
wp option set wp_attachment_pages_enabled 0

Tag and date archives nobody asked for

Tags are free to create and most sites end up with dozens holding one post each. A tag archive with a single entry is a duplicate of that post’s excerpt. Date archives are worse, because they group content by an axis no searcher uses. Set single-use tag archives and all date archives to noindex, and stop inventing tags you will not use ten times.

Pagination with no ceiling

Settings > Reading defaults to ten posts per archive page. A 600-post blog therefore publishes 60 paginated URLs per archive, multiplied across every category and tag. Raise the posts-per-page count on archives, and make sure each paginated URL carries a self-referencing canonical rather than pointing back at page one, which hides the deeper posts from discovery entirely.

Multi-purpose themes shipping forty assets

A theme sold as “works for any business” loads the sliders, portfolio filters, icon fonts and animation libraries for every one of those businesses on every page, including the contact page that uses none of them. Open the network panel on your slowest template and count the requests. Dequeue what that template does not use, from a child theme so an update does not undo it.

add_action( 'wp_enqueue_scripts', function () {
    if ( ! is_front_page() ) {
        wp_dequeue_style( 'theme-slider' );
        wp_dequeue_script( 'theme-slider' );
    }
}, 100 );

Page builders and div soup

Most visual builders wrap a paragraph in five nested divs and inline a block of CSS per section. The semantic damage is mild, since headings usually survive. The performance damage is not: inline style blocks cannot be cached separately, and generated stylesheets are frequently loaded on pages that use two rules from them. If you build with one, the trade-offs are laid out in our look at WordPress visual page builders. Audit the rendered output rather than the editor preview.

Query parameters that clone your URLs

Filter plugins, WooCommerce sorting and add-to-cart links all append parameters, and every distinct parameter string is a distinct URL to a crawler. Core’s canonical tag protects you from indexing the duplicates. It does not protect your crawl budget. Add explicit disallow rules for the parameters that never need crawling.

User-agent: *
Disallow: /*?add-to-cart=
Disallow: /*?orderby=
Disallow: /*?replytocom=

Comment pagination and ?replytocom

Two separate problems from one settings screen. Breaking comments into pages, at Settings > Discussion, mints a comment-page-2 URL for every busy post. Threaded replies produce a ?replytocom link on every single comment, so a post with 90 comments offers 90 extra URLs. Turn comment pagination off unless you genuinely need it, and disallow the parameter.

Author archives on a one-author site

If one person writes everything, the author archive is a byte-for-byte duplicate of your main blog index, and it leaks your login username as a bonus. Redirect it, or noindex it. Multi-author publications are the exception, where author archives carry real authorship signal and should stay.

add_action( 'template_redirect', function () {
    if ( is_author() || is_date() ) {
        wp_safe_redirect( home_url( '/' ), 301 );
        exit;
    }
} );

Which SEO plugin should you actually run?

Pick on two axes only: whether the free tier covers redirects and schema, and what the second site costs. Everything else is interface preference, and every one of these plugins will output correct title tags.

PluginFree tier ceilingPaid entry, per yearSites per licenceSchema controlRedirect managerNotable weakness
Rank MathHighest of the five: titles, sitemaps, 16+ schema types, redirections, 404 monitor, Search ConsolePRO at EUR 7.99/month billed annually, ex VAT, renewing at EUR 8.99/monthPRO covers unlimited personal sites; Business 100, Agency 500Broad, template-driven, most types freeYes, in the free versionEnormous settings surface and module sprawl; easy to misconfigure
Yoast SEOTitles, sitemaps, connected schema graph, readability analysisPremium at USD 118.80, ex VATOne subscription covers one site or domainCoherent graph model, fewer point-and-click typesPremium onlyDearest per site by a wide margin, and redirects sit behind the paywall
All in One SEOTitles, sitemaps, basic schema, social metaBasic at USD 49.50 first year, normally USD 99.00Basic 1, Plus 3, Pro 10, Elite 100Schema generator; richer types on paid tiersFrom the Pro tier, USD 199.50 first yearRedirects gated two tiers up, and introductory pricing roughly doubles on renewal
SEOPressTitles, meta templates, XML and image sitemaps, breadcrumbsPRO at USD 49USD 49 for 1, USD 59 for 5, USD 149 unlimitedVisual schema editor, PRO onlyPRO only, with 404 monitoringFree tier is thinner than Rank Math’s; schema and redirects both paywalled
Slim SEOAutomatic titles and meta, JSON-LD, sitemaps, redirects, breadcrumbs, 404 monitorPro at USD 59USD 59 for 1, USD 119 for 10, USD 179 unlimitedAutomatic in free; visual builder in ProYes, in the free versionDeliberately almost no manual control, and no content analysis
Prices taken from each vendor’s own pricing page in August 2026: rankmath.com, yoast.com, aioseo.com, seopress.org and wpslimseo.com. All exclude tax.

Two things fall out of that table. Rank Math and Slim SEO are the only ones giving you redirect management for nothing, which matters more than any content-analysis feature. And if you run more than three sites, Rank Math and SEOPress are dramatically cheaper per site than All in One SEO or Yoast.

Watch out

Never run two SEO plugins at once. You get two canonical tags, two sets of Open Graph tags and two conflicting robots directives on the same page, and Google resolves the contradiction however it likes. Fully deactivate and delete the old one before activating the new one.

Core Web Vitals, and why WordPress sites miss them

The three current Core Web Vitals are LCP, INP and CLS, and each is assessed at the 75th percentile of page loads, segmented separately for mobile and desktop. A page passes only when all three sit in the good band at that percentile, which means your median visitor being fine is not the test.

MetricGoodNeeds improvementPoorWhat usually breaks it on WordPress
Largest Contentful Paint2.5 s or less2.5 s to 4.0 sOver 4.0 sA full-width hero uploaded at 4000 px, lazy-loaded by mistake, served without a page cache
Interaction to Next Paint200 ms or less200 ms to 500 msOver 500 msSlider, popup and analytics scripts competing for the main thread on tap
Cumulative Layout Shift0.1 or less0.1 to 0.25Over 0.25Images without width and height, web fonts swapping in, cookie bars injected above the fold
Thresholds per web.dev, measured at the 75th percentile across mobile and desktop.

Four causes account for most WordPress failures, and only one of them is WordPress’s fault. Unoptimised hero images, render-blocking plugin CSS, no working page cache, and a slow time to first byte from oversubscribed shared hosting. TTFB is the one people miss, because it applies a fixed penalty to every single metric before any of your markup is even parsed.

The cache point deserves emphasis. A site that believes it is cached and is not will fail LCP while every plugin dashboard reports green, because most caching plugins report their own configuration rather than what the browser actually received. The only honest test is the response headers on a cold, logged-out request, which is what Cache Inspector in the WPColt toolbox checks across page cache, server cache and CDN layers. If you are choosing between caching plugins in the first place, our Cache Enabler versus W3 Total Cache comparison covers the trade-offs, and the shorter list in five tips to make your website run faster is the right starting point if nothing is configured yet.

The setup order for a new WordPress install

Do these in order, because several of them are painful to change later. The whole list takes about half an hour on a fresh site.

  1. Set permalinks to Post name at Settings > Permalinks. Do it before publishing anything, because changing it later means redirecting every URL you have.
  2. Confirm Settings > Reading has “Discourage search engines from indexing this site” unchecked. A staging flag left on is the single most common cause of a site that never gets indexed.
  3. Disable attachment pages with wp option set wp_attachment_pages_enabled 0, or through wp-admin/options.php if you have no WP-CLI access.
  4. Install exactly one SEO plugin and set your title templates for posts, pages and archives before you write the first post.
  5. Decide your indexing policy in that plugin: noindex on date archives, on author archives if you are a single author, and on tag archives until a tag has real depth.
  6. Turn off comment pagination at Settings > Discussion, and drop the parameter disallows into robots.txt.
  7. Install and configure a page cache, then verify it from the response headers rather than the plugin’s own status panel.
  8. Set a maximum upload dimension policy and convert to WebP or AVIF. Exclude your hero image from lazy loading.
  9. Verify the property in Search Console and submit the sitemap at /wp-sitemap.xml, or your plugin’s replacement for it.

Mistakes that cost real rankings

The expensive errors are structural, not editorial. Nobody has ever lost meaningful traffic because a meta description was 162 characters.

  • Changing the permalink structure on a live site with no redirect map. Every existing ranking URL 404s at once, and the recovery takes months even when you fix it the same week.
  • Migrating hosts and leaving the old URLs unredirected. If you are moving, plan the redirects first; our notes on moving a WordPress site cover the sequence.
  • Noindexing category archives wholesale. On many sites those archives carry most of the internal linking into deeper posts. Noindex them and you weaken the crawl path to the pages you actually want ranked.
  • Trusting a green dashboard over a response header. Cache plugins report intent. Headers report reality, and the two disagree more often than anyone expects.
  • Treating a plugin’s content score as the target. A green light means the keyword appears in the places the plugin checks. It is not evidence that the page answers the query better than the pages above it.

WordPress versus Webflow, Wix, Shopify, Ghost and headless

WordPress has the highest SEO control ceiling of any mainstream platform and the worst default performance of the group. That is the honest trade. Ghost and Webflow will beat a stock WordPress install on speed without you doing anything, because neither lets you install forty plugins.

PlatformSEO control ceilingSkill requiredSpeed by defaultRedirects and schemaRealistic annual costWho it suits
WordPressTotal. Every tag, header and route is yoursModerate to high; the ceiling is only reachable with effortPoor until configuredBoth via plugin; SEOPress PRO from USD 49/year is the cheapest verified optionDomain plus hosting plus optional plugin; hosting is the variable and ranges from a few dollars a month to managed plans an order of magnitude higherContent sites, publishers and anyone who needs full technical control
WebflowHigh for a hosted tool; clean markup, editable meta and redirectsModerate; visual but genuinely a design toolGood. Consistently fast without tuningRedirects built in; schema via custom code embedsBasic at USD 15/month billed yearly, Premium at USD 25/monthDesign-led marketing sites where the team is not technical
WixModerate. Meta, canonicals and redirects are editable, structure is notLowModerate; improved a lot, still template-boundRedirects built in; limited schema editingLight at USD 19.77/month, Core USD 29.77, Business USD 39.77, all billed annuallySmall local businesses that want one bill and no maintenance
ShopifyLimited. Forced /products/ and /collections/ URL structureLow to moderateGood on the storefront; apps degrade it fastRedirects built in; product schema in most themesBasic USD 29/month billed annually, Grow USD 79, Advanced USD 299Product-first stores where transactions matter more than URL control
GhostModerate. Excellent defaults, deliberately few knobsLow for hosted, high for self-hostedExcellent. The fastest default in this tableRedirects via a config file; schema output automaticallyGhost(Pro) Starter at USD 18/month billed yearly, Publisher USD 29, Business USD 199; the software is open source and self-hostableWriters and newsletter publishers who want speed and no maintenance surface
Headless Next.jsTotal, and you own every regression tooHigh. This is a software projectExcellent if built well, dreadful if notWhatever you writeHosting can be near zero; the real cost is developer time, and it recursEngineering teams with a developer permanently assigned to the site
Prices from each vendor’s own pricing page in August 2026: webflow.com, wix.com, shopify.com and ghost.org. WordPress and headless costs depend on hosting choice and are described in shape rather than as a single figure.

The verdict: who should and should not use WordPress for SEO

Use WordPress if you publish regularly, if you need control over URL structure, schema and redirects, and if you have either the skills or the budget to keep a theme and a caching layer honest. For a content-led site chasing long-tail organic traffic, nothing else gives you this much control at this price, and the technical baseline in core is real.

Do not use WordPress if you want a five-page brochure site and nobody on the team will ever log in to run an update. You will end up with an unpatched install on shared hosting failing every Core Web Vital, and Wix or Webflow would have served you better. Do not use it for a pure ecommerce catalogue where Shopify’s defaults already do what you need, unless the content side of the business is the point. And do not use it because it is the default choice, which is the reason most people give.

The platform is neutral. What decides your outcome is whether you turn off the defaults that hurt, keep the theme lean, and prove your cache is working rather than assuming it. Once the foundation holds, the work is ordinary content and link work, and our practical SEO tips pick up from there.

Frequently asked questions

Do I need an SEO plugin if WordPress core already has canonical tags and sitemaps?

Yes, because core stops at the technical baseline. It does not write title tags or meta descriptions, does not generate Open Graph or schema markup beyond what your theme happens to output, and does not manage redirects. An SEO plugin such as Rank Math, Yoast, or Slim SEO fills those gaps; core’s canonical tags and sitemap remain useful either way.

Should I turn off attachment pages on an older WordPress site?

Yes if the site predates WordPress 6.4. Sites upgrading from earlier versions were left with attachment pages enabled to preserve existing behaviour, and every uploaded image without one is a thin, low-content page a crawler can index. Run wp option set wp_attachment_pages_enabled 0, or toggle the wp_attachment_pages_enabled option through wp-admin/options.php if WP-CLI is unavailable.

Is running two SEO plugins at once ever a good idea?

No. Two active SEO plugins output two canonical tags, two sets of Open Graph tags and two conflicting robots directives on the same page, and Google resolves the contradiction however it chooses rather than however you intended. Fully deactivate and delete the old plugin before activating a replacement, and never run both side by side even temporarily.

Why would noindexing category archives hurt rankings instead of helping?

On many WordPress sites the category archive is the main internal link path into deeper posts, so noindexing it wholesale weakens the crawl route to the content you actually want ranked. That is different from tag archives with a single post or date archives, which are genuine duplicates worth noindexing; category archives usually carry real linking value and should stay indexed.

Does a green score in my SEO plugin mean the page will rank?

No. A green content score means the target keyword appears in the places the plugin checks, such as the title, first paragraph and a heading. It is not evidence the page answers the query better than whatever currently ranks above it. Treat the score as a checklist for on-page basics, not as the actual measure of content quality.

What is the biggest mistake when changing a WordPress permalink structure?

Changing it on a live site with no redirect map. Every existing ranking URL 404s the moment the structure changes, and recovery takes months even if you fix it the same week. Set the permalink structure to Post name before publishing anything on a new site, since changing it later always means redirecting every URL you have already published.

Why does a stock WordPress install often fail Core Web Vitals on cheap hosting?

Four causes account for most failures: unoptimised hero images, render-blocking plugin CSS, no working page cache, and slow time to first byte from oversubscribed shared hosting. TTFB is the one people miss, because it adds a fixed delay before any markup is even parsed, and a caching plugin reporting green in its own dashboard does not prove the browser actually received a cached response.

Should a small brochure site with one editor use WordPress for SEO?

Not necessarily. WordPress suits sites that publish regularly and need control over URL structure, schema and redirects. A five-page brochure site nobody will ever log into to update is better served by Wix or Webflow, which stay fast by default without plugin sprawl; WordPress only pays off once someone is maintaining it and keeping the theme and cache honest.