I manage a website where the owner categorizes everything via taxonomy. However, he's extremely detailed when it comes to categorizing things. He has 1073 taxonomy terms, about 1000 of which are in one single vocabulary. The node edit screen takes 10-15 seconds to load!

I've told him he needs to consolidate but he's not going to.

Does anybody have any advice for performance tuning? Changing to the ajax autocomplete control isn't an option because he needs to be able to see the hierarchy.

2 Answers 2


1000 terms is not so bad, really. I am inclined to believe the number of terms in your vocabulary is not what has the most impact on response time, as MySQL can handle much larger datasets out of the box. One factor to consider is the hierarchy of your taxonomy, or the number of levels it has. A vocabulary with 3-level-deep hierarchy will be much slower than a vocabulary that is implemented as flat hierarchy.


  • Overall site performance isn't bad. It's editing nodes. And it's not flat, it's 6 levels deep.
    – McAden
    Commented Dec 2, 2011 at 7:25
  • Oh, there you go. Consider implementing a design that works around this, caching or limiting the editing to a few subcategories somehow? Another option, may be to split the vocabulary tree horizontally. Go less than 6 levels, even dropping to 4 would greatly reduce response time, 3 levels deep would be even better, if possible. I never go more much than 3 levels deep myself because of this issue. Yet another possibility is with db_query_alter, splitting into smaller queries the call for this but that is another story. Commented Dec 2, 2011 at 7:49

If you have 1000 taxonomy items in a select list, that would cause slowness on node add/edit

If you change it to free tagging this problem should go away, although if your client really wants to pick from a drop down list, that might not work for them.

I run several sites, some have 10k terms in the tags vocabulary but since it's not in a drop down it doesn't cause any problems at all.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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