When managing a WordPress website, understanding how to control which pages are indexed by search engines is crucial. Sometimes, you might need to prevent certain types of content, like custom post types (CPTs), from being indexed or followed by search engines. This is particularly important for CPTs used for internal purposes or those not intended for public consumption. In this blog post, I’ll walk you through how to add noindex
and nofollow
attributes to a CPT using the Yoast SEO plugin and programmatically via your theme’s functions.php
file.
Manually Adding Noindex and Nofollow with Yoast SEO
Yoast SEO, a popular WordPress SEO plugin, provides an easy-to-use interface to add noindex
and nofollow
tags to your CPTs. Here’s how:
- Navigate to Your CPT: Go to the WordPress dashboard and open the CPT you want to edit.
- Yoast SEO Meta Box: Scroll down to find the Yoast SEO meta box below the content editor.
- Access Advanced Settings: Click on the ‘Advanced’ tab within the Yoast SEO meta box.
- Set Meta Robots Index to Noindex: From the ‘Meta Robots Index’ dropdown, select ‘noindex’. This tells search engines not to index this particular CPT.
- Set Meta Robots Follow to Nofollow: Similarly, select ‘nofollow’ from the ‘Meta Robots Follow’ dropdown. This instructs search engines not to follow links on this CPT.
- Save Your Changes: Click the ‘Update’ button to apply these settings.
Programmatically Adding Noindex and Nofollow
If you have multiple posts within a CPT or prefer a more hands-off approach, you can automate this process with a snippet of code in your theme’s functions.php
file:
/**
* Add noindex, nofollow for CPT Premium (premium).
*/
function yoast_premium_no_index( $string = '' ) {
$post_type = get_post_type();
if ( $post_type ) {
$post_type_data = get_post_type_object( $post_type );
if ( 'premium' === $post_type_data->rewrite['slug'] ) {
$string = 'noindex, nofollow';
}
}
return $string;
}
add_filter( 'wpseo_robots', 'yoast_premium_no_index', 999 );
In this code:
- We’re hooking into the
wpseo_robots
filter provided by Yoast SEO. - The function checks the current post type and applies
noindex, nofollow
if it matches our specified CPT (premium
in this case). - This way, all posts under the ‘premium’ CPT automatically receive the
noindex, nofollow
settings without needing manual updates.
Why Use Noindex and Nofollow?
- Privacy and Control: Keeps internal, private, or less important content out of search engine results.
- SEO Strategy: Helps focus search engine attention on the content you want to rank, avoiding dilution of SEO efforts.
- Content Management: Provides greater control over how your content is accessed and crawled by search engines.
Whether manually via Yoast SEO’s interface or programmatically through your theme’s functions.php
, controlling how search engines interact with your content is a vital aspect of SEO management in WordPress. These methods ensure that your CPTs are indexed and followed according to your specific requirements, contributing to a more refined and strategic SEO approach for your website.
Remember to always back up your site before making changes to theme files or settings.