More aggressive method for asking users to register? (Call to action)

(ljpp) #1

I have one small side project, on which I have invested plenty of time. There is a good amount of seeding content, which has increased my visitor numbers quite nicely, but nobody registers. Now this project is about to reach the tipping point. Either it starts flying, or I will close it.

At this point I am willing to try more aggressive methods / call to actions in order to get more registered users on board. Does anyone have suggestions how to do it, perhaps even some proven methods? I am talking about an overlay promoting registration and things like that.

That said, I have tried several small projects from scratch with Discourse and I always bump to this problem. It is easy to attract guests, but difficult to get them to register. Discourse has good SEO and good content will be found by readers, but perhaps the call to action for registering should be more obvious by default?

Guest Gate (Sign Up Popup Plugin)
How to make visitors sign up after reading X number of posts?
(David Collantes) #2

As a user–I don’t run Discourse anywhere yet–registration is a pain. I do not want to continuously register on every site I go. I already have a Google account, Twitter and Github, so if I can login anywhere with any of those three (but preferably Google), I will. Other than that, I will simply pass.

Which method are you offering to your potential users?

( #3

Great question!

I’ve added a signup overlay on my forum at

The result?

My signup rate went from around 0.6% to 5% overnight. Here’s a monthly chart for a few of the metrics I track:

You can clearly see how signups were boosted right after adding the overlay. User engagement (which I defines as posting or liking) has not grown quite at the same rate as signups, but I’m working on improving that, too :slight_smile:

I’m thinking of adding a close button on the overlay to see if it affects signup rates.

I’m only using the overlay on the front page because I expect many users to:

  1. Arrive on a topic from a google search. I don’t want to hide content from visitors from google so I don’t have an overlay here - google might punish this eventually.
  2. If they like the content and want to read more, click on the site logo to go to the home page
  3. See the overlay and sign up.

When people sign up, you also get the added benefit of them receiving the digest emails after a while, which may bring them back if your content is interesting.

edit: The code for this is posted further down in this thread

If you’d like to get metrics for your own community, head on over to :slight_smile:

(Eli the Bearded) #4

Seems like the only way to dismiss that overlay is to log in or signup. That’s a very obnoxious strategy that would drive me away immediately. (Eg, Pinterest.)

(James Mc Mahon) #5

The un-dismissable login-gate is annoying, but if the content is compelling enough then it looks like it would work for some. Definitely not my style.

I’d like to try something similar, but dismiss-able. Perhaps something that’s triggered after 2 minutes that you can present a value prop with. Something like what you can do with the likes of buzz sumo…

(David Collantes) #6

I saw in some forum I visited recently (can’t recall which, visited many) some type of reminder at the top along the lines “You seen to be enjoying the discussion, why not to join and become an active participant?” It was very unobtrusive, subtle, I could even describe it as being of good taste. Is that something built-in on Discourse?

(ljpp) #7

Awesome, this topic raised interest!

@David_Collantes Facebook and Twitter. For some reason on my projects, the usage rate of sign-on providers is very low, even though I always offer them from the start. And that reminder at the end of the topics is a Discourse built in feature. I am definitely very interested in your code - private or public (why not open source it?). Not being able to close makes it super aggressive, though - so may need to mod it sligthtly. Other than that, it looks very nice.


Yes is this code packaged into a plugin?

(Mittineague) #9

If you’re referring to tappara, you should check the Twitter registration. It give me a “unable to handle this request” 500 error message.

(Felix Freiberger) #10

Yes this is a default-on feature, controlled by the site setting enable signup cta.

( #11

I totally agree, this will drive away a significant portion of new visitors. However, I think it unlikely that those visitors would ever have registered anyway. In fact, I think by requiring visitors to make a small investment by signing up, they are more likely to start engaging on the site, because they are already a part of the community, so to speak. (+ they get welcome messages, digests and so on, so have more triggers to come back)

How effective this technique is will depend on how unique your content is, if visitors can get the same content elsewhere they may not be motivated enough to sign up.

Like Pinterest, my forum is a business, so I have to do what I can to help us grow. [quote=“jgujgu, post:8, topic:56040, full:true”]
Yes is this code packaged into a plugin?

Not packaged at this time, its html/css added as a site customisation. I’ll see if I can dig it out later tonight :slight_smile:

(DenisD) #12

Not 100% fit but we had discussion on similar topic (rather registering real profiles), even some voting .

Probably the “softer” method to encorage registration is to have not all site closed but to have 1 important category which is interesting for the audience but require registration.

(ljpp) #13

I am not referring, but this was a super valuable finding - thanks :heart_exclamation:

Sharing the code is appreciated. I am in a low-risk / high-reward situation, so I can try it and report the impact for the common good.

( #14

Here’s the code to add my signup overlay to the homepage of your own site.

  1. Add a customisation in /admin/customize/css_html/
  2. In the Header tab, add this:
<script type='text/x-handlebars' data-template-name='discovery'>

  <div class="container">
    {{discourse-banner user=currentUser banner=site.banner}}

  {{#unless currentUser}}
  <div id="full-page-signup-cta">
      {{d-button action="showLogin" class="btn-primary btn-small login-button" label="log_in" }}
      <img src="your logo URL here"/>
      <h1>Your headline</h1>
      <h4><span>Subheader text</span></h4>
      {{d-button action="showCreateAccount" class="btn-primary btn-large sign-up-button" label="signup_cta.sign_up" }}

  <div class="list-controls">
    <div class="container">
      {{outlet "navigation-bar"}}

  {{conditional-loading-spinner condition=loading}}

  <div class="container list-container {{if loading "hidden"}}">
    <div class="row">
      <div class="full-width">
        <div id="header-list-area">
          {{outlet "header-list-container"}}
    <div class="row">
      <div class="full-width">
        <div id="list-area">
          {{plugin-outlet name="discovery-list-container-top"
                          args=(hash category=category)}}
          {{outlet "list-container"}}

  {{plugin-outlet name="discovery-below"}}

  1. In the CSS tab, add this:

/* Signup CTA */

#full-page-signup-cta {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    width: 100%;
    height: 100%;
    background-color: rgba(255,255,255,0.88);
    text-align: center;
    padding: 25vh 0 0 0;
    text-shadow: #fff 0px 0px 40px;
    #full-page-signup-cta .btn.login-button { font-size: 18px; font-weight:bold; position:absolute; top: 30px; right: 30px; padding: 15px 25px; }
    #full-page-signup-cta img { width: 250px; }
    #full-page-signup-cta h1 { margin: 40px 0 30px 0; color: #31c0b4; font-size: 250%; line-height: 110%; }
    #full-page-signup-cta h4 { margin: 0; font-size: 140%; font-weight:normal; margin-bottom: 50px; line-height: 130%; }
        #full-page-signup-cta h4 span { max-width: 530px; display:inline-block; }
    #full-page-signup-cta .btn-large { font-size: 22px; padding: 25px 50px; font-weight: bold; }

I haven’t tested this on a fresh install of Discourse, so be sure to use the preview before setting it live.

Good luck :slight_smile:

How can you change Discourse's default homepage view to a static html landing page?
Is the "Discourse-Gate" plugin harmful for SEO?
(ljpp) #15

Awesome! This is very bold, but I implemented it right away and it seems to work.

Note to anyone considering the same: The CTA does not seem to activate if you your URL points to a post/or thread. Google traffic is quite liekely pointing straight to content articles, rather than index. But if the user navigates further to a Category or Index, the full page CTA is being shown.

It will be very interesting to see how this affects the conversion.

( #16

That’s because it overrides the “discovery” template, which is used on the index and category pages. I haven’t tried it on other pages yet, but to do so one would need to find the correct template to override.


Curious. I am on v1.8.0.beta2 +60 and saved the 2 files. I’ll have to troubleshoot more in the morning, since the overlay doesn’t appear as I click through different “discovery” pages.

I can see the Ember template in my Chrome dom explorer. :wat:

Does anyone know if Glimmer changed how this works?

( #18

Dumb question… are you logged in?


Totally a fair question :lol: Everything has to be ruled out. I did try it on browsers I don’t use, totally logged out. I tried and it worked perfectly on all my browsers.

Both files are definitely enabled on my instance (I have other styles and JS running too).


I will probably try to throw this into a plugin today. I will update with my progress.