Simple reminder (or those who don't know it yet): SE do not manage anchors since the anchor is not include in the header datas. They are only a client-side functionality. A couple months ago , Google has made a announcement about anchors, with the fact they now use them … but in fact only to put the "see also" link just down the link title. It's not used for the sitemap, neither page rank and is of course not a netlinking valuable data.
This said, the real problem of iUI (and JQTouch / most of iPhone JS-based frameworks also btw) is the fact it's all based on anchor… so exactly the kind of links Google is not using. Just test it by yourself with SEO tools like Xenu (Windows) or Integrity (OSX) with the music demo page : http://ejohn.org/files/border-image/iui/samples/music.html
Here is the result : http://www.remi-grumeau.com/medias/uploads/iui-music-demo-in-integrity.png
First issue: no artists, albums, songs, settings pages/links. Yes, we'll find them in the flat map but SE counts and save a URL link reference, without anchors.
Second issue (and defnitly the worse one): no headers informations in sublinks ! If you check out the only link Google would go for informations in this case, it would fall down on this: http://ejohn.org/files/border-image/iui/samples/stats.php. It's not even a valid HTML document … no html,head,title,meta-description,body tags and so of course values for them.
Third issue (linked to the previous one): no direct links to pages, which is a sitemap problem but also a real social media sharing issue !! Not on the mobile navigation -> social networks but on the other way: social network -> website subpage -> mobile website subpage if handheld device. example: you are on facebook, clic on a friend link … but you are redirected on the index of the mobile site, and don't know where to go/navigate to find this content.
So what to do about it ?
This is definitely THE one billion dollar question … for which i actually have no good technical answer but is one of my top priority in mind !
As usual, any ideas / debate would be greatly appreciate !
Remi
Remi Grumeau
(+33) 663 687 206
http://www.remi-grumeau.com
Agreed.
>> 2) Make the pages search engine friendly and navigable without JavaScript
>>
>
> a SEO basic, not that related to desktop or mobile website
>
Agreed, but since an iUI-only, Ajax-based site is unnavigable by search
engines, it's worth mentioning.
>> 3) When an iPhone reaches one of the content pages via a search engine,
>> redirect it to the main iUI page and then "ajax in" the content page.
>>
>
> humm � this would need kind of a sitemap iUI could refers to nope ?
>
The sitemap idea (were you the one who mentioned it before?) is one
solution. I'd like to see a hook in iUI that would provide a function to
map a fragment to a full URL -- this would be done in a generic enough
way that one or more mechanisms for implementing hierarchy could be used
as well. This hook would also support the sitemap approach.
-- Sean
The sitemap idea (were you the one who mentioned it before?) is one
solution. I'd like to see a hook in iUI that would provide a function to
map a fragment to a full URL -- this would be done in a generic enough
way that one or more mechanisms for implementing hierarchy could be used
as well. This hook would also support the sitemap approach.
Cheers
Max
> Second way to do it: have a header in every file, simply deleted by the ajax load. Only content between <body> and </body> would be added to the content when loading (let"s using the same example) board.php. So basically board.php would be a normal HTML document that Google can read, and iUI would only use its <body>content</body> to generate the page.
This is the approach I've taken, except PHP decides if the
"header&footer"should be included or just the fragment. Each view is
in its own php file so it can stand on its own as a legit page if a SE
is looking
Php also allows me to dynamically include the views that are needed/
logical on the initial load (like: if a catalog item is orderable,
include the basket and checkout fragñ )
> Issue here (neither it wouldn't be funny right ? :) ) how to deal with #_board and #_board1 which are in the same file ?
>
> In fact the problem is that we do have from one side board.php?id=1, and on the other side a index.php#_board1.
> So perhaps the solution of direct access could be a anchor synthax standardization !!
> Something like #_FILENAME_ANCHORTOGO would be here FILENAME and then ANCHORTOGO. In this case: #_board_board1 -> board.php and then #_board1.
> Huge point : no sitemap file is require (which is a real pain in - you know where - with dynamic content
My view IDs are the relative path to the file that holds the frag.
( id="/dir/page_name/")
I dynamically add a pre fix to my links, "http://domain.com" for
external frags and "#" for frags that have already been included.
Issue 174 is the missing link in my setup (but I'm workin on
it...slowly, as per my js skills ;). )
I just (today) used this approach in the Groovy Template "form-echo.gtpl"
The diff is here:
http://code.google.com/p/iui/source/diff?spec=svn32b7ab6215cf20360a6f58ae5913271e5a9e658f&r=32b7ab6215cf20360a6f58ae5913271e5a9e658f&format=side&path=/web-app/test/form-echo.gtpl
You can test it out on AppSpot:
http://iui-js.appspot.com/test/form-test.html
When the forms use target="_self" they don't use AJAX and the full
document is returned, when they use AJAX only the "frag" is returned.
> My view IDs are the relative path to the file that holds the frag.
> ( id="/dir/page_name/")
> I dynamically add a pre fix to my links, "http://domain.com" for
> external frags and "#" for frags that have already been included.
> Issue 174 is the missing link in my setup (but I'm workin on
> it...slowly, as per my js skills ;). )
>
I definitely want to add hooks in iui.js to allow a pluggable mechanism
to do this. There can then be one or more extensions that use different
id -> URL mapping schemes (potentially using a sitemap, etc) If someone
submits a clean patch that allows an extension to do this, I'll merge
it. If they do it using Mercurial it will happen more quickly ;)
-- Sean