Add meta description tag to homepage

Google tries to auto-generate a snippet of a site’s content to show in
search results. Currently it’s not doing a great job of this for Notify.

There’s a chance that if we give it better content in the site’s meta
description then it will use that instead. Worth a go…

The content is adapted from the blue box on the product page.

It’s 145 characters, which is within the 160 characters recommended[1]

It matches the content in the page, and contains words that users are
likely to be searching for (GOV.UK Notify, emails, text messages).

It’s only on the homepage, because it shouldn’t be duplicated across
multiple pages.

https://yoast.com/meta-descriptions/
This commit is contained in:
Chris Hill-Scott
2017-11-14 17:25:32 +00:00
parent 3bb083bc89
commit a8e62a564d
3 changed files with 24 additions and 0 deletions

View File

@@ -18,6 +18,8 @@
<link rel="stylesheet" media="screen" href="{{ asset_url('stylesheets/main-ie8.css') }}" />
<![endif]-->
<meta name="google-site-verification" content="niWnSqImOWz6mVQTYqNb5tFK8HaKSB4b3ED4Z9gtUQ0" />
{% block meta %}
{% endblock %}
{% endblock %}
{% block page_title %}

View File

@@ -1,5 +1,9 @@
{% extends "fullwidth_template.html" %}
{% block meta %}
<meta name="description" content="GOV.UK Notify lets your send emails and text messages to your users. Try it now if you work in central government, a local authority, or the NHS.">
{% endblock %}
{% block page_title %}
GOV.UK Notify
{% endblock %}

View File

@@ -1,7 +1,21 @@
import pytest
from bs4 import BeautifulSoup
from flask import url_for
def test_non_logged_in_user_can_see_homepage(
client,
):
response = client.get(url_for('main.index'))
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert page.select_one('meta[name=description]')['content'].startswith(
'GOV.UK Notify lets your send emails and text messages'
)
def test_logged_in_user_redirects_to_choose_service(
logged_in_client,
api_user_active,
@@ -27,6 +41,10 @@ def test_static_pages(
response = client.get(url_for('main.{}'.format(view)))
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert not page.select_one('meta[name=description]')
@pytest.mark.parametrize('view, expected_anchor', [
('delivery_and_failure', 'messagedeliveryandfailure'),