Every time I audit a WordPress site for a client, tag archives and author archives show up in the crawl report as thin content — pages with barely any unique text on them, which search engines tend to treat as low quality. A tag archive is just the auto-generated page WordPress builds at a URL like /tag/tips/, listing every post you’ve tagged “tips.” It’s almost never intentional that these end up indexed — the site owner tagged a handful of posts with “wordpress,” “tips,” and “how-to,” and now that page has three excerpts on it that Google has indexed and is treating as a competing, low-value page against the actual posts.
Author archives are worse on single-author blogs. An author archive is the page at /author/yourname/ that lists everything a given author has published. If you’re the only person publishing, that page is just a second, worse copy of your homepage. It adds no value and it’s pure duplicate content risk.
Why this actually hurts you
It’s not that Google penalizes you for having these pages. It’s more subtle than that. Every page that gets indexed is a page competing for what’s called “crawl budget” — roughly, the amount of attention Googlebot is willing to spend crawling your site in a given period. It’s also a page that could rank instead of the content you actually want people to find.
On a small site this barely matters. But picture a site with hundreds of tags, each spawning an archive with two or three posts on it. That’s hundreds of near-duplicate pages. Search Console — Google’s free tool for site owners — will flag many of them as “Crawled – currently not indexed” or “Duplicate without user-selected canonical.” I’d rather Google spend its time on my actual posts.
If you’re running Yoast or Rank Math
Both plugins let you do this without touching a line of code, and I’d default to this option if you already have one of them installed rather than adding more logic to your theme’s functions file.
In Yoast: go to Yoast SEO > Search Appearance > Taxonomies and set “Show Tags in search results” to No. Then under the Archives tab, set “Author archives” to disabled (or noindex, depending on your Yoast version — newer versions separate “show in search results” from “enable/disable the archive” as two different controls, so check both).
In Rank Math: Titles & Meta > Taxonomies > Tags has a “Robots Meta” toggle where you tick “No Index.” For authors, it’s under Titles & Meta > Authors, and there’s also a global “Disable Author Archives” switch if you want to remove them completely rather than just noindex them.
The code-only approach
If you’re not running an SEO plugin — plenty of the product sites I work on don’t, because the plugin itself handles its own meta output — you can do this with a small snippet instead. It hooks into wp_robots, which has been the correct filter for controlling the robots meta tag since WordPress 5.7. Here’s what it does: it checks whether the current page is a tag archive or an author archive, and if so, tells search engines not to index it.
add_filter( 'wp_robots', 'sn_noindex_tag_author_archives' );
function sn_noindex_tag_author_archives( $robots ) {
if ( is_tag() || is_author() ) {
$robots['noindex'] = true;
}
return $robots;
}
This is preferable to hand-echoing a meta tag yourself. wp_robots merges cleanly with whatever else is contributing to the robots meta — including core’s own logic for search pages and paginated pages. That means you won’t end up with two conflicting <meta name="robots"> tags in your page’s <head> section, which can happen when two different pieces of code both try to print their own version.
If you’re stuck supporting an older WordPress version without wp_robots, the fallback is a direct hook into wp_head, the action WordPress fires when building the page’s head section:
add_action( 'wp_head', 'sn_noindex_meta_fallback' );
function sn_noindex_meta_fallback() {
if ( is_tag() || is_author() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}
Notice I used noindex,follow, not noindex,nofollow. That’s deliberate. You still want Google following the links from the archive through to your actual posts — you just don’t want the archive page itself showing up in search results.
Noindex vs. disabling the archive entirely
These aren’t the same thing, and which one I pick depends on whether the archive is doing anything useful for actual visitors, not just for search engines.
Noindex it when the archive is genuinely useful to a human visitor — someone browsing your tag pages to find more posts on a topic, or a multi-author blog where readers might want to see everything a specific writer has published. You want the page to exist and stay crawlable, so internal links still pass through it, you just don’t want it ranking in search results.
Disable it entirely when nobody is ever going to intentionally visit that URL. On a single-author blog, I usually just redirect author archives away rather than bothering with noindex, since there’s no reason for the page to exist at all. Here’s a snippet that sends anyone hitting an author archive straight back to the homepage instead:
add_action( 'template_redirect', 'sn_disable_author_archives' );
function sn_disable_author_archives() {
if ( is_author() ) {
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
}
For tags, I rarely disable them outright. The exception is when a site’s tag taxonomy has genuinely gotten out of hand — I’ve seen sites with a tag for nearly every post title, which is really just misusing tags as a second category system. In that case the real fix is cleaning up the taxonomy itself, not just hiding the symptom with noindex.
If you’re also thinking about how your overall theme structure affects SEO rather than just these archive pages, I’ve written separately about what actually changes for SEO when you switch to a block theme, which covers a related but distinct set of issues. And if structured data is on your radar too, I’ve also covered how to add FAQ schema without a plugin, which pairs well with cleaning up what you let Google index in the first place.
Frequently Asked Questions About Noindexing Archives
Will noindexing my tag pages hurt my SEO instead of helping it?
No, and this is the most common worry I hear. Noindex only removes low-value, thin pages from Google’s index — it doesn’t touch your actual blog posts or their rankings. If anything, sites tend to see modest improvement over time because Google is spending its attention on the pages you actually want ranking instead of hundreds of near-duplicate archive pages.
Do I need a developer to make this change?
Not if you’re already running Yoast or Rank Math — both are toggle switches in the plugin settings, no code required. You’d only need a developer for the code-only approach, which is for sites without an SEO plugin installed.
How do I know if this is actually a problem on my site?
Check Google Search Console’s coverage report for statuses like “Duplicate without user-selected canonical” or a large number of “Crawled – currently not indexed” pages. If you see your tag or author archive URLs showing up there, this is worth fixing. You can also just search site:yoursite.com/tag/ on Google to see what’s currently indexed.
Will this delete my tag pages or author pages?
No. Noindex just asks Google not to list the page in search results — the page itself still exists and is still visible to anyone who visits it directly. Only the “disable entirely” approach actually removes access to the page, and that’s a separate, optional step.
What’s the difference between noindex and just deleting the tag?
Deleting a tag removes the taxonomy term and un-tags every post that used it, which is a much bigger structural change. Noindex leaves your tags and posts completely untouched — it only changes whether the auto-generated archive page for that tag shows up in search results.
One last thing worth checking after you make either of these changes: pull up the archive URL in an incognito browser window and view the page source to confirm the meta tag or redirect is actually firing. And don’t submit these URLs in your sitemap if your SEO plugin generates one — both Yoast and Rank Math will exclude noindexed taxonomies from the sitemap automatically once the setting above is applied, but it’s worth a quick check in /sitemap_index.xml either way.
Leave a Reply