How can I get a debug log for the sites guest user/public profile? [updated for Spring 18]

Go to Monitoring>Debug log.

Where you would normally put the username, put the name of the Site.

For example: If your site is called MySite, enter MySite as the user name. Shockingly undocumented, but this gives you the debug you're looking for.

ATTENTION:

Winter17 is making a change to this--you'll now need to ALSO set a specific cookie in the guest user's browser to enable this.

https://releasenotes.docs.salesforce.com/en-us/winter17/release-notes/rn_forcecom_debugging_guest_user.htm#rn_forcecom_debugging_guest_user

Related Idea Exchange Idea for Integrations

The requirement for such a cookie is incompatible when building web-hook services for 3rd parties, there is an Idea Exchange post here to provide an IP whitelist as an alternative.


Update from Spring '18 release notes:

In Winter ’17, we introduced a change that required guest users to set browser cookies to activate debug logging. We had the best of intentions: All your public site visitors share one guest user license. Thus, when you enable logging for the guest user, the visitors’ collective activities can fill your debug logs quickly, hitting the log-size limit and causing log truncation. Sadly, people didn’t like the Winter ’17 change. Setting cookies is complicated, and the change made collecting debug logs for public users’ asynchronous activity impossible. We’ve seen the error of our ways. Your public users no longer need a debug_logs browser cookie to trigger logging. This change applies to both Lightning Experience and Salesforce Classic.


Adding to Shane's answer-

The release notes which were linked to above include specific instructions for setting the cookie in Chrome, but not in Firefox. Here's one way of doing it in Firefox:

  1. Install the Cookies Manager+ add-on
  2. Create a cookie that looks like this: enter image description here

Chrome & Edge

The above answers are not so clear instructions for winter 17 release .For winter 17 release open the public site first by clicking on the links in the Develop | Sites | Site

And once you are in the site, use Chrome developer console or Edge developer console and key in below

document.cookie ="debug_logs=debug_logs;domain=.force.com";

The help article does a good job of explaining this.