diff --git a/src/models/data/SeoData.php b/src/models/data/SeoData.php index 04158c4..2e0fa66 100644 --- a/src/models/data/SeoData.php +++ b/src/models/data/SeoData.php @@ -377,8 +377,13 @@ public function getExpiry () */ public function getCanonical () { - if (empty($this->advanced['canonical'])) - return UrlHelper::siteUrl(Craft::$app->request->getFullPath()); + if (empty($this->advanced['canonical'])) { + $fullPathWithPagination = Craft::$app->request->getFullPath(); + $pathInfo = Craft::$app->request->getPathInfo(); + return ($subPath = strpos($fullPathWithPagination, $pathInfo . '/')) === false ? + UrlHelper::siteUrl($pathInfo) : + UrlHelper::siteUrl(substr($fullPathWithPagination, $subPath)); + } return UrlHelper::siteUrl($this->advanced['canonical']); }