protoschool.github.io
protoschool.github.io copied to clipboard
SEO Updates Part 2
Following up with Andrew's suggestions, we can continue to improve our SEO results with the following implementations:
- [x] Update page titles to be more attractive to users searching (done in #549)
- [x] move "tutorial" keyword to the start of the title in the lessons titles
- [x] add course title to lessons title if not present
- [ ] Move tutorials pages to
/tutorials/*
or/tutorials/project-name/*
- [ ] More text: most webpages, particularly the homepage, should have at least 250 words
- [ ] Improve H1's with more keywords (length should be at least 20 characters as well)
- [ ] Add footer with links to other PL Projects, Github and Twitter, attribution notice, etc. (see detailed issue #515)
- [x] Improve loading page times (done here: https://github.com/ProtoSchool/protoschool.github.io/pull/521)
- [x] Create dedicated pages for courses, e.g.
/courses/filecoin
with dedicated text blocks (more on how this is needed to unblock distinct social cards per search query here) - [ ] About page
- [ ] Use https://schema.org/ in the breadcrumbs (item tags)
- [x] Allow Google to find lesson pages (due to more detailed content) but add a UI feature to direct users to start of tutorial (see detailed issue #523)
Just a note here that we have some initial feedback from JB Web Analytics to review before digging in on this one.
Notes on "Create dedicated pages for courses"
- Content: create a new entry on
static/translations/en.json
for the necessary content - Creating the course pages: here we have two options: static or dynamic
2.1. Static: easiest and quickest. Basically create static pages for each course (IPFS, Multiformats, Filecoin, etc) and then add them to the
static
routes in thesrc/routes.js
file. 2.2. Dynamic:- Use the
courses.json
file to generate the routes and feed it to a new entry in the routes file calledcourses
which should be added to theall
entry as well (all
andfeatured
need to be ignored from the list of courses from thecourses.json
file when generating the pages) - Create new
pages/Course.vue
page component that will render a generic course using the content of the translations file - Optional: re-structure the
courses.json
file to separateall
andfeatured
from the rest of the courses. something likeui: [all, featured], curated: [ipfs, filecoin, multiformats]
- Use the