Where you park depends on how close you want to get to Haystack Rock. You can easily see the rock by walking to the west from any location in Cannon Beach. When you get on the beach, you can see the rock. However, if you wish to see the marine life that lives around the rock, you will have to walk to to the rock. So the closer you park, the shorter the walk.
The closest public parking is a very small parking area on the east side of South Hemlock street near Viewpoint Terrace. There is a stairway leading down to the beach on the west side of South Hemlock Street, across the street from the parking area. This brings you onto the sand directly in front of Haystack Rock. However, at best, when people park well, usually only three cars can park here. The side streets in this area are very narrow and not suitable for parking.
If you arrive early in the day parking spaces may be available on Pacific Street, putting you close to the beach just north of Haystack Rock. To get to Pacific Street, go west on either West Dawes Avenue, which tee's into Pacific. Or go West Gower Avenue and turn left at the Wayfarer Restaurant. There is access to the beach from the west end of Gower Avenue, and a path from Pacific Street to the beach just south of the intersection with West Dawes.
Probably the best place to park is the public parking lot at the corner of So. Hemlock Street and Gower Avenue. It is next to the Cannon Beach City Hall. This parking lot includes three RV parking spots. To get to Haystack Rock walk west on Gower Avenue. Then cross the small foot bridge and go up the sand dune. When you get to the top of the sand dune you will see Haystack Rock a short distance away to the south. One of the advantages of this parking lot is that it also puts you close to several restaurants and coffee shops.
In the summer, on busy weekends the parking lots fill up early and you may need to park on a side street. Paths to the beach are available at the west end of the following streets: Harrison Street; Van Buren Street; and all streets from Jackson Street north to Washington Street. The further north you go the further away from Haystack Rock you'll be.
If you have little kids, parking in downtown and walking to Haystack Rock may be difficult. If you are pushing a stroller, walking on the sidewalk on Hemlock Street, to and back from midtown, is the best way to go. Kids who can do a 15-20 minute walk, will usually do okay walking on the beach from downtown Cannon Beach to Haystack Rock.
If you've just come to shop, there is a parking lot to the west of downtown, next to North Larch Street, and north of West First Street. However, beach parking is NOT allowed in this lot. It is available only for those who are shopping.
There are several parking lots to the west of downdown: A parking lot is available on North Spruce Street, just north of East First Avenue. A large parking area for RVs and cars is available on East Second street (east of Spruce Street). Both of these provide easy access to downtown and the beach... and you are still within walking distance of Haystack Rock (see above).