How can I remove a spam page from my website index?

Chiming in to say we have a client experiencing this as well.

To Shopify staff: this is a bug. When you request a path of /collections/something?q=foo, {{ collection.title }} should not be outputting “foo” because the collection object should be nil, assuming collection “Something” doesn’t exist. In fact, it should 404. But in the case of “Vendors” it loads as if the collection exists and passes the value of q into the title property.

Passing this off as “any site will do this” is simply not true. While yes, you can throw any parameter in a URL, the server has to actually accept the parameter and do something with it. In the case of “Vendors”, Shopify should be returning a 404 (not a 200) when no such collection exists. All the workarounds suggested in this thread are bandaids and don’t address the root problem.