What is URL Canonicalization and how to configure it in ATG Endeca integrated environment? - SEO

Why Canonicalization?
Dynamic sites often produce syntactically different URLs for the same page. Multiple variant URLs result in duplicate content and therefore lower natural search engine ranking. Canonicalizing your URLs reduces that duplicate content and improves search engine ranking. 

Example: User navigation flow and URL's generated
Category: Appliances  - Cooking - Cooktops  - Electric Cooktops
Brand:  GE , Electrolux
/Appliances-Cooking-Cooktops-Electric-Cooktops/Electrolux/GE/N-5yc1vZc3qaZloZarw

Category: Appliances  - Cooking - Cooktops  - Electric Cooktops
Brand:  Electrolux, GE
/Appliances-Cooking-Cooktops-Electric-Cooktops/Electrolux/GE/N-5yc1vZc3qaZloZarw
Regardless of different navigation flow only one URL is generated due to URL canonicalization.
How to configure it in ATG Endeca integrated environment? 
Configure below components in ATG.
/config/atg/endeca/url/basic/SeoUrlFormatter.properties
navStateCanonicalizer=/atg/endeca/url/basic/NavStateCanonicalizer
/config/atg/endeca/url/basic/NavStateCanonicalizer.properties
$class=com.endeca.soleng.urlformatter.seo.SeoNavStateCanonicalizer
$scope=request
sortByName=true
sortByDimension=true
ascending=true
ignoreCase=false

How to exclude child products and skus of Category from Endeca indexing? - ATG Endeca Integration

Scenario:
Best use case scenario where customer wants to exclude all non navigable(Unsited) Product's and SKU's. 

How to configure it? 
BCC Screen shot with Non Navigable Category and Product/SKU's: 
 


Use below component to add Non Navigable category Id to the exclude list.

/dyn/admin/nucleus/atg/commerce/endeca/index/CategoryTreeService/?propertyName=excludedItemsCategoryIds 


 

By default, the excludedItemsCategoryIds property of CategoryTreeService is configured to get its value from the excludedItemsAncestorIds property of the ProductCatalogOutputConfig component:

excludedItemsCategoryIds^=\
/atg/commerce/search/ProductCatalogOutputConfig.excludedItemsAncestorIds