2018 Guide to WordPress SEO Best Practices

You know SEO is important for your WordPress site. EVERYONE knows that but not everyone ranks well.


The difference is….

The people you will outrank stopped reading this article halfway through without doing anything!

But for you still reading: SEO can be a game changer for your business. It has been a game changer for mine.

The higher your ranking in search, the more traffic your WordPress site will receive. But not just any traffic…

  • Traffic that is free.
  • Traffic that is searching YOU out.
  • Traffic that flows 24/7 even when you are in your deepest of sleep.

This is the SEO for WordPress Owner’s manual. The WordPress SEO best practices in one place, updated regularly.

The bad news is there are several “things” you do need to configure and manage an optimized site. The good news is these are the barriers that will distance you from competitors.

And while SEO is not easy, it is also not rocket science. SEO for WordPress is just hard enough that the wantrepreneurs won’t put in the work but approachable enough for those not super-technical. You won’t need your SEO expert friend or an expensive SEO consultant. We will guide you at each step.

This WordPress SEO guide doesn’t offer “tips or tricks” as much as techniques and tactics. It lists foundational principles that won’t change overnight or put you at risk for a Google penalty. These are legitimate “white hat” SEO tactics, not shady “black hat” SEO hacks. Expert-approved recommendations that reflect modern SEO.

While some of these expert tactics may very well provide quick and impactful results, don’t think of them as silver bullets. Rather think of them as solid bricks that are creating a foundation for your online presence for years to come.

Is WordPress SEO-friendly?

If you are reading this tutorial, you probably have or soon may have a site. That is great because WordPress is one of the best website platforms (or Content Management Systems) for SEO.

Yes, WordPress is SEO Friendly!

WordPress is one of the most SEO-friendly web platforms around

But SEO-friendly doesn’t mean SEO-done-by-default-for-you!

You can’t just spin up a WordPress site, add a plugin and be done.

Yes, several settings are optimized for SEO right off that bat but to rank high you need to go above and beyond the “default” mindset.

The beauty is that WordPress ecosystem is built so that you can do these tasks easily and simply.

WordPress is good for beginner and advanced SEOs alike. While services like Wix and Squarespace handle some beginner and intermediate tasks, you will face brick walls as you try more advanced SEO. Services like Squarespace have put resources behind SEO and market being SEO-friendly but they don’t have the flexibility and power of WordPress.


Why is WordPress a great foundation for SEO?

WordPress at its core is solidly designed and developed due to the large, active open source community that is constantly updating WordPress. WordPress allows you to do many simple AND powerful SEO tasks right in the dashboard. In fact, you are probably optimizing several aspects of SEO without even knowing it! If a best practice is not in WordPress, there is a good chance it will be incorporated in a future version.

Also since WordPress is so widely used, there is tons of great content supporting it (like this, right!?) to help you figure out 99% of things you want to do. WordPress has a great balance of ease of use and robustness. So it’s good for beginners and advanced levels both.

Another benefit comes from the extensive WordPress plugins ecosystem. This is another example of the active open source WordPress community adding significant value. Many key plugins are free and easily available from the directory or in the dashboard. There are also several exceptional paid SEO tools, most of which work seamlessly with WP. The most well-known SEO plugin is Yoast, which will cover in detail later. If for whatever reason you don’t like Yoast, there is a similar plugin called All-in-One SEO Pack that will do most things.

OK, so what do you need to do to optimize WordPress SEO?

Well, that is what we will go over in this article. But first, let’s discuss where WordPress fits into the bigger SEO picture.

How WordPress SEO fits into the whole SEO Picture

SEO for WordPress makes for a good title (and keyword) but what does it really mean?

Yes, Search Engine Optimization and getting to the front page of Google. But it’s more specific.

Let’s first clarify what SEO for WordPress is (and what it isn’t). It’s a part of SEO. An important part but still only a part!
Most of the WordPress SEO tactics fall under the SEO topics of on-page and technical SEO.

Some loose definitions:

  • On-page SEO is the front-end optimization of your content and format.
  • Technical SEO is the back-end optimization of your site’s code and structure.

They overlap because your content ultimately is made up of code!

There are five parts of SEO. Roughly in order from start to finish:


1. Keyword research: selecting the right keyword topic to write about based on search volume and keyword difficulty
2. Competitive analysis: analyzing how authoritative competing content is
3. On-page and Technical SEO: maximizing the content and back end of your site to help search engines index and crawl your site
4. Content promotion: amplifying your content to get more traffic, shares and, most importantly, backlinks
5. Analytics and reporting: analyzing the results including user engagement statistics

In this article, we focus on the most traditional SEO use case: ranking content in the search engines. Local SEO is not covered, by the way.

As mentioned, on-page and technical SEO are the areas that WordPress SEO applies to. These are the most important parts of SEO. There is more to on-page and technical SEO that cannot be done in WordPress but this is an important part and a great place to start!

In this post, we don’t cover keyword research, competitive analysis, some parts of on-page/technical SEO, content promotion, and analytics. But be sure to check out our flagship SEO course that covers all this and more:


Google’s 3 main ranking factors

This is one core concept to grasp from the start. While Google’s algorithm has 200+ ranking factors, it really comes down to 3 things.
These are:

WordPress SEO factors heavily into Content and Technical SEO, 2 important aspects of SEO

On-page SEO is largely your content and presentation. Technical SEO is the foundation of everything.
So you can see we are covering two hugely important aspects of SEO!

WordPress SEO Setup

First, you need a WordPress site up (domain, WordPress install, hosting package, etc).

Second, install the Yoast plugin. The free version is in the WordPress directory and will be sufficient for most sites.

Yoast SEO is the most widely used SEO plugin for WordPress. It has a great free plan.

There are several other recommendations for configuration but this is all that’s needed to start.

Google Analytics and Google Search Console (formerly Google Webmaster Tools) are fundamental too but we won’t be referencing them much directly so you can set them up later.

Bonus points if you have an article to optimize while going through this tutorial.

That’s it!

Your 3 Jobs

What are we actually trying to accomplish with on-page and technical SEO?

Really you have 3 jobs.

You are like us all are, of course, at the mercy of Google.

(Author’s note: I use search engines and Google basically interchangeably like many but Bing actually has 20% market share!)

So your 3 jobs are to help search engines in three basic but important ways:

Job 1: Signal to search engines the topic of your content

Job 2: Help search engines find your content so they know it exists

Job 3: Assure search engines your site offers a valuable and user-friendly experience

Job #1: Signal to Search Engines the Topic of your Content

Strategically use your focus keyword

You always want a focus keyword for each article. A focus keyword is the main search keyword you want to rank #1 in Google for. As an example, our focus (or target) keyword for this post is “WordPress SEO.” We want to include that phrase strategically throughout the article. This makes it clear that’s what the article is about without being gaudy. It’s a balance.

By the way, choosing a good keyword is an important part of keyword research which we don’t cover here but you can learn about it in our flagship SEO course.

What we absolutely don’t want to do is artificially stuff the article with our keyword. Keyword stuffing is excessively inserting the focus keyword or phrase throughout the article. It comes off like you are trying to game the system and Google could penalize you.

Include your focus keyword in the URL, title, first 100 words/paragraph, and at least one sub header (H2, H3, etc). Also, sprinkle your target keyword throughout the text in a natural manner.

There is no hard or fast rule for how many times to include your keyword. This is keyword density, the number of times your keyword is in the article divided by total word count. Use your keyword enough that it makes clear the article is about that topic but not too much that it seems forced.

Since there is no formula, use your best judgment. I use my focus keyword 10-15 times in a 2000-3000-word article personally but for some, that may be too much or too little.

Yoast’s SEO scoring (green/yellow/red) is based largely on your focus keyword so this is important. To enter your focus keyword in the edit post (or page) screen, scroll down below the editor box to the Yoast SEO box > focus keyword

Your focus keyword is the primary keyword you want the article to rank for

One important thing to keep in mind is that Yoast will only count a keyword for its scoring algorithm if it is an exact match. For example, if my title is “SEO for WordPress” and my focus keyword in Yoast is “WordPress SEO” then Yoast would technically NOT count my focus keyword as being in the title. While Google is sophisticated enough to essentially count these two versions as the same thing, Yoast is not. I would count these close variations in your keyword count even if Yoast doesn’t yet.

By the way, it is actually smart to use different focus keyword variations throughout your article. It will appear more natural which Google likes instead of repeating the same exact match keyword over and over. And it may help you broaden the keywords you can rank for, potentially leading to good rankings for the variations too.

One semantic keyword tool to check out is LSI Graph, one of the best free sources of latent semantic keywords. I don’t find this tool to be that groundbreaking but it’s worth checking out. If you know the topic that you are writing about you probably know secondary related keywords and latent semantic keywords.

Fill out key meta information tags

The purpose of Meta Tags is to provide descriptive information about a website. Meta tags list information about the web page in its code, such as the author, title and description.

There are several important meta tags in the code of WordPress pages (and most site pages). While these tags aren’t usually visible to the reader, they are important signals to search engines about what your page is about.

One example of an important meta tag is the meta description tag. Here is an example from the code of a Moz article:

<meta name=”description” content=”You spend too much time and effort on content creation to share it only once. Check out 4 smart strategies you can implement today to improve the reach of your existing content.”>

Next, we will cover best practices of two of the most important meta tags: title tags (a post’s title) and meta description tags.

Optimize Meta Description

The meta description is important to SEO primarily because the description is shown in the snippets in Google SERPs (Search Engine Results Page). It’s the black text under the URL that you’ve read a million times which describes the text.

The SERP (Search Engine Results Page) snippet includes the title tag and meta description

The meta description is a concise description of the article that should be 135 to 160 characters. If longer, it gets cut off. You should definitely have your focus keyword in this description.

Make it clickable. It’s like a mini-commercial for your content.

The easiest place to add it is in the Yoast SEO box in the edit page or edit post screen:

Also add a compelling Meta Description the Yoast SEO box under the page or post

Even if the meta description were not a ranking factor, it signals to Google and your potential audience what the page is about. It can convince searchers to visit your site versus others in the SERP. This improves the CTR (click-through rate) of your results in the Google SERPs which is arguably a ranking factor itself. So put some effort in to make your snippet click-worthy!

Note: if Google thinks another part of your article is a better description, they may override the meta description in the snippet and show what they feel is best instead. For example, if the user’s keyword is not in the meta description Google may show the part of the article that does include them in the SERP snippet.

Best practices for Title Tags

The second important meta tag is the title tag. It is actually one of the most important SEO factors. Titles of posts should be between 55 and 60 characters. It is in your best interest to put your target keyword in the title. This is the title shown in Google and other search engines as well as the browser tab. So make it enticing so when someone sees it in the SERP they are more likely to click through. You must decide how click-baity you want to be!

You simply fill this in in the title field of the WordPress edit post or page screen:

To fill in your title tag in WordPress, simply add a post name in the editor

If you rank well, but few searchers click on your article in the Google results, it won’t help you (and you might not rank well for long).

Note: The recommended Yoast setting adds your site name to the end of each post title in Google. This will increase your brand awareness but cuts into the space for the actual title.

If your permalinks format includes post name (which we cover later), WordPress/Yoast will use your post title as the URL slug (removing insignificant phrases like ‘the’ and ‘an’).

Don’t use meta keywords

Since keywords are such an important part of SEO, you might think that the keywords tag would also be very important to showing search engines what a page’s topic is.

Actually, no!


Originally meta keywords were a ranking factor in search engines, however, sites abused them and now. Now meta keywords are essentially ignored if populated so it is better not to fill them in at all as to not appear spammy!

I think Yoast puts it best:

No need to use enable the meta keywords tag or populate it these days

Site Title and Tagline

You should enter your website or organization name in the “Site Title” field of WordPress. To add your website name and tagline, go to the WordPress dashboard under Settings > General (as well as the Appearance > Customize section). You can also fill this in in the “Company Info” section of Yoast.

Enter your site title and tagline in General Settings under the WordPress Dashboard

Don’t get cute and add any extra words here if they aren’t part of your brand name. This field is used automatically in many places around your site and in email communications. It will look strange if extraneous characters are popping up.

How is this related to SEO? Yoast adds your site name to the end of each page title in their search research. For best results, just insert your standard organization/website name.

As for a tagline, WordPress explains it well: “In a few words, explain what this site is about.” The default tagline is your website name so you want to update this. For SEO purposes, it would be a bonus to add in a keyword or two as long as you are not detracting from your brand’s messaging. Not a big deal if you don’t want to include a keyword here.

Permalink (URL) Format

Important: don’t hastily change existing URLs if you are an established site with several links. See the note below first to do it right.

On the other hand, for a new site, the default URL structure is something you definitely want to change.

This is one of the few default areas that WordPress gets wrong (at least from an SEO perspective).

Permalink format is one of the most important default WordPress settings to change, both for SEO and user-friendliness. (See important note about existing and established sites below).

Thankfully it is easy to change.

But first…what is permalink?

A permalink is simply the URL (or permanent link) of a page or post.

What is permalink format?

There are many formats you can use for your URLs. Some are good for SEO and aren’t.

Here are three examples of URL structure. Knowing that this section is about clarity of topic, which do you think is optimized for SEO?

  • Option 1:
  • Option 2:
  • Option 3:

The problem with option 1 is the default permalink is the numeric id of your post or page:

This is not descriptive for search engines, is not clear for your users, includes no keywords, and is ugly.

Option 2 is better but not optimized as the month and year are diluted the impact of the relevant keywords. Really only consider including dates in the URLs if you are providing news or other time sensitive content.

Here is how you change it to a better option like option 3:

Go to your WordPress dashboard: Settings > Permalinks

I would recommend changing your permalink structure to either “Post Name” or “Custom” if you want to include the category.

Post name option ( /%postname%/) titles will show up like this “”

Custom option ( /%category%/%postname%/) which results in something like “”

The two recommended permalink formats

That said, I (and many others in SEO) almost always customize my own URL. Instead of post name, I use the focus keyword like below. Unfortunately, this is not an option in Yoast.


Using the focus keyword as the URL has some big advantages:

  • I may change the title but the focus keyword of the article will always be the same and congruent with the article
  • It keeps the URL short and memorable
  • The post name may have several words that aren’t relevant to the topic so won’t help SEO and dilute the impact of the relevant keywords there
  • If you are A/B testing several titles, you won’t experience mismatched titles and URLs

Important note: if you have a site already running for a significant amount of time or with significant links, you need to migrate to new a new URL format properly.

If you change the permalink structure in Yoast it will just change links going forward. If you manually change existing links to the new format and do nothing else, all your links will break. If you update the permalink format but don’t change existing URLs, your site will have links of different formats.

If you want to change the format of existing links, you must properly redirect all original URLs to the new URL. That way your incoming backlinks, that are so important to SEO, will still work.

Configuring all these redirects (called 301 redirects) is important and can be tricky. You may want to consult a professional if you aren’t comfortable doing technical tasks yourself. I have heard some horror stories.

For those wanting to do it themselves, there is a plugin called Simple 301 redirects that is usually recommended.

Use 301 redirects for any permanent URL changes. Simple 301 Redirects is a popular plugin. If not technical, consult an SEO

To separate words in the URL, use hyphens in the URL slug (not underscores). This makes it easy to remember, short, and focused only on the relevant keywords.

Yoast automatically removes stop words which are usually insignificant words like the, and, etc. But check this as removing a stop word in certain circumstances could alter meaning. For example, with my “on-page checklist” and “on-page SEO video series” Yoast removed the “on” which normally would be fine but in this case that word is very necessary. I just manually added it back in.

Write long form, in-depth content

OK, so the most important thing is actually the content: the post, the article, or whatever content is on the page. And while you may not think of this part as SEO, it is. SEO should be woven into your content.

It’s clear from many sources that longer form, in-depth, quality content ranks well. The average article on page one of Google is approximately 1,900 words long, according to backlinko. This post is 7000+ words. I didn’t intend for that number as a goal, I just shot for an in-depth article and here we landed.


Long form content signals to Google “EAT” (expertise, authority, and trust). While there could be more authoritative articles that are shorter, it appears length is weighted heavily now and is a proxy for authority.

Longer posts also tend to have higher engagement and better user experience stats like time on page. Also, there are simply more words to index so more of a chance of words it could rank for.

Now, it’s OK to have shorter posts if it is not critical that they rank well or aren’t cornerstone content. And if they have other positive signals like backlinks they could rank well too. Or you just might want to write a quick blog post for your readers (novel thought!) and are not very concerned with ranking.

But if you have the opportunity to do more research to add valuable information to a blog post and get it at least over the 2000-word mark, go for it.

Use Headers properly

One good practice is utilizing headers tags properly. By the way, headers meaning section titles that break up the text not the header on the top of a document. I’ve heard both that this is and is not an SEO ranking factor. Regardless it is a good practice for consuming online content so why not use them? Your title on the page should be an H1 header tag. 1 meaning the most important as it’s usually the largest, most prominent header. You only want one H1 to make it clear what is the main topic of the page. For sub-headers you can use a combination of lower priority headers like H2, H3, and so on.

You can simply set headers in the standard WordPress text editor. Your theme will set the style of the headers but you can change it with a little bit of CSS, if you know it (recommended).

You can easily set headers like H1, H2, etc in the WordPress text editor

Headers help in a few ways:

  • Headers provide clues on the topic. If a keyword is in a header it is likely an important concept to the article.
  • Also, headers a good way to structure the article. Since people scan rather than read content online, headers keep them moving down the page while informing main themes of the article and which sections are most relevant.

Always fill in Image Alt Text

As mentioned, a big part of SEO is simply being clear what your site is about for search engines crawling your site. There are a couple of ways that you can help this along with images. One is simply naming the file something descriptive, not generic. Instead of “pic1.jpg,” name it “baseball-pitcher.jpg,” for example. Like always, include keywords if natural.

Another common mistaking is not filling in image “alt text.” You do this in the media library after you upload an image.

Always fill in the "Alt Text" information of your WordPress images

Image alt text was first developed for accessibility reasons. While a blind person can’t see images, their screen reader can still let them know what the image is using the image alt text. For fully-sighted people, if the image doesn’t load the alt text will show with the broken image link.

It turns out that this has become a useful signal for SEO purposes. It provides another hint to Google about what your page is about so you should use it. Some of your competitors probably don’t.

Job #2: Help Search Engines Find your Content

Generate a sitemap

A sitemap (or XML sitemap) is just that, a map of your site you provide search engines so they know where to look for content on your site. It is a formatted list of the links on your site so search engines know of any new, updated, or removed content.

Luckily keeping up-to-date sitemaps is something that is easily automated. You can set it once in Yoast which automatically updates it for search engines. Yoast generates excellent sitemaps.

To set up, go to Yoast Settings > XML Sitemap > and make sure “enabled” is selected

Go to SEO > XML Sitemaps to enable this crucial functionality for your site

Note: Yoast’s sitemap is found at, not the more traditional This may confuse some SEO audit tools into thinking you don’t have one. Just keep in mind if you come across this error using those tools. You can double check in Google Search Console to make sure they have a sitemap on record.

Site Structure

In general, you are going to want to have a well-organized site.

If you have a logical, easy-to-follow site structure, Google will be able to more easily find all of your pages.

Ideal site structure is shaped like pyramid. Your home page is at the top, a few clear categories that branch out from home, maybe some sub-categories if necessary, and then all of your posts falling neatly under the categories. This makes it easier for search engines to find your content by following links from the homepage. It also makes it easier for a visitor to navigate the website.

One rule of thumb is you want no pages more than 3 clicks away from the homepage. You also don’t want any orphan pages because it might be hard to find because they are not linked to by any other prominent pages

Site structure should roughly resemble a pyramid

Internal Linking

Internal linking is very important in SEO. It impacts rankings and it’s in your control!

Internal linking is basically the SEO version of talking yourself up. It’s simply linking to your own content, pages, and posts on your site.

This does a few things:

  • Helps search engines find articles, especially older ones it may not have indexed yet
  • Increases reader engagement as they read more of your content which drives up time on site and drives down bounce rate – both good for SEO
  • Gives you a chance to set anchor text which needs to be managed to ensure a natural profile

You can check internal linking statistics in Search Console and recently in Yoast Premium also.

You can get a count of internal links for each page in your Google Search Console account

What is anchor text?

Anchor text are the words on a link.

For example, the anchor of the below sentence is “SEO Webinar”

“Here’s the link to the SEO Webinar

If it said “Click here for the SEO webinar” then “click here” would be the anchor text. That is a poor choice because “click here” signals no information to Google about the article topic.

So anchor text is another legit way to signal to Google that that URL is about.

An easy way to start with internal linking is a related posts plugins, which adds that related stories under each post you have seen. But even better is linking within the article, which you should do frequently. Not as much as Wikipedia but that is going in the right direction!

Why is internal linking important? Can’t anyone link to their own content?

Internal links signal which are your most prominent pages. Think of the best blog post you wrote compared to a regular page like contact us. I bet you link to the blog post (or at least should) in several other articles and probably don’t link to the standard pages unless needed. So more internal links signal to Google which pages you think are more important and that is taken into consideration. Also, the connections they imply between articles provide Google valuable contextual information.

Set up Breadcrumbs

Enabling breadcrumbs on your site is recommended. Firstly, they are internal links! Also, they highlight site structure to both readers and search engines.

Breadcrumbs are easy to add in Yoast.

Go to SEO > Advanced > Breadcrumbs

To enable breadcrumbs, go to the Advanced tab toggle Breadcrumbs to "Enabled"

Note that it may add them to some pages and posts you don’t want them in. You can turn off categories but to get breadcrumbs off of individual pages, you may have to use CSS to hide. I remove them from my landing pages because you want the least amount of distractions and links on landing pages.

Eliminate unnecessary duplicate content

It is generally bad SEO practice to have duplicate content on your site. Why?

If Google sees several different pages on your site that are similar it may not know which one to rank highest. So, it may just choose one or worse split the “link juice” between both. If you have two pages with similar content it may be hard for Google to know which to rank higher so they may cannibalize each other’s rankings.

For example, WordPress creates archive pages for each tag, category, author, dates and more.

It’s a pretty crazy amount of pages that are useless to many!

If you have all of these pages indexed by Google, there is going to be a lot of duplicate content, which is detrimental to SEO.
Where do all these pages in WordPress come from?

Well, say you write a blog post and you have it on your site at /blog. If you have two tags (SEO and WordPress), it will also be under /tag/seo/article-name and another one for author: author/sstanczak/article-name.

It’s a lot!

You should probably disable or at least noindex some default “taxonomies” and “post types” archive pages that WordPress creates. If you noindex the pages, search engines won’t show them in rankings, hiding them from the public and solving the duplicate content issue.

If your site is a one author site, disable the author archives as they will be essentially an identical blog to the main blog feed. Not only that, Google and other search engines will only index a certain number of pages a week/month (crawl budget). So you want them finding your new content not wasting time on low-value pages.

Some taxonomies, tags and categories archives may be helpful but you may not necessarily want those in Google. In this case, keep them enabled in Yoast but noindex them.

The good part is this is easy in Yoast:

Go to SEO > XML Sitemaps > Taxonomies and Go to SEO > XML Sitemaps > Post Types

Only include relevant post types and taxonomies in your sitemap

One other task is to make sure only summaries are showing in the feed pages (with “read more” links) and not the whole articles. You can confirm this in WordPress’ “Reading Settings”

Hide (noindex) pages that shouldn’t be in Google

There are going to be certain pages and even sections of your site that you may want to hide from Google and other search engines.

This can minimize low-value pages and duplicate content from getting into Google and affecting the rankings of other content.

For example, I don’t usually index landing pages because they are intentionally light in content, are for sales and not content, won’t rank well and may be seen by Google as a low value. It won’t make my site look any more authoritative (although landing pages are great for lead generation). So I apply a noindex tag to these using Yoast. This hides the page from search engines by asking search engines to not index it (add it to the database of pages).

To noindex a page or post, find the id of it in the edit page/post screen and then enter that id into:

SEO > XML Sitemaps > Excluded Posts. Alternatively you can to the Yoast SEO box in the Edit page/post screen > Advanced (gear) > select “noindex” from the Meta Robots Index field:

The easiest place to noindex a page or post is in the Yoast Box in the edit page or post screen

If you want to noindex a complete section you can do what we did above:

SEO > XML Sitemaps > Taxonomies and choose: “Not in Sitemap”

Of course, it would be a travesty to accidentally noindex content from Google by accident. This happens more than you think so be on the lookout for this and triple check those settings if you make changes. At least it would explain why you were not ranking well!

You can actually noindex your whole site.

Why would you want to do this?

For a new site that is not yet ready for the public.

To do this in the regular WordPress dashboard go to Settings > Reading and check “Discourage search engines from indexing this site”
When your site is ready to launch live to the public, make sure to uncheck!

This is very important otherwise no one will find you in search and you may not know why. I have heard about more than one story like this.
To manually noindex, you can edit the robots.txt file but this is a sensitive file that I wouldn’t edit unless you have experience with robots.txt.

Note: don’t get noindex confused with nofollow. Nofollow is a tag you can add to links that you don’t want to pass link “credit” to.

Job #3 Assure search engines your site offers value and user-friendly experience

Pick a quality theme

While we know WordPress is SEO-friendly that does not mean that all themes will be. You want to make sure you have a theme that has clean code and is mobile responsive. You want it to be flexible enough to meet your needs but lightweight enough to not weigh down your site with unnecessary bloat.

I would spend effort upfront making sure you pick a quality theme. There are plenty out there, many of which are free. Of course, you can go with the default WordPress themes, which you can bet are well-coded. Popular paid themes include Genesis and Divi.

I use the GeneratePress theme, a quality free theme with premium upgrades. I would highly recommend it due to its quality code and amazing support given it’s free.

GeneratePress is a quality and free theme I use on

Also, a good idea is to use the demo site on the theme’s website. See that it runs quickly, is attractive and mobile responsive. This is a great way to check a theme if you can’t really tell by the code how well it is designed.

You can also use the plugin “Theme Check” to make sure your theme has met best practices and guidelines for HTML, CSS, JavaScript, etc. The only problem is you need to install the theme first before being able to use the plugin on it.

With so many visitors accessing sites from phones, mobile responsiveness is a must have at this point. It also ensures a consistent look across devices for good user experience.

Check Site Speed

The importance of speed to Google, and thus SEO, can’t be understated. It is important because it provides a better user experience and helps conversion among other important metrics. Besides being a confirmed ranking factor, slow sites will waste crawl budget minimizing the number of pages Google may index.

Check your page speed using two tools: Google PageSpeed Insights and GT Metrix.

Google’s free Google PageSpeed Insights tests the page speed of any URL you provide and returns a score of 1-100 for mobile and desktop.
It also provides a list of recommendations on what to fix (red and yellow) and what is good (green).

Recommendations typically include things like Optimize images, Reduce server response time, Eliminate render-blocking JavaScript and CSS in above-the-fold content, Leverage browser caching, Minify CSS and HTML.

Google PageSpeed Insights is pretty strict...even gets a poor score!

Some of these will be easy to fix and some will prove very difficult.

Scoring 100 is close to impossible for a normal site. While is a 100 most other google properties like Google News, YouTube, and Amazon are nowhere close to a 100.

If you are above an 85 you are in good shape. If you are in the yellow, you probably won’t see any negative ranking effect. Stay out of the red.

It is not that Google rewards fast sites as much as they will penalize slow ones. So while premium hosting will help speed, a normal shared hosting plan is sufficient in most cases. Google recommends reducing your server response time to under 200ms (.2 seconds).

Also, certain tools may slow down your site a tad but provide enormous value (think the Google Analytics tag).

GTMetirx is a great page speed tool that provides detailed recommendations

GTMetrix works differently than PageSpeed Insights. It actually loads your page to test it (instead of just scanning the code). GTMetrix also provides a numeric score and recommendations but in a more robust fashion.

Some of the recommendations in GTMetrix will reflect Google’s but you’ll also find several other new recommendations here.

I like the waterfall chart which visualizes how long each element takes to load and in what sequence to see where the bottleneck is.

In general, I try to take care of the most impactful items and not get too carried away with optimizing here. The law of diminishing returns comes into effect. Many of the recommendations are not realistic. Improving your page speed after a certain point is probably not the best use of resources.

GTMetrix has an insightful waterfall chart that visualizes the resources loading on your page

Compress and Minify code files

Gzip compression provided the single most significant improvement to my site speed. Gzip is an application that compresses CSS, HTML, and JavaScript files on your server to reduce their size. It works like zip folders on regular computers.

Gzip’s algorithm can reduce the size of HTML, CSS, and JavaScript files by 70 to 90%.


By removing unnecessary characters and formatting like spaces, line breaks, comments without affecting the functionality of the code.

You can easily do this manually but it is a little risky as you need to edit the sensitive .htaccess file.

A safer alternative is using a plugin. And actually the two caching plugins we will mention later (that you should use any way) have this as a setting. It’s as easy as checking a box!

To enable Gzip compression in WP Super Cache, click "Compress Pages so they're served more quickly to visitors"

If you ran your site through the Google PageSpeed Insights tool, you may have gotten the recommendation to minify JavaScript, CSS and/or HTML. This means your site (themes, plugins, etc) is pulling in these different files and code from different places. Minifying the code consolidates into one file (or less files) to streamline the loading of your site.

To minify code, I recommend using a free plugin called Autoptimize which led to a significant improvement in my site.

Use Autoptimize to minify HTML, CSS, and JS

Optimize (Minimize) Image files

If you looked at your Waterfall chart in GTMetrix, you probably know that images are one of the heaviest burdens on your site’s loading speed.
So what can you do? Well you want to minimize the file size without a noticeable quality decrease.

I take three steps to optimize images.

First, I scale the image to only as big as the size needed. There is no point in uploading an image into the WordPress media library that is 1000×1000 pixels if you are only going to be displaying it at most 500×500 pixels. So scaling it first to 500×500 could reduce the file size by half with no downside. I use the GIMP photo editing software, which is basically an open source photoshop that you download to your computer. There are other ways of scale a picture and some may be easier. If you know of a good online option, leave in the comments.

Second, you should compress the image using either or This removes unnecessary data. It usually reduces jpgs by about 30% and PNGs by 70%. By the way, JPGs are better for photographs while PNGs are better for graphics. Also, you shouldn’t use Gzip on images so this is a better option.

Third, I use is the WP Smush plugin. This usually eeks out about 3% or so size after the first two tasks. As a plugin, it integrates with the media library of WordPress. You can set it to automatically smush (compress) any image upon upload or use it as needed with one click after upload.

compresspng-compressjpg-wordpress-seo and reduce file sizes up to 70%

Consider using a CDN

One way you can reduce the load time of your site is using a CDN, a content delivery network (or content distribution network). A CDN is a large distribution of caching servers located geographically dispersed (basically The Cloud). It is great to store your static and commonly-requested files like images, JavaScript and CSS on their remote servers instead of yours. CDNs handle these items by design. They are faster than average WordPress servers and use the server closest to the user. This results in lower response time and improved page speed performance.

A personal side note: I used the CloudFlare CDN which actually has a free tier. It didn’t work out for me as I ran into a ton of conflicts and issues with other parts of my site (not saying it was there fault). I may try Amazon’s Cloudfront in the future as my site gets larger. I have so far enjoyed using Amazon’s S3 cloud storage and the price is reasonable. MaxCDN is another big player in the CDN market.

Install a Caching Plugin

Installing a cache plugin is highly recommended. A caching plugin is another great way to reduce page load making your site faster. Basically, it will cache (store) certain files in the browser that don’t change much like images. If a user re-visits your site in a certain period of time, it will serve them the saved cache files instead of downloading the whole file again. Two good free WordPress plugins are W3 Total Cache and WP Super Cache (which I am a happy user of.)

One thing to note is that you may want to turn off your caching plugin temporarily if you are making significant changes to your site like add a new post. The reason is the changes you make might not load for some time as the cache plugin may not serve the latest files. You might think the changes didn’t go into effect but in reality, an older version of the page is loading. You can also set it up that it doesn’t cache anything for known users like the site admin.

Also, as we mentioned, you can use the above two caching plugins to enable Gzip compression also.

W3 Total Cache is a popular and robust Caching plugin

I have been pleased with my experience using the WP Super Cache caching plugin

Social share buttons

Social shares are probably a minor ranking factor. Adding social shares buttons to increase shares on sites like Twitter, Facebook and Instagram probably won’t improve SEO a lot, but why not make it easier for visitors to share? Of course, there are non-SEO benefits like increased traffic (although traffic from organic social is very low these days.)

There are a tons of social media sharing plugins out there but if you are looking for a simple, lightweight try “Simple Share Buttons.”

Choose Plugins Carefully

You want your plugins to be well-coded. While plugin conflicts are a reality of WordPress you will want to minimize them. Plugins add several files to your site. Any conflict could slow down or even break your site. This is the exact kind of user experience Google is trying to avoid.

Check ratings, reviews and/or author reputation before use. Try to use lightweight plugins if possible. Deactivate and delete any plugins that are not in use.

Also, be cognizant of any JavaScript or tracking scripts you added to your site over time. Monitor any performance declines and remove if not in use or significantly affecting page load speed.

What WordPress can and cannot do in SEO

It is important to note that this tutorial article, while a lot, is only a part of SEO. If you optimize everything you can with the WordPress dashboard and plugins, you have made significant progress. But still a lot is to be done.

Some think that you just setup Yoast and SEO is done! These are the people you will outrank.

Most of the “SEO for WordPress” recommendation fall under technical and on-page SEO which is making sure your site code is clean and loads quickly. A huge part of on-page SEO (and SEO generally) is content, having high-quality, authoritative content that users engage with. That could be another whole article.

Outside of WordPress, there are some great tools for technical SEO (like Screaming Frog) that we didn’t cover here as they are directly related to WordPress.

Other parts of SEO that aren’t primarily accomplished in WordPress include:

1. Keyword research: finding the target keyword of your post based on search volume, keyword difficulty and trend.
2. Competitive analysis: determining what is working for competitors that you can model and identifying vulnerabilities in their site or content that you can exploit
3. Outreach and amplification: promoting your content through link-building, influencer marketing, and syndication
4. Measuring results: using web analytics and reporting to measure engagement and KPI (key performance indicators) like social shares, backlinks, time on page, etc.

If you want to maximize your rankings and traffic you must do all five. Otherwise, you won’t be happy with the results. Don’t worry though. You can tackle all of these with our course.


What is your feedback on this guide? Have you had any recent WordPress SEO successes or challenges?

Leave a Comment