Currently, the Company Object looks for an exact match on the company/business name to associate that contact to a company.
The issue is that not everyone in that company uses the same name .. ie: GW Sporting Center vs. GW Sports vs. GW Sporting Goods. Instead, why not match by the email domain .. ie: xxx@GlennSports.com since everyone in that company will have the same email domain.
In my case, I had 15 employees opt-in to a newsletter and 7 different companies were created since they used different company name.
The other issue is that since the Chat Widget has no Company Name field, those contacts appear orphaned and never will get associated with a company.