As someone who has been using EE for years, and going about templating in exactly the manner you are trying to for those many years, and who is just now learning a much easier way, I would like to suggest you look into using Stash.
The difference is that in the EE templating method you are pursuing, and that I and many others used for years is that your markup is spread throughout so many difference templates, snippets, global variables and more. The idea with Stash is that you have one (maybe two for very complicated sites) wrapper template.
I create one template in a template group called wrappers, then I do a single embed of this template in each of the actual site templates I create.
{!-- Embed the Primary Template --}
{embed="_wrappers/_main"}
Then, by using Stash, you can “inject” content from the template you are loading via URL into the wrapper template that is embedded.
Setting Content:
{exp:stash:set name="stuff"}stuff goes here{/exp:stash:set}
Calling set content in the embedded template:
{exp:stash:get name='stuff'}
When you really start exploring the possibilities of this method, a whole new world opens up. All your primary code is or can be stored in one template. The code that changes from template to template is stored in those templates.
Just to give you an idea of the possibilities, I don’t just use Stash to set content in the wrapper template, I use it to set certain variables too. Using the excellent Switchee (you can use {if} statements as well), I can control various aspects of the wrapper template. For instance on the site I’m working on right now, the client wants a sidebar to appear on some pages, on others, not. But in most respects is simple enough to use only one wrapper template. So I’ve set up Switchee case logic to turn the sidebar on or off by getting the value of one of my Stash sets.
{!-- Show the Sidebar? Possible Values are: "sidebar" "nosidebar" --}
{exp:stash:set name="template_type"}sidebar{/exp:stash:set}
The reason I’m bringing this up is because I wish I had know about this method sooner. It makes templating so much easier, and makes it a lot less of a hassle to keep track of where everything is.
There's value in tempting with snippets and global variables, but going this route with Stash is the method I always recommend using now if at all possible.
I still use Variables and Snippets to be sure, but not very many.