diff --git a/conf/app.ini b/conf/app.ini
index 07c3a1d21c..47dcffc37e 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -74,6 +74,11 @@ ORG_PAGING_NUM = 50
 ; Number of repos that are showed in one page
 REPO_PAGING_NUM = 15
 
+[ui.meta]
+AUTHOR = Gitea - Git with a cup of tea
+DESCRIPTION = Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go
+KEYWORDS = go,git,self-hosted,gitea
+
 [markdown]
 ; Enable hard line break extension
 ENABLE_HARD_LINE_BREAK = false
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index 59cc755d03..5a0666ade2 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -226,6 +226,11 @@ var (
 		User struct {
 			RepoPagingNum int
 		} `ini:"ui.user"`
+		Meta struct {
+			Author      string
+			Description string
+			Keywords    string
+		} `ini:"ui.meta"`
 	}{
 		ExplorePagingNum:   20,
 		IssuePagingNum:     10,
@@ -248,6 +253,15 @@ var (
 		}{
 			RepoPagingNum: 15,
 		},
+		Meta: struct {
+			Author      string
+			Description string
+			Keywords    string
+		}{
+			Author:      "Gitea - Git with a cup of tea",
+			Description: "Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go",
+			Keywords:    "go,git,self-hosted,gitea",
+		},
 	}
 
 	// Markdown settings
diff --git a/modules/templates/helper.go b/modules/templates/helper.go
index dd8a0fdd35..2e756ce364 100644
--- a/modules/templates/helper.go
+++ b/modules/templates/helper.go
@@ -110,6 +110,15 @@ func NewFuncMap() []template.FuncMap {
 		"ThemeColorMetaTag": func() string {
 			return setting.UI.ThemeColorMetaTag
 		},
+		"MetaAuthor": func() string {
+			return setting.UI.Meta.Author
+		},
+		"MetaDescription": func() string {
+			return setting.UI.Meta.Description
+		},
+		"MetaKeywords": func() string {
+			return setting.UI.Meta.Keywords
+		},
 		"FilenameIsImage": func(filename string) bool {
 			mimeType := mime.TypeByExtension(filepath.Ext(filename))
 			return strings.HasPrefix(mimeType, "image/")
diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl
index f4b883335e..a80075513d 100644
--- a/templates/base/head.tmpl
+++ b/templates/base/head.tmpl
@@ -5,9 +5,9 @@
 	<meta http-equiv="x-ua-compatible" content="ie=edge">
 	<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
 	<meta name="theme-color" content="{{ThemeColorMetaTag}}">
-	<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}Gitea - Git with a cup of tea{{end}}" />
-	<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go{{end}}" />
-	<meta name="keywords" content="go, git, self-hosted, gitea">
+	<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" />
+	<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}" />
+	<meta name="keywords" content="{{MetaKeywords}}">
 	<meta name="referrer" content="no-referrer" />
 	<meta name="_csrf" content="{{.CsrfToken}}" />
 	<meta name="_suburl" content="{{AppSubUrl}}" />
@@ -68,7 +68,7 @@
 	<meta property="og:type" content="website" />
 	<meta property="og:image" content="{{AppSubUrl}}/img/gitea-lg.png" />
 	<meta property="og:url" content="{{AppUrl}}" />
-	<meta property="og:description" content="Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go">
+	<meta property="og:description" content="{{MetaDescription}}">
 {{end}}
 </head>
 <body>