I recently faced a strange breadcrumb issue on a client’s WordPress website built for a wildlife tour business.
The website was hosted on DreamHost and designed using the Divi Theme.
The client offers wildlife tour packages, safari trips, and destination-based travel plans. To organize the content properly, I created a custom post type for tour packages.
Initially, the custom post type slug was:
package
At the same time, the website also had a regular WordPress page called:
packages
Later, I realized the setup could become confusing for:
- users
- search engines
- breadcrumb structure
- future URL management
So I:
- deleted the old
packagespage - changed the custom post type slug from
packagetopackages
The URLs updated correctly across the site.
For example:
example.com/packages/ranthambore-safari-tour/
worked perfectly.
However, the Yoast SEO breadcrumb still showed:
/package/
instead of:
/packages/
Even though the actual URLs were correct.
After trying multiple solutions, the first fix solved the problem instantly.
The Fix That Worked for Me
Re-save WordPress Permalinks
This solved the issue immediately on the wildlife tour website.
Steps:
- Go to:
WordPress Dashboard → Settings → Permalinks - Do not change anything
- Click:
Save Changes
WordPress rebuilt the rewrite rules, and the Yoast breadcrumb instantly started showing the correct custom post type slug:
/packages/
This is the first solution you should always try after changing:
- custom post type slugs
- archive URLs
- taxonomy slugs
- permalink structures
Why This Happens
When you change a custom post type slug, WordPress updates rewrite rules. However, SEO plugins like Yoast often cache permalink structures internally for performance reasons.
As a result:
- frontend URLs may work correctly
- archive pages may open properly
- single post URLs may function normally
But breadcrumbs can still display old slug values.
This is common on websites with:
- custom post types
- tourism package structures
- Divi templates
- dynamic breadcrumb systems
Other Fixes to Try if Re-saving Permalinks Does Not Work
The first method fixed the issue for me. However, other WordPress setups may require additional troubleshooting.
Here are the other fixes worth checking.
1. Rebuild Yoast SEO Data
Modern versions of Yoast store SEO paths inside an internal indexing system.
Sometimes old slugs remain stored there.
Steps:
Go to:
SEO → Tools
or:
SEO → Settings
Then run:
- SEO Data Optimization
- Recalculate SEO Data
- Reindex SEO Data
The exact option depends on your Yoast version.
This forces Yoast to rebuild:
- breadcrumb paths
- internal URLs
- schema references
2. Check Your Custom Post Type Registration Code
Incorrect rewrite settings can cause breadcrumb mismatches.
Correct example:
register_post_type('packages', array(
'rewrite' => array(
'slug' => 'packages',
'with_front' => false
),
'has_archive' => 'packages',
));
One common mistake is updating the rewrite slug but forgetting to update:
'has_archive'
This can confuse Yoast breadcrumbs.
3. Clear All Website Caches
Caching systems may continue serving old breadcrumb structures.
Clear:
- WordPress cache plugins
- server cache
- object cache
- CDN cache
- browser cache
This is especially important on managed hosting setups.
4. Check Divi Breadcrumb Integrations
Since this project used Divi, I also verified whether the theme was overriding breadcrumb output.
Some themes:
- create custom breadcrumb systems
- cache structured data
- override Yoast breadcrumb functions
If you use Divi or Elementor, check:
- Theme Builder templates
- custom modules
- shortcode outputs
- dynamic content areas
5. Check for Hardcoded Yoast Breadcrumb Filters
Some developers customize breadcrumb links using WordPress filters.
Example:
add_filter('wpseo_breadcrumb_links', 'custom_function');
or:
add_filter('wpseo_breadcrumb_single_link', 'custom_function');
If old slugs exist there, Yoast will continue displaying outdated URLs.
Search:
- functions.php
- custom plugins
- snippets plugins
- child theme files
for:
wpseo_breadcrumb
6. Force WordPress to Rebuild Rewrite Rules Completely
If the issue still exists, try a full rewrite refresh.
Steps:
- Temporarily change slug:
packages → safari-packages - Save permalinks
- Change it back to:
packages - Save permalinks again
This forces WordPress to regenerate rewrite structures from scratch.
Why This Happens Frequently on Travel Websites
Tour and travel websites often use:
- custom post types
- destination URLs
- package archives
- layered taxonomies
- dynamic breadcrumbs
Because of this, permalink conflicts happen more often compared to normal blogs.
Example structures:
/packages/
/destinations/
/wildlife-tours/
/tour-type/
If page slugs and CPT slugs overlap, breadcrumb systems can retain old references.
Final Result
After re-saving permalinks, the breadcrumb updated correctly from:
/package/
to:
/packages/
Everything started working properly:
- wildlife package URLs
- archive pages
- Yoast breadcrumbs
- schema markup
- internal links
No additional plugin fixes were required.
Final Thoughts
If Yoast breadcrumbs show an old custom post type slug after changing URLs in WordPress, start by re-saving permalinks.
In many cases, that alone fixes the issue instantly.
If not, continue with:
- Rebuilding Yoast SEO data
- Checking CPT rewrite settings
- Clearing caches
- Reviewing theme integrations
- Inspecting breadcrumb filters
