Last active
March 21, 2021 08:39
-
-
Save jeremyjaymes/403f1cb712d98e8c8a36c904055958d6 to your computer and use it in GitHub Desktop.
Hugo SEO Markup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<meta name="description" content="{{ if .IsHome }}{{ .Site.Params.description }}{{ else }}{{ .Description }}{{ end }}"/> | |
<meta name="robots" content="noodp"/> | |
<link rel="canonical" href="{{ .Permalink }}" /> | |
<!-- Twitter Card --> | |
<meta name="twitter:card" content="summary" /> | |
<meta name="twitter:description" content="{{ if .IsHome }}{{ .Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" /> | |
<meta name="twitter:title" content="{{ .Title }}{{ if .IsHome }} - {{ .Site.Params.Tagline }}{{ else }} - {{ .Site.Title }}{{ end }}" /> | |
<meta name="twitter:site" content="{{ .Site.Params.twitter }}" /> | |
<meta name="twitter:creator" content="{{ .Site.Params.twitter }}" /> | |
<!-- OG data --> | |
<meta property="og:locale" content="en_US" /> | |
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" /> | |
<meta content="{{ .Title }}{{ if .IsHome }} - {{ .Site.Params.Tagline }}{{ else }} - {{ .Site.Title }}{{ end }}" property="og:title"> | |
<meta content="{{ if .IsHome }}{{ .Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" property="og:description"> | |
<meta property="og:url" content="{{ .Permalink }}" /> | |
<meta property="og:site_name" content="{{ .Site.Title }}" /> | |
{{ range .Params.categories }}<meta property="article:section" content="{{ . }}" />{{ end }} | |
{{ if isset .Params "date" }}<meta property="article:published_time" content="{{ time .Date }}" />{{ end }} | |
<!-- JSON-LD --> | |
{{ if .IsHome }} | |
<script type="application/ld+json"> | |
{ | |
"@context": "http://schema.org", | |
"@type": "WebSite", | |
"url": "{{ .Permalink }}", | |
"name": "{{ .Site.Title }}", | |
"author": { | |
"@type": "Person", | |
"name": "{{ .Site.Params.author }}" | |
}, | |
"description": "{{ .Site.Params.description }}", | |
} | |
</script> | |
{{ end }} | |
{{ if .IsPage }} | |
<script type="application/ld+json"> | |
{{if eq .Section "post"}} | |
{ | |
"@context": "http://schema.org", | |
"@type": "BlogPosting", | |
"headline": "{{ .Title }}", | |
"genre": "{{ range .Params.categories }}{{ . }}{{ end }}", | |
"url": "{{ .Permalink }}", | |
"datePublished": "{{ time .Date }}", | |
"description": "{{ .Description }}", | |
"author": { | |
"@type": "Person", | |
"name": "{{ .Site.Params.author }}" | |
} | |
} | |
{{ else }} | |
{ | |
"@context": "http://schema.org", | |
"@type": "WebSite", | |
"url": "{{ .Permalink }}", | |
"name": "{{ .Title }}", | |
"author": { | |
"@type": "Person", | |
"name": "{ .Site.Params.author }}" | |
}, | |
"description": "{ .Site.Params.description }}", | |
} | |
{{ end }} | |
</script> | |
{{ end }} |
sorry, how to use it for hugo site?
I want to first point out that this is several years old so I can't guaranty it's validity. That said, it might help to have a look at it within the context of the theme I use it in - https://github.com/jeremyjaymes/jeremyjaymes.com/blob/master/themes/j/layouts/partials/seo.html
The template is used as a partial and called in the theme header, it then pulls in the necessary data depending on where you are within the site - e.g. a post page would output the relevant post data - title, publish date, etc.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This was forever ago but wanted to say thanks for pointing out those few issues, oddly enough it compiled without errors at the time. Anyway, I sort of fell of the grid shortly after posting this which is why I'm only just correcting the Gist and responding now. Thanks!