進階URL設定

注意

搜尋引擎最佳化 (SEO) 已成為許多行銷人員的重點考量。因此,在許多 Adobe Experience Manager (AEM) as a Cloud Service 專案中,SEO 考量都是需要解決的問題。請閱讀 SEO和URL管理最佳作法 以取得其他資訊。

AEM CIF核心元件 提供進階設定,可自訂產品和類別頁面的URL。 許多實作會為了搜尋引擎最佳化(SEO)目的自訂這些URL。 以下影片詳細說明如何設定 UrlProvider 服務與功能 Sling對應 自訂產品和類別頁面的URL。

設定

若要設定 UrlProvider 服務(根據SEO需求和需求)必須提供 CIF URL提供者設定.

注意

自AEM CIF核心元件2.0.0版起,URL提供者設定僅提供預先定義的URL格式,而非1.x版已知的可自由文字設定的格式。 此外,在URL中使用選取器傳遞資料的做法已取代為尾碼。

產品頁面URL格式

這可設定產品頁面的URL並支援下列選項:

  • {{page}}.html/{{sku}}.html#{{variant_sku}} (預設)
  • {{page}}.html/{{sku}}/{{url_key}}.html#{{variant_sku}}
  • {{page}}.html/{{sku}}/{{category}}/{{url_key}}.html#{{variant_sku}}
  • {{page}}.html/{{sku}}/{{url_path}}.html#{{variant_sku}}
  • {{page}}.html/{{url_key}}.html#{{variant_sku}}
  • {{page}}.html/{{category}}/{{url_key}}.html#{{variant_sku}}
  • {{page}}.html/{{url_path}}.html#{{variant_sku}}

Venia Reference Store:

  • {{page}} 將替換為 /content/venia/us/en/products/product-page
  • {{sku}} 將替換為產品的sku,例如 VP09
  • {{url_key}} 將被產品的 url_key 屬性,例如 lenora-crochet-shorts
  • {{url_path}} 將被產品的 url_path,例如 venia-bottoms/venia-pants/lenora-crochet-shorts
  • {{variant_sku}} 將替換為目前選取的變體,例如 VP09-KH-S

由於 url_path 已遭取代,預先定義的產品URL格式會使用產品的 url_rewrites 並挑選路徑區段最多的區段,若 url_path 無法使用。

使用上述範例資料,使用預設URL格式格式化的產品變體URL看起來會像 /content/venia/us/en/products/product-page.html/VP09.html#VP09-KH-S.

類別頁面URL格式

這可設定類別或產品清單頁面的URL,並支援下列選項:

  • {{page}}.html/{{url_path}}.html (預設)
  • {{page}}.html/{{url_key}}.html

Venia Reference Store:

  • {{page}} 將替換為 /content/venia/us/en/products/category-page
  • {{url_key}} 將替換為類別的 url_key 屬性
  • {{url_path}} 將替換為類別的 url_path

使用上述範例資料,使用預設URL格式格式化的類別頁面URL看起來會像 /content/venia/us/en/products/category-page.html/venia-bottoms/venia-pants.html.

注意

url_pathurl_keys 產品或類別的祖先和產品或類別的 url_key 分隔 / 斜線。 每個 url_key 在指定商店內被視為唯一。

儲存特定配置

CIF URL提供者設定 可針對每個商店進行變更。

在CIF設定中,編輯器可以選取替代產品或類別頁面URL格式。 若未選取任何項目,則實作會回退至系統範圍設定。

變更即時網站的URL格式可能會對網站的自然流量造成負面影響。 請參閱 最佳實務 並事先謹慎規劃URL格式的變更。

CIF設定中的URL格式

注意

儲存URL格式的特定配置需要 CIF核心元件2.6.0 和最新版Adobe Experience Manager Content and Commerce附加元件。

類別感知產品頁面URL

由於可以將產品URL中的類別資訊編碼,因此多個類別中的產品也可以用多個產品URL來定址。

預設URL格式會使用下列配置來選取其中一個可能的替代方案:

  • url_path 由電子商務後端使用它來定義(已過時)
  • url_rewrites 使用以產品結尾的URL url_key 作為替代
  • 形成這些替代項目時,會使用路徑區段最多的
  • 如果有多個,請依電子商務後端提供的順序取用第一個

此配置將選取 url_path 以最祖先為基礎,假設子類別比父類別更具體。 所選 url_path 被視為 正則 和一律會在產品頁面或產品Sitemap中當作標準連結。

不過,當購物者從類別頁面導覽至產品頁面,或從一個產品頁面導覽至相同類別中的另一個相關產品頁面時,應保留目前的類別內容。 在此案例中, url_path 選取項目應偏好替代項目,而這些替代項目位於目前類別內容,而非 正則 選項。

此功能必須在 CIF URL提供者設定. 如果已啟用,則選取項目的評分會較高,當

  • 它們與給定類別的部分匹配 url_path 從開頭開始(模糊前置詞匹配)
  • 或者它們與指定類別的 url_key 隨處(完全部分比對)

例如,請考量 產品查詢 下方。 由於使用者位於「2022年夏季的新產品/新產品」類別頁面,且商店使用預設類別頁面URL格式,因此替代的「new-products/new-in-summer-2022/gold-cirque-earrings.html」會從頭開始符合上下文的2個路徑區段:「新產品」和「2022年夏季新產品」。 如果商店使用的類別頁面URL格式僅包含類別 url_key,則仍會選取相同的替代,因為它符合上下文的 url_key 隨處皆可。 在這兩種情況下,都會為"new-products/new-in-summer-2022/gold-cirque-earrings.html"建立產品頁面URL url_path.

{
  "data": {
    "products": {
      "items": [
        {
          "sku": "VA18-GO-NA",
          "url_key": "gold-cirque-earrings",
          "url_rewrites": [
            {
              "url": "gold-cirque-earrings.html"
            },
            {
              "url": "venia-accessories/gold-cirque-earrings.html"
            },
            {
              "url": "venia-accessories/venia-jewelry/gold-cirque-earrings.html"
            },
            {
              "url": "new-products/gold-cirque-earrings.html"
            },
            {
              "url": "new-products/new-in-summer-2022/gold-cirque-earrings.html"
            }
          ]
        }
      ]
    }
  }
}
注意

類別感知產品URL需要 CIF核心元件2.6.0 或更新版本。

特定類別和產品頁面

您可以建立 多類別和產品頁面 僅適用於目錄的特定類別或產品子集。

選擇標準

根據類別,直接選擇特定類別頁面 url_pathurl_key. 只有包含完整類別的URL格式才支援相符的子類別 url_path. 否則,只有 url_key 是可能的。

特定產品頁面會依產品的SKU或類別來選取。 後者需要在產品URL中編碼某些類別資訊。 這僅適用於部分預設URL格式。 請參閱下表以取得比較,了解哪些URL格式支援依SKU或類別選取特定頁面。

URL格式 按sku 依類別
{{page}}.html/{{url_key}}.html
{{page}}.html/{{category}}/{{url_key}}.html 僅完全匹配
{{page}}.html/{{url_path}}.html
{{page}}.html/{{sku}}.html
{{page}}.html/{{sku}}/{{url_key}}.html
{{page}}.html/{{sku}}/{{category}}/{{url_key}}.html 僅完全匹配
{{page}}.html/{{sku}}/{{url_path}}.html
注意

需要依類別選取特定產品頁面 CIF核心元件2.6.0 或更新版本。

深度連結

UrlProvider 已預先設定,以在製作層級例項上產生特定類別和產品頁面的深層連結。 對於編輯者來說,這很實用,他們可以使用預覽模式瀏覽網站、導覽至特定產品或類別頁面,然後切換回編輯模式以編輯頁面。

另一方面,在發佈層級例項上,目錄頁面URL應保持穩定,以免在搜尋引擎排名上失去增益。 因為該發佈層級例項預設不會呈現特定目錄頁面的深層連結。 若要變更此行為, CIF URL提供者特定頁面策略 可設定為一律產生特定頁面URL。

自訂

自訂URL格式

若要提供自訂URL格式,專案可在 ProductUrlFormatCategoryUrlFormat 服務介面,並將實作註冊為OSGI服務。 這些實作(若有)將取代已設定的預先定義格式。 如果已註冊多個實施,則服務排名較高的實施會以較低的服務排名取代該實施。

自訂URL格式實施必須實作一對方法,以從指定參數建立URL,並剖析URL以分別傳回相同參數。

結合Sling對應

除了 UrlProvider,也可以設定 Sling對應 以便重寫及處理URL。 AEM原型專案也提供 範例設定 為連接埠4503(發佈)和80(調度程式)設定某些Sling對應。

結合AEM Dispatcher

URL重新寫入也可透過使用AEM Dispatcher HTTP伺服器來達成,並搭配 mod_rewrite 模組。 此 AEM專案原型 提供參考AEM Dispatcher設定,其中已包含基本 重寫規則 ,取代所產生的大小。

最佳作法

選擇最佳URL格式

如在選取可用的預設格式之一,或甚至實作自訂格式前所述,高度取決於商店的需求和需求。 下列建議有助於做出有根據的決定。

使用包含SKU的產品頁面URL格式。

CIF核心元件會以SKU作為所有元件的主要識別碼。 如果產品頁面URL格式不包含SKU,則需要GraphQL查詢才能加以解析。 這可能會影響到首位元組時間。 此外,購物者可使用搜尋引擎,依SKU尋找產品。

使用包含類別內容的產品頁面URL格式。

CIF URL提供者的某些功能只有在使用產品URL格式時才可使用,這些格式可編碼類別內容,例如類別 url_key 或類別 url_path. 即使新商店可能不需要這些功能,但一開始使用其中一種URL格式有助於減少日後的移轉工作。

平衡URL長度與編碼資訊。

根據目錄大小,特別是類別樹的大小和深度,對完整目錄進行編碼可能不合理 url_path 的類別。 在這種情況下,只要包含類別的 url_key 。 這將支援使用類別時可用的大部分功能 url_path.

此外,請使用 Sling對應 以便將sku與產品結合 url_key. 在大部分的電子商務系統中,SKU會遵循特定格式,並將SKU與 url_key 對於傳入的請求,應該很容易。 有鑑於此,將產品頁面URL重新寫入 /p/{{category}}/{{sku}}-{{url_key}}.html,以及類別URL /c/{{url_key}}.html 分別來說。 此 /p/c 為了將產品和類別頁面與其他內容頁面區分開來,首碼仍然是必要的。

移轉至新URL格式

許多預設URL格式彼此不同程度地相容,這表示由某個格式轉換的URL可能會由另一個格式剖析。 這有助於在URL格式之間移轉。

另一方面,搜尋引擎需要一些時間,才能以新的URL格式重新編目所有目錄頁面。 若要支援此程式並改善一般使用者體驗,建議您提供重新導向,將使用者從舊的URL轉送至新的URL。

其中一個方法是將預備環境連結至生產電子商務後端,並設定為使用新的URL格式。 之後請取得 由CIF產品Sitemap產生器產生的產品Sitemap 針對預備和生產環境,並使用它們來建立 Apache httpd重寫映射. 此重新寫入地圖可與新URL格式的轉出一併部署至Dispatcher。

範例

Venia Reference Store 專案包含設定範例,以示範產品和類別頁面的自訂URL使用方式。 這可讓每個專案根據其SEO需求,為產品和類別頁面設定個別的URL模式。 CIF的組合 UrlProvider 和Sling對應已使用,如上所述。

注意

此設定必須與專案使用的外部網域一併調整。 Sling對應會根據主機名稱和網域運作。 因此,預設情況下會停用此設定,且必須在部署前啟用。 若要這麼做,請重新命名Sling對應 hostname.adobeaemcloud.com 資料夾 ui.content/src/main/content/jcr_root/etc/map.publish/https 根據使用的網域名稱,並借由新增 resource.resolver.map.location="/etc/map.publish"JcrResourceResolver 專案的設定。

其他資源

本頁內容