Webmention Analytics

I'm a fan of webmentions. I've written about how to use them before, and I'm quite happy with having them on my site.

However, it can get difficult to see what’s going on with them - especially if there’s a lot of “background noise”. Many sites just scrape content from well-known blogs and republish it for SEO juice. If that content includes a link to your site, it can lead to webmention spam.

Unlike on social media, you also don’t get notifications or reports about incoming webmentions. You’re just handed a bunch of raw data to use however you like. That’s part of the beauty of the Indieweb though: you can tailor it to whatever suits you best.

I recently started playing around with the data I get from webmention.io to see if it could be displayed in a more meaningful way. The result is a new side project I call:

✨✨✨ Webmention Analytics ✨✨✨
You can see it in action in this demo on my site.

barchart showing days of the month at the x-axis and different amounts of webmentions on the y-axis.
Breakdown of webmentions per day

I built this with Eleventy and Netlify, mainly because that’s my favorite tech stack to tinker with. But for analytics that don’t have to be real-time, static site generators are actually a really good fit.

Expensive computations like parsing and analyzing 8000+ data points like this can be run once a day through a periodic build hook. The reports it generates are then instantly available to the user, while still being up-to-date enough.

Features

  • group webmention data by month
  • overview of webmentions by type (like, reply, repost, mention, bookmark…) and day
  • show top source URLs sending webmentions to your site
  • show top target URLs on your site receiving webmentions
  • show top tweets generating webmentions through brid.gy
  • check incoming webmentions against a blocklist of known “content scrapers” and spam domains
  • automatic daily updates with cron job
table showing most common sources and targets for webmentions
Top sources and targets
Webmentions flagged as spam

Get your own instance!

If you also use webmention.io to show webmentions on your site, you can fork the code on Github and make your own instance of webmention-analytics. Just follow the instructions in the README to get started.

Keep in mind that this is still a very early version of a weekend side project, so there's probably a few things to iron out. Cheers!

Webmentions

What’s this?
  1. Tom Critchlow
    Ooh webmention analytics! mxb.dev/blog/webmentio…
  2. Matthias Ott
    This is amazing, Max! 🤗
  3. Ryan Barrett
    Awesome! Love it. One suggestion: looks like you’re already using u-url for the individual webmentions. You might want to consider aggregating by u-url domain in “Top Sources” too, instead of by webmention source domain. That would replace brid-gy.appspot.com with the actual social network domains, eg twitter.com or instagram.com.
  4. Manuel Matuzović
    Daaaayummn
  5. Erik Kroes 🏔
    There's an xzibit joke in there somewhere.
Show All Webmentions (21)
  1. Max Böck
    Thanks! Still a bit unpolished, but I think it could be something.
  2. Max Böck
    Yo dawg I heard you like webmentions
  3. Marc Littlemore 🤖
    Nice! I really need to get started with web mentions on my site. I read your post a while back but haven’t started yet.
  4. Marc Littlemore 🤖
    This looks great. I really need to look at adding webmentions to my site.
  5. Carol 🌻
    This is so cool! 🤩 Nice work 🙌🏼
  6. Tane Piper
    Oh this is nice! Was very easy to set up as well tane-analytics.netlify.app
  7. Paul Applegate
    Pure genius.
  8. Yoav Ganbar
    Very cool! Definitely will be trying this out once I get working on my site.
  9. Josh Ghent
    This is awesome. Looking forward to deploying this when I get Webmentions setup!
  10. Ramiro Ruiz
    This is amazing in just a few minutes a got my own webmentions.ramiroruiz.com Thank you so much @mxbck mxb.dev/blog/webmentio…
  11. Ramiro Ruiz
    Esto está genial, en unos cuantos minutos pude tener el mío webmentions.ramiroruiz.com Muchas gracias @mxbck mxb.dev/blog/webmentio…
  12. Ihab Khattab ⚛️
    Awesome work
  13. Sia Karamalegos
    Oh cool I haven't tried that. Glad my post was helpful!