diff --git a/analysis/app/app.go b/analysis/app/app.go
index 9e362c1..d8cb399 100644
--- a/analysis/app/app.go
+++ b/analysis/app/app.go
@@ -20,6 +20,7 @@
 
 // RegisterOnMux registers the app's URLs on mux.
 func (a *App) RegisterOnMux(mux *http.ServeMux) {
+	mux.HandleFunc("/", a.index)
 	mux.HandleFunc("/search", a.search)
 	mux.HandleFunc("/compare", a.compare)
 }
@@ -37,3 +38,8 @@
 	//q := r.Form.Get("q")
 	a.compare(w, r)
 }
+
+// index redirects / to /search.
+func (a *App) index(w http.ResponseWriter, r *http.Request) {
+	http.Redirect(w, r, "/search", http.StatusSeeOther)
+}
diff --git a/analysis/app/compare.go b/analysis/app/compare.go
index 0ed01bd..93b8721 100644
--- a/analysis/app/compare.go
+++ b/analysis/app/compare.go
@@ -222,6 +222,10 @@
 }
 
 func (a *App) compareQuery(q string) *compareData {
+	if len(q) == 0 {
+		return &compareData{}
+	}
+
 	// Parse query
 	prefix, queries := parseQueryString(q)
 
diff --git a/analysis/appengine/template/compare.html b/analysis/appengine/template/compare.html
index afe1cea..6ba7c28 100644
--- a/analysis/appengine/template/compare.html
+++ b/analysis/appengine/template/compare.html
@@ -89,65 +89,76 @@
       </form>
     </div>
     <div id="results">
-      {{with .Error}}
-      <p>{{.}}</p>
+      {{if not .Q}}
+        <p>The Go Performance Dashboard provides a centralized
+          resource for sharing and analyzing benchmark results. To get
+          started, upload benchmark results using
+          <code>go get -u golang.org/x/perf/cmd/benchsave</code>
+          and
+          <code>benchsave old.txt new.txt</code>
+          or upload via the web at
+          <a href="https://perfdata-dot-golang-org.appspot.com/upload">https://perfdata-dot-golang-org.appspot.com/upload</a>.</p>
       {{else}}
-        <table id="labels">
-          {{with .CommonLabels}}
-            <tbody>
-              <tr>
-                <th>label</th><th>common value</th>
-              </tr>
-              {{range $label, $value := .}}
+        {{with .Error}}
+        <p>{{.}}</p>
+        {{else}}
+          <table id="labels">
+            {{with .CommonLabels}}
+              <tbody>
                 <tr>
-                  <th class="label">{{$label}}</th><td>{{$value}}</td>
+                  <th>label</th><th>common value</th>
                 </tr>
-              {{end}}
-            </tbody>
-          {{end}}
-          <tbody class="diff">
-            <tr>
-              <th>label</th>
-              <th>values</th>
-            </tr>
-            {{range $label, $exists := .Labels}}
-            <tr class="diff">
-              <th class="label">{{$label}}</th>
-              <td>
-                {{range $index, $group := $.Groups}}
-                <div class="query">{{$group.Q}}:</div>
-                <table>
-                  {{with index $group.LabelValues $label}}
-                    {{range .TopN 4}}
-                      <tr>
-                        <td class="count">
-                          {{.Count}}
-                        </td>
-                        <td>
-                          {{if eq .Value ""}}
-                            missing
-                          {{else if eq .Value "…"}}
-                            {{.Value}}
-                          {{else}}
-                            <a href="/search?q={{addToQuery $.Q (printf "%s:%s" $label .Value)}}">
-                              {{printf "%q" .Value}}
-                            </a>
-                          {{end}}
-                        </td>
-                      </tr>
-                    {{end}}
-                  {{end}}
-                </table>
-              {{end}}
-              </td>
-            </tr>
+                {{range $label, $value := .}}
+                  <tr>
+                    <th class="label">{{$label}}</th><td>{{$value}}</td>
+                  </tr>
+                {{end}}
+              </tbody>
             {{end}}
-            </tbody>
-        </table>
-        <div id="benchstat">
-          {{.Benchstat}}
-        </div>
+            <tbody class="diff">
+              <tr>
+                <th>label</th>
+                <th>values</th>
+              </tr>
+              {{range $label, $exists := .Labels}}
+              <tr class="diff">
+                <th class="label">{{$label}}</th>
+                <td>
+                  {{range $index, $group := $.Groups}}
+                  <div class="query">{{$group.Q}}:</div>
+                  <table>
+                    {{with index $group.LabelValues $label}}
+                      {{range .TopN 4}}
+                        <tr>
+                          <td class="count">
+                            {{.Count}}
+                          </td>
+                          <td>
+                            {{if eq .Value ""}}
+                              missing
+                            {{else if eq .Value "…"}}
+                              {{.Value}}
+                            {{else}}
+                              <a href="/search?q={{addToQuery $.Q (printf "%s:%s" $label .Value)}}">
+                                {{printf "%q" .Value}}
+                              </a>
+                            {{end}}
+                          </td>
+                        </tr>
+                      {{end}}
+                    {{end}}
+                  </table>
+                {{end}}
+                </td>
+              </tr>
+              {{end}}
+              </tbody>
+          </table>
+          <div id="benchstat">
+            {{.Benchstat}}
+          </div>
+        {{end}}
       {{end}}
-      </div>
+    </div>
   </body>
 </html>
