Из опыта своего велосипеда.
Создать фтп акаунт, где храниться по номерам версий обновленные файлы, пример 35004
в папке содержится
upd_conf.txt — список обновленных файлов, пример
[files/onlineprice]
files = "index.php;price.exe"
[site/admpanel/catalog]
files = "adm_catalogID.php;tree.php"
2. config_update.txt — список изменений дял внесения в конфиг сайта. в даннмо случае новый номер релиза
[upload]
version="35004";
Сам сайт имеет свой конфиг, где прописан номер релиза.
Написать php функцию проверки обновления, которая берет версию из своего релиза, идет на фтп с обновлениями, если есть папка, то читает список измененных файлов и грузит их себе. Обновляет номер релиза в локальном конфиге.
Если на сайте есть персональные доработки, то в локальном конфиге создать список файлов, запрещенных для обновлений.