SlideShare a Scribd company logo
Search Engine
Optimization (SEO)
implementation in Endeca
and ATG
Vigneswaran Sitaraman
(vicky_sitaraman@yahoo.com)
Agenda
• Introduction to SEO
• SEO Techniques
• Implementation of SEO in Endeca
• Implementation of SEO in ATG
SEO Introduction
• Search Engine Optimization (SEO) is a term used to
describe a variety of techniques for making pages
more accessible to web spiders (also known as web
crawlers or robots), the scripts used by Internet
search engines to crawl the Web to gather pages for
indexing. The goal of SEO is to increase the ranking
of the indexed pages in 'natural' search results.
SEO Introduction (contd)
• Google’s search process:
• http://static.googleusercontent.com/media/www.google.ca/en/ca/insidesearch/howsearchworks/assets/searchInfogr
aphic.pdf
SEO Introduction (contd)
• How Crawlers find pages:
• Web Crawlers uses sophisticated computer
programs to determine the list of urls, how many
and when from hundreds and thousands of
webservers.
• It begins the crawling process with the list of urls,
generated from past crawl process and augmented
with sitemap urls. As it crawls, it detects new links
(hrefs , image SRC) and adds it to list of urls to crawl
further.
SEO Introduction (contd)
• Indexing & Search
• As web crawlers visits pages, it gathers information
from pages and keywords, locations are indexed, so
enabling search and lookup faster.
• Just like index of a book with keywords and page
numbers.
• As you search using keywords, search engine using
sophisticated ranking algorithms to determine best
possible matches and retrieves the search results.
SEO Introduction (contd)
• Disallow crawlers from indexing your pages
• Using robot.txt –
• A file used to specify the urls of the site that should
not be crawled. (eg: service agreement, terms and
conditions).
• Also used to Specify the location of the sitemap xml
files
• Should be placed in root of the web site folder.
SEO Introduction (contd)
• Robot.txt format
• User agent: *
• Disallow: /terms.html
• Sitemap:http://www.example.com/sitemap.xml
• Exclude individual page or links from indexing:
• <meta name="robots" content="noindex"/>
• <a href="www.example.com" rel="nofollow"/>
• <meta name="robots" content="nofollow"/>
SEO Techniques
• URL Recoding
• Canonical links
• SEO Tagging
• SiteMaps
• Way of increasing the page ranking in search engine results.
• Make it look more like static URL.
• short friendly urls <2048 charac. with minimum query parameters
• Include as much information in URL in the form of key words to
increase the ranking of the indexed page.
URL Recoding
• Examples:
• (Bad SEO links for product pages – Rogers.com)
http://www.rogers.com/web/link/wirelessBuyFlow?forwardTo=PhoneThe
nPlan&productType=normal&productId_Detailed=IP6PL64GRY
http://www.rogers.com/web/link/wirelessBuyFlow?forwardTo=PhoneThe
nPlan&productType=normal&productId_Detailed=IP6PL64GLD
URL Recoding (contd)
URL Recoding (contd)
Customer searched for specific GOLD Iphone but search result not
matching the content
• There is no differentiation between Gold and Gray models, due to
same dynamic URL for both Gray and Gold phones varying only in
query parameters.
• Doesn't satisfy customers of what he looks for due to unfriendly
SEO urls.
URL Recoding (contd)
• Good examples: (to be recoded to below URLs)
http://www.rogers.com/wireless/phones/IPhone6-36GB-Gray
http://www.rogers.com/wireless/phones/IPhone6-36GB-Gold
• Benefits:
• Improved page ranking
• Customers got what he looked for in the very first search result.
URL Recoding (contd)
Customers got what he looked for in the very first search result.
Good image
URL Recoding (contd)
Different URLs pointing to same page, will reduce the ranking for the
particular page.
Eg: www.rogers.com
www.rogers.com/web/Rogers.portal
www.example.com/phones
www.example.com/phones.jsp
Using Link tag with proper Urls:
Using link tag under <head> tag in html, use a single consistent url as
a single url.
<link rel=”canonical” href=”www.example.com/phones”/>
Canonical Links
• Semantic HTML markup
• Avoid flash, javascript output, as crawlers are good at parsing
HTML
• proper <title>
• Meta tags <meta> tags, alt attribute for images
• help including keywords which ultimately increases page ranking.
SEO Tagging
:
SEO Tagging (contd)
• Site map helps web crawlers to access our site pages for indexing.
It includes URL paths to various site pages in the application to
index.
• Specified using XML file defined by www.sitemaps.org schema.
• Can contain multiple xml files linked using index sitemap file.
• Usually stored in root of the web application. Can be specified in
robot.txt.
• Sitemap xml can be submitted to search engines to validate.
Example Sitemap XML file:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/</loc>
</url>
<url>
<loc>http://www.example.com/contact/</loc>
</url>
</urlset>
SiteMap
• Used In Category pages, Faced Navigation pages, also be used in
Product detail pages
• URL Recoding:
Non SEO or Traditional Endeca Urls: (constructed using
BasicUrlFormatter Endeca assembler API)
eg: rogers.com (category page, faceted navigation page)
http://www.rogers.com/web/link/wirelessBuyFlow?forwardTo=Pho
neThenPlan&productType=normal&N=11+52+4294948709&Nr=A
ND%28Language%3AEN%2CProvince%3AON%29
Implementing SEO techniques in
Endeca
• Optimized SEO friendly Endeca Urls: (using SEOUrlFormatter
Endeca Assembler API)
• Include keywords in Urls, to make it SEO friendly
http://www.rogers.com/wireless/smartphones/_/N-
11+52+4294948709?Nr=AND%28Language%3AEN%2CProvince%3
AON%29
http://www.rogers.com/wireless/smartphones/Android/_/N-
11+52+4294948709+277?Nr=AND%28Language%3AEN%2CProvinc
e%3AON%29
Implementing SEO techniques in
Endeca (contd)
Parts of the optimized Endeca Urls:
misc-path - /wireless/smartphones/Android
path-param-separator - _
path-params - N-11+52+4294948709
query string - ?Nr=AND%28Language%3AEN%2CProvince%3AON%29
Implementing SEO techniques in
Endeca (contd)
Configuring SEO friendly URLs in Endeca
• XML Configuration file – eg: endeca-seo-Config.xml
Easily configured using Spring framework
Core API classes – Endeca Assembler API – SEO classes -
BasicQueryBuilder, SeoUrlFormatter, SeoNavStateFormatter,
SeoNavStateCanonicalizer along with Endeca Experience Manager
Cartridge Handlers core APIs.
• Will be able to configure every aspect of URLs, like formatting,
canonicalizing, encoding.
• Sample reference XML configuration in appendix.
Implementing SEO techniques in
Endeca (contd)
• Site Map:
• Sitemap xml files generated using standalone batch command
RunSitemapGen.bat
• Configured using XML file specifying MDEX host, port, URL format
• Uses same xml file used for configuring application
• <URL_FORMAT_FILE>C:EndecaToolsAndFrameworks...WEB-
INFendeca-seo-config.xml</URL_FORMAT_FILE>
* Sample configuration file included in appendix.
Implementing SEO techniques in
Endeca (contd)
ATG Driven pages (usually in Product Detail pages )
URL Recoding:
• ATG SEO module detects Visitor either Human or Crawler using User
Agent Header from request and generates the page links
accordingly.
• Core API provided by ATG is in atg.repository.seo.* packages.
• Core ATG APIs:
atg.repository.seo.ItemLink servlet bean– translates to static
urls based on user agent.
atg.repository.seo.JumpServlet - incoming static URLs (for
example, if a user clicks a link returned by a Google search), and
translates these URLs into their dynamic equivalents.
Implementing SEO techniques in
ATG
URL Configuration:
Done using template classes provided Core ATG SEO.
URL Templates:
atg.repository.seo.DirectUrlTemplate
atg.repository.seo.IndirectUrlTemplate
# Url template format
urlTemplateFormat=/jump/{item.displayName}/productDetail/{item.p
arentCategory.displayName}/{item.id}/{item.parentCategory.id}/{locale
}
# Forward Url template
forwardUrlTemplateFormat={item.template.url,encode=false}?product
Id={item.id}&categoryId={item.parentCategory.id}&locale={locale}
&productPage=true
Implementing SEO techniques in
ATG (contd)
/atg/repository/seo/CatalogItemLink
$class=atg.repository.seo.ItemLink
# Map of UrlTemplateMapper components by item descriptor name
for this droplet
itemDescriptorNameToMapperMap=
product=/atg/repository/seo/ProductTemplateMapper
# Default parameter values
defaultRepository=/atg/commerce/catalog/ProductCatalog
defaultItemDescriptorName=product
Implementing SEO techniques in
ATG(contd)
/atg/repository/seo/ProductTemplateMapper
$class=atg.repository.seo.IndirectUrlTemplate
# Url template format
urlTemplateFormat=/jump/{item.displayName}/productDetail/{item.parentCategory.displayName}/{item.i
d}/{item.parentCategory.id}/{locale}
# Regex that matches above format
indirectRegex=.*/jump/[^/]*?/productDetail/[^/]*?/([^/].*?)/[^/]*?/([^/]*)(/.*?)*$
# Regex elements
regexElementList=
item | id |
/atg/commerce/catalog/ProductCatalog:product,
locale | string
# Forward Url template
forwardUrlTemplateFormat={item.template.url,encode=false}?productId={item.id}&categoryId={item.p
arentCategory.id}&locale={locale}&productPage=true
# Supported Browser Types
supportedBrowserTypes=
robot
Implementing SEO techniques in
ATG(contd)
ATG – Endeca Integration:
• Used in Experience Manager Cartridge Handlers
• ATG Nucleus component access Endeca SEO configuration spring
beans using ATG Spring Integration feature
• atg.nucleus.spring.NucleusPublisher
• <bean name="/NucleusPublisher" class="atg.nucleus.spring.NucleusPublisher"
• scope="singleton">
• <property name="nucleusPath">
• <value>/atg/spring/FromSpring</value>
• </property>
• </bean>
•
• <import resource="endeca-seo-url-config.xml"/>
• Now you use /atg/spring/FromSpring/[spring Bean Id] in your
Nucleus component
Implementing SEO techniques in
ATG(contd)
ATG – Endeca Integration:
A key bean in Endeca is
com.endeca.soleng.urlformatter.seo.SeoUrlFormatter
• Configure the
/atg/endeca/assembler/cartridge/manager/NavigationStateBuilder
component using the property
• urlFormatter = /atg/spring/FromSpring/seoUrlFormatter
Implementing SEO techniques in
ATG(contd)
Canonical Links
Using OOTB ATG
/atg/repository/seo/CanonicalItemLink
<link rel="canonical"
ref="http://www.example.com:80/crs/storeus/jump/
Dotted+Repp+Tie/productDetail/For+Him/xprod1001
/cat50067 " />
Implementing SEO techniques in
ATG(contd)
SiteMap Generation:
• Sitemap files are XML documents that contain URLs for the pages of your
site. These can be generated either manually using Dynamo Admin
console or in a scheduled mapper.
• Sitemap xmls are kept in root of the web application
ATG uses following OOTB components for sitemap generation:
Components is in folder /atg/sitemap/*
Implementing SEO techniques in
ATG(contd)
SiteMap Generation:
StaticSitemapGenerator - generates sitemap xml files for static urls
DynamicSitemapGenerator - generates files for dynamic urls.
SitemapIndexGenerator - generates index files for various sitemap files
generated by SiteMapGenerator components.
SitemapGeneratorService - Used for scheduled generation of sitemap xml files
and inserting entries in SiteMapRepository
SitemapWriterService - writes sitemap xml files using contents from
SiteMapRepository, should be run on every ATG instance.
Implementing SEO techniques in
ATG(contd)
SEO Tagging:
• ATG uses SEO tag repository for storing content of title, meta – keywords, description
tags.
• Register SEO tag repository using initialRepositories property of
/atg/repository/ContentRepositories component
<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>
Implementing SEO techniques in
ATG(contd)
Appendix

More Related Content

What's hot

REST & RESTful Web Service
REST & RESTful Web ServiceREST & RESTful Web Service
REST & RESTful Web Service
Hoan Vu Tran
 
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with ThymeleafSpring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Thymeleaf
 
ATG - Commerce Service Center (CSC)
ATG - Commerce Service Center (CSC)ATG - Commerce Service Center (CSC)
ATG - Commerce Service Center (CSC)
Keyur Shah
 
Http headers
Http headersHttp headers
Http headers
Judy Ngure
 
Rest api with node js and express
Rest api with node js and expressRest api with node js and express
Rest api with node js and express
GirlsInTechnology Nepal
 
jQuery Ajax
jQuery AjaxjQuery Ajax
jQuery Ajax
Anand Kumar Rajana
 
Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)
Adnan Sohail
 
CSS.ppt
CSS.pptCSS.ppt
Internet cookies
Internet cookiesInternet cookies
Internet cookies
Abhi Bhardwaj
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
Christopher Bartling
 
Full Stack Web Development.pptx
Full Stack Web Development.pptxFull Stack Web Development.pptx
Full Stack Web Development.pptx
DineshGokuladas
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
Mindfire Solutions
 
Introduction to Jhipster
Introduction to JhipsterIntroduction to Jhipster
Introduction to Jhipster
Knoldus Inc.
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
Rohit Gupta
 
Internet searching
Internet searchingInternet searching
Internet searching
Badheeb
 
Rest presentation
Rest  presentationRest  presentation
Rest presentationsrividhyau
 
Sessions and cookies
Sessions and cookiesSessions and cookies
Sessions and cookies
www.netgains.org
 
Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6
AIMDek Technologies
 
Introduction To Angular's reactive forms
Introduction To Angular's reactive formsIntroduction To Angular's reactive forms
Introduction To Angular's reactive forms
Nir Kaufman
 

What's hot (20)

REST & RESTful Web Service
REST & RESTful Web ServiceREST & RESTful Web Service
REST & RESTful Web Service
 
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with ThymeleafSpring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
Spring I/O 2012: Natural Templating in Spring MVC with Thymeleaf
 
ATG - Commerce Service Center (CSC)
ATG - Commerce Service Center (CSC)ATG - Commerce Service Center (CSC)
ATG - Commerce Service Center (CSC)
 
Http headers
Http headersHttp headers
Http headers
 
Rest api with node js and express
Rest api with node js and expressRest api with node js and express
Rest api with node js and express
 
jQuery Ajax
jQuery AjaxjQuery Ajax
jQuery Ajax
 
Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)
 
CSS.ppt
CSS.pptCSS.ppt
CSS.ppt
 
Internet cookies
Internet cookiesInternet cookies
Internet cookies
 
RESTful Web Services
RESTful Web ServicesRESTful Web Services
RESTful Web Services
 
Express node js
Express node jsExpress node js
Express node js
 
Full Stack Web Development.pptx
Full Stack Web Development.pptxFull Stack Web Development.pptx
Full Stack Web Development.pptx
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
 
Introduction to Jhipster
Introduction to JhipsterIntroduction to Jhipster
Introduction to Jhipster
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
 
Internet searching
Internet searchingInternet searching
Internet searching
 
Rest presentation
Rest  presentationRest  presentation
Rest presentation
 
Sessions and cookies
Sessions and cookiesSessions and cookies
Sessions and cookies
 
Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6Creating custom Validators on Reactive Forms using Angular 6
Creating custom Validators on Reactive Forms using Angular 6
 
Introduction To Angular's reactive forms
Introduction To Angular's reactive formsIntroduction To Angular's reactive forms
Introduction To Angular's reactive forms
 

Similar to Search engine optimization (seo) from Endeca & ATG

The Technical SEO Full Course how to do
The Technical SEO  Full Course  how to doThe Technical SEO  Full Course  how to do
The Technical SEO Full Course how to do
asadkhan888889990
 
On-Page SEO
On-Page  SEO On-Page  SEO
Points for Design and Development of SEO friendly websites
Points for Design and Development of SEO friendly websitesPoints for Design and Development of SEO friendly websites
Points for Design and Development of SEO friendly websites
Singsys Pte Ltd
 
Seo and analytics basics
Seo and analytics basicsSeo and analytics basics
Seo and analytics basics
Sreekanth Narayanan
 
Guía SEO 2020: Trucos y recomendaciones para desarrolladores y webmasters
Guía SEO 2020: Trucos y recomendaciones para desarrolladores y webmastersGuía SEO 2020: Trucos y recomendaciones para desarrolladores y webmasters
Guía SEO 2020: Trucos y recomendaciones para desarrolladores y webmasters
Miguel López Zuleta
 
CAB 2.pptx
CAB 2.pptxCAB 2.pptx
Search Engine Optimisation - Have you been crawled over?
Search Engine Optimisation - Have you been crawled over?Search Engine Optimisation - Have you been crawled over?
Search Engine Optimisation - Have you been crawled over?
Marshal Yung
 
Website Development Guidelines
Website Development GuidelinesWebsite Development Guidelines
Website Development Guidelines
Amit Kute
 
Kickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPressKickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPress
Colby Dimock
 
On page Optimization
On page OptimizationOn page Optimization
On page Optimization
Web Development Montreal
 
On page optimization
On page optimizationOn page optimization
On page optimization
Fortune Innovations Dublin
 
SIM Digital Marketing COURSES PPT.pptx
SIM Digital Marketing COURSES PPT.pptxSIM Digital Marketing COURSES PPT.pptx
SIM Digital Marketing COURSES PPT.pptx
ShaileshBone
 
Digital MarketingDigital marketing courses in Pune-SIM.pptx
Digital MarketingDigital marketing courses in Pune-SIM.pptxDigital MarketingDigital marketing courses in Pune-SIM.pptx
Digital MarketingDigital marketing courses in Pune-SIM.pptx
MaheshVarade3
 
SIM Digital Marketing COURSE PDF.pdf
SIM Digital Marketing COURSE PDF.pdfSIM Digital Marketing COURSE PDF.pdf
SIM Digital Marketing COURSE PDF.pdf
ShaileshBone
 
www.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptx
www.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptxwww.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptx
www.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptx
DineshSparkdigital
 
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesTechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
Catalyst
 
Max Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based Websites
Max Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based WebsitesMax Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based Websites
Max Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based Websites
Max Prin
 
Basic SEO
Basic SEO Basic SEO
Basic SEO
SEO_Mumbai
 

Similar to Search engine optimization (seo) from Endeca & ATG (20)

The Technical SEO Full Course how to do
The Technical SEO  Full Course  how to doThe Technical SEO  Full Course  how to do
The Technical SEO Full Course how to do
 
On-Page SEO
On-Page  SEO On-Page  SEO
On-Page SEO
 
Points for Design and Development of SEO friendly websites
Points for Design and Development of SEO friendly websitesPoints for Design and Development of SEO friendly websites
Points for Design and Development of SEO friendly websites
 
Seo and analytics basics
Seo and analytics basicsSeo and analytics basics
Seo and analytics basics
 
Guía SEO 2020: Trucos y recomendaciones para desarrolladores y webmasters
Guía SEO 2020: Trucos y recomendaciones para desarrolladores y webmastersGuía SEO 2020: Trucos y recomendaciones para desarrolladores y webmasters
Guía SEO 2020: Trucos y recomendaciones para desarrolladores y webmasters
 
CAB 2.pptx
CAB 2.pptxCAB 2.pptx
CAB 2.pptx
 
Search Engine Optimisation - Have you been crawled over?
Search Engine Optimisation - Have you been crawled over?Search Engine Optimisation - Have you been crawled over?
Search Engine Optimisation - Have you been crawled over?
 
Website Development Guidelines
Website Development GuidelinesWebsite Development Guidelines
Website Development Guidelines
 
Kickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPressKickstart Your Technical SEO for WordPress
Kickstart Your Technical SEO for WordPress
 
On page Optimization
On page OptimizationOn page Optimization
On page Optimization
 
On page optimization
On page optimizationOn page optimization
On page optimization
 
Website Audit Presentation
Website Audit PresentationWebsite Audit Presentation
Website Audit Presentation
 
Seo
SeoSeo
Seo
 
SIM Digital Marketing COURSES PPT.pptx
SIM Digital Marketing COURSES PPT.pptxSIM Digital Marketing COURSES PPT.pptx
SIM Digital Marketing COURSES PPT.pptx
 
Digital MarketingDigital marketing courses in Pune-SIM.pptx
Digital MarketingDigital marketing courses in Pune-SIM.pptxDigital MarketingDigital marketing courses in Pune-SIM.pptx
Digital MarketingDigital marketing courses in Pune-SIM.pptx
 
SIM Digital Marketing COURSE PDF.pdf
SIM Digital Marketing COURSE PDF.pdfSIM Digital Marketing COURSE PDF.pdf
SIM Digital Marketing COURSE PDF.pdf
 
www.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptx
www.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptxwww.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptx
www.sparkdigital.co.in_Complete - Search Engine Optimization Guide_2023.pptx
 
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesTechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
 
Max Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based Websites
Max Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based WebsitesMax Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based Websites
Max Prin - TechSEO Boost 2017 - SEO Best Practices For JavaScript-Based Websites
 
Basic SEO
Basic SEO Basic SEO
Basic SEO
 

Recently uploaded

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 

Search engine optimization (seo) from Endeca & ATG

  • 1. Search Engine Optimization (SEO) implementation in Endeca and ATG Vigneswaran Sitaraman (vicky_sitaraman@yahoo.com)
  • 2. Agenda • Introduction to SEO • SEO Techniques • Implementation of SEO in Endeca • Implementation of SEO in ATG
  • 3. SEO Introduction • Search Engine Optimization (SEO) is a term used to describe a variety of techniques for making pages more accessible to web spiders (also known as web crawlers or robots), the scripts used by Internet search engines to crawl the Web to gather pages for indexing. The goal of SEO is to increase the ranking of the indexed pages in 'natural' search results.
  • 4. SEO Introduction (contd) • Google’s search process: • http://static.googleusercontent.com/media/www.google.ca/en/ca/insidesearch/howsearchworks/assets/searchInfogr aphic.pdf
  • 5. SEO Introduction (contd) • How Crawlers find pages: • Web Crawlers uses sophisticated computer programs to determine the list of urls, how many and when from hundreds and thousands of webservers. • It begins the crawling process with the list of urls, generated from past crawl process and augmented with sitemap urls. As it crawls, it detects new links (hrefs , image SRC) and adds it to list of urls to crawl further.
  • 6. SEO Introduction (contd) • Indexing & Search • As web crawlers visits pages, it gathers information from pages and keywords, locations are indexed, so enabling search and lookup faster. • Just like index of a book with keywords and page numbers. • As you search using keywords, search engine using sophisticated ranking algorithms to determine best possible matches and retrieves the search results.
  • 7. SEO Introduction (contd) • Disallow crawlers from indexing your pages • Using robot.txt – • A file used to specify the urls of the site that should not be crawled. (eg: service agreement, terms and conditions). • Also used to Specify the location of the sitemap xml files • Should be placed in root of the web site folder.
  • 8. SEO Introduction (contd) • Robot.txt format • User agent: * • Disallow: /terms.html • Sitemap:http://www.example.com/sitemap.xml • Exclude individual page or links from indexing: • <meta name="robots" content="noindex"/> • <a href="www.example.com" rel="nofollow"/> • <meta name="robots" content="nofollow"/>
  • 9. SEO Techniques • URL Recoding • Canonical links • SEO Tagging • SiteMaps
  • 10. • Way of increasing the page ranking in search engine results. • Make it look more like static URL. • short friendly urls <2048 charac. with minimum query parameters • Include as much information in URL in the form of key words to increase the ranking of the indexed page. URL Recoding
  • 11. • Examples: • (Bad SEO links for product pages – Rogers.com) http://www.rogers.com/web/link/wirelessBuyFlow?forwardTo=PhoneThe nPlan&productType=normal&productId_Detailed=IP6PL64GRY http://www.rogers.com/web/link/wirelessBuyFlow?forwardTo=PhoneThe nPlan&productType=normal&productId_Detailed=IP6PL64GLD URL Recoding (contd)
  • 12. URL Recoding (contd) Customer searched for specific GOLD Iphone but search result not matching the content
  • 13. • There is no differentiation between Gold and Gray models, due to same dynamic URL for both Gray and Gold phones varying only in query parameters. • Doesn't satisfy customers of what he looks for due to unfriendly SEO urls. URL Recoding (contd)
  • 14. • Good examples: (to be recoded to below URLs) http://www.rogers.com/wireless/phones/IPhone6-36GB-Gray http://www.rogers.com/wireless/phones/IPhone6-36GB-Gold • Benefits: • Improved page ranking • Customers got what he looked for in the very first search result. URL Recoding (contd)
  • 15. Customers got what he looked for in the very first search result. Good image URL Recoding (contd)
  • 16. Different URLs pointing to same page, will reduce the ranking for the particular page. Eg: www.rogers.com www.rogers.com/web/Rogers.portal www.example.com/phones www.example.com/phones.jsp Using Link tag with proper Urls: Using link tag under <head> tag in html, use a single consistent url as a single url. <link rel=”canonical” href=”www.example.com/phones”/> Canonical Links
  • 17. • Semantic HTML markup • Avoid flash, javascript output, as crawlers are good at parsing HTML • proper <title> • Meta tags <meta> tags, alt attribute for images • help including keywords which ultimately increases page ranking. SEO Tagging
  • 19. • Site map helps web crawlers to access our site pages for indexing. It includes URL paths to various site pages in the application to index. • Specified using XML file defined by www.sitemaps.org schema. • Can contain multiple xml files linked using index sitemap file. • Usually stored in root of the web application. Can be specified in robot.txt. • Sitemap xml can be submitted to search engines to validate. Example Sitemap XML file: <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.example.com/</loc> </url> <url> <loc>http://www.example.com/contact/</loc> </url> </urlset> SiteMap
  • 20. • Used In Category pages, Faced Navigation pages, also be used in Product detail pages • URL Recoding: Non SEO or Traditional Endeca Urls: (constructed using BasicUrlFormatter Endeca assembler API) eg: rogers.com (category page, faceted navigation page) http://www.rogers.com/web/link/wirelessBuyFlow?forwardTo=Pho neThenPlan&productType=normal&N=11+52+4294948709&Nr=A ND%28Language%3AEN%2CProvince%3AON%29 Implementing SEO techniques in Endeca
  • 21. • Optimized SEO friendly Endeca Urls: (using SEOUrlFormatter Endeca Assembler API) • Include keywords in Urls, to make it SEO friendly http://www.rogers.com/wireless/smartphones/_/N- 11+52+4294948709?Nr=AND%28Language%3AEN%2CProvince%3 AON%29 http://www.rogers.com/wireless/smartphones/Android/_/N- 11+52+4294948709+277?Nr=AND%28Language%3AEN%2CProvinc e%3AON%29 Implementing SEO techniques in Endeca (contd)
  • 22. Parts of the optimized Endeca Urls: misc-path - /wireless/smartphones/Android path-param-separator - _ path-params - N-11+52+4294948709 query string - ?Nr=AND%28Language%3AEN%2CProvince%3AON%29 Implementing SEO techniques in Endeca (contd)
  • 23. Configuring SEO friendly URLs in Endeca • XML Configuration file – eg: endeca-seo-Config.xml Easily configured using Spring framework Core API classes – Endeca Assembler API – SEO classes - BasicQueryBuilder, SeoUrlFormatter, SeoNavStateFormatter, SeoNavStateCanonicalizer along with Endeca Experience Manager Cartridge Handlers core APIs. • Will be able to configure every aspect of URLs, like formatting, canonicalizing, encoding. • Sample reference XML configuration in appendix. Implementing SEO techniques in Endeca (contd)
  • 24. • Site Map: • Sitemap xml files generated using standalone batch command RunSitemapGen.bat • Configured using XML file specifying MDEX host, port, URL format • Uses same xml file used for configuring application • <URL_FORMAT_FILE>C:EndecaToolsAndFrameworks...WEB- INFendeca-seo-config.xml</URL_FORMAT_FILE> * Sample configuration file included in appendix. Implementing SEO techniques in Endeca (contd)
  • 25. ATG Driven pages (usually in Product Detail pages ) URL Recoding: • ATG SEO module detects Visitor either Human or Crawler using User Agent Header from request and generates the page links accordingly. • Core API provided by ATG is in atg.repository.seo.* packages. • Core ATG APIs: atg.repository.seo.ItemLink servlet bean– translates to static urls based on user agent. atg.repository.seo.JumpServlet - incoming static URLs (for example, if a user clicks a link returned by a Google search), and translates these URLs into their dynamic equivalents. Implementing SEO techniques in ATG
  • 26. URL Configuration: Done using template classes provided Core ATG SEO. URL Templates: atg.repository.seo.DirectUrlTemplate atg.repository.seo.IndirectUrlTemplate # Url template format urlTemplateFormat=/jump/{item.displayName}/productDetail/{item.p arentCategory.displayName}/{item.id}/{item.parentCategory.id}/{locale } # Forward Url template forwardUrlTemplateFormat={item.template.url,encode=false}?product Id={item.id}&categoryId={item.parentCategory.id}&locale={locale} &productPage=true Implementing SEO techniques in ATG (contd)
  • 27. /atg/repository/seo/CatalogItemLink $class=atg.repository.seo.ItemLink # Map of UrlTemplateMapper components by item descriptor name for this droplet itemDescriptorNameToMapperMap= product=/atg/repository/seo/ProductTemplateMapper # Default parameter values defaultRepository=/atg/commerce/catalog/ProductCatalog defaultItemDescriptorName=product Implementing SEO techniques in ATG(contd)
  • 28. /atg/repository/seo/ProductTemplateMapper $class=atg.repository.seo.IndirectUrlTemplate # Url template format urlTemplateFormat=/jump/{item.displayName}/productDetail/{item.parentCategory.displayName}/{item.i d}/{item.parentCategory.id}/{locale} # Regex that matches above format indirectRegex=.*/jump/[^/]*?/productDetail/[^/]*?/([^/].*?)/[^/]*?/([^/]*)(/.*?)*$ # Regex elements regexElementList= item | id | /atg/commerce/catalog/ProductCatalog:product, locale | string # Forward Url template forwardUrlTemplateFormat={item.template.url,encode=false}?productId={item.id}&categoryId={item.p arentCategory.id}&locale={locale}&productPage=true # Supported Browser Types supportedBrowserTypes= robot Implementing SEO techniques in ATG(contd)
  • 29. ATG – Endeca Integration: • Used in Experience Manager Cartridge Handlers • ATG Nucleus component access Endeca SEO configuration spring beans using ATG Spring Integration feature • atg.nucleus.spring.NucleusPublisher • <bean name="/NucleusPublisher" class="atg.nucleus.spring.NucleusPublisher" • scope="singleton"> • <property name="nucleusPath"> • <value>/atg/spring/FromSpring</value> • </property> • </bean> • • <import resource="endeca-seo-url-config.xml"/> • Now you use /atg/spring/FromSpring/[spring Bean Id] in your Nucleus component Implementing SEO techniques in ATG(contd)
  • 30. ATG – Endeca Integration: A key bean in Endeca is com.endeca.soleng.urlformatter.seo.SeoUrlFormatter • Configure the /atg/endeca/assembler/cartridge/manager/NavigationStateBuilder component using the property • urlFormatter = /atg/spring/FromSpring/seoUrlFormatter Implementing SEO techniques in ATG(contd)
  • 31. Canonical Links Using OOTB ATG /atg/repository/seo/CanonicalItemLink <link rel="canonical" ref="http://www.example.com:80/crs/storeus/jump/ Dotted+Repp+Tie/productDetail/For+Him/xprod1001 /cat50067 " /> Implementing SEO techniques in ATG(contd)
  • 32. SiteMap Generation: • Sitemap files are XML documents that contain URLs for the pages of your site. These can be generated either manually using Dynamo Admin console or in a scheduled mapper. • Sitemap xmls are kept in root of the web application ATG uses following OOTB components for sitemap generation: Components is in folder /atg/sitemap/* Implementing SEO techniques in ATG(contd)
  • 33. SiteMap Generation: StaticSitemapGenerator - generates sitemap xml files for static urls DynamicSitemapGenerator - generates files for dynamic urls. SitemapIndexGenerator - generates index files for various sitemap files generated by SiteMapGenerator components. SitemapGeneratorService - Used for scheduled generation of sitemap xml files and inserting entries in SiteMapRepository SitemapWriterService - writes sitemap xml files using contents from SiteMapRepository, should be run on every ATG instance. Implementing SEO techniques in ATG(contd)
  • 34. SEO Tagging: • ATG uses SEO tag repository for storing content of title, meta – keywords, description tags. • Register SEO tag repository using initialRepositories property of /atg/repository/ContentRepositories component <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> Implementing SEO techniques in ATG(contd)