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/filecoinwith 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.jsonfor 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
staticroutes in thesrc/routes.jsfile. 2.2. Dynamic:- Use the
courses.jsonfile to generate the routes and feed it to a new entry in the routes file calledcourseswhich should be added to theallentry as well (allandfeaturedneed to be ignored from the list of courses from thecourses.jsonfile when generating the pages) - Create new
pages/Course.vuepage component that will render a generic course using the content of the translations file - Optional: re-structure the
courses.jsonfile to separateallandfeaturedfrom the rest of the courses. something likeui: [all, featured], curated: [ipfs, filecoin, multiformats]
- Use the