-
Notifications
You must be signed in to change notification settings - Fork 8
SEO improvements #88
Description
Asked Claude about SEO improvements.
Claude response
Good question. Let me look at your current setup more closely and search for some relevant SEO guidance.Now let me check what your site currently outputs to see what's already working:Good findings. Here's what I can tell you:
You already have jekyll-seo-tag and jekyll-sitemap — Gemini's recommendation is redundant. The Just the Docs theme includes jekyll-seo-tag by default, and both jekyll-seo-tag and jekyll-sitemap are installed by the github-pages gem, which you're already using in your Gemfile. So those plugins are already generating your meta tags and sitemap. You do not need to add them.
However, there's a notable issue visible in the search results: most of your section pages show the same generic description ("A learning resource for prototyping interactive digital-physical systems") rather than unique per-page descriptions. That's a real SEO problem — Google sees those as near-duplicate metadata.
On the github.io vs cs.washington.edu question: Google ranks based on content quality, backlinks, and technical SEO — not hosting platform. The github.io domain actually has very high domain authority. Sites on GitHub Pages benefit from GitHub's strong reputation and high domain authority. Moving to cs.washington.edu would give you a .edu domain (also high authority) but you'd lose the existing backlink equity and indexed URLs. Not worth the disruption given 700k+ views.
Here's what would actually move the needle, roughly in priority order:
1. Add unique description front matter to every section/lesson page. This is the single highest-impact change. Right now jekyll-seo-tag is falling back to the site-wide description for pages without one. Each page should have a 1-2 sentence description with relevant keywords (e.g., "Learn how to use analogRead() and potentiometers with Arduino. Covers voltage dividers, analog-to-digital conversion, and serial monitoring.").
2. Add jekyll-sitemap to your _config.yml plugins list. Even though the gem is installed via github-pages, the GitHub Pages gem ignores all plugins in the Gemfile — you must also list jekyll-sitemap in _config.yml for it to work. Add a plugins: key:
plugins:
- jekyll-sitemap
- jekyll-seo-tagThen submit https://makeabilitylab.github.io/physcomp/sitemap.xml to Google Search Console.
3. Verify your site in Google Search Console (if you haven't already). You can verify via the URL prefix method using your existing GA tracking. This lets you monitor indexing, submit sitemaps, and catch crawl errors.
4. Enrich the jekyll-seo-tag config. You already have title, description, url, and a default image — good. Consider adding to _config.yml:
author:
name: Jon E. Froehlich
url: https://jonfroehlich.github.io/
twitter:
username: jaboratory
card: summary_large_image
social:
name: Makeability Lab
links:
- https://github.com/makeabilitylab
- https://makeabilitylab.cs.washington.eduThis generates richer social card previews and JSON-LD structured data for author attribution.
5. Add per-page image front matter for key lessons. Your default OG image (physcomp-og-card.jpg) is fine as a fallback, but lesson pages with their own featured image will get better click-through rates when shared on social media or in search results.
6. Improve those section index page descriptions. Pages like /arduino/, /electronics/, /sensors/ are your highest-traffic landing pages — they need strong, keyword-rich descriptions and ideally a brief intro paragraph before linking to sub-lessons.
On accessibility and SEO overlap: Alt text on images (which you're doing in index.md — nice), semantic headings, and aria-label on videos all help both a11y and SEO. The main gap I'd audit is whether all your lesson pages have descriptive alt text on circuit diagrams and Fritzing images, since Google Images can be a significant traffic source for hardware tutorials.
Want me to draft example front matter descriptions for your major section pages, or help with the _config.yml changes?