Plenty of places for you to dive!!!
<rubs eyes>
Someone interested in WA on this site!?!?! This is unbelievable! Didn't think there even was anyone from WA on this site (c'mon people - prove me wrong!).
There are three sites that I have enjoyed which are pretty close to Perth:
1. Busselton jetty - people come from all over the world to scuba dive on Busselton jetty. Why scuba when you can freedive it - the deepest it gets is 8m - plenty of time to get to the bottom, have a snooze and find your way back to the top!! You'll see coral growing on the jetty and huge schools of fish. On a good day, the water is very flat and you have visibility to the bottom - feel like you are floating over all the pylons.
Busselton jetty is about 250 km south of Perth - not very far by WA standards and well worth the trip. The history of the jetty itself is interesting enough.
2. Boyinaboat reef (Hillarys) - this reef is a 50m or so swim from shore. It is in a marine park so there are heaps of fish to see, as well as small stingrays, sea lions, the odd dolphin. There is also a dive trail with underwater plaques. The deepest it gets is about 5m, but there are plenty of swimthroughs and ledges to explore. As a bonus, it is only about 15km from Perth and there is a marina with cafes/restaurants if you get hungry!!
3. Bell Park, Rockingham. There is a dive trail with a number of small wrecks in depths to 20m or so. I haven't seen many fish here, but it is a good place to go if you want some deeper water and don't have a boat - you walk out about 50m and then the bottom drops off from 2m to 12m. The beach is very protected and the water is generally very flat most mornings.
Rockingham is about 50km south of Perth.
Though I must agree with you, you will have to check out Rottnest while you are in WA. If you don't already know, Rottnest is a very small island with lots of dive/snorkel sites all the way around it - so many that you won't know what hit you!! For $5 you can pick up a snorkelling guide that will tell you the best sites and how to get the best out of them.
With regards to the ningaloo reef - this is also excellent, but it is one hell of a drive from Perth if that is the way you are going to get there!! I highly recommend Coral Bay and Exmouth as bases to explore the ningaloo reef. The only thing is, if you want to get into some deep freediving you will want to know someone with a boat, as the reef goes out for miles and the water is only 4-5m deep at the max. The ningaloo's coral is all hard coral - I didn't find this as spectacular as the soft corals seen elsewhere, but there are loads of great fish to look at, as well as manta rays, whalesharks and so on.
There are also some potenially good sites further south of Busselton, but I have not as yet explored these - maybe someone else could comment.
I would also recommend the dive site guides published by CALM - two books at $15 each that cover the most popular scuba sites in WA - which is pretty much the best freedive sites as well.
So there you go . . . plenty to explore - how much time do you have available?!?!?!
Whatever you do - don't miss out on Rottnest!!
If you want any more info, don't hesitate to drop me a line.
Happy Diving!
Paul