The document provides tips for reducing duplicate content issues in WordPress. It recommends replacing "the_content" with "the_excerpt" on archive pages to avoid displaying full posts. It also suggests creating custom PHP template files for each archive page type to insert unique text. Additionally, it advises using the Yoast SEO plugin to add canonical and pagination tags, as well as noindexing non-unique pages and excluding them from XML sitemaps. The document also covers using robots.txt or Google Search Console to block problematic URLs with parameters.
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Advanced WordPress SEO Actionable Advice
1. Advanced WordPress SEO: Actionable Advice for
Ensuring Your WordPress Content is Found
by Nick Herinckx, CEO of Obility Consulting, @nickherinckx
Tweet with Mozinar attendees: #mozinar
Technical problems or feedback:
Please email team@seomoz.org
13. Assumption #1:
You Are Familiar with Wordpress
www.obilityconsulting.com Section: Housekeeping
14. If I say “plugins”…
…You say “Let me tell you my favorite
ones”
www.obilityconsulting.com Section: Housekeeping
15. If I say “permalink structure”…
…You say “/%category%/”
www.obilityconsulting.com Section: Housekeeping
16. If I say “edit theme PHP files”…
…You say “archive.php or head.php?”
www.obilityconsulting.com Section: Housekeeping
17. Assumption #2:
You understand intermediate to
advanced SEO
www.obilityconsulting.com Section: Housekeeping
18. If I say “canonical tag”…
…You say “duplicate content”
www.obilityconsulting.com Section: Housekeeping
19. If I say “URL name/value pairs”…
…You say “no more than 3, and there
better not be sorting parameters”
www.obilityconsulting.com Section: Housekeeping
20. If I say “meta robots tag”…
…You say “noindex and nofollow”
www.obilityconsulting.com Section: Housekeeping
21. If I say “I know you’ve never purchased
links”…
…You say “no” and start laughing
www.obilityconsulting.com Section: Housekeeping
22. If Matt Cutts enters the room…
…You stop laughing
www.obilityconsulting.com Section: Housekeeping
23. If I say “Rand Fishkin”…
…You say “who’s that?”
www.obilityconsulting.com Section: Housekeeping
24. In short: you understand SEO
www.obilityconsulting.com Section: Housekeeping
25. Some of our
solutions will utilize
plugins.
Image credit: http://www.techtate.com
*I favor solutions that do not
utilize plugins
www.obilityconsulting.com Section: Housekeeping
26. I don’t always use plugins
Credit: Euro RSCG Worldwide
But when I do, I prefer
www.obilityconsulting.com Yoast SEO
Section: Housekeeping
28. Where does this problem stem from?
Tag Pages
www.obilityconsulting.com Section: Duplicate Content
29. Where does this problem stem from?
Tag Pages Category Pages
www.obilityconsulting.com Section: Duplicate Content
30. Where does this problem stem from?
Tag Pages Category Pages
Date Archive
Pages
www.obilityconsulting.com Section: Duplicate Content
31. Where does this problem stem from?
Tag Pages Category Pages
Date Archive
Author Pages
Pages
www.obilityconsulting.com Section: Duplicate Content
32. Where does this problem stem from?
Tag Pages Category Pages
Date Archive
Author Pages
Pages
Pagination Pages
www.obilityconsulting.com Section: Duplicate Content
36. What are Specific SEO Issues?
www.obilityconsulting.com Section: Duplicate Content
37. What are Specific SEO Issues?
Full post text on
homepage, tag pages,
category pages, etc.
www.obilityconsulting.com Section: Duplicate Content
38. What are Specific SEO Issues?
No value-added
content for searchers
www.obilityconsulting.com Section: Duplicate Content
39. What are Specific SEO Issues?
Pagination pages
include duplicate
content
www.obilityconsulting.com Section: Duplicate Content
40. What are Specific SEO Issues?
Heavy site-wide
sidebar links to these
pages
www.obilityconsulting.com Section: Duplicate Content
41. What are Specific SEO Issues?
Many themes don’t allow
for custom META tags on
these pages
www.obilityconsulting.com Section: Duplicate Content
42. What can we do about the full post
being displayed on all archive pages?
www.obilityconsulting.com Section: Duplicate Content
43. What can we do about the full post
being displayed on all archive pages?
ANSWER: replace “the_content” in the
PHP files with “the_excerpt”
www.obilityconsulting.com Section: Duplicate Content
44. What to do about full post text
The_Content The_Excerpt
- Located inside - Located inside
your PHP files your PHP files
- Shows full blog - Shows only first
post content 55 characters of
post.
www.obilityconsulting.com Section: Duplicate Content
45. What to do about full post text
www.obilityconsulting.com Section: Duplicate Content
46. What to do about full post text
www.obilityconsulting.com Section: Duplicate Content
47. Where to look for “the_content”
- Archive.php
- Index.php
- Other custom theme PHP files that control
archive type pages
www.obilityconsulting.com Section: Duplicate Content
48. What can we do about the non-
uniqueness?
www.obilityconsulting.com Section: Duplicate Content
49. What can we do about the non-
uniqueness?
ANSWER: Noindex and exclude from
XML sitemap
www.obilityconsulting.com Section: Duplicate Content
50. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
www.obilityconsulting.com Section: Duplicate Content
51. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
www.obilityconsulting.com Section: Duplicate Content
52. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
Categories Yes Yes Include Allow
www.obilityconsulting.com Section: Duplicate Content
53. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
Categories Yes Yes Include Allow
Tags No Yes Exclude Allow
www.obilityconsulting.com Section: Duplicate Content
54. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
Categories Yes Yes Include Allow
Tags No Yes Exclude Allow
Date Archives No Yes Exclude Allow
www.obilityconsulting.com Section: Duplicate Content
55. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
Categories Yes Yes Include Allow
Tags No Yes Exclude Allow
Date Archives No Yes Exclude Allow
Pagination No Yes Exclude Allow
www.obilityconsulting.com Section: Duplicate Content
56. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
Categories Yes Yes Include Allow
Tags No Yes Exclude Allow
Date Archives No Yes Exclude Allow
Pagination No Yes Exclude Allow
Author (default page) No Yes Exclude Allow
www.obilityconsulting.com Section: Duplicate Content
57. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
Categories Yes Yes Include Allow
Tags No Yes Exclude Allow
Date Archives No Yes Exclude Allow
Pagination No Yes Exclude Allow
Author (default page) No Yes Exclude Allow
Author (custom page) Yes Yes Include Allow
www.obilityconsulting.com Section: Duplicate Content
58. What to do about their non-uniqueness
Page Type Meta Meta XML Sitemap Robots.txt
Index? Follow?
Page Yes Yes Include Allow
Post Yes Yes Include Allow
Categories Yes Yes Include Allow
Tags No Yes Exclude Allow
Date Archives No Yes Exclude Allow
Pagination No Yes Exclude Allow
Author (default page) No Yes Exclude Allow
Author (custom page) Yes Yes Include Allow
*Yoast SEO plugin allows for this level of control
www.obilityconsulting.com Section: Duplicate Content
59. Can we make these pages more useful
for users?
www.obilityconsulting.com Section: Duplicate Content
60. Can we make these pages more useful
for users?
ANSWER: Create a new PHP page for
each archive page type, and insert copy
into the PHP files directly
www.obilityconsulting.com Section: Duplicate Content
61. Inserting Text Into Archive Page Types
Date archives, categories, tags, author pages, etc.
Inserting unique
content on
author archive
page types!
www.obilityconsulting.com Section: Duplicate Content
62. Inserting Text Into Archive Page Types
Date archives, categories, tags, author pages, etc.
Inserting unique
content on
category archive
page types!
www.obilityconsulting.com Section: Duplicate Content
63. How do we do this inside Wordpress?
www.obilityconsulting.com Section: Housekeeping
64. Inserting Text Into Archive Page Types
Date archives, categories, tags, author pages, etc.
We will have to create new PHP files!
*but it’s an easy copy/paste job
www.obilityconsulting.com Section: Duplicate Content
65. Inserting Text Into Archive Page Types
Understanding Wordpress PHP Hierarchy
Page Type Default Override for all Override for Example PHP file
category pages individual categories name
Categories archive.php category.php category- category-
{categoryslug}.php marketing.php
www.obilityconsulting.com Section: Duplicate Content
66. Inserting Text Into Archive Page Types
Understanding Wordpress PHP Hierarchy
Page Type Default Override for all Override for Example PHP file
category pages individual categories name
Categories archive.php category.php category- category-
{categoryslug}.php marketing.php
Tags archive.php tag.php tag-{tagslug}.php tag-events.php
www.obilityconsulting.com Section: Duplicate Content
67. Inserting Text Into Archive Page Types
Understanding Wordpress PHP Hierarchy
Page Type Default Override for all Override for Example PHP file
category pages individual categories name
Categories archive.php category.php category- category-
{categoryslug}.php marketing.php
Tags archive.php tag.php tag-{tagslug}.php tag-events.php
Author archive.php author.php author- author-nick.php
{authorname}.php
www.obilityconsulting.com Section: Duplicate Content
68. Steps for creating a custom page with
SEO optimized text for a tag called
“marketing”
www.obilityconsulting.com Section: Housekeeping
69. Inserting Text Into Archive Page Types
Date archives, categories, tags, author pages, etc.
Step 1: Go to your PHP files
www.obilityconsulting.com Section: Duplicate Content
70. Inserting Text Into Archive Page Types
Date archives, categories, tags, author pages, etc.
Step 2:
On server, create “tag-marketing.php” file
inside theme PHP file directory
www.obilityconsulting.com Section: Duplicate Content
71. Inserting Text Into Archive Page Types
Date archives, categories, tags, author pages, etc.
Step 3:
Copy code from existing
“archive.php” file and pate in new
“tag-marketing.php” file.
www.obilityconsulting.com Section: Duplicate Content
72. Inserting Text Into Archive Page Types
Date archives, categories, tags, author pages, etc.
Step 4:
Locate where the body text for the
page begins
Step 5:
Insert custom tag text above where
posts are displayed
www.obilityconsulting.com Section: Duplicate Content
73. THEN WE GET
THIS!!!
www.obilityconsulting.com Section: Duplicate Content
74. What can we do about pagination?
www.obilityconsulting.com Section: Duplicate Content
75. What can we do about pagination?
ANSWER: Yoast SEO inserts rel=“next”
and rel=“prev” in the head of paginated
pages
www.obilityconsulting.com Section: Duplicate Content
80. Wordpress itself only shows canonical
link elements on single pages.
Yoast SEO places the canonical tag on
all page types.
www.obilityconsulting.com Section: Duplicate Content
81. What if I use a plugin that utilizes URL
parameters?
www.obilityconsulting.com Section: Duplicate Content
82. What if I use a plugin that utilizes URL
parameters?
ANSWER: Utilize your robots.txt or
Google Webmaster Tools
www.obilityconsulting.com Section: Duplicate Content
84. • Create an actual robots.txt
file and place it in server
root to override the virtual
Wordpress one
• Use robots.txt to disallow
problematic site section
Or…
• Block problematic
parameters from within
Google Webmaster Tools
www.obilityconsulting.com Section: Duplicate Content
85. In Summary
Make sure theme uses “the_excerpt” in archive PHP files instead of
“the_content”
If you want to keep archive page types, create a separate PHP file for each
an insert on-page copy
Noindex archive page types if not unique
Exclude archive page types from XML Sitemap
Implement canonical tag on all pages using Yoast SEO
Implement pagination tags using Yoast SEO
Use robots.txt file to exclude dynamic pages created by plugins, or use
Webmaster Tools to tell Google to ignore problematic name/value pairs
www.obilityconsulting.com Section: Duplicate Content
88. What we need
1: A Google+ Profile
www.obilityconsulting.com Section: Duplicate Content
89. What we need
2. Link to publications in the “contributor to”
section from within your Google+ profile
www.obilityconsulting.com Section: Duplicate Content
90. What we need
3. Add rel=“author” tag to blog post page in a
link to your Google+ profile
www.obilityconsulting.com Section: Duplicate Content
92. How to Get Google+ Links on Author
Posts
www.obilityconsulting.com Section: Duplicate Content
93. How to Get Google+ Links on Author
Posts
Option 1: Edit single.php file (or the one that
displays your blog posts) to output the author
bio on the page. Then authors can include a
Google+ link on their own.
www.obilityconsulting.com Section: Duplicate Content
95. Placing Author Bio on Blog Posts
<div class="author">
<?php if (function_exists('get_avatar')) {
echo get_avatar(get_the_author_meta('user_email'), '70');
} else {?>
<img src="<?php echo
get_template_directory_uri();?>/images/author.jpg" alt="" class="imgleft authorpic" />
<?php } ?>
<h5>About <?php the_author();?></h5>
<?php the_author_meta('description'); ?>
</div>
www.obilityconsulting.com Section: Authorship
96. How to Get Google+ Links on Author
Posts
Option 2: Manually add to posts an author
byline with Google+ profile links
www.obilityconsulting.com Section: Duplicate Content
98. For very large blogs, permalink
structure is one of the most common
mistakes I see with Wordpress
installations.
www.obilityconsulting.com Section: Advanced On-Site
99. Permalinks for Blog Posts
Which one is best?
/%postname% / %post_id%/
/%category% / %postname%/
/%post_id% / %postname%/
/%year% / %category% / %postname%/
www.obilityconsulting.com Section: Advanced On-Site
100. Permalinks for Blog Posts
Most People Select:
/%postname% / %post_id%/
/%category% / %postname%/
/%post_id% / %postname%/
/%year% / %category% / %postname%/
www.obilityconsulting.com Section: Advanced On-Site
101. But that’s not ideal for very large blogs!
www.obilityconsulting.com Section: Advanced On-Site
102. Permalinks for Blog Posts
What Wordpress Says
“For performance reasons, it is not a good idea to start your
permalink structure with the category, tag, author, or
postname fields. The reason is that these are text fields,
and using them at the beginning of your permalink
structure takes more time for WordPress to distinguish
your Post URLs from Page URLs (which always use the text
“page slug” as the URL), and to compensate, WordPress
stores a lot of extra information in its database (so much
that sites with lots of Pages have experienced difficulties).
So, it is best to start your permalink structure with a
numeric field, such as the year or post ID.”
www.obilityconsulting.com Section: Advanced On-Site
103. Why does it cause slowdown?
www.obilityconsulting.com Section: Advanced On-Site
104. Consider the URL /mycat/mypost/
www.obilityconsulting.com Section: Advanced On-Site
105. Permalinks for Blog Posts
You Should Select:
/%postname% / %post_id%/
/%category% / %postname%/
/%post_id% / %postname%/
/%year% / %category% / %postname%/
www.obilityconsulting.com Section: Advanced On-Site
110. What did we talk about?
Housekeeping
Addressing Duplicate Content in Wordpress
Implementing Authorship
Advanced On-Site Considerations
Maintaining SEO Compliance
www.obilityconsulting.com