Skip to content

Discussing When to use SPA vs Server-side site - Web crawlers #32953

@shadowfoxish

Description

@shadowfoxish

[Enter feedback here]
This page should mention that SPA applications have severe deficiencies with search engine/web crawler support. Google struggles with React. Bing doesn't even try. If by some miracle your page does get indexed, it will be mired with "dings" for reflowing of content, page load speed, URL/canonicalization issues, and meta tag issues. If you are replacing an old site, SPAs add huge complexity to maintaining old or replaced URLs with redirects.

Area of interest, I believe, is more a deciding factor for SPAs vs Server Side rendering. (Or a hybrid)

Are you:
Building a highly interactive, realtime, or social media oriented (content mostly provided by users) site? Use an SPA.
You sell a handful of niche products, customers seek you out because what you have is unique? Use an SPA.
Your interaction may just be a few simple forms or a shopping cart/checkout? Use a traditional app.
You sell thousands or millions of items, as a distributor or vendor, and in many cases the sales of those items aren't sold exclusively by you, use a traditional app.
Do you have many, complex data input forms? Use an SPA.
Does your site need a template/header/footer that can be shared across numerous other sites, or take advantage of application composition/virtual directories? Use a traditional or hybrid app.

Another thing to consider, how does the rest of your organization contribute content to the website? Are they skilled developers or talented artists or copy writers with little to no coding experience? SPA applications require more integrative effort across departments with different skill sets than a traditional app would have.


Document Details

Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions