Lee Foot

SEO automation that keeps running

If someone on your team spends hours pulling data together every week, there's probably a better way. I build scripts, reports and small applications that handle the repetitive work.

#the-work

Every SEO team has a task that eats a day a week. Someone exports three reports, stitches them together in a spreadsheet, and produces the same deliverable as last month.

I build the tool that fits: Python scripts, scheduled reports and small apps shaped around your data sources, naming and sign-off process. I work inside your warehouse, with SQL pipelines in Snowflake and BigQuery and Streamlit apps, including Streamlit in Snowflake where the data can’t leave. You own the code.

I also measure what changed: before-and-after analysis of releases, and benefit models that put a likely value on each backlog item, so tests and fixes are ordered by impact.

The free tools on this site started the same way: a real client problem, solved, then generalised.

#data

Most problems on large sites only show up when the data is joined. I bring your sources together in your data warehouse, then build what your team uses on top of it.

Your data

  • Search Console
  • Analytics
  • Crawl data
  • Product, location or property data

Joined in

Your data warehouseBigQuery, Snowflake or similar

Used by your team

  • Reports
  • Checks and alerts
  • Apps

#examples

The kind of output this work produces. The data shown is illustrative.

  • Slack · #seo-alerts
    SEO
    SEO botAPPMon 09:00

    Weekly check: 3 things need a look

    • /tents/* clicks down 14%Canonical tags changed in Tuesday's release
    • 212 product pages dropped from the indexOut-of-stock variants set to noindex
    • 38 products disapproved in Merchant CenterMissing GTINs
    CSVfix-list.csv
    e.g. Weekly Slack alerts for Monday morning
  • SEO dashboard
    Organic performanceLast 28 days ▾
    Clicks ▲
    Indexed pages ▲
    Feed errors ▼
    Category
    Product
    Blog
    e.g. Dashboards your team keeps
  • gsc_pipeline.py · run
    $ python gsc_pipeline.py
    ✓ Search Console: pulled yesterday
    ✓ Loaded to BigQuery
    ✓ Compared with last 28 days
    ✓ Posted 3 alerts to #seo-alerts
    $
    e.g. Search Console data pipelines
  • release-impact.xlsx
    Clicks: /category/*Release vs control
    BeforeReleaseAfter
    e.g. Impact analysis of site releases
  • benefit-model.xlsx
    ABCD 1FixPagesEst. clicks/moEffort 2Unblock colour facets1,800+12,400S 3Fix canonicals640+5,100S 4New sleeping bag categories12+3,900M 5Rewrite PLP copy220+1,200L 6Hreflang fixes90+800S
    PrioritiesAssumptionsRaw
    e.g. Benefit models to prioritise tickets

#includes

Includes

  • Automated reports delivered to Slack
  • Search Console data pipelines
  • Apps that work with your data warehouse
  • Dashboards your wider team can actually use
  • Before-and-after impact analysis for site changes
  • Benefit models to order your SEO backlog

Free tools to start with

Free for one-off exports. The service adds pipelines, schedules and interpretation.

#how-it-works

  1. 01

    Tell me what's getting in the way

    Send me a message or email me. You don't need a polished brief or a list of requirements. Just tell me what's holding your team back, what you need help with or what you'd like to improve.

  2. 02

    Agree on the work

    I'll set out what needs doing, what you'll get, how long it'll take and what it'll cost. We'll agree on the scope before I start, so you know what to expect.

  3. 03

    I get on with it

    I work directly with your team to investigate problems, build solutions and get the work shipped. I'll keep you updated as I go, and if something unexpected comes up, we'll work out the next step together.

  4. 04

    Built to keep working

    You keep the code, scripts, documentation and data. If I've built a tool, dashboard or automated process for your team, I'll make sure you have what you need to run and maintain it.

/services

/contact