I’m currently working on the SEO setup for my app built on Bubble. Here’s the link: https://respirit.me/
I have a couple of questions regarding the sitemap generation. I generated the XML sitemap using the Bubble panel, but I’m unsure about two things:
1. Dynamic content.
In my case, this refers to specialist profiles. I found a short video on Bubble’s YouTube channel saying that such dynamic pages are supposedly added to the sitemap automatically - https://www.youtube.com/shorts/TiC0kPx-5B4
On the other hand, I also found information saying that I need to add each dynamic page manually to the sitemap, and that Bubble only includes the main page template
So what’s the correct behavior in the end?
2. Multilingual website.
My app has an English version (set as default) and a Polish version, which uses a URL parameter – “?lang=pl_pl”.
Will these “?lang=pl_pl" versions also be automatically indexed by Google and included in the sitemap? Or do I need to configure something additionally?
I’d really appreciate your help and guidance to understand how to approach this properly.
Bubble generates sitemaps dynamically if you tell it which pages to include (you hit the checkbox next to each pagename you want to aplear in the sitemap). Those pages will list the type of content they are set to, and have all of the results from the database that are set to be found in searches.
For example, I have a page called ‘recipe’. I have a datatype called ‘recipe’ that I set the page datatype to. In my privacy rules, I set a rule that all data of type ‘recipe’ with a field of Public = yes, can be found in searches. These recipes all have slugs. Now when I pull up the dynamic sitemap, I can see:
I forgot to mention- parameters will not appear in sitemaps automatically - you may need to configure something for this. I know @boston85719 has a lot of experience with this too.
For multi language apps or SPAs you can not rely on Bubble generated sitemap. When having multiple languages you should not if SEO is a concern use URL parameters for the language flag, which means, you can not rely on the ‘app text’ feature nor can you use page content type.
This is because URL parameters are bad for SEO, and since you have a multi language app, you need to generate your own sitemap for the two different languages, and so mind as well use URL paths for the language. And since you’d use the URL path, you can not use page content type, because when we use the go to page action, if the page has a content type, you MUST send ‘data’ and if you are using URL path, the data to send needs to be text that is the path list of the URL basically.
So instead of www.example.com?lang=pl_pl you should use www.exmple.com/page-name/pl/dynamic-content-slug OR you can create a sort of ‘SPA’ and have a page called en and a page called pl and then you’d have www.exmple.com/pl/page-name/dynamic-content-slug
You also want to make sure ALL of the dynamic content like page title, description and structured data are all in the appropriate language as well.
@msgiblin - So I guess that the sitemap I generated should include all the specialists as I had not set any privacy rules (public by default).
@boston85719 So taking into account that my specialist’s profile page as the content type (I must send there data), which of the 2 ways to structure URL of my site should be easier to implement and which one is recommended by you?
And how do I solve the index page in that case? I mean lets say user enters the root page - https://respirit.me/ - for the first time and doesn’t have his language specified yet. I am usig IP geolocation to assign the language but how do I make that assignment on index page? Would my index page have to look like this e.g - Respirit.Me - Resonate. Recover. Respirit. ?
I would prefer that URL looks like this instead foir index https://respirit.me/pl but it seems that it requires to create “pl” page, am I right?
Preferably I would like the index page to look like this : https://respirit.me/pl
but then profile page would follow your previous recommendation: Profile - ,
What about canonical tags in this case? Should I use them, and if so, what’s the correct way to do it to ensure both language versions are indexed properly by Google?
Would it make sense to use a dynamic canonical tag like this?
<link rel="canonical" href="https://respirit.me/index/[get path item#2 from URL]"
Or could that cause issues?
How can I set this up correctly to avoid making a critical SEO mistake at this stage?
Thanks in advance!