Функционал сайта можно разделить на две группы:
- Встроенный, обеспечиваемый CMS;
- Дополнительный, обеспечиваемый внешними подключаемыми модулями;
Допустим, вам нужен чат на сайте, а какой-то другой сайт предоставляет такой функционал сторонним пользователям. В таком случае вы можете добавить на все страницы своего сайта специальный Javascript код, который будет загружать внешний модуль чата. Загружаемый модуль не принадлежит вашему сайту и управляется через личный кабинет того сайта, который предоставляет вам эту услугу.
Виджет это:
внешний модуль, автоматически загружаемый со стороннего сайта при показе страницы для обеспечения какого-то нужного функционала.
К виджетам относятся модули различных чатов, обратные звонки, различные «удержатели клиентов» и тому подобное. Самостоятельно разрабатывать такое не всегда выгодно и возможно (типичный пример — обратный звонок). Виджеты бывают как платные, так и бесплатные. Очень часто бесплатные версии имеют сильно ограниченный функционал.
Стоит помнить о том, что все виджеты загружаются с другого сайта, а значит задерживают загрузку ваших страниц. В определённых случаях страница может не загрузиться вовсе, если сайт виждета недоступен или работает нестабильно (типичный пример — модули от ВКонтакте).

