Multilingual SEO and hreflang

Translating an app does not make it findable in another language. Search engines index URLs, not sessions, so a Spanish version that only exists behind a cookie or an Accept-Language header is, to a crawler, the English site again.

This category covers the work that makes translations rank: giving every language its own URL, declaring the relationships with hreflang, choosing between subdirectories, subdomains and country domains, and avoiding the redirects and switchers that hide a locale from crawlers. Each article shows the Laravel routing, middleware or Blade that implements it.

Where search engines differ or the documentation leaves room for judgment, the articles say so instead of presenting one answer as settled.

Keep going

Frequently asked questions

Do I need hreflang if each language already has its own URL?

Separate URLs are the requirement; hreflang is the hint that connects them. It tells search engines which pages are versions of each other so the right one is shown to each searcher. Without it, engines have to work the relationship out for themselves.

Is a subdirectory or a subdomain better for a translated site?

For most SaaS products a subdirectory such as /es/ is the simplest choice: one domain, one set of infrastructure and no extra properties to maintain. Subdomains and country domains make sense when regions are run as separate operations.

Should I redirect visitors to their language automatically?

Not with a forced redirect. Crawlers mostly request pages from one location without language preferences, so automatic redirects can keep them from ever seeing the other versions. Suggest the matching language with a banner and let the visitor choose.

We'd like to use analytics and marketing cookies to understand how the site is used. They stay off unless you accept them. Cookie Policy