luanti-org/luanti-org.github.io

SEO: Document does not have a meta description

Closed this issue ยท 6 comments

On minetest.net, a Lighthouse audit produces this error:

Document does not have a meta description
Meta descriptions may be included in search results to concisely summarize page content.

See also: https://web.dev/meta-description/

May I work on this? ๐Ÿ™‚

Zughy commented

@Panquesito7 have fun :D

You don't need permission to work on something

just writing some notes here as the PR #262 is not adequate for this.

there are a number of "core" meta tags (and some other things) that can/should be implemented, i'll list them below..

must have

  • <link rel="canonical" /> (the absolute, "original" URL)
  • og:url (same as a canonical tag)
  • og:type (should be website for everything on minetest.net, article for blog.minetest.net and there could be others necessary)
  • og:site_name (should be Minetest for everything on minetest.net)
  • og:description (should fall back to the pages' description set within the SSG)
  • og:image - this is a bit complicated, will detail some options further below

should probably have

  • <script type="application/ld+json"> - this is a JSON blob that basically describes what the page is in relation to for search engines. this is how you can see pages on google that say, have reviews, or product information, or different rendering options

nice to have

  • twitter:card - this should probably just be summary_large_image, will take from the og:image tag
  • twitter:site - this should probably be @MinetestProject

i'll describe some ways that we can resolve these in "sane" ways...

  • og:url - i'm not sure how jekyll works, but it should be achievable like so:
<meta property="og:url" content="{{ page.url | absolute_url }}" />
  • og:type can probably be hardcoded
  • og:site_name can probably be hardcoded
  • og:description will unfortunately need some backporting in to each page and template, by adding a description variable at the top. an example for index.html may be something like:
title: Open source voxel game engine
description: Minetest is a completely free & open source voxel game engine with a flexible modding API and a plethora of content.

can then access in head.html like so:

{% if page.description %}
<meta property="og:description" content="{{ page.description }}" />
{% endif %}
  • og:image - we should ideally create "bespoke" images for all of the main pages (read: everything in the navbar) and have a fallback "default" image. the same approach as og:description should be used for this.
  • <script type="application/ld+json"> - i'm not too sure on what would be best for this, as i've only done this for a few sites. in brief, however, there are a list of schemas available here: https://schema.org/docs/schemas.html and we should either allow them per-page or have a "blanket" one for, say, Organization.

this got a bit long-winded but if anyone takes this on (if not, i'll give it a go when i get some free time ๐Ÿ˜…) feel free to find me on the MT matrix and drop me a message.

on the topic of SEO, if someone has a lot of time to write the main site could benefit from so called "SEO articles". these are "targeted" landing pages, zendesk has a few good examples of them: https://www.zendesk.co.uk/service/ticketing-system/customer-service-management-software/ (basically everything in their footer)

these may feel a bit awkward to write, but they work wonders! since they target specific phrases people may search on google, they can provide extra value (plus, since they're designed to be "lightweight" landing pages, we can plonk a big fat DOWNLOAD NOW CTA at the end of the article to juice some extra downloads)
an example seo article might be: "game engines for voxel games" and it be more of a comparison between us, unity, etc.

we could also consider a HTML sitemap, which is effectively a page that just lists every page in HTML form. i'm not too convinced in their use on sites, since i mostly work on e-commerce, but we've done those for a few clients and they seem to help (although it's more of a passive thing)

Added descriptions and OpenGraph tags: 3e72d7e

Added sitemap.xml: c93e055