I have been trying to speed up a Drupal site and measuring speed through page speed insight. What really has puzzled me for last few weeks of experiments is that node pages score an average of 170-200ms on 'initial server response time' while taxonomy pages (which are far more important from SEO speed point of time) take an average of 720-750ms in terms of initial page response time.

(Drupal 7, Nginx, Php-fpm, large site with over 100K nodes).

These are all cached pages (tried both Database and Memcache) using Page cache for anonymous users. Why is it taking 4 times more longer for Drupal to serve cached HTML of a term page versus cached HTML of a node page?

I am really stumped. Only time this changes is when I restart the Php-fpm. For a few minutes, term pages are close to 300ms before going back to 700+ms in few minutes.

Any ideas on what could be causing this? Could it be a php configuration issue?

  • Update - Changing Opcache to file cache has shaved 100ms off slow pages. I guess this explains why site feels faster after restarting php-fpm. Credit to this thread: forums.cpanel.net/threads/…
    – JM John
    Commented Feb 13, 2023 at 0:08
  • 2
    The only way to know for sure is to profile.
    – mona lisa
    Commented Feb 13, 2023 at 0:20
  • 1
    Have you confirmed (by headers or stepping through the code) that the pages are definitely being served from cache?
    – Clive
    Commented Feb 13, 2023 at 1:19
  • @Clive yes definitely going through Cache. Without Cache, those pages take over a second.
    – JM John
    Commented Feb 13, 2023 at 2:06
  • 1
    Technically an answer to this question is "Upgrade to Drupal 10". Current releases have essentially solved this problem. In Drupal 7 I think you have to fiddle around with the Expire module.
    – mona lisa
    Commented Feb 13, 2023 at 3:55

1 Answer 1


Finally got it to work.

Mistake I made was following.

While setting Cache for views, in the block setting page, I had selected 'Cache for every page'. This was generating and saving a copy of cache for lots of utm parameters/tracking variables and filled up Memcache instance.

Due to amount of views present on term pages, it was slowly them down.

Not the answer you're looking for? Browse other questions tagged or ask your own question.