Problem using "set" with Sprout SEO I usually use {% block %}{% endblock %} to build my template but for the SEO plugin I'll be needing {% set %}{% endset %}. However my pages don't seem to render. If I change it to {% block %}{% endblock %} it works fine. 

Anyone know what is causing this?

This is my base file _master.html (partly):

&lt;body class="boxed bg-cover" style="background-image: url(img/backgrounds/street.jpg)"&gt;
 &lt;div class="global-wrap"&gt;
     {% set header %}
     {% endset %}


this is my index.html (partly):

{% extends "_master" %}
 {% set header %}
   {% include 'header.html' %}
 {% endset %}
I think that's just the way they have set up the templates in the example, so what you're doing is just fine (using {% block %}), if that's how your templates are set up. 

The difference is by using {% set %} you are just setting your content to a variable which would be {{ echoed }} into the layout file that you extend. Whereas using {% block %} you are telling twig what block of content should be inherited into the layout you are extending.

The twig docs probably explain it better:

http://twig.sensiolabs.org/doc/tags/extends.html
http://twig.sensiolabs.org/doc/tags/set.html

From the looks of it with the plugin in question, providing you add {{ craft.sproutSeo.optimize() }} into your layout template you should be all good to go. 

Example with {% set %}

_layout.html

&lt;body&gt;
  {{ content }}
&lt;/body&gt;


index.html

{% extends '_layout' %}

{% set content %}
 Some content
{% endset %}


Example with {% block %}

_layout.html

&lt;body&gt;
  {% block content %}{% endblock %}
&lt;/body&gt;


index.html

{% extends '_layout' %}

{% block content %}
 Some content
{% endblock %}