Is the Visayas the smallest main island in the Philippines?

Yes. Visayas is the smallest main island in the Philippines.

Luzon is the largest.

Mindanao is next to the largest.