SEO, Links & Single Page Apps - Best Practice?

Hi Bubblers,

I hoping that some of you can set me straight on some aspects of getting great SEO with Single Page Apps. I can’t figure out if and when I should be using Links in a single page app and specifically if I should use Links in the Banner.

I am asking because by using Links with “pretty URLs” made from path segments, I appear to be setting off a page reload that I do not get when I use parameters. I had hoped that it would not trigger a page reload just like go to page doesn’t trigger a page reload when you are already on the page.

  • Do links always cause a page reload?

  • If no, what is the work around?

Are Links really needed or useful for SEO in one page apps?

  • my understanding that without a URL in the code base that Links provide, Google would not be able to properly scan the site because element are not visible if the path segments or parameters are in the URL … and without the URL - google can’t click on the link…

Really appreciate whatever wisdom folks have to offer.

Cheers

DJ

For Others Interested in SEO
From what I have gathered over the last few weeks, Bubble is light years ahead of where it was 2 years ago in terms of SEO (before Paths and Links were released). If you are like I was, not fully aware of these enhancements, I suggest checking out the videos listed below. I owe what I already know to a few great videos on SEO that I am listing below. Many thanks to @alexcooney5 , @neilpierce and @eli who appears to have shine a light the potential of pretty URLs and @joemanier.

Suggested Videos on SEO

2 Likes

Hi. So SEO with Bubble is pretty limited as you need to create your pages or a dynamic page that is crawlable.

With SEO, you really depend on synchronous content (as compared to asynchronous) which heavily depends on server-side or pre-rendering capabilities, which Bubble doesn’t really have unless you actually make a page for it.

I have found a great article that explains the pro’s and con’s of an SPA SEO orientated website.

Short answer, no, you cannot rely on a Bubble SPA to offer you structured SEO content.

Yes, if you use Bubble’s URL navigation action. You can use my PathHopper which is inside my B.A. Toolkit plugin, or Sudsy’s page router, or CoAlias’s custom domain plugin as well (though I think PathHopper/Sudy’s page router will serve your purpose more.

An alternative would be just to serve your front-end content separetly (much easier to deal with SEO and score 100% on everything), and your actual application with Bubble.

1 Like

Thanks! I will check them out. They do look like they are exactly what I am looking for.

Excellent article @GH5T - thanks for sharing :slightly_smiling_face:

1 Like

yes too good article @GH5T Thanks for sharing

You should not use links in the banner because my assumption with the word banner is that you mean a Header which will always be present no matter which ‘view/page’ is displayed by the SPA. This will hit you negatively if you have links to things that are not relevant to the content currently displayed on the screen as the google crawlers will pick it up.

However, you should have links on the page somewhere when they are relevant to the content displayed. So, if you use a floating group that is set to float beneath the page, you can put an RG into that and have a link element inside and link to all related content. It will be picked up by Google and will be ‘visible’ on the page to the crawlers but users will not see it nor will they interact with it. I do this when I have a product page with links to related products but I do not show those related products.

Also, you can make use of the go to page action as you want to for the speed at which it switches between ‘views/pages’ and also have a link element for the SEO benefit of the link. You put a link element into a container, the container is align to parent, then put the element you want the user to interact with to trigger the navigation go to page. Make sure the element the user clicks is above the link and the link is below the element the user clicks…this way the link is there for google crawlers to see, but the user navigates via the go to page workflow action and gets the speed benefit from that.

You can do this with the go to page action. The page itself should not have a content type set, and since it is an SPA, I’d assume you do not have a content type set. Then when using the go to page action we can send text as the data to send and that text is the path or path list if more than one item so you can get those pretty human readable URLs necessary for good SEO. This will not trigger a page reload.

Yes

What I mentioned above.

For all apps

They can still crawl if you provided a site map, but you will not get 100% on SEO best practices via Page Insight scores as links are part of that.

You can, if done properly and the amount of SEO content is not too large. We can use dynamic expressions in the Page Title, Description, Image and Page Header (where we put Structured data). These dynamic expressions can ues :formatted as text operator to create ‘inline conditionals’ to have the appropriate values based on which ‘view/page’ the SPA is displaying.

I have done this in my apps. I have an app that has a single page for Product, which shows the search results of products, a single selected product…additionally it is a multi language site that uses the language parameter as a URL path list item and not a parameter. My URLs can be something like

www.myapp.com/product/en
www.myapp.com/product/en/blue-boots
www.myapp.com/product/fr
www.myapp.com/product/fr/blue-boots

I got the structured data setup for the search results as well as the selected single product for both languages as well as the page title, description and image. All of this works with native Bubble functions. I have from Page Insights 100% on accessibility, 100% on Best Practices and 100% on SEO. Performance is the only area that can be improved that is out of our control as a developer on Bubble since the poor performance is a Bubble issue. The best I’ve achieved in these setups for performance on desktop is around 60%.

One of the more difficult situations with the use of URL path list or path is that Bubble does not URL decode them, so if you are working with a language that gets URL encoded when sent to the URL path list, then you’ll need a plugin to URL decode it. For whatever reason, Bubble felt it only necessary to URL decode parameters.

1 Like

I see a bunch of foreign links…

Those were example urls that auto transformed to actual links. Changed to perforated text so they could simply be read.

Contentful paint IMO is a big part of SEO. Also, proper language keys should be used either as the first path of the URL or used within LocalStorage for best practices.

I believe this is more focused on the performance of the page, and is something that is out of our control as it is very much connected to Bubble code.

In terms of what Page Insights would determine as Best Practices, you can still achieve 100% without that. If the concept is Best Practices as in general for the browser to pick up on the language, then yes, most recommendations are to use either first path of URL to specify, which unfortunately in Bubble without plugins we can not do, or a placed in a URL parameter. In my case, the use of the language preference in the URL path list is not there for the browser, but more for the URL look and differentiating in the sitemap. In order for the browser to pick up on it, I also employ the language preference on the user data type.

You’re right. As long as the information is still presented to the search engines, all should be well.

Hi @boston85719, Thank you for this very detailed response. I am blown away by what you have achieved and by doing so without using a plugin (except for the addressing the language decoding challenges you face, which for now are not an issue for me).

I particularly like the way you create dynamic SEO info by section, that never would have occurred to me.

I sometimes wish that one could check box two answers because the the first two plugins that @GH5T suggested) look like they would solve a big part of what I saw my challenge to be (if it weren’t for my obsession - that I figure many don’t share) about not using plugins that are open source). Your answer offers so much insight that I have updated it this post so that yours is marked as the solution. I recommend to anyone finding this post to read all the comments.

It would be great if there was an entire section of the forum dedicated to SEO. Three years ago, Bubble was useless from an SEO point of view. Based on what both @boston85719 and @GH5T have provided it is clear that today there are very viable solutions that make the analysis of trade offs a very different story.

1 Like

I can’t get enough of this quote:

1628799312-the-best-place-to-hide-a-body-is-the-second-page-of-google

1 Like