For many years, developing rich web applications or an interactive website and navigation involved the use of Flash. While it provided developers with the freedom necessary for animating objects and to send/receive data between the user & website, it hindered the ability of search engine spiders to navigate and index page content.
In addition to the indexing issue with AJAX, when using AJAX for website navigation also, you loose the ability to ‘deep-link’ to a website page URL and also the ability to move back/forward via a browser’s history. To solve these issues, there are a number of steps that can and should be taken to ensure a familiar navigational experience.
Landing Pages / Deep Links
- Detection of ‘static’ URLs
- Present static website content equivalent
- Rewrite to website or application’s base URL
- Initialise the correct state using the appropriate ‘dynamic’ hashed URL.
All website navigation is represented using browser hashes (# character). These are client-side only fragments of URLs and are not sent to a website as part of page requests, and as such will not cause any page reloads to occur when changed. They are however stored in a browser’s history to represent distinct content/locations and so can be used to trigger states in the website or application.
To enable logical use of bookmarking, this is a follow-on of the landing page mechanism above and the use of a hashed URL for navigation. As you navigate, the hash changes and is included when you bookmark, allowing you to revisit that URL and return to the same page / state.
Visitor Stats and Tracking
As part of the code used for navigation and url handling, page views can be correctly recorded and tracked with the relevant ‘static’ URLs. This allows you to analyze website traffic using Google Analytics or other similar services comprehensively irrespective of the use of hashed URLs etc.
The End Result
The end result of taking these measures is both a logical and complete user navigation experience for a website and an optimized URL structure and related page content for search engine indexing which should underpin and improve on any SEO strategy implemented for a site.