Thursday, September 13, 2007

Making Apex Tabs taste good for Google and other search engines

This is not meant to be a tutorial like how to build a successful a website.
I am assuming that you know well the rules, the tips and techniques to make your website appear in the top 10 list of Google, given certain search keywords ;-)

I want to show you instead how to make your Oracle Application Express powered website easy to be navigated by a web spider, one of those programs that drill down your pages in search for linked URLs.

One of the biggest problem with spider navigation in a typical Apex application is in that in order to move from page to page, one has to click on a tab and built-in templates are designed to submit the page whenever a user clicks on a tab and that is achieved by executing a tiny javascript program.

As far as i know web spiders do not execute javascript code, which means that an application basing on tabs for page navigation will not be analyzed beyond the entry page.

This can be a problem if you hope to catch users coming from search engine queries, but it can be a perfectly valid solution if you want to prevent spiders from wasting your bandwidth.

But assuming that you prefer to pull in new users in any possible way, then you must find a workaround to make hidden pages visible.

One technique i adopted in the past was to provide an alternate access path to the pages, in form of a supplementary link list or as URLs within the text or even with links pointing to the desired pages from external sites. Another possibility is to feed Google with a sitemap, but this is a topic i hope to cover in a dedicated white paper that for some reason is buried in my tray and at this time i am still not 100% convinced that Google is indexing a page URL that exists only in a sitemap.
At any rate, all these are perfectly legitimate solutions.

Lately however, for certain applications, i began to change tab sub-templates and turn them into links.
Here is a sample "Non standard tab sub-template" before the change:

and after the change:

To make all this work, the following conditions must be met:
  1. All the default pages pointed to by tabs, must have a page alias.
  2. Each tab must have the same name as the alias it points to.
  3. If the application alias substitution string is to be used as in the example above, then the alias must be specified in the application attributes, alternatively the application id substitution string (&APP_ID.) must be used.
  4. any session items that were set by the page submit, must be passed in the URL. Not all Apex applications may be suitable for this change.
As a final note, you can opt for not using session zero, in which case the zero after the colon (in the link URL displayed in the picture) can be replaced by the current session id substitution string (&APP_SESSION.).

Updated Sept. 14.
I realize only now that in the ordered list above i forgot to mention what is now numbered at #2.
Without matching names, it is not possible to build a proper link in the template.

See more articles about Oracle Application Express or download tools and utilities.

No comments:

yes you can!

Two great ways to help us out with a minimal effort. Click on the Google Plus +1 button above or...
We appreciate your support!

latest articles