← All posts

WordPress Custom Post Type SEO: How to Rank Custom Content on Google

Learn how to configure, optimize, and rank WordPress Custom Post Types (CPTs) on Google. Discover best practices for permalinks, custom schemas, and archive pages.

WordPress is incredibly versatile, largely because it allows you to step beyond standard posts and pages. By using Custom Post Types (CPTs), you can transform a basic blog into a robust directory, an e-commerce hub, a portfolio showcase, or a real estate listing platform.

However, simply creating a Custom Post Type does not guarantee it will perform well in search engine results. Because CPTs behave differently than standard WordPress posts, they require specific technical adjustments to ensure search engines can crawl, index, and rank them effectively.

In this guide, we will walk you through the essential steps to optimize your WordPress Custom Post Types for SEO, ensuring your custom content gets the organic visibility it deserves.

1. Configure Your Custom Post Type Settings for SEO

When registering a Custom Post Type—whether through custom code in your functions.php file or via a plugin like Custom Post Type UI (CPT UI)—several arguments directly impact your SEO. If these settings are misconfigured, search engines may ignore your custom content entirely.

Ensure the following parameters are correctly set during registration:

  • 'public' => true: This is the most critical setting. It ensures that the post type is visible to both visitors and search engine crawlers. If set to false, your CPT will remain hidden from Google.
  • 'publicly_queryable' => true: This allows queries to be run on the front-end, making the individual post URLs accessible to the public and search bots.
  • 'exclude_from_search' => false: Setting this to false ensures that your custom posts appear in the native WordPress site search, which helps internal link equity and user navigation.
  • 'has_archive' => true: This generates a dedicated archive page for your CPT (e.g., yourdomain.com/portfolio/). Archive pages are excellent for targeting broad, high-volume keywords and establishing a clean site hierarchy.

If you are planning your site structure from scratch, it is highly beneficial to integrate these settings early on. For more details on building a solid foundation, check out our guide on Building a WordPress Site Pre-Optimized for SEO.

2. Optimize the CPT URL and Permalink Structure

Clean, descriptive URLs are essential for both user experience and search engine understanding. By default, WordPress handles CPT permalinks well, but you must avoid common pitfalls like taxonomy conflicts and overly long URLs.

Choose a Clear Rewrite Slug

When registering your CPT, you can customize the URL slug using the rewrite parameter. For example, if your post type is named company_services, you might want the public URL slug to simply be services:

'rewrite' => array('slug' => 'services', 'with_front' => false),

Setting 'with_front' => false is highly recommended. It prevents WordPress from prepending your main blog structure (like /blog/ or /news/) to your custom post type URLs, keeping your URLs short and focused.

Avoid Slug Conflicts

Never use the exact same slug for a Custom Post Type, a custom taxonomy, and a standard page. For example, if you have a page named "Services" (slug: /services/) and a CPT registered with the slug services, WordPress will suffer from a permalink conflict. This often results in 404 errors or unexpected redirects, which can severely damage your rankings.

3. Manage Custom Taxonomies and Archive Pages

Custom Post Types often rely on custom taxonomies (e.g., a "Books" CPT might use a "Genre" taxonomy instead of standard categories). While taxonomies are great for organizing content, they can easily cause duplicate content issues if not managed properly.

To prevent keyword cannibalization and ensure a great user experience, keep these best practices in mind:

  • Write Unique Descriptions: Do not leave your custom taxonomy archive pages empty. Add unique, helpful introductory text to each category or tag page to give search engines context.
  • Use Noindex Wisely: If a custom taxonomy only contains one or two posts, it might create a "thin content" page. Consider setting low-value taxonomy archives to noindex while keeping the main CPT archive indexed.
  • Enable Breadcrumbs: Breadcrumbs help Google understand the relationship between your individual custom posts, their taxonomies, and the main archive page.

Properly managing these indexation settings is key to maintaining a healthy site. You can read more about avoiding duplicate content in our comprehensive guide on Managing WordPress Archive and Tag Pages.

4. Implement Schema Markup for Custom Post Types

Standard WordPress posts usually default to "Article" or "BlogPosting" schema markup. However, if your Custom Post Type represents "Recipes," "Events," "Books," or "Services," applying article schema will confuse search engines.

To stand out in search results with rich snippets, you must map your CPTs to the correct schema types:

  • Identify the Correct Schema: Match your CPT to its real-world equivalent on Schema.org (e.g., Product, Event, LocalBusiness, or Course).
  • Map Custom Fields: If you use Advanced Custom Fields (ACF) to store data like prices, dates, or ratings, use an SEO plugin or custom code to map these fields directly into your schema output.
  • Test Your Markup: Use Google's Rich Results Test tool to ensure your custom schema is valid and free of critical errors.

Adding structured data is one of the most powerful ways to boost your organic click-through rate. For a step-by-step walkthrough, refer to our Schema Markup Guide in 2026.

5. Ensure CPTs Are Included in Your XML Sitemap

Even if your Custom Post Type is public and perfectly optimized, search engines cannot rank it if they do not know it exists. You must ensure your CPTs and their custom taxonomies are included in your XML sitemap.

If you are using popular SEO plugins like Rank Math, Yoast SEO, or SEOPress, this process is straightforward:

  1. Navigate to your SEO plugin's Sitemap Settings.
  2. Look for the Post Types section.
  3. Toggle the switch to "Show in Sitemap" or "Include" for your specific Custom Post Type.
  4. Do the same for your custom taxonomies under the Taxonomies tab if they provide unique value to searchers.
  5. Save your changes and verify the new URLs are visible by visiting yourdomain.com/sitemap_index.xml.

Summary Checklist for CPT SEO Success

To make sure your custom content is fully optimized for search engines, use this quick checklist before launching your next Custom Post Type:

Optimization Step Target Action
Registration Ensure public is set to true and has_archive is enabled.
Permalinks Keep slugs short, avoid conflicts with pages, and set with_front to false.
Sitemaps Verify that the CPT and its custom taxonomies are included in your XML sitemap.
Structured Data Apply specific Schema.org markup instead of generic article schema.
Internal Linking Link to your custom posts from relevant blog posts and main navigation pages.

By treating Custom Post Types with the same SEO rigor as your standard pages and posts, you can unlock massive organic traffic potential. Proper configuration, clean URLs, targeted schema, and smart indexation management will ensure Google understands, indexes, and ranks your custom WordPress content efficiently.

Want to automate your WordPress SEO? Try Rank+.

Like what you just read?

Open a Rank+ account and get this kind of automation on your own site.