Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SEO Instruments in ATG

1,481 views

Published on

SEO Instruments in ATG

Published in: Technology, Business
  • Be the first to comment

SEO Instruments in ATG

  1. 1. SEO in ATG Kate Semizhon
  2. 2. Agenda  SEO Repository: SEO Tags  Sitemaps  SEF URLs
  3. 3. SEO REPOSITORY
  4. 4. DEMO
  5. 5. DEMO
  6. 6. /atg/seo/SEORepository
  7. 7. 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>
  8. 8. 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>
  9. 9. SITE MAP
  10. 10. Siteindex.xml
  11. 11. Steps of creating site maps SitemapGeneratorService creates sitemaps stores in SitemapRepository SitemapWriterService writes out the actual XML files
  12. 12. Ways to invoke sitegeneration run automatically run automatically after a CA deployment invoking them manually
  13. 13. SitemapGeneratorService
  14. 14. 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
  15. 15. SitemapGeneratorService
  16. 16. ProductSitemapGenerator # /atg/sitemap/ProductSitemapGenerator.properties $class=atg.commerce.sitemap.CatalogSitemapGenerator sitemapFilePrefix=productSitemap changeFrequency=weekly # Type of repository item to retrieve itemDescriptorName=product
  17. 17. CategorySitemapGenerator #/atg/sitemap/CategorySitemapGenerator.propertie s $class=atg.commerce.sitemap.CatalogSitemapGenera tor changeFrequency=weekly sitemapFilePrefix=categorySitemap # Type of repository item to retrieve itemDescriptorName=category
  18. 18. 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
  19. 19. 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
  20. 20. SEF URLS
  21. 21. SEF URLs /mystore/product.jsp?prodId=prod1002&catId=cat234 /mystore/Q33+UltraMountain/Mountain+Bikes
  22. 22. URL Generating Item Link Template Mapper Direct Template SEF URL Maps item to template Droplet with element id as parameter URL converter
  23. 23. 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>
  24. 24. 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
  25. 25. 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
  26. 26. 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}
  27. 27. URLTemplate
  28. 28. URL parsing JumpServlet Template ATG URL
  29. 29. 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>
  30. 30. Thanks!

×