views:

52

answers:

2

My problem is that I have a site which has requires a dedicated page for every city I choose to support. Early on, I decided to use subdomains rather than a directly after my domain (ie i used la.truxmap.com rather than truxmap.com/la). I realize now that this was a major mistake because Google seems to treat la.truxmap.com as a completely different site as ny.truxmap.com. So for instance, if i search "la food truck map" my site will be near the top, however, if i search "nyc food truck map" im no where in sight because ny.truxmap.com wouldnt be very high in the page rank by itself, and it doesnt have the boost that it ought to be getting from the better known la.truxmap.com

So a mistake I made a year ago is now haunting my page rank. I'd like to know what the most painless way of resolving my dilemma might be. I have received so much press at la.truxmap.com that I can't just kill the site, but could I re-direct all requests at la.truxmap.com to truxmap.com/la and do the same for all cities supported without trashing my current, satisfactory page rank results I'm getting from la.truxmap.com ??

EDIT I left out some critical information. I am using Google Apps to manage my domain (that is, to add the subdomains) and Google App Engine to host my site. Thus, Google Apps provides a simple mechanism to mask truxmap.appspot.com (the app engine domain) as la.truxmap.com, but I don't see how I can mask it as truxmap.com/la. If I can get this done, then I can just 301 redirect la.truxmap.com to truxmap.com/la as suggested below.

Thanks so much!

+2  A: 

You could send a "301 Moved Permanently" redirect to cause the Google crawler to update its references to your site, no?

See this article on 301 redirects and SEO.

Borealid
I added a bit of information that complicates the process. I'm sorry, that piece of info was really what was leading to my confusion and I should have specified it initially.
culov
+2  A: 

You'll need to modify your app as follows:

  1. Add www.truxmap.com as an alias for the app (you can't serve naked domains in App Engine, so just truxmap.com won't work)
  2. Add support to your app for handling URLs of the form www.truxmap.com/something/, routing to the same handlers as the subdomain. You'll need to make sure you've debugged any relative path issues well before continuing.
  3. Modify your app to serve 302 redirects for every url under something.truxmap.com/whatever to www.truxmap.com/something/whatever.
Nick Johnson
It's complicated by the fact that every city has a different appspot domain. So LA is hosted at truxmapla.appspot.com and nyc at truxmapnyc.appspot.com. What I'm having trouble accomplishing is step 2, because I'm not sure what needs to be modified to get the la version visible as either www.truxmap.com/la or la.truxmap.com/la (obviously the former is the end goal, but right now id be happy just getting to the latter).
culov
You can't do that without proxying - and splitting your app by locality could be construed as an attempt to avoid billing, which is in violation of the TOS. I would recommend migrating them all into the same app using the new namespace support, and serving from there.
Nick Johnson
That's certainly my goal, but I'm not sure I can do that right now. For one thing, I'm already using 20 cron jobs for each app (20 is the maximum) and organizing them all under one task would be a gargantuan task at this point, even if I were to ignore the fact that I'll almost certainly have issues with the 30 second hardline time limit. Regardless, I am going to try my best to accomplish this next month. Until then, I'd like to investigate how I can setup my domain properly by proxying. Are there any downsides to doing this temporarily?
culov
You can use task queues instead of cron jobs - in fact, you can have a cron job that kicks off multiple task queue tasks, which essentially gives you unlimited cron jobs. As for the 30 second limit, send me an email and we may be able to sort something out for you. Downsides to proxying are that it substantially increases latency, and requires you to either run a separate frontend app, or use an external service.
Nick Johnson