Pages: [1]
  Print  
Author Topic: Different SEO approach  (Read 3480 times)
turtlebite
Gaia Intermediate
***
Posts: 149



WWW
« on: October 08, 2008, 12:41:24 AM »

Hi

First of all, I want to say how much I like Gaia and how much time it saved me so far. I was using my own framework based on AS2 and the thought of porting it to AS3 was like a nightmare. Instead of reinventing the wheel I googled for Flash frameworks and i came across Gaia, and wow, that was like a thunderstroke! :-) There is only one thing i miss in Gaia which I had in my own framework: a different SEO approach. So i tried to figure out how i could implement this into Gaia.

Let me explain my way.

There are 2 things I'm not so happy with the Gaia way:
1. When I seo scaffold the page with gaia, it creates a physical html page for each content. This is ok if i have just a few pages, but what about hundreds or even thousands? For example on this flash site of mine: http://www.findanddine.ch. There are more then 13'000 links in the google index. And it is planned to relaunch this site with AS3/Gaia.

2. The deeplinks "stay", that doesn't look nice. And if a person bookmarks the page, the "ugly" url will stay forever... The bookmark looks something like that: www.mydomain.com/news.html#/about-us/. But I like it more this way: www.mydomain.com/#/about-us/.

My approach:
When you download the examples at http://www.asual.com/swfaddress/ and look at the SEO examples, there is a nice solution where the url stays "clean". Have a look at this Gaia-Site I just finished, where I implemented this SEO method: http://kunden.kaegi.net/impactunlimited/. Try e.g. the following link with javascript deactivated and navigate a while on the site: http://kunden.kaegi.net/impactunlimited/e/unlimited/worldwide. Then activate javascript again and reload. The urls stays "nice", the only thing that is added is the "#". And the cool thing is: it doesn't matter if there are 10 or 10000 links.

The only thing i hade to do was catching the SWFAddressEvent.CHANGE event before Gaia loads the site.xml. So i initialize and setup SWFAddress in main.as. Then I dispatch an event whenever the urls changes. This event i listen to in GaiaSWFAddress.as.

The code in main.as:
Code:
public function Main()
{
super();
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, onSWFAddressChange);
SWFAddress.setHistory(false);
// ...
}
private function onSWFAddressChange(e:SWFAddressEvent)
{
var value:String = SWFAddress.getValue();
EventCentral.getInstance().dispatchEvent(new ProjectEvent(ProjectEvent.SWF_ADDRESS, { value:value } ));
}

The changes in GaiaSWFAddress.as:
Code:
public function init():void
{
// kaegi-start --------------------------------------------------------------------------------------------
EventCentral.getInstance().addEventListener(ProjectEvent.SWF_ADDRESS, onChange);
var v:String = SWFAddress.getValue();
if (v == "/") v = insertStrictSlashes();
if (v != "/")
{
EventCentral.getInstance().dispatchEvent(new ProjectEvent(ProjectEvent.SWF_ADDRESS, { value:v } ));
} else {
dispatchGoto("index/nav/home");
}
// kaegi-end ----------------------------------------------------------------------------------------------
//
/* original:
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, onChange);
SWFAddress.setHistory(false);
var v:String = SWFAddress.getValue();
if (v == "/") v = insertStrictSlashes();
if (v != "/") SWFAddress.setValue(v);
*/
}

// kaegi-start  -----------------------------------------------------
public function onChange(event:ProjectEvent):void
{
_value = stripStrictSlashes(event.params.value);
// kaegi-end  ---------------------------------------------------
// original-start
//public function onChange(event:SWFAddressEvent):void
//{
//_value = stripStrictSlashes(event.value);
// original-end
...
...

I used the "EventCentral, ProjectEvent" from here: http://www.reynaldocolumna.com/blog/archives/event-control-system

There are even more advantages to this seo method: When I catch the url before gaia loads the site.xml, I can examine the url and take out some code for later use on the site, and give gaia exactly the link it can work with. For example: www.mydomain.com/books/authors/billy-bully/book2. The part Gaia is interested in is "www.mydomain.com/books/authors/" the rest (billy-bully/book2) is cut and stored in a central variable. Then, when the books/authors-page is loaded, the "billy-bully/book2" is retrieved and i can do with it whatever i want.

And there is another advantage: When the url is analized before the site.xml is loaded, i can use language specific information in the url (/e/ for english or /d/ for german) to distinguish what to load. If you have a look at the http://kunden.kaegi.net/impactunlimited/site.xml you can see the i used "{" in the route and title attributes. Because i know which language is active when i load the site.xml, i can read, split and use the corresponding string. If you wonder about all the "btn..." attributes: this is my global navigation i also implemented (I'm going to explain it another time, i have to document it first). I just like to have one xml file where all the structure is in one place. The same site.xml is used to generate the navigation for the seo version: http://kunden.kaegi.net/impactunlimited/seonavig.php?debug=1

I'm curious what you think about all of this... :-)
Logged

jsus2maj7
Gaia Expert
****
Posts: 316

2725b7b1f6b


« Reply #1 on: October 10, 2008, 11:21:59 AM »

i haven't had a chance to play with gaia seo yet
i thought it already worked this way
something like domain.tld/something-unrelated.html#/target/ is just not acceptable
i'm about to set up an html alternate version of a flash site
i'm glad i caught this beforehand
thanks

---

what about javascript redirection on each html page?
if i go directly to domain.tld/news.html and swfobject detects flash
why not redirect to domain.tld/#/news/ ?
« Last Edit: October 10, 2008, 11:27:27 AM by fis » Logged
steven
Gaia Author
Administrator
Gaia Evangelist
*****
Posts: 3173


gaiaframework
WWW
« Reply #2 on: October 10, 2008, 02:05:07 PM »

The only way to fix that issue is with a Javascript redirect.  I'm entirely unsure whether Google is ok with that.

The thing is, this is an easy solution.  There are actually better ones but they require server-side detection of spiders/bots, etc.
Logged

Steven Sacks | Gaia Author
Please support Gaia by donating to the project!  Smiley
jsus2maj7
Gaia Expert
****
Posts: 316

2725b7b1f6b


« Reply #3 on: October 16, 2008, 06:48:53 AM »

how reliable are these other solutions?

i just used javascript redirection on the designwithtorlon.com site
i will see how well google deals with it
it's the same content just presented in a diff manner so i dont see whats wrong with that
Logged
steven
Gaia Author
Administrator
Gaia Evangelist
*****
Posts: 3173


gaiaframework
WWW
« Reply #4 on: October 16, 2008, 07:42:55 AM »

They're 100% reliable because they use the server to detect the agent, etc.  It's pretty common on non-Flash sites, but it's all handled on the backend.

Gaia's SEO is not necessarily the "best" solution, it's an easy solution that works.  Everything I've read online about Javascript redirects and Google is that it can negatively affect your page rank.  That being said, if you know php or some other middleware, you could easily use mod rewrite to strip out the filename.html, or some other technique.
Logged

Steven Sacks | Gaia Author
Please support Gaia by donating to the project!  Smiley
turtlebite
Gaia Intermediate
***
Posts: 149



WWW
« Reply #5 on: October 16, 2008, 11:47:38 AM »

Hi

It's me again. I believe the SEO-Solution of SWFAddress  (which uses mod_rewrite) is 100% reliable. The site i was talking about is already in the Google index: http://www.google.com/search?hl=de&q=site:impactunlimited.ch .The search engine spiders are seeing exactly the same content as the user when viewing the site with the flash plugin.  The Gaia Seo solution is perfect for small sites, but as I said when there are hundreds of pages, then how can I manage these? The findanddine.ch site has been around for over 4 years, it's good positioned and there has never been a problem. And the SWFAddress is widely accepted, so honestly I don't see a problem there. The only other solution would be to avoid huge sites built with flash and that's not what I want... ;-)

@steven: when updates are released, is there a place to check exactly which classes you changed?

Logged

steven
Gaia Author
Administrator
Gaia Evangelist
*****
Posts: 3173


gaiaframework
WWW
« Reply #6 on: October 16, 2008, 03:12:09 PM »

Would you be willing to provide the code you used to integrate the mod_rewrite solution with Gaia?

To your updates question, when you update a project, it tells you which files were updated and/or added.  com.gaiaframework.core.GaiaImpl is where the version trace is stored, so that class is always updated.
Logged

Steven Sacks | Gaia Author
Please support Gaia by donating to the project!  Smiley
turtlebite
Gaia Intermediate
***
Posts: 149



WWW
« Reply #7 on: October 17, 2008, 11:10:54 AM »

That's no secret, of course you can have the code, it's not mine  Wink Just download the swfaddress from here:  http://www.asual.com/swfaddress . Than navigate to "samples/seo". There is all the magic. The rest that I have done is written in my first post. Would you (or anybody else) be interested in my global navigation? It can have as many levels as you wish, can be animated by TweenMax etc. and it's possible to be integrated seemlessly into Gaia. It even is possible to switch languages on the fly, but that I did not integrate because than I would have to touch your classes to much.
 
Another suggestion: It would be nice to have the title, route etc. attributes read as arrays (splitted by a character, e.g "{") instead of a string, than I could use a language code like 0 for german and 1 for english for switching. So instead of using "title" I could use "title[0]". I would love that... Cool
Logged

bebber
Gaia Intermediate
***
Posts: 95



WWW
« Reply #8 on: October 18, 2008, 02:17:49 AM »

Would you (or anybody else) be interested in my global navigation? It can have as many levels as you wish, can be animated by TweenMax etc. and it's possible to be integrated seemlessly into Gaia. It even is possible to switch languages on the fly, but that I did not integrate because than I would have to touch your classes to much.

it should be great!!!

please share it and you'll be the hero of the day Smiley
Logged
nGrinder
Gaia User
**
Posts: 61


I always use the latest version of GAIA

nothingGrinder
WWW
« Reply #9 on: October 18, 2008, 07:41:23 AM »

I'm using Mod_Rewrite and URLRewriting  to manage all the links in HTML. I don't actually use Gaia's SEO scaffolding.
Logged

----------------------------------------
http://www.ngrinder.com
http://concept.nothinggrinder.com
Build a website, touch the world!
----------------------------------------
nGrinder
Gaia User
**
Posts: 61


I always use the latest version of GAIA

nothingGrinder
WWW
« Reply #10 on: October 20, 2008, 10:24:36 PM »

Im also using the Mod_Rewrite to manage multiple languages. Don't need to modify any GAIA code for this. the {@lang} in the site xml is set via SWFObject
Logged

----------------------------------------
http://www.ngrinder.com
http://concept.nothinggrinder.com
Build a website, touch the world!
----------------------------------------
option8films
Gaia Novice
*
Posts: 1


« Reply #11 on: November 04, 2008, 11:31:42 AM »

I'm using Mod_Rewrite and URLRewriting  to manage all the links in HTML. I don't actually use Gaia's SEO scaffolding.

nG - I am also working on a large dynamic site that is looking at URLRewriting to manage the links in HTML. The SWFAddress SEO examples appear to work with PHP and seems well tuned for small, static sites rather than large dynamic sites. I am sure that others here would be interested to learn more about your experience with Mod_Rewrite and how you are handling things with url rewriting. Thanks.
Logged
turtlebite
Gaia Intermediate
***
Posts: 149



WWW
« Reply #12 on: March 26, 2009, 06:57:35 AM »

@steven
You asked for the code, so here it is... Grin

I have finally set up a complete working gaia project that uses this solution. More Info and download:
http://www.flashcmsframework.com/swfaddress-seo-solution-for-gaia-flash-framework

What do you think?
Logged

kris meister
Gaia User
**
Posts: 11


« Reply #13 on: April 04, 2009, 04:50:34 PM »

The only way to fix that issue is with a Javascript redirect.  I'm entirely unsure whether Google is ok with that.
I'm also apprehensive about redirecting with JS. It feels like perhaps too simple a solution to trick search engines malevolently using such a technique.

The mod rewrites look extremely convenient, but for Apache only.

I'm actually becoming interested that perhaps there could be a good XSLT solution to making flash more SEO friendly.
Is any one an XSLT expert?
Could it be a flexible solution which can reliably create many pages based off a single XML structured source?

[edit] More specifically, does a 100 page site need 100 XSLT pages?
[edit 2] I looked into it, for a completely front end solution one would unfortunately need 100 files. Though there are cross server solutions to use XSLT templates to create websites.
« Last Edit: April 05, 2009, 07:15:46 AM by kris meister » Logged
Glidias
Gaia User
**
Posts: 28


« Reply #14 on: April 16, 2009, 05:56:55 AM »

I think one possible way is to have ModRewrite/URLRewrite rewrite your links to have a "?isFlash=true" suffix query string which I think most search engines (or all search engines) drop during the crawling. Thus, the search engine takes you to a holding page or blog site containing the seo content (and a note saying, "Welcome: This is an seo content/blog feed. The Flash site can be view here.."), and any other links you click within that page would take you to the FLash site itself because the php script happens to read that query string which loads the FLash version, but only internally within the site. Of course, this might mean you'd need to skin your blog site fairly nicely too, which is more work...

Javascript can also read query strings, so you may not necessarily need an apache server to handle it. Just get JS to read the query string and if set to true... load in Flash object.

Content hiding cannot guarantee accruate data info in the overlaid Flash representation, especially if you don't use all the content found in the HTML. Unless your Flash Html renderer is ROCK solid (like sifR) text, stray stuff might be left remaining in an un-updated HTML. Of course, if you constantly update it, or use simple sementic data such as lists, that should be generally fine as the chances of error is minimal since your script can easily read from such simple markup.
Logged

My GitHub code repository:
http://github.com/Glidias
Pages: [1]
  Print  
 
Jump to:  

TinyPortal v1.0 beta 4 © Bloc