I personally prefer the subdirectory structure, because it looks so much cleaner and also because the subdirectory inherits the authority of the main domain. Even though MODX makes it incredibly easy to "virtually"
create Subdomains from a Folder using Virtual Hosts, subdomains are still unique in that they're treated as separate sites by search engines and they don't automatically earn the reputation associated with the main domain (Which could be a good thing in some cases). Plus, I hate having to play with DNS settings (CNAMES and stuff), unless I absolutely have to.
Like Matt Cutts, I too believe that subdomains are better used when separating content that's very different in nature. For example:
http://support.mycar.com/en/ and
http://models.mycar.com/ru/ Notice how we're separating content while conveniently serving languages based on user preferences? The following would be very confusing to users (robots and humans), wouldn't it?
http://www.mycar.com/support/ru/.
@Jako, I've never used Babel (I tried, but I was too lazy to commit), but I've learned (painfully) that absolute URLs are safer. While both approaches will work just fine for the end user, neither offers any SEO benefits to your internal links more than the other. I'd argue that both can be problematic. IMO absolute URLs are better for SEO:
// Creates absolute URLs by appending the site url to the relative link:
<a href="[[++site_url]]en/resource/alias.html">my link</a>
// Creates absolute URLs using the full scheme property:
<a href="[[~10? &scheme=`full`]]">my link</a>
When SEO is crucial for a site, I tend to use the <base> tag only for static elements (images,style sheets, etc.).
On many sites that I manage, I usually put the blog in a subdirectory like this: htttp://www.example.com/blog/. As noted earlier, I've found out the hard way that relying on the <base> tag for deep linking can be costly as far as SEO is concerned. Apparently, even when the base URL is specified, Googlebot isn't clever enough (or pretends not to be) to figure out that this link:
<a href="blog/an-awesome-post.html">An awesome post</a>
is the same as this:
<a href="http://www.example.com/blog/an-awesome-post.html">An awesome post</a>
Unless I'm using absolute URLs for subdirectory pages, I usually get strange 404 error messages in Google Webmasters Tools. This one for example:
http://www.example.com/blog/blog/an-awesome-post.html
Why Google appends "blog/" to "blog/" isn't clear to me, but I bet it's due to relative URLs. But it makes sense, doesn't it? While my site's root directory is local to my web server, it is not to Google's. The <base> tag trick only works when the traffic is local, because my local web server knows where to find my site's root directory. The foreign one doesn't (necessarily). This issue will most likely hunt you in your multilingual site if using the subdirectory structure (and the subdomain structure with relative links)
@mixa_ru, I'm not sure how you're using the language TV to link those multilingual pages, but suppose you had the following setup:
en/ (English is assumed to be the default language)
--Services (2)
--About (3)
ru/
--Services (5)
--About (6)
est/
--Services (8)
--About (9)
You could then create three language TVs: EN, RU, EST that you'd attach to the appropriate templates. For example, EN and RU would be attached to the Estonian templates and so on.
On the est/services.html resource for example, you could specify the id of the alternate language pages in the appropriate TV: 2 in the EN TV and 5 in the RU TV. This should work just fine for a smaller website. A more efficient solution such as Babel, migxmultilang might be better for a bigger site.
I hope this helps.