diff --git a/.env.example b/.env.example
index 5e1e32e..1cff520 100644
--- a/.env.example
+++ b/.env.example
@@ -1 +1,2 @@
 HP_ENV=
+HP_URL=
diff --git a/src/env.lisp b/src/env.lisp
index 4eec08a..0963396 100644
--- a/src/env.lisp
+++ b/src/env.lisp
@@ -2,7 +2,8 @@
   (:use #:cl)
   (:import-from #:cl-dotenv
                 #:load-env)
-  (:export #:hp-env))
+  (:export #:hp-env
+           #:hp-url))
 (in-package #:hp/env)
 
 (load-env (merge-pathnames "./.env"))
@@ -12,3 +13,4 @@
      (or (uiop:getenv ,var) "")))
 
 (env-var hp-env "HP_ENV")
+(env-var hp-url "HP_URL")
diff --git a/src/renderer.lisp b/src/renderer.lisp
index 53a730c..e799393 100644
--- a/src/renderer.lisp
+++ b/src/renderer.lisp
@@ -7,19 +7,22 @@
   (:import-from #:hsx/element
                 #:element)
   (:import-from #:hp/env
+                #:hp-url
                 #:hp-env))
 (in-package #:hp/renderer)
 
-(defun bust-cache (url)
-  (format nil "~a?v=~a" url #.(get-universal-time)))
+(defun path->url (path)
+  (concatenate 'string
+               (hp-url)
+               (and (not (string= path "/")) path)))
 
 (defparameter *metadata-template*
-  (list :title (lambda (title)
-                 (format nil "~@[~a - ~]~a" title "skyizwhite.dev"))
+  (list :title (lambda (title) (format nil "~@[~a - ~]~a" title "skyizwhite.dev"))
         :description "The personal homepage of Akira Tempaku (paku) - projects, thoughts, and more."
-        :og-url "https://skyizwhite.dev"
+        :canonical #'path->url
+        :og-url #'path->url
         :og-type "website"
-        :og-image "https://skyizwhite.dev/img/og.jpg"
+        :og-image (path->url "/img/og.jpg")
         :og-image-width 1024
         :og-image-height 1024))
 
@@ -31,8 +34,12 @@
                           (funcall template value)
                           (or value template)))))
 
+(defun bust-cache (url)
+  (format nil "~a?v=~a" url #.(get-universal-time)))
+
 (defcomp ~document (&key title
                          description
+                         canonical
                          og-url
                          og-type
                          og-image
@@ -54,6 +61,7 @@
        (meta :property "og:image" :content og-image)
        (meta :property "og:image:width" :content og-image-width)
        (meta :property "og:image:height" :content og-image-height)
+       (link :rel "canonical" :href canonical)
        (link :rel "icon" :type "image/x-icon" :href "/img/favicon.ico")
        (link :rel "apple-touch-icon" :href "/img/favicon.ico")
        (link :rel "stylesheet" :href (bust-cache "/style/dist.css"))