Fetching entries from an advanced search form on the front end
I came across a similar issue today where I was creating a search form that included checkboxes. I did it as follows.

First, I checked if the URL had the query string I was looking for and joined the query string since it's an array. I used OR because I want it to search for any of the checked options.

{% if craft.request.getParam('services') %}
    {% set services = craft.request.getParam('services') %}
    {% set services = services|join(' OR ') %}
{% endif %}


The query string in getParam('services') is the same as the name field of the checkbox.

Then I listed out my options 

{% for option in craft.fields.getFieldByHandle('memberServices').settings.options %}
&lt;li&gt;
    &lt;label class="form__label" for="{{ option.value }}"&gt;&lt;input type="checkbox" name="services[]" id="{{ option.value }}" {% if services is defined and option.value in services %}checked{% endif %} value="{{ option.value }}" &gt;{{ option.label }}&lt;/label&gt;
&lt;/li&gt;
{% endfor %}


The conditional that gives the checkbox the checked attribute is 

{% if services is defined and option.value in services %}checked{% endif %}


That is, if services is defined (is in the URL) and the option value is contained within the services variable, apply the checked attribute.

It also works with multiple checkboxes, IE the URL search?q=&amp;services%5B%5D=counselling&amp;services%5B%5D=supervision&amp;sessions=individual will check the "Counselling" and "Supervision" "services" checkboxes, and the "Individual" "sessions" checkbox.