Do not include certain pages from Search
I haven't tried this in Drupal 7, but it doesn't seem to have changed much. There is an easy "hack" and a "better" way to do this:

The easy way is to override search-result.tpl.php. You can copy the default search-result.tpl.php file from the core search module into your theme. Then, inside the template you can use code like this to exclude results based on node ID:

 if ($result["node"]-&gt;nid != &lt;excluded nid&gt;) {
      // search result display code
 }


The only drawback with this approach is that you will have certain pages of search results that have less results than others (if you show 10 results per page and you don't display 3 on one page, then you will only have 7 results). You could also do similar hiding in template_preprocess_search_result with the same drawback.

The right/"better" way to do this is to actually exclude the list of nodes from ever being indexed. To do that you'll have to implement hook_query_alter. You can check out a post describing exactly how to do this over on Phase2's blog.

As you can see in the blog entry, you can also exclude by content type.

Note that the Drupal 6 way was to use hook_db_rewrite_sql. There is a post over at Lullabot on that.