# \[New Feature\] SEO tools

**URL:** <https://forum.bubble.io/t/new-feature-seo-tools/5134>\
**Category:** Announcements\
**Created:** [August 12, 2016, 3:28pm UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134 "2016-08-12T15:28:52Z")\
**Posts on this page:** 17\
**Page:** 3

<div class="post-metadata">

**Author:** ![miguel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@miguel](https://forum.bubble.io/u/miguel)\
**Post date:** [June 12, 2019, 7:43am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/41 "2019-06-12T07:43:46Z")

</div>

Hi.

You could somehow manually create a sitemap or, like a user in this forum have suggested, have a page listing all the unique URLs for the site, but I think the problem is that those unique URLs are still not pre-rendered when a user (or most importantly, Google) requests them. Or are they?

---

<div class="post-metadata">

**Author:** ![paritosh.mehta19](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/paritosh.mehta19/32/110875_2.png) [@paritosh.mehta19](https://forum.bubble.io/u/paritosh.mehta19)\
**Post date:** [June 12, 2019, 8:38am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/42 "2019-06-12T08:38:24Z")

</div>

That’s something only the Bubble team could answer. I’ll be interested to know that too or if someone has come up with some solution to do pre-rendering for bot requests for a bubble app.

---

<div class="post-metadata">

**Author:** ![miguel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@miguel](https://forum.bubble.io/u/miguel)\
**Post date:** [June 12, 2019, 8:48am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/43 "2019-06-12T08:48:02Z")

</div>

Hello @Bubble, @emmanuel, @neerja. Would you be so kind to shed a light upon this topic?

Thanks!

---

<div class="post-metadata">

**Author:** ![AliFarahat](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/alifarahat/32/189604_2.png) [@AliFarahat](https://forum.bubble.io/u/AliFarahat)\
**Post date:** [June 12, 2019, 6:59pm UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/44 "2019-06-12T18:59:07Z")

</div>

Been waiting for someone to bring this up. @Bubble @neerja @emmanuel

Will integration with this work? If I create a plug-in will it do it or does it need to be tied in from your end?

---

<div class="post-metadata">

**Author:** ![paritosh.mehta19](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/paritosh.mehta19/32/110875_2.png) [@paritosh.mehta19](https://forum.bubble.io/u/paritosh.mehta19)\
**Post date:** [June 13, 2019, 2:49am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/45 "2019-06-13T02:49:47Z")

</div>

While we are on this topic, I would also like to understand the impact of doing this form of pre-rendering on the server side (via directly or some plugin) from app performance perspectives. Would it significantly downgrade the server performance and require a need to add more capacity for instance.

---

<div class="post-metadata">

**Author:** ![duke.severn](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/duke.severn/32/38191_2.png) [@duke.severn](https://forum.bubble.io/u/duke.severn)\
**Post date:** [June 13, 2019, 5:35am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/46 "2019-06-13T05:35:18Z")

</div>

> [@miguel](#):
>
> manually create a sitemap or, like a user in this forum have suggested, have a page listing all the unique URLs for the site

@romanmg don’t you have a youtube tutorial on adding your own sitemap to your bubble site? Can you link that here?

---

<div class="post-metadata">

**Author:** ![miguel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@miguel](https://forum.bubble.io/u/miguel)\
**Post date:** [June 13, 2019, 5:55am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/47 "2019-06-13T05:55:46Z")

</div>

I don’t think any plugin will allow you to do server side rendering. It has to come from Bubble directly.

But to be fair, I have actually watched the whole video that article is based on ([https://www.youtube.com/watch?v=EZtCgrpa6ss](https://www.youtube.com/watch?v=EZtCgrpa6ss)), and it is not as alarming as the article portraits it.

Basically, as far as I understand it, Google recommends not to do too much client side JavaScript rendering because it can lead to bad user experience (JavaScript files taking too long too download, visual elements taking too long to display…), which is what is actually happening right now with Bubble sites.

If you run a Lighthouse analysis on any Bubble site, you will find that the site takes too long to become visible for the user, it has too many DOM elements, etc, resulting in a very poor score. This results in bad ranking.

Ideally Bubble so do some server side rendering, purely to minimize the amount of JavaScript to download (perhaps just the layout).

It’s also worth noting that for the bots, it is much simpler to understand html than JavaScript, hence it helps to do some server side rendering.

---

<div class="post-metadata">

**Author:** ![romanmg](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/romanmg/32/237672_2.png) [@romanmg](https://forum.bubble.io/u/romanmg)\
**Post date:** [June 13, 2019, 5:57am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/48 "2019-06-13T05:57:56Z")

</div>

@duke.severn [this video](https://www.youtube.com/watch?v=8tUxBTuF7CM) shows how to expose your sitemap in Bubble and upload it to Google Search Console.

---

<div class="post-metadata">

**Author:** ![miguel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@miguel](https://forum.bubble.io/u/miguel)\
**Post date:** [June 13, 2019, 8:26am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/49 "2019-06-13T08:26:17Z")

</div>

Thanks for the video.

Unfortunately, Bubble only generates links for the pages, not for the unique urls based on the ids that those pages take.

So basically, this is valid for static pages, but not for dynamic pages.

The solution is, as one person in the forum suggested, to manually create a sitemap containing all the unique urls for the site, or have a page that lists the links to all those unique urls.

---

<div class="post-metadata">

**Author:** ![boston85719](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/boston85719/32/77286_2.png) [@boston85719](https://forum.bubble.io/u/boston85719)\
**Post date:** [July 8, 2019, 5:17pm UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/50 "2019-07-08T17:17:00Z")

</div>

@miguel What happens if you have a link that is sending data to the page?

I am trying to make sure that all of my product pages and blog post pages ( all of which are dynamically created ) are indexed and crawled by google.

I’ve been reading that the only way to get crawled is to have links to the page. I assume that in my search results page ( which shows all products ) I can put a link in the repeating group cell and have that link “send data” to the page. This works by actually linking to and sending me to the correct product page.

What I am curious about, is if google would recognize each link as a unique link to a unique page and crawl it.

Would this be the correct approach to optimizing for SEO?

---

<div class="post-metadata">

**Author:** ![maestro](https://avatars.discourse-cdn.com/v4/letter/m/3bc359/32.png) [@maestro](https://forum.bubble.io/u/maestro)\
**Post date:** [August 14, 2019, 10:39am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/51 "2019-08-14T10:39:06Z")

</div>

Hi Miguel,

> Basically, Google does not like JavaScript pages that are not pre-rendered server side.  
> Unfortunately that’s how Bubble currently works. Bubble only pre-renders the title and description, but the rest of the page is within JavaScript code, and rendered client side.

Isn’t this solved by [this](http://forum.bubble.io/t/google-crawler-not-fetching-content-on-pages/8277/5) feature?

---

<div class="post-metadata">

**Author:** ![miguel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@miguel](https://forum.bubble.io/u/miguel)\
**Post date:** [August 15, 2019, 10:41am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/52 "2019-08-15T10:41:20Z")

</div>

As far as I know, Bubble only sends the pages to Google, but not each instance of the pages (an instance being a specific record shown in a page).

So you might have a page to display a car (Thing), but there can be many different instances of a page (each instance being a record in the car table).

I presume Bubble only sends 1 page to Google, but not each instance of the page. Google must crawl your website to get each instance, but since Bubble is not very SEO friendly, Google will have a hard time reading each instance of the page.

---

<div class="post-metadata">

**Author:** ![maestro](https://avatars.discourse-cdn.com/v4/letter/m/3bc359/32.png) [@maestro](https://forum.bubble.io/u/maestro)\
**Post date:** [August 15, 2019, 11:49am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/53 "2019-08-15T11:49:50Z")

</div>

> Bubble only sends the pages to Google

I am sure that’s correct 🙂

If you want all instances of the page being rendered and/or indexed by Google, you should make sure they all have a unique URL by, for example, assigning a type of content to use for generating unique readable URLs.

Only problem left is that you can’t automatically generate a sitemap that contains these URLs, because Bubble doesn’t provide a way to do so. Might be a nice feature to add as an option in the SEO/Metatags tab of the application @emmanuel ?

Besides that the (readable) URL paths are never “clean” since they always contain the data record’s ID after the “readable” part of the path, which is not user (and therefore SEO) friendly from a cosmetic point of view I suppose.

Sudsy plugin might be a solution too here, didn’t try it yet though.

---

<div class="post-metadata">

**Author:** ![sudsy](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/sudsy/32/114637_2.png) [@sudsy](https://forum.bubble.io/u/sudsy)\
**Post date:** [May 17, 2020, 9:53pm UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/55 "2020-05-17T21:53:12Z")

</div>

> [@maestro](#):
>
> Sudsy plugin might be a solution too here, didn’t try it yet though.

I did. See [here](http://forum.bubble.io/t/more-than-just-clean-urls/55299). 🙂

---

<div class="post-metadata">

**Author:** ![mghatiya](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/mghatiya/32/162800_2.png) [@mghatiya](https://forum.bubble.io/u/mghatiya)\
**Post date:** [August 19, 2020, 12:23pm UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/56 "2020-08-19T12:23:17Z")

</div>

Replying to follow-up this thread on updates if any on pre rendered pages.

---

<div class="post-metadata">

**Author:** ![KeitaroNakata](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/keitaronakata/32/61899_2.png) [@KeitaroNakata](https://forum.bubble.io/u/KeitaroNakata)\
**Post date:** [December 24, 2020, 8:04am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/57 "2020-12-24T08:04:05Z")

</div>

Does anyone know if these features can be used on free plan?

---

<div class="post-metadata">

**Author:** ![camiloprojectfi](https://avatars.discourse-cdn.com/v4/letter/c/ad7895/32.png) [@camiloprojectfi](https://forum.bubble.io/u/camiloprojectfi)\
**Post date:** [August 4, 2021, 5:30am UTC](https://forum.bubble.io/t/new-feature-seo-tools/5134/58 "2021-08-04T05:30:55Z")

</div>

Hi @emmanuel this needs more work I think, bad comments on the forum, personally suffering. Launching and I cant find myself in google even if i google our literal site name. [rentmies.com](http://rentmies.com) i love your product until now, but I want to sell and not being index, or found is not in line with that. pls fix lol

[Previous page](https://forum.bubble.io/t/new-feature-seo-tools/5134.md?page=2)
