Why not create a "template" branch which has the stuff in common and merge that into the per-website branches? None of the customized stuff should ever appear in the template branch, and ideally the customized stuff would be isolated to special files, though that is not a strict necessity. If you can isolate to the file level, .gitignore the customized files on the template branch for safety.
When you make a change, change it on template and merge to each branch in turn. Each website should get the change applied to template and keep their customized work.