In this WordPress SEO guide, you will learn how to improve search ranking of your WordPress website.
There are two ways to improve search ranking of your WordPress website:
- Hire a WordPress SEO expert to do it for you
- Do it yourself
If you have thousands to spend on an expert every month, stop reading this guide now. It’s not for you.
This guide is for you if you want to improve SEO of your WordPress site yourself.
To improve your WordPress Site’s SEO, you need to:
- Configure WordPress settings correctly
- Set up the Sitemap
- Optimize your pages and posts
- Create Optimal Robots.txt file for WordPress
- Submit Sitemap to Google
- Build backlinks to your site (I cover it in a separate post)
You will also need to use an SEO plugin. In this post, you will learn how to use Yoast plugin for WordPress SEO.
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. The core is written to make WordPress SEO friendly.
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.
Plugins are 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 paid or premium plugins also.
There are several plugins that help you improve search ranking of your WordPress site. Most popular ones are Yoast, All in One SEO Pack, The SEO Framework. My favorite is Yoast SEO plugin whihc has both free and premium versions.
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 need. By using an appropriate theme, you can give your site a unique look.
There are thousands of free WordPress themes but I recommend you buy a premium theme for your business site. When selecting a theme for your WordPress website, look for one that is SEO friendly. Some of the popular ones are Genesis framework, Avada and OptimizePress.
Themes and Plugins together make WordPress highly customizable, a big reason for its popularity.
The content on a WordPress site is organized in 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 SEO. Ideally, you don’t want Google to list files in this folder in search results.
- 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. You should allow search engines to access these files to improve your site’s SEO.
- 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 you and other users are stored in a MySQL database. Your goal is to improve the search ranking of this content.
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 user’s browser along with files (code) needed to display the page properly.
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. This can lead to unexpected SEO issues with your WordPress site.
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. This can cause a duplicate content situation that can lead to SEO penalty by Google.
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 one to show in search results. That may or may not be the one you want to rank in search results.
Another SEO issue, easily addressed through settings, is the URL of pages and posts. The URL is called Permalinks in WordPress.
WordPress gives you several alternative for creating the URLs through the Permalinks. The default WordPress permalink 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 (and any other file that impacts the rendering of your page) 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 SEO settings that have big impact on search ranking:
- Search Visibility Setting
- 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.
Google will included pages from your site in search results only if it has the pages in its database, also called Google’s Index. Google uses automated software called search bot (or simply bot) to read and index pages on the a website.
The Google search bot visits your site and collects information about pages on a regular interval. This process is called crawling.
The bot adds information about your site to Google’e database. Once the pages are in the database, Google’s software will analyse each page to understand its content. It then organizes information in way that will allows the information to be quickly retrieved for relevant searches. 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 show you how to build high quality backlinks in a separate post.
You can get your site pages included in Google’s index by:
- Telling Google about your site and pages
- 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 except you. 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. To improve your site’s SEO, you need to tell Google about it.
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. Using Search Visibility setting for WordPress, you can allow search bot to crawl and index your site. You control this from Settings > Reading in the dashboard:
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.
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:
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 www.trainedge.co.in/wordpress-seo. 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:
- Select Plugins > Add New from your WordPress dashboard
- On the Add Plugins page, search for Yoast SEO
- Click Install Now button for Yoast SEO to install
- Once the plugin is installed, click Activate button to activate the plugin
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:
- Select Plugins > Add New from your WordPress dashboard
- On the Add Plugins page, search for Redirect
- Click Install Now button for Quick Redirects (or 301 Redirects) to install
- 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.
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 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:
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 yourdomain.com/sitemap_index.xmlto 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 yourdomain.com/robots.txt.
A Robots.txt file has three important instructions
- User Agent – specifies the bots to which the instructions apply. Default is * (all Bots)
- Disallow – the specified Bot(s) should not access files / folders included in the Disallow instruction
- 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:
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.
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.
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.