Creating a Google Sitemap for your APEX Application

Google’s default crawling algorithm is likely to miss a lot of content within an APEX application. A sitemap will help.

This is an update to a post I made at https://www.insum.ca/search-engine-optimization-with-apex-creating-a-google-sitemap/

The content of that blog post remains relevant, so I won't repeat it all here. I will simply recap a few updates specifically for APEX friendly URLs.

Why register a Google Sitemap?

Google’s default crawling algorithm is likely to miss a lot of content within an APEX application. The APEX URL format consists of the pattern something like this: https://[host]/[ords_mapping]/r/shema-alias/application-alias/app-page-alias?p10_id=1234

While this is better than it was prior to friendly URLs, that parameter at the end causes Google (and others) to not crawl the link. The solution is to give Google a sitemap with all of the pages you want Google to crawl.

Create a Sitemap in the Google Format

Following the instructions in my original blog post, along with the changes below, will give you a functional Google sitemap. To fully understand Google sitemaps, and get started on Search Engine Optimization, you should start at the link below.
support.google.com/webmasters/answer/183668..

Two updates

While following the original blog post, you will make two changes.

New Package

The new package is located here:
https://github.com/ainielse/google-sitemap

Change to Resource Handler

The only other change is in the definition of the ORST REST Service resource handler.

begin
  --set the Content-Type header
  owa_util.mime_header ('application/xml', true);
  my_sitemap.page_xml(p_app_id => :MY_APP_ID);
end;

Adding owa_util.mime_header ('application/xml', true); sets the correct mime type.

That does it.