You can get a copy of the WSDL, manually edit it to remove unwanted artifacts, and store it in a known location. Once you have the version of your WSDL that removes unwanted artifacts, you can redirect the ?wsdl query to that location:
<behaviors>
<serviceBehaviors>
<behavior name="TestServiceBehavior">
<serviceMetadata httpGetEnabled="True" externalMetadataLocation="http://localhost/TestService.wsdl"/>
</behavior>
</serviceBehaviors>
</behaviors>
A couple caveats about this solution. You have to be careful about what you edit. If you change critical aspects of the contract, WCF may not be able to handle messages from clients generated from it. Removing an endpoint is generally not a big deal, however changing names for bindings, operations, message types, etc. can cause problems.
You also need to be aware of imports. The WSDL generated by WCF usually defines the endpoints, then imports another .wsdl that defines the actual service contract. The service contract wsdl in tern usually imports several .xsd files that define your message and data types. You will need to make sure you have copies of these uploaded relative to the root .wsdl, and that you update the import elements to reference them appropriately.
Another issue with this is that you are now manually controlling your contract...which means if you change it, you have to edit it again and replace it on whatever site you are hosting the .wsdl file. Now, a properly designed contract should NEVER change, as that breaks one of fundamental SOA rules about web services. However, it appears that you are doing code-first development, so its something to be aware of.