0
0
Wordpressframework~8 mins

Custom taxonomies in Wordpress - Performance & Optimization

Choose your learning style9 modes available
Performance: Custom taxonomies
MEDIUM IMPACT
Custom taxonomies affect page load speed by adding database queries and can impact rendering if taxonomy data is heavily used in templates.
Registering and displaying custom taxonomies on archive pages
Wordpress
<?php register_taxonomy('genre', 'post', array('hierarchical' => true, 'show_ui' => true, 'rewrite' => true)); ?>

// In template
$posts = get_posts(array('post_type' => 'post', 'tax_query' => array(array('taxonomy' => 'genre', 'field' => 'slug', 'terms' => 'fiction'))));
foreach ($posts as $post) {
  setup_postdata($post);
  echo get_the_title();
}
wp_reset_postdata();
Query posts filtered by taxonomy once, avoiding multiple queries inside loops.
📈 Performance GainSingle optimized query reduces database load and improves LCP.
Registering and displaying custom taxonomies on archive pages
Wordpress
<?php register_taxonomy('genre', 'post', array('hierarchical' => true, 'show_ui' => true, 'rewrite' => true)); ?>

// In template
$terms = get_the_terms(get_the_ID(), 'genre');
if ($terms && !is_wp_error($terms)) {
  foreach ($terms as $term) {
    echo $term->name;
  }
}
Using get_the_terms inside a loop triggers a separate database query for each post, causing many queries and slow page load.
📉 Performance CostTriggers N database queries where N = number of posts, increasing LCP and server response time.
Performance Comparison
PatternDatabase QueriesReflowsPaint CostVerdict
Querying taxonomy terms inside post loopN queries for N posts0Low[X] Bad
Querying posts filtered by taxonomy once1 optimized query0Low[OK] Good
Rendering Pipeline
Custom taxonomies add extra database queries during the server-side rendering phase, which delays HTML generation and thus affects the critical rendering path.
Server-side Rendering
Critical Rendering Path
⚠️ BottleneckDatabase query execution and data fetching
Core Web Vital Affected
LCP
Custom taxonomies affect page load speed by adding database queries and can impact rendering if taxonomy data is heavily used in templates.
Optimization Tips
1Avoid calling get_the_terms() inside loops to prevent multiple database queries.
2Use tax_query in WP_Query to fetch posts filtered by taxonomy in a single query.
3Cache taxonomy query results to reduce database load and improve page speed.
Performance Quiz - 3 Questions
Test your performance knowledge
What is the main performance issue when calling get_the_terms() inside a post loop?
AIt causes CSS to reflow multiple times.
BIt blocks JavaScript execution on the client.
CIt triggers a separate database query for each post, increasing load time.
DIt increases image download size.
DevTools: Network
How to check: Open DevTools, go to Network tab, reload the page, and look for multiple AJAX or page requests related to taxonomy queries.
What to look for: Multiple repeated requests or slow server response times indicate inefficient taxonomy queries.