diff --git a/layouts/partials/seo.html b/layouts/partials/seo.html
new file mode 100644
index 00000000000..e1ae8ae8a14
--- /dev/null
+++ b/layouts/partials/seo.html
@@ -0,0 +1,135 @@
+
+ {{ with .Params.metaTitle }}
+ {{ . }}
+ {{ else }}
+ {{ if eq .Section "tags" }}
+ {{ .Title }} Blog Posts by Rancher
+ {{ else }}
+ Rancher Docs: {{ .Title }}
+ {{ end }}
+ {{ end }}
+
+
+{{- .Scratch.Set "permalink" .Permalink -}}
+{{- if (and .Pages (not .IsHome)) -}}
+ {{/*
+ Hugo doesn't generate permalinks for lists with the page number in them,
+ which makes all the pages of a list look lik the same page to a search
+ engine, which is bad.
+ */}}
+
+ {{- $by := .Params.pageBy | default .Site.Params.pageBy | default "default" -}}
+ {{- $limit := .Site.Params.pageLimit | default 10 -}}
+
+ {{- if (eq .Site.Params.pageBy "newest") -}}
+ {{- $paginator := .Paginate .Pages.ByDate.Reverse $limit -}}
+ {{- .Scratch.Set "paginator" $paginator -}}
+ {{- else if (eq .Site.Params.pageBy "title") -}}
+ {{- $paginator := .Paginate .Pages.ByTitle $limit -}}
+ {{- .Scratch.Set "paginator" $paginator -}}
+ {{- else -}}
+ {{- $paginator := .Paginate $limit -}}
+ {{- .Scratch.Set "paginator" $paginator -}}
+ {{- end -}}
+
+ {{- $paginator := .Scratch.Get "paginator" -}}
+ {{- if (gt $paginator.PageNumber 1) -}}
+ {{ .Scratch.Set "permalink" ($paginator.URL | absURL) }}
+ {{- end -}}
+
+ {{ with $paginator.Prev -}}
+
+ {{- end }}
+ {{ with $paginator.Next -}}
+
+ {{- end }}
+{{- end -}}
+
+ {{ $permalink := .Scratch.Get "permalink" }}
+ {{ if .Params.canonical }}
+
+ {{ end }}
+
+ {{ if .RSSLink -}}
+
+ {{- end }}
+
+ {{ if eq .Section "tags" }}
+
+ {{ else }}
+
+ {{ end }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ range .Params.categories }}{{ end }}
+ {{ if isset .Params "date" }}{{ end }}
+
+{{- if .IsHome -}}
+
+{{- else if .IsPage -}}
+
+{{ end }}