Uploaded image for project: 'Old RHD Project. Use DEVELOPER JIRA Project.'
  1. Old RHD Project. Use DEVELOPER JIRA Project.
  2. RHD-715

Do not use crawling AJAX schema if we do not provide snapshot HTML content

XMLWordPrintable

    • Important

      Pages that pull content dynamically (for instance from DCP) uses crawling AJAX schema [1]. Example of such page is Red Hat JBoss Developer Studio "Learn" page [2]. This causes two issues:

      1) Crawling bots can try to index snapshot pages from our server, but AFAIK we do not provide it (and there probably isn't any near future plan to do so).

      2) As long as the JS part is implemented in AngularJS it is problematic to force native Angular $location service to honour the same crawling AJAX schema that we use today. At least the version of Angular we use today always modify the URL so that the path part starts with backward slash [3].

      As long as we have a plan to stick with Angular we should drop the crawling URL schema and simply stick to what AngularJS forces (this means our URLs will become http://_server_/#/_path_ as oppose to http://_server_/#!_path_ that we use today or we will use pushState approach [4]).

      Currently, as far as I can tell, when the code is using AngularJS and modifies URL part after the # sign it is done manually and not via AngularJS services. I do not think this is good approach, especially given we do not have any reason to use crawling URL schema (see points 1 and 2).

      More discussion about SEO friendly AngularJS apps can be found here: http://www.ng-newsletter.com/posts/serious-angular-seo.html

      [1] https://developers.google.com/webmasters/ajax-crawling/docs/getting-started
      [2] http://developers.redhat.com/products/devstudio/learn/
      [3] https://code.angularjs.org/1.3.3/docs/api/ng/service/$location#path See the Note for path() method.
      [4] http://stackoverflow.com/a/23245379

            Unassigned Unassigned
            lvlcek@redhat.com Lukas Vlcek (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: