SlideShare a Scribd company logo
1 of 32
SEO in ATG
Kate Semizhon
Agenda
 SEO Repository: SEO
Tags
 Sitemaps
 SEF URLs
SEO REPOSITORY
DEMO
DEMO
/atg/seo/SEORepository
Rendering SEO Tags on Pages
<dsp:droplet name="/atg/dynamo/droplet/RQLQueryRange">
<dsp:param name="repository" value="/atg/seo/SEORepository" />
<dsp:param name="itemDescriptor" value="SEOTags" />
<dsp:param name="howMany" value="1" />
<dsp:param name="mykey" value="featured" />
<dsp:param name="queryRQL" value="key = :mykey" />
<dsp:oparam name="output">
<title><dsp:valueof param="element.title"/></title>
<dsp:getvalueof var="description" param="element.description"/>
<dsp:getvalueof var="keywords" param="element.keywords"/>
<meta name="description" content="${description}" />
<meta name="keywords" content="${keywords}"/>
</dsp:output>
</dsp:droplet>
Rendering SEO Tags on Pages
<dsp:droplet name="/atg/dynamo/droplet/RQLQueryRange">
<dsp:param name="repository"
value="/atg/seo/SEORepository" />
<dsp:param name="itemDescriptor" value="SEOTags" />
<dsp:param name="howMany" value="1" />
<dsp:param name="pageURL"
bean="/OriginatingRequest.servletPath" />
<dsp:param name="queryRQL" value="key = :pageURL" />
...
</dsp:droplet>
SITE MAP
Siteindex.xml
Steps of creating site maps
SitemapGeneratorService creates sitemaps
stores in
SitemapRepository
SitemapWriterService
writes out the
actual XML files
Ways to invoke sitegeneration
run automatically
run automatically after a CA deployment
invoking them manually
SitemapGeneratorService
SitemapGeneratorService
$class=atg.sitemap.SitemapGeneratorService
$scope=global
schedule=calendar * * . . 1 .
scheduler=/atg/dynamo/service/Scheduler
clientLockManager=/atg/dynamo/service/ClientLockManager
lockName=SitemapGeneratorService
sitemapGenerators=
/atg/sitemap/ProductSitemapGenerator,
/atg/sitemap/CategorySitemapGenerator,
/atg/sitemap/StaticSitemapGenerator
sitemapIndexGenerator=/atg/sitemap/SitemapIndexGenerator
sitemapRepository=/atg/sitemap/SitemapRepository
sitemapPropertiesManager=/atg/sitemap/SitemapPropertiesManager
sitemapTools=/atg/sitemap/SitemapTools
maxUrlsPerSitemap=10000
maxSitemapSize=5000000
SitemapGeneratorService
ProductSitemapGenerator
# /atg/sitemap/ProductSitemapGenerator.properties
$class=atg.commerce.sitemap.CatalogSitemapGenerator
sitemapFilePrefix=productSitemap
changeFrequency=weekly
# Type of repository item to retrieve
itemDescriptorName=product
CategorySitemapGenerator
#/atg/sitemap/CategorySitemapGenerator.propertie
s
$class=atg.commerce.sitemap.CatalogSitemapGenera
tor
changeFrequency=weekly
sitemapFilePrefix=categorySitemap
# Type of repository item to retrieve
itemDescriptorName=category
StaticSitemapGenerator
# atg/sitemap/StaticSitemapGenerator.properties
$class=atg.sitemap.StaticSitemapGenerator
sitemapFilePrefix=staticSitemap
# List of static pages
staticPages=index.jsp,
browse/whatsNew.jsp,
browse/asSeenIn.jsp,
browse/featureGlossary.jsp
SitemapWriterService
# /atg/sitemap/SitemapWriterService.properties
$class=atg.sitemap.SitemapWriterService
$scope=global
# The directory where an application's war is
located
warDir^=/atg/sitemap/SitemapGeneratorService.warDir
SEF URLS
SEF URLs
/mystore/product.jsp?prodId=prod1002&catId=cat234
/mystore/Q33+UltraMountain/Mountain+Bikes
URL Generating
Item
Link
Template
Mapper
Direct
Template
SEF URL
Maps item to
template
Droplet with
element id as
parameter
URL converter
CatalogItemLink
<dsp:droplet name="CatalogItemLink">
<dsp:param name="item" param="childCategory"/>
<dsp:oparam name="output">
<%-- Create link for subcategory --%>
<dsp:a page="${url}">
<dsp:valueof param="childCategory.displayName"/>
</dsp:a>
</dsp:oparam>
</dsp:droplet>
CatalogItemLink
# /atg/repository/seo/CatalogItemLink.properties
$class=atg.repository.seo.ItemLink
# Map of UrlTemplateMapper components by item
descriptor name for this droplet
itemDescriptorNameToMapperMap=
product=/atg/repository/seo/ProductTemplateMappe
r,
category=/atg/repository/seo/CategoryTemplateMap
per
# Default parameter values
defaultRepository=/atg/commerce/catalog/ProductC
atalog
defaultItemDescriptorName=product
CategoryTemplateMapper
#/atg/repository/seo/CategoryTemplateMapper.propertie
s
$class=atg.repository.seo.UrlTemplateMapperImpl
# List of UrlTemplate component names
templates=
/atg/repository/seo/CategoryIndirectTemplate
# Default template to use if no match in list above
defaultTemplate=/atg/repository/seo/CategoryDirectTem
plate
CategoryDirectTemplate
#/atg/repository/seo/CategoryDirectTemplate.prop
erties
$class=atg.repository.seo.DirectUrlTemplate
# Url template format
urlTemplateFormat={item.template.url,encode=fals
e}?categoryId={item.id}
URLTemplate
URL parsing
JumpServlet Template ATG URL
JumpServlet
<servlet>
<servlet-name>MappedJumpServlet</servlet-name>
<servlet-class>atg.repository.seo.MappedJumpServlet</servlet-class>
<init-param>
<param-name>jumpServlet</param-name>
<param-value>ctx:dynamo:/atg/repository/seo/JumpServlet</param-
value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MappedJumpServlet</servlet-name>
<url-pattern>/jump/*</url-pattern>
</servlet-mapping>
Thanks!

More Related Content

Viewers also liked

Common mistakes for ATG applications that affect performance
Common mistakes for ATG applications that affect performanceCommon mistakes for ATG applications that affect performance
Common mistakes for ATG applications that affect performanceKate Semizhon
 
Oracle eCommerce (ATG) Database Best Practices
Oracle eCommerce (ATG) Database  Best Practices Oracle eCommerce (ATG) Database  Best Practices
Oracle eCommerce (ATG) Database Best Practices Kate Semizhon
 
ATG Advanced Profile Management
ATG Advanced Profile ManagementATG Advanced Profile Management
ATG Advanced Profile ManagementKate Semizhon
 
Fine tuning instruments to create an seo symphony
Fine tuning instruments to create an seo symphonyFine tuning instruments to create an seo symphony
Fine tuning instruments to create an seo symphonyRik Turner
 
How to improve code quality for iOS apps?
How to improve code quality for iOS apps?How to improve code quality for iOS apps?
How to improve code quality for iOS apps?Kate Semizhon
 
ATG Commerce: Full Capabilities Overview
ATG Commerce: Full Capabilities OverviewATG Commerce: Full Capabilities Overview
ATG Commerce: Full Capabilities Overviewsobrien15
 
ATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your FigertipsATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your FigertipsKeyur Shah
 
Overview of atg framework
Overview of atg frameworkOverview of atg framework
Overview of atg frameworkYousuf Roushan
 
ATG Tutorials - Promotion.
ATG Tutorials - Promotion.ATG Tutorials - Promotion.
ATG Tutorials - Promotion.Sanju Thomas
 

Viewers also liked (11)

Common mistakes for ATG applications that affect performance
Common mistakes for ATG applications that affect performanceCommon mistakes for ATG applications that affect performance
Common mistakes for ATG applications that affect performance
 
Oracle eCommerce (ATG) Database Best Practices
Oracle eCommerce (ATG) Database  Best Practices Oracle eCommerce (ATG) Database  Best Practices
Oracle eCommerce (ATG) Database Best Practices
 
ATG Advanced Profile Management
ATG Advanced Profile ManagementATG Advanced Profile Management
ATG Advanced Profile Management
 
Fine tuning instruments to create an seo symphony
Fine tuning instruments to create an seo symphonyFine tuning instruments to create an seo symphony
Fine tuning instruments to create an seo symphony
 
How to improve code quality for iOS apps?
How to improve code quality for iOS apps?How to improve code quality for iOS apps?
How to improve code quality for iOS apps?
 
ATG Commerce: Full Capabilities Overview
ATG Commerce: Full Capabilities OverviewATG Commerce: Full Capabilities Overview
ATG Commerce: Full Capabilities Overview
 
ATG pipelines
ATG pipelinesATG pipelines
ATG pipelines
 
ATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your FigertipsATG - Web Commerce @ Your Figertips
ATG - Web Commerce @ Your Figertips
 
Overview of atg framework
Overview of atg frameworkOverview of atg framework
Overview of atg framework
 
ATG Tutorials - Promotion.
ATG Tutorials - Promotion.ATG Tutorials - Promotion.
ATG Tutorials - Promotion.
 
Atg Introduction
Atg IntroductionAtg Introduction
Atg Introduction
 

More from Kate Semizhon

Seven Facts about Belarus
Seven Facts about BelarusSeven Facts about Belarus
Seven Facts about BelarusKate Semizhon
 
Database Change Management
Database Change ManagementDatabase Change Management
Database Change ManagementKate Semizhon
 
How a project is born. Intro to Discovery Phase
How a project is born. Intro to Discovery Phase How a project is born. Intro to Discovery Phase
How a project is born. Intro to Discovery Phase Kate Semizhon
 
Code Review Tool Evaluation
Code Review Tool EvaluationCode Review Tool Evaluation
Code Review Tool EvaluationKate Semizhon
 

More from Kate Semizhon (10)

Cracking 1-on-1s
Cracking 1-on-1sCracking 1-on-1s
Cracking 1-on-1s
 
Serverless Pitfalls
Serverless PitfallsServerless Pitfalls
Serverless Pitfalls
 
Seven Facts about Belarus
Seven Facts about BelarusSeven Facts about Belarus
Seven Facts about Belarus
 
Git 101
Git 101Git 101
Git 101
 
Database Change Management
Database Change ManagementDatabase Change Management
Database Change Management
 
Ecommerce in 2018
Ecommerce in 2018Ecommerce in 2018
Ecommerce in 2018
 
How a project is born. Intro to Discovery Phase
How a project is born. Intro to Discovery Phase How a project is born. Intro to Discovery Phase
How a project is born. Intro to Discovery Phase
 
Code Review Tool Evaluation
Code Review Tool EvaluationCode Review Tool Evaluation
Code Review Tool Evaluation
 
Sonar Review
Sonar ReviewSonar Review
Sonar Review
 
Unit tests benefits
Unit tests benefitsUnit tests benefits
Unit tests benefits
 

SEO Instruments in ATG