WebTemplates and Site Definitions
Deciding Between Custom Web Templates and Custom Site Definitions
Site Definitions vs. Web Templates
A site definition is the basic blueprint for a site, including how it
looks, what lists it contains, default navigational structures, and so
on. You normally create a site definition by hand-editing CAML.
A site template can be created from within the Sharepoint application,
and is basically a "diff" between the site definition and any changes
made since the site was created. A site template is based on the
underlying site definition, which means that if you create a new site
from a template, and later change the underlying site definition, you
run the very real risk of irreversibly screwing up your site.
A best practice is to configure a minimal site definition that, once
created, is never modified again, and use site templates to store
Above taken from here:
Site Features vs Site Templates vs Site Definitions
I hope this helps!