How can I defer parsing of Javascript on my Drupal 7 site?
Given that nearly everything in Javascript for Drupal is triggered by a $(document).ready() in jQuery, I don't see any real advantage to using defer.  In fact, I recently had a real headache1 from some code I inherited that mixed the two.

One recommendation (I think YSlow suggests it) that you can do is to move scripts to the end, right before the closing &lt;/body&gt;.  This would mean moving the &lt;?php print $scripts; ?&gt; in your html.tpl.php.  While not deferring the parsing, it does delay the loading so your page renders out quicker, and I have never had any problems in Drupal doing this.

If you do want to add the defer, you need to implement hook_js_alter:

function mymodule_js_alter (&amp;$javascript)
{
  $javascript['misc/drupal.js']['defer'] = TRUE;
}


If you want to defer everything, you could try

function mymodule_js_alter (&amp;$javascript)
{
  foreach ($javascript as $key =&gt; $value) {
    $javascript[$key]['defer'] = TRUE;
  }
}


Otherwise, most of the normal Pagespeed fixes don't have much to do with Drupal itself.  As long as you deploy with JS and CSS aggregation enabled you should be good.  Configure Apache to use compressed responses and decent cache lifetimes and I don't think PageSpeed will complain about much and give you all A's and B's.