Before I start, it will be a good idea to check out [my answer][1] to the following post - https://wordpress.stackexchange.com/questions/199873/what-is-singular-php/199880#199880 It will give you some more insight As I stated in the linked answer, You can have a fully functional website with just `index.php` as template to display posts with for all pages What you are doing is fine, and if there are any speed difference, it should be very very minute. I would however stress that your approach might have the drawback of one templates having to do to much. Because you would want to do things differently for different pages, it will be a good idea to create those templates needed the relevant page loads. As I said, if there is any speed difference with any method, it would be really very very minute which you will not worry about. Having different templates for different pages with different layouts do have the advantage of that you do not overload one template with a lot of unnecessary code. For extra reference, see [my answer][2] to the following post as well - https://wordpress.stackexchange.com/questions/200159/should-i-write-a-php-function-in-home-php [1]: https://wordpress.stackexchange.com/a/199880/31545 [2]: https://wordpress.stackexchange.com/a/200164/31545