Determining significance of a variable in a glm model
There is no better method, it's a matter of what you want to test or what is your question.
Using the anova() or aov(), test the terms collectively. For example, in your example with Substrate, the null hypothesis is that the coefficients are all zero, meaning cellulose =0, mannan =0 , ....
If the question is, &quot;do the isolate samples have a higher value than origin samples?&quot;, then you can use your first model, where free is set as the reference and you test whether the effect of isolate is non-zero. Likewise you can do this for substrate and set of them as your reference. You can also do other pairwise comparisons using this model.
If the question is, &quot;does origin have a significant effect on value, after controlling for substrate?&quot;, then you can use your second model.