atg - seo in atg

32
SEO in ATG

Upload: vishnubovilla

Post on 26-Dec-2015

89 views

Category:

Documents


9 download

DESCRIPTION

ATG - SEO In ATG

TRANSCRIPT

Page 1: ATG - SEO In ATG

SEO in ATG

Page 2: ATG - SEO In ATG

Agenda

SEO Repository: SEO Tags

Sitemaps SEF URLs

Page 3: ATG - SEO In ATG

SEO REPOSITORY

Page 4: ATG - SEO In ATG

DEMO

Page 5: ATG - SEO In ATG

DEMO

Page 7: ATG - SEO In ATG

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>

Page 8: ATG - SEO In ATG

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>

Page 9: ATG - SEO In ATG

SITE MAP

Page 10: ATG - SEO In ATG
Page 11: ATG - SEO In ATG

Siteindex.xml

Page 12: ATG - SEO In ATG
Page 13: ATG - SEO In ATG

Steps of creating site maps

SitemapGeneratorService creates sitemaps stores in SitemapRepository

SitemapWriterService writes out the actual XML files

Page 14: ATG - SEO In ATG

Ways to invoke sitegeneration

run automatically

run automatically after a CA deployment

invoking them manually

Page 15: ATG - SEO In ATG

SitemapGeneratorService

Page 16: ATG - SEO In ATG

SitemapGeneratorService

$class=atg.sitemap.SitemapGeneratorService$scope=global

schedule=calendar * * . . 1 .scheduler=/atg/dynamo/service/SchedulerclientLockManager=/atg/dynamo/service/ClientLockManagerlockName=SitemapGeneratorService

sitemapGenerators=\ /atg/sitemap/ProductSitemapGenerator,\ /atg/sitemap/CategorySitemapGenerator,\ /atg/sitemap/StaticSitemapGeneratorsitemapIndexGenerator=/atg/sitemap/SitemapIndexGenerator

sitemapRepository=/atg/sitemap/SitemapRepositorysitemapPropertiesManager=/atg/sitemap/SitemapPropertiesManagersitemapTools=/atg/sitemap/SitemapTools

maxUrlsPerSitemap=10000maxSitemapSize=5000000

Page 17: ATG - SEO In ATG

SitemapGeneratorService

Page 18: ATG - SEO In ATG

ProductSitemapGenerator

# /atg/sitemap/ProductSitemapGenerator.properties$class=atg.commerce.sitemap.CatalogSitemapGenerator

sitemapFilePrefix=productSitemapchangeFrequency=weekly# Type of repository item to retrieve itemDescriptorName=product

Page 19: ATG - SEO In ATG

CategorySitemapGenerator

#/atg/sitemap/CategorySitemapGenerator.properties$class=atg.commerce.sitemap.CatalogSitemapGeneratorchangeFrequency=weeklysitemapFilePrefix=categorySitemap# Type of repository item to retrieve itemDescriptorName=category

Page 20: ATG - SEO In ATG

StaticSitemapGenerator

# atg/sitemap/StaticSitemapGenerator.properties$class=atg.sitemap.StaticSitemapGeneratorsitemapFilePrefix=staticSitemap# List of static pagesstaticPages=index.jsp,\ browse/whatsNew.jsp,\ browse/asSeenIn.jsp,\ browse/featureGlossary.jsp

Page 21: ATG - SEO In ATG

SitemapWriterService

# /atg/sitemap/SitemapWriterService.properties$class=atg.sitemap.SitemapWriterService$scope=global

# The directory where an application's war is locatedwarDir^=/atg/sitemap/SitemapGeneratorService.warDir

Page 22: ATG - SEO In ATG

SEF URLS

Page 23: ATG - SEO In ATG

SEF URLs

/mystore/product.jsp?prodId=prod1002&catId=cat234

/mystore/Q33+UltraMountain/Mountain+Bikes

Page 24: ATG - SEO In ATG

URL Generating

Item

LinkTemplate

MapperDirect

TemplateSEF URL

Maps item to template

Droplet with element id as

parameterURL converter

Page 25: ATG - SEO In ATG

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>

Page 26: ATG - SEO In ATG

CatalogItemLink

# /atg/repository/seo/CatalogItemLink.properties$class=atg.repository.seo.ItemLink

# Map of UrlTemplateMapper components by item descriptor name for this dropletitemDescriptorNameToMapperMap=\ product=/atg/repository/seo/ProductTemplateMapper,\ category=/atg/repository/seo/CategoryTemplateMapper

# Default parameter valuesdefaultRepository=/atg/commerce/catalog/ProductCatalogdefaultItemDescriptorName=product

Page 27: ATG - SEO In ATG

CategoryTemplateMapper

#/atg/repository/seo/CategoryTemplateMapper.properties$class=atg.repository.seo.UrlTemplateMapperImpl

# List of UrlTemplate component namestemplates=\ /atg/repository/seo/CategoryIndirectTemplate

# Default template to use if no match in list abovedefaultTemplate=/atg/repository/seo/CategoryDirectTemplate

Page 28: ATG - SEO In ATG

CategoryDirectTemplate

#/atg/repository/seo/CategoryDirectTemplate.properties$class=atg.repository.seo.DirectUrlTemplate

# Url template formaturlTemplateFormat={item.template.url,encode=false}?categoryId\={item.id}

Page 29: ATG - SEO In ATG

URLTemplate

Page 30: ATG - SEO In ATG

URL parsing

JumpServlet Template ATG URL

Page 31: ATG - SEO In ATG

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>

Page 32: ATG - SEO In ATG

Thanks!