Geraldton is the crayfish capital of Western Australia, and during the season — roughly mid-November through June — you can buy live western rock lobsters directly from fishing boats and processing facilities at the harbour for a fraction of what you would pay anywhere else in Australia. The going rate fluctuates with the catch, but a decent-sized cray (around 600-700g) is usually significantly cheaper here than in Perth or Sydney.
The practical approach is to ask at your accommodation where to buy direct, since the best deals are often informal — fishermen selling off the back of trucks rather than at a formal market. Several waterfront shops and the harbour foreshore area also sell fresh crayfish and cooked seafood during the season. If you're self-catering, this is the meal that defines a Geraldton visit.
The foreshore around the Batavia Coast Marina is also a pleasant place to eat, with harbour views and a cluster of cafes and restaurants.