I had asked a similar question, comparing the actual similarity of Cantonese and Hakka. You can look it up if interested. user3306356 's answer inspired me to answer this question.
In my opinion, Cantonese is not a dialect but in-fact a language.
It works by using the standard for mutual intelligibility. " If two languages are 80% intelligible (or more) with each other, then they are dialects of one language rather than two separate languages."
I would like to draw your attention to the two tables below:
I will assume 'Chinese' to be speakers in Beijing and 'Cantonese' to be speakers in Guangzhou.
While Guangzhou listeners could understand 63% of isolated words from Beijing speakers, Beijing listeners could only understand a mere 34% of isolated words in the Guangzhou dialect (i.e Cantonese).
It gets more interesting here, while looking at comprehension of entire sentences:
Guangzhou listeners were able to understand 93% of spoken sentences from Beijing speakers. Wow! It exceeds 80% and is tempting to consider Cantonese as a dialect.
Beijing speakers were able to understand 3% of spoken sentences from Guangzhou speakers.Yes, just 3%.
The results are summarised below, for sentences:
According to the 80% test, because the two languages are less than 80% intelligible with each other, Mandarin Chinese and Cantonese are two separate languages.
So while Guangzhou speakers (Cantonese) can understand Beijing speakers (Mandarin) very well, the converse is not true. With scores exceeding 90%, Beijing speakers and Guangzhou speakers can understand each other very well- showing that there is not much diversity of Mandarin and Cantonese in itself.