This WordPress SEO guide is for you if you own or manage a WordPress site. You will learn how to improve SEO for your WordPress website or blog.

There are many WordPress SEO experts around who can help you improve your site’s search rankings. But this guide is for people who want to do it themselves.

To improve your WordPress Site’s SEO, you need to:

  1. Configure WordPress settings correctly
  2. Set up the Sitemap
  3. Optimize your pages and posts
  4. Create Optimal Robots.txt file for WordPress
  5. Submit Sitemap to Google

You will also need to use an SEO plugin. In this post, you will learn how to use Yoast plugin for WordPress SEO.

What you'll learn in this post

[one_fourth padding=”5px 5px 5px 5px”]

[/one_fourth][one_fourth padding=”5px 5px 5px 5px”]

[/one_fourth][one_fourth padding=”5px 5px 5px 5px”]

[/one_fourth][one_fourth_last padding=”5px 5px 5px 5px”]


[one_fourth padding=”0px 5px 0px 5px”]

[/one_fourth][one_fourth padding=”0px 5px 0px 5px”]

[/one_fourth][one_fourth padding=”0px 5px 0px 5px”]

[/one_fourth][one_fourth_last padding=”0px 5px 0px 5px”]


The Anatomy of A WordPress Site:

Before we dig into how to improve SEO, let’s see how WordPress is organized. WordPress has three main elements:

1.    The core WordPress platform – this is constantly updated by Automattic (company that built WordPress) and individuals who contribute to the code base.

2.    Plugins – these are add-on modules you can install and manage from inside the WordPress admin panel. Plugins are written by individuals and businesses who want to add new features to WordPress. This is one of the key reasons for WordPress’ success as you can add pretty much any feature through a plugin. Most plugins are free but there are many paid or premium plugins also. If you can’t find a plugin for a specific need, you can always write it yourself or hire a programmer to develop the plugin.

3.    Themes – they control the look and feel of a WordPress site. A theme includes layout, styles and elements for home page and other commonly used pages like ‘About Us’ and ‘Pricing’ page. There are thousands of free and paid themes available for any specific need. By using an appropriate theme, you can give your site a unique look.

Themes and Plugins together make WordPress highly customizable, a big reason for its popularity.

The content on a WordPress site is organized into following sections or folders

  • WP-Admin – stores the core WordPress files. You rarely access these files unless you need to customize something. You should not worry about optimizing any of these files for search. Ideally, you don’t want Google to list them in search results. You should block access to some of the files with sensitive information, as we will see later.
  • WP-Content – stores files that came with Plugins and Themes. All files uploaded by users such as images that you add to your pages are also stored here. Search engines may need these files to render pages on the site.
  • WP-Includes – Certificates, Fonts etc. needed to manage the site and render pages effectively.

While code, fonts and uploaded files are stored in directories, the content created by users such as pages and posts are stored in a MySQL database.

When a visitor to your site tries to access a page, the WordPress system gets the page or post information from database and returns it to the user’s browser along with files (code) needed to display the page properly. The same process is followed when Google or Bing search bots visit your site.

If you have permission, you can access code and uploaded files like images or pdf by directly accessing the appropriate directory on the site. When a search bot comes to your site, it is going to access all files in these directories and index them, unless you specifically ask it not to do so. The bot needs all supporting files to properly format and read index its content. Knowing how search bots access the content on your WordPress site is important for improving its SEO performance.

If you need help with building your WordPress site, read this excellent blog  how to make a WordPress website.


WordPress SEO Challenges

WordPress is extremely user and SEO friendly. But you will face some challenges when it comes to optimizing the site for search.

The search bots (and users) can access a WordPress post via multiple paths. The most obvious one is using the URL of the page or post. But the same page can also be accessed through alternate paths that include post category, author, tags etc. Each path has its own URL. For example, a post in product category can be accessed using the following paths:


When a search bot visits the site and accesses the same page using different URLs like above, it sees multiple pages (one for each URL) but with same content. Although Google has said in the past that it does not treat this type of content as duplicate, it can still lead to issues. When you have multiple pages with same content but different URLs like this, Google will attempt to show the version “it thinks” is the best option. That may or may not be the one you want to show in search results.

Another issue, easily addressed through settings, is the URL structure of pages and posts, called Permalinks in WordPress. A Permalink is the URL of the page or post. WordPress gives you several alternative for creating the URLs through the Permalinks. The default is page ID that is not SEO friendly at all.

The third challenge in doing WordPress SEO is deciding which files and folders should be accessible to Bots and which ones should not be. This depends on the information in the file and how it impacts other pages on the site. For example, the CSS files control the appearance of pages on your site. Google search bot will need to access it in order to render your pages correctly. But the shopping cart page on an eCommerce site need not be indexed by Google as it does not make sense to show it in search results.

WordPress does not have any built-in functionality to control SEO title and Meta description. There is no way you can control Index, Follow and Canonical tags for your pages and posts in WordPress. You need a tool to do these things.


Configuring WordPress Settings

There are two important WordPress settings that have big impact on site SEO:

  1. Search Visibility Setting
  2. Permalink Setting

Improving search performance, or SEO, is about getting your pages into Google’s database and increasing the authority of pages through content quality & backlinks.

Pages from your site will be included (not ranked) in search results only if the pages exist in Google’s database, also called Google’s Index. Google uses automated software called search bot (or simply bot) to read and catalog pages on the net. The Google search bot will come to your site and dump information about them into Google’s database. This process is called crawling.

Once the pages are in the database, Google’s software will analyse each page to understand its content so it can include the pages in search results for the correct keywords. This process is called indexing.

Finally, Google’s search algorithm will determine the rank of your page for a given keyword based on its authority and competition. As a general rule of thumb, your page’s (and site’s) authority will be higher if other high authority sites link to your page.

In this post, I will teach you how to get your pages on your WordPress site crawled and indexed correctly by Google. I will talk about building backlinks in a separate post.

You can get your site pages included in Google’s index by:

  • Telling Google about them
  • Allowing Google to access pages on your site
  • Helping Google understand the content of the pages

When you set up a new site, nobody knows about it, not even Google. Google can find out about your site and pages if you tell it about your site or if another site links to your site and Google search bot find this link.

Search Visibility Setting

If your site is new, it likely has no backlinks from other sites. So the only option for you is to tell Google about your site. Even if your site is old, you still want to tell Google about a new page or post on the site. You do this by using a sitemap. I will explain how to create and submit the sitemap to Google in the Creating Sitemaps with Yoast section.

Once Google knows about your page, the search bot will come knocking to find out more about your site, a process called crawling. This is where Search Visibility setting for WordPress site comes in. Using this setting, you can allow search bot to crawl and index your site. You control this from Settings > Reading in the dashboard:

WordPress SEO Search Engine Visibility Setting in WordPress

When the site is under development, you should select the checkbox Discourage search engines from indexing this site.

When the box is selected, it prevents search engine bots from crawling the site. Once the site is live, uncheck this box to allow the bots to crawl the site. This is the first step in improving your WordPress site's SEO.

You can further control the crawling and indexing using Yoast SEO plugin and Robots.txt file as I explain later in this post.

Permalink Setting

SEO friendly (keyword optimized) URLs are a major relevance signal to search engines and help them index your pages for the right keyword.

WordPress gives you complete control over the URL of your pages and posts. You can define a site wide format for URLs from the dashboard using the Permalink setting. The URL of a page or post consists of two parts - the domain name followed by some words. The two parts are separated by a "/". Permalink setting controls the words that appear after the domain.

Select Settings > Permalinks from the admin dashboard:

WordPress SEO Search Engine Visibility Setting in WordPress

On the Permalinks settings page, you can select the type of URL structure you want for your site.

The best option is to select the Post name structure. When you use this option, WordPress will use the page / post name to generate the URL.  If you use keywords in the post or page name, the URL will automatically include it and become keyword optimized.

If you use Plain / Numeric options, the URL will have a random number as the URL. It will be a big problem in SEO.  You can use Month and name or Date and name options but date and time information does not help in SEO and is actually unnecessary.

The Custom Structure can be useful if you want to use additional information in addition to the post name / keyword in the URL. For example, if you are an eCommerce site, you may want the URL for your product pages to include the product category. The product category may help in SEO as it will help Google better understand the product.

No matter which Permalinks setting you select, You can always edit the URL while creating the page or post. I recommend you try to limit the URL to only your target keyword. For example, the URL of this page is  The words "wordpress-seo" is the part generated by Permalink settings and this is the part you can edit while creating the post or page. In this case, I edited the URL to be just "wordpress-seo" since that is the keyword I am targeting on this page.

While editing the URL, make sure it starts with the keyword and does not include any stop words such as and, in, to etc.


Installing WordPress SEO Tools

While WordPress has some out of the box SEO limitations, fortunately for us, there are thousands of people writing plugins to fill those gaps. WordPress SEO plugins are one of the most popular class of plugins since every site needs them. The most popular, and powerful, of these tools is Yoast SEO.

Follow these steps to install Yoast SEO:

  1. Select Plugins > Add New from your WordPress dashboard
  2. On the Add Plugins page, search for Yoast SEO
  3. Click Install Now button for Yoast SEO to install
  4. Once the plugin is installed, click Activate button to activate the plugin


Yoast SEO Installation in WordPress


Yoast SEO is easy to configure but if you need help, read this post on WPbeginner for detailed instructions: Configuring Yoast SEO

In addition to Yoast, you should also install a Redirect plugin. This plugin will help you redirect old URLs to new ones.

Why do you need a Redirect Plugin?

Redirection literally means sending someone in another direction. In the online world, every page / file / resource has a unique URL. You can access the page or file by going to that URL. When you create a new post or page in WordPress, it is assigned a URL automatically based on your Permalink setting. If you publish the page or post, this URL will be stored in WordPress database. When Google indexes this page, it will record the URL in its database.

Many times, you would want to go back and change this URL later. Most people change URLs because the old URL was not optimized for the target keyword. But sometimes, you may want to change the target keyword and therefore, need to change the URL.  If you go back and change the URL for any reason, you would create major SEO and usability issues.

When you change the URL, WordPress does not always delete the old URL from its database. This will create two different URLs pointing to the same page. When Google search bot crawls your site the next time, it will see two pages (two URLs) with identical content. This can lead to duplicate content penalty, especially if there are multiple pages with this issue.

Even if WordPress correctly removes the URL from its database, you will still have the URL in Google's database since it does not know you have changed the page URL. It will continue to show the URL in search results. Any page, on your own site or another site, that links to your page will still point to the old URL. If someone clicks the link to the page in search result or from another page, she will get a page not found or 404 error. Yikes!

Page not found or 404 is bad for your users as it gives the impression that you are not maintaining the site. What's worse, Google absolutely hates 404. After you move the page to a new URL, when Google search bot crawls your site, it will still try to access the old URL and get 404 error. If it sees too many of them, it can cause your pages to drop in search rankings. When you change URLs, SEO benefits coming from all the backlinks you created are lost for the new URL, unless you use a Redirection.

This is where Redirection comes to your rescue. With redirection, you can tell browsers (and search bot) that the page has moved from the old URL to new URL. This way, no one gets 404 error. What's more, when you use a 301 Redirect, it means the page had moved permanently to a new URL. When Google sees this, it passes all SEO benefits from the old URL to the new one. So you don't lose the hard work you put in promoting the page.

There are many Redirect plugins but I prefer Quick Redirects and 301 Redirects. Both will do the job. The paid version of Yoast has a Redirect option built-in.

Follow the following steps to install the Redirect Plugin:

  1. Select Plugins > Add New from your WordPress dashboard
  2. On the Add Plugins page, search for Redirect
  3. Click Install Now button for Quick Redirects (or 301 Redirects) to install
  4. Once the plugin is installed, click Activate button to activate the plugin

301 Redirects plugin does not have any further setting options. You can access it under Settings > 301 Redirects.

If you use Quick Redirects, you may want to configure it first before you set up a Redirect. You will see it listed in the left navigation column in WordPress dashboard. Click it and then select Redirect Options.

Make sure Turn OFF all Redirects? and Make ALL Redirects have rel="nofollow"? check boxes are unchecked. For Make ALL Redirects this type:, select Use Individual Settings.  That's it!

To redirect a URL, select Quick Redirects under Quick Redirects (plugin name). Enter the old URL in the left column (Request URL) and new URL in the right column (Destination URL). Click Add New Redirect button.


Creating Sitemap with Yoast SEO

A sitemap is a directory of pages on your website. It is similar to store directory you see in a mall that helps you find the shop you are looking for.

A sitemap is an XML file. It   includes page information such as URL, last update date for the page, change frequency and relative priority compared to other pages on the site.

Sample WordPress sitemap for SEO

Search bots use sitemap as a guide for crawling your WordPress website. All pages included in the sitemap would normally be crawled by the search bot.

The <lastmod> tag tells search bot whether the page has changes since the last time it was crawled. If the search bot sees an update date after the last crawl date, it will crawl the page again to capture the changes.

The best way to create a sitemap for WordPress web site is to use Yoast SEO.

Yoast SEO can automatically generate sitemap and update it as you add new pages or remove them from the site. You will need to configure it correctly to generate a sitemap that helps avoid duplicate content issue.

Remember, if you include a page in sitemap, it will be crawled and indexed by bots. While you can control indexing using page level settings and Robots.txt file (explained later in this post), it is better to avoid including pages in sitemap that you don’t want Google to index.

To enable sitemap generation, select SEO > XML Sitemap from the admin dashboard:

Enable XML WordPress Sitemap in Yoast SEO

On the User sitemap tab, disable Author / user sitemap to prevent the plugin from including author / user archive pages in the sitemap.

On the Post Types tab, include Pages and Posts in Sitemap but exclude images unless you really want them indexed. If your theme uses custom post types, they will show up here. Include them if your business demands it. For example, if you are selling course online and your theme uses custom post type Course, you should include it in the sitemap.

On the taxonomy tab, exclude Categories and Tags from sitemap unless there is a reason for you to have them in the sitemap. Categories can both help in SEO and be a problem. Categories and tags may be used as a weak relevance signal for your posts and help Google better understand the topic of the post. But if the posts are also indexed using categories, it can create duplicate content issue.

After you save changes, you can go to to see and verify that sitemap generated by Yoast SEO.

So far so good. You have the right URL structure; the search bots can crawl the site and have the sitemap to find their way to different pages on the site. But there is still some work to do before we can actually invite the search engines to crawl and index the site.


Managing Site Crawl and Indexing with Yoast SEO

The sitemap is the directory of pages for search bots to crawl. But you will likely have links going from pages included in the sitemap to other pages that are not included in the sitemap. These include CSS pages, fonts, images and archive pages for users, categories and other taxonomies. You can use a combination of Noindex, Nofollow, Canonical tags and Robots.txt file to control how Google indexes your pages.

The first step in controlling indexing is to set the right site-wide Meta tags for pages on the site. Once again, Yoast SEO saves the day for us.

Select SEO > Titles and Meta.

On Post Types tab, for Posts and Pages, select:

  • Meta Robots – Index
  • Date in snippet preview – Show
  • Yoast SEO Meta Box – Show

For media files like images, you should normally select Noindex unless you want search engines to index and include them in search results.

If the theme is using custom post types, you would most likely select Index option for them.

When you select Index, Yoast will generate a Meta tag that tells search bots to index the pages. Google will include these pages in relevant search results.

The Noindex option, on the other hand, tells search engines to exclude the page from its index (database). These pages will not be included in search results.

On the Taxonomies tab, select Noindex option for everything. Do the same on the Archives tab. Setting Noindex on these tabs ensures that the duplicate path to posts will not be indexed, giving you more control over which version shows up in Google searches.

For example, when you set the Noindex option for Categories, search engines will not index the URL to the post via category page.


The Optimal Robots.txt file for WordPress

Every website has a Robots.txt file that tells a search bot which files and folders it can access. WordPress generates a default Robots.txt file that you should modify to suit your needs. Since each site is different and has different pages or sections that serve specific needs of the site, you want to control how search engines index your site

You can access the Robots.txt file at

Sample Robots txt file for WordPress site SEO

A Robots.txt file has three important instructions

  1. User Agent – specifies the bots to which the instructions apply. Default is * (all Bots)
  2. Disallow – the specified Bot(s) should not access files / folders included in the Disallow instruction
  3. Allow - the specified Bot(s) may access files / folders included in the Allow instruction

The ideal Robots.txt file for WordPress should not block anything other than specific files / uploads you want to protect such as Cart pages / images and protected files. Category pages / archives etc. should not be blocked. Instead, these should use Noindex, Follow settings from the Title and Meta settings in Yoast.


Managing Post & Page Level Indexing with Yoast SEO

You can also set Indexing and Follow options at page / post level with Yoast SEO. This will come in handy to control indexing of pages like Cart page or Checkout page.

To access page level settings, go to the page or post, scroll down to the Yoast SEO. Click the Settings (Gear) icon to access page level settings options:

Yoast SEO Page Level Settings for Index and Follow

Under Meta robots index option, select the Index / Noindex or Default option as needed.

If you want the links on the page to get SEO benefit, select follow under Meta robots follow option.

If the current page / post is duplicate, enter the URL of the original page in Canonical URL box. This will tell Google which is the original page and avoid duplicate content penalty. The URL you mention in the Canonical box will get the SEO benefits of any backlink coming to the current page / post.

If you don’t want a page to be indexed but want the SEO benefit to pass to a page linked from this page, you should set it as Noindex, Follow in Yoast. This will instruct the search bots to not index the page itself but follow any outgoing link from the page.

Yoast SEO also allows you to set separate open graph (OG) tags for Facebook and Twitter. When your page is shared on Facebook /Twitter, the Title, Description and Image in the OG tag will show up on social media platform. This is very handy as normally the title and description that do well in SEO may not do well on social media. If your post has multiple images (like this one), specifying the OG image gives you control over which images shows up on social media when someone shares the post.


Improving On-Page SEO in WordPress

On-Page SEO helps Google understand content on your page so it can rank the page for relevant keywords. On-page optimization affects both technical and content elements. You can use Yoast SEO to set two of the most important on-page SEO elements - SEO title and Meta description.

To set these Meta tags, navigate to the page or post from the dashboard.

Scroll down to Yoast SEO box. Enter your target keyword in the Focus Keyword field.

Click the Edit Snippet button.

Yoast SEO Settings for SEO Title and Meta Description

Optimize SEO Title 

Every page must have an SEO title tag. The title tag should include the main keyword. Ideally, you should start the title with the keyword you are targeting on the page. The SEO title length should have at least 40 characters. The maximum recommended length is 66 characters. Over time, its significance has come down but it is still an important factor in optimizing your page for SEO.

Optimize Meta Description 

The goal of Meta description is to provide a short insight into what the page is about. It is displayed on the search results page below your page URL. A well written meta description can increase the percentage of people who click through to your page from the search result.

Meta description does not directly improve your search ranking. However, the increased click through rate on your page as a result of well written meta description is a signal to Google that your page is more relevant to the search query. Over time, this signal will help improve your search ranking.

Include the keyword in meta description. The maximum suggested length of meta description is between 150-160 characters.

Close the Snippet Editor after you have entered SEO title and Meta description.

Yoast SEO will now show a Red / Orange / Green light at the top of the box, on the keyword tab. You can see a green dot in the image above indicating on-page SEO is good for this page. If Yoast finds any issue, you will see it in the Analysis section on Keyword tab. A red dot indicates a problem you need to fix right away. An orange dot indicates a problem you may or may not need to fix depending on the message and your goals.

Once you see the Yoast SEO signal turn to green on the keyword tab and in the Publish box on the right hand side of WordPress dashboard, you are good to go.

With the sitemap ready and pages optimized for the keyword, it's time to submit the sitemap to Google.


Submitting Sitemap to Google and Bing

Now you are ready to submit the sitemap to search engines for crawling. To do that, you need to create your Webmaster tools account (also called search console).

Log into your webmaster tools account and navigate to Crawl > Sitemaps.

Click ADD / TEST SITEMAP Button.

Enter the sitemap URL and click Submit.

Congratulations! You have just informed Google about existence of your site and its pages. This should get Google search bot to come and crawl your site.

That’s it!

You now have a WordPress site with pages that are optimized for the right keywords and are indexed by Google.

Start building links to your pages and see your rankings improve.


Got something to share?

What did you think about this WordPress SEO guide?

Maybe you have a question.

Either way, Share your thought in the comments below right now.

    3 replies to "WordPress SEO – Step-by-Step Guide for A New Website"

    • soham verma

      very good Information I bokmarked Your Website For Later 🙂

    • shreelatha

      This a great post! I enjoyed reading it.

      I think this article could complement your post.

      Good luck with your future piece 🙂

    • Apurva

      Your blog was very informative and helpful. Thanks for sharing.

Leave a Reply

Your email address will not be published.