
AI Summary
This case study argues that subdirectories beat subdomains, based on a single blog moved from blog.vircara.com to vircara.com/blog/ in February 2014 that went from outside the top 100 to position 57 for one keyword within two weeks. Google's stated position is that the two are equivalent, and the reported lift is confounded by the other changes that ship alongside a hostname move.
- The original test ran in February 2014 on a domain established three years earlier, revisited in 2015 and July 2021.
- Reported result: one page targeting choosing a career moved from outside the top 100 to position 57 in two weeks.
- Sample size is one page, one keyword, one site, with no control group.
- Google's John Mueller has stated that from Google's point of view the choice does not matter for ranking.
- The differences that are real and measurable are robots.txt scope, Search Console reporting and hosting complexity.

The subdomain versus subdirectory argument has outlived almost every other SEO debate of its era, and it survives because both camps can point at real data. This article is a good example of the pro subfolder case, and it is worth reading alongside a clear account of what its evidence can and cannot support.
What the source actually tested
The author ran a test on Vircara, a domain that had been established for over three years at the time. A blog had been set up on the subdomain blog.vircara.com in March 2012, with links built to it. The target phrase was choosing a career, and on the subdomain the page ranked outside the top 100 and did not surface in Google Blog search either.
The content was then moved to the subdirectory vircara.com/blog/. Within two weeks the page was reported at position 57. The author revisited the piece in mid 2015 and again in July 2021, maintaining the conclusion that subdirectories inherit the parent domain's accumulated authority in a way subdomains do not.
The recommendations that follow from it are sensible enough on their own terms: use subdirectories for a blog attached to an established domain and for content meant to benefit from existing authority, and reserve subdomains for multi language content targeting different markets, franchise specific regional pages, and genuinely separate product lines.
Reading the evidence honestly
The problem is not that the observation is false. The problem is that one page moving from unranked to position 57 is compatible with several explanations, and the hostname is only one of them.
| Alternative explanation | Why it fits this data | How you would rule it out |
|---|---|---|
| Internal link flow changed | A blog on a subdomain is usually linked from fewer places, and often less prominently, than a path on the main navigation | Count and compare internal links to the page before and after, including link position on the page |
| A nofollow was removed | Footer and navigation links to blog subdomains were commonly nofollowed in that era as PageRank sculpting | Inspect the archived main site markup for rel attributes on the blog link |
| Content was re-crawled and re-evaluated | A URL change forces a fresh fetch and fresh evaluation of a page Google may have long since deprioritised | Compare against a control page that was re-published at a new URL on the same hostname |
| Template or platform changed with the move | Migrations rarely preserve the template, and page speed, markup quality and internal linking all change with it | Diff the rendered HTML of the old and new page |
| Position 57 is inside normal volatility | Moving from outside the top 100 to page six is not a competitive position and can reflect ordinary re-indexing | Track the position for 90 days rather than 14 |
None of these rule out a hostname effect. They mean this test cannot distinguish a hostname effect from four other things.
What Google says
Google's search relations team has been consistent for years: subdomains and subdirectories are treated equivalently in search, and the decision should be made on operational grounds. In a September 2021 office hours session John Mueller put it plainly, saying that from Google's point of view it does not matter, while adding the useful qualifier that related content should be grouped together on the same site as much as possible and that a subdomain makes sense when it has something genuinely different to offer.
The second half of that is the part people skip, and it is where the two positions actually converge. Google is not saying build your blog wherever you like with no consequences. It is saying the hostname string is not itself the mechanism. Grouping related content together tends to win because of internal linking, crawl consolidation and topical coherence, all of which a subdirectory makes easy and a subdomain makes easy to neglect.
The differences that are unambiguously real
Set the ranking question aside and there is a concrete list of things that genuinely change when you pick one over the other. These are the ones to decide on.
| Dimension | Subdomain blog.example.com | Subdirectory example.com/blog/ |
|---|---|---|
| robots.txt scope | Needs its own file at blog.example.com/robots.txt; parent rules do not apply | Governed by the single file at example.com/robots.txt |
| Search Console | Separate URL prefix property, or use a domain property to see both | Reports inside the main property with no extra setup |
| Sitemaps | Cross host sitemap submission requires the hosts be verified together | One sitemap index covers everything |
| Cookies and analytics | Cross domain tracking configuration needed to stitch sessions | Same origin, sessions stitch by default |
| Hosting | Can point at wholly separate infrastructure with a DNS record | Usually requires a reverse proxy or path routing at the edge |
| Blast radius | A compromise or outage is contained to that host | Shared host, shared exposure |
| Certificate | Covered by a wildcard or its own certificate | Covered by the existing certificate |
Rows one to four favour the subdirectory. Rows five to seven are the legitimate reasons teams choose a subdomain and are engineering constraints, not SEO ones.
Doing the migration properly if you decide to move
The mechanics are the same as any hostname migration. The failure mode that costs the most is a blanket redirect: sending every old post URL to the new blog index rather than to its own new URL. That converts a clean signal transfer into a mass soft 404 event.
# nginx: one to one map, not a blanket redirect
location ^~ /blog/ {
proxy_pass http://blog_backend/;
proxy_set_header Host $host;
}
# On the legacy host, preserve the path
server {
server_name blog.example.com;
return 301 https://example.com/blog$request_uri;
}Then verify, rather than assume, that the map is one to one. Take the full legacy URL list from your last crawl and confirm each entry resolves in a single hop to a live page.
while read u; do
out=$(curl -s -o /dev/null -w '%{num_redirects} %{http_code} %{url_effective}' -L "$u")
set -- $out
if [ "$1" != "1" ] || [ "$2" != "200" ] || [ "$3" = "https://example.com/blog/" ]; then
echo "REVIEW $u -> $out"
fi
done < legacy_blog_urls.txtThe third clause in that condition is the important one. It catches the case where everything technically returns 200 but every legacy post has been funnelled into the blog index, which is the exact failure the redirect was supposed to prevent.
What's changed since
The article was written in 2014 and last revisited by its author in July 2021, and the landscape has shifted underneath it in two ways. First, the PageRank sculpting practice that made subdomain blogs perform badly in the early 2010s, nofollowing internal links to conserve equity, has been obsolete since Google changed how nofollow is handled, so the mechanism that produced many of the original subfolder wins simply is not there any more. Second, edge platforms have made path based routing far cheaper than it was: reverse proxying a separately hosted application into a path on the main hostname is now a configuration file rather than an infrastructure project, which removes most of the historical engineering argument for the subdomain.
The net effect is that the practical recommendation has converged on the article's conclusion even though its reasoning does not hold. Put the blog in a subdirectory, not because the hostname is a ranking factor, but because doing so makes internal linking, reporting and crawl management easier, and because the cost of doing it has fallen to near zero.
Related reading on this site
For a longer treatment of the architectural question, see how a subdomain strategy can harm your SEO. The HotPads blog migration is the most famous example of exactly this confound being publicly picked apart, and the robots.txt reference covers the per hostname scoping rule that catches out most subdomain owners.
FAQ
Google's public position is that it treats them equivalently and that the choice should be driven by operational factors rather than ranking expectations. John Mueller has said explicitly that from Google's point of view it does not matter, while recommending that related content sit together on one site and that a subdomain be reserved for something genuinely different. Most published evidence to the contrary comes from migrations where several things changed at once.
Because the URL change is almost never the only change. The typical migration also replatforms the CMS, redesigns templates, adds internal links from the main site to the blog and often removes a nofollow that was previously suppressing link flow. Any of those alone can produce a large lift, and none of them require the hostname to change.
The author moved a blog from blog.vircara.com to vircara.com/blog/ in February 2014 and reported that a page targeting the phrase choosing a career went from outside the top 100 to position 57 within two weeks. It is a single page, single keyword observation on one site with no control, revisited by the author in 2015 and again in July 2021. It is directional anecdote, not evidence of a general rule.
When the content genuinely is a different thing: a status page, a documentation portal on separate infrastructure, a user generated content platform whose quality you cannot vouch for, or a regional site with its own team. The strongest practical case is when you cannot reverse proxy the application into a path on the main host without unacceptable engineering cost.
Yes, and this is one of the concrete differences that does matter. robots.txt is scoped to the hostname, so blog.example.com must serve its own file at blog.example.com/robots.txt and rules in example.com/robots.txt have no effect on it. The same applies to Search Console properties unless you use a domain property, and to cookie scope.
Map every existing URL to its new path one to one, serve 301 redirects rather than a blanket redirect to the new blog index, keep the redirects permanently, update internal links to point at the final destination rather than through the redirect, submit a new sitemap with the new URLs, and keep the old Search Console property so you can watch the legacy hostname drain. Change nothing else in the same release if you want to be able to attribute the result.
Source: http://www.bloggingflail.com/subdomains-vs-subdirectories-seo/
Deciding where a section of your site should live?
An advanced audit weighs the crawl, reporting and engineering trade offs against your actual stack.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.
Subscribe to our newsletter!
Recent Posts
- Can AI Crawlers Actually Read Your Site? I Measured 400 of the Biggest September 5, 2026
- The Pre-Publish Quality Gate for AI-Assisted Content August 6, 2026
- AGENTS.md vs llms.txt vs llms-full.txt: Which Agent File Does What July 18, 2026







