@eliasdabbas.bsky.social is here with “Python for SEO vs. Data Science for SEO.”
📊 After a stellar main stage performance yesterday, Elias breaks down the data science and python essentials for SEOs. Time to level up your SEO game.
#SearchNStuff2025 #DigitalMarketing #PythonSEO #DataScience
☀️ What a start to Day 1!
Big cheers to @aleyda.bsky.social, @divingfor.fun, @markwilliamscook.com, and @eliasdabbas.bsky.social for bringing the morning energy and setting the tone for the day.
We’re just getting started — stay tuned for more! ✨
#SearchNStuff2025 #Community #SEO #DigitalMarketing
Honored to have my package dash-aggrid-scales featured as Component of the Month in Plotly's newsletter.
If you miss the pandas functionality of df\.style\.background_gradient or df\.style\.bar you now have this functionaliy in AgGrid tables.
Check it out here, together with other great updates:
🔵 Pose boolean True/False questions only, otherwise you will probably get errors
🔵 Pose questions such that True is good, and False is bad to be consistent with other questions
bit.ly/3L3Dcwo
#advertools #Python #DataScience #GenerativeAI #AI #SEO
2/2
Google's helpful content checker tool (update)
Minor update in functionality, with potentially big implications:
You can now edit any or all of the questions to evaluate your articles to customize the evaluation.
What kinds of bulk questions you want to ask an LLM about your content?
1/2
🔵 Next: questions can easily be modified for semantic data, entities, or anything else that might make sense. Any suggestions?
Articles are crawled with advertools, sent to the OpenAI API, which responds with a simple True/False (no mumbo jumbo) answers per URL per criterion.
bit.ly/3L3Dcwo
2/2
AI-Powered Bulk Content Audits
Google's helpful content checker tool (updated)
🔵 Evaluate which of the guidelines your articles satisfy
🔵 Get an average score for all articles (up to 25)
🔵 Full data (each question per URL, with title, and body text)
#advertools #Python #DataScience #AI #SEO
1/2
🔵 Basics of custom extraction using XPath and/or CSS selectors
🔵 The structure of the crawl file for a deeper understanding
🔵 Custom settings for controlling the crawl process
bit.ly/3WTpz9p
2/2
If #crawling & #scraping websites with #Python and #advertools is something you want to get started with, I have a tutorial for that:
🔵 Basics of the crawl function
🔵 List mode
🔵 Spider mode
🔵 Controlling which links get followed
- Using URL regex
- Using URL query parameters
1/2
Thanks!
Looking forward to reading/watching both :)
I love @lazarinastoy.com way of deciding using data and solution characteristics. @eliasdabbas.bsky.social also has a brilliant approach to considering wheater to build an LLM apps - includes risk/harm of being wrong which is so needed blog.adver.tools/posts/llm-ap...
Oh, thank you!
Glad you liked it. Thanks for sharing.
🔵 Count (and get percentages) of all tags across crawled pages
🔵 Count duplicated tag contents
🔵 Get ngrams of any tag
🔵 Enjoy
bit.ly/4aI5p85
2/2
Python + advertools script for auditing and analyzing structured data
🔵 Go one step deeper than, "Does the website have structured data?"
🔵 Get JSON-LD, Twitter, and OpenGraph tags
bit.ly/4aI5p85
#DataScience #advertools #SEO #SEM #DigitalMarketing #Python #StructuredData
1/2
Python + advertools script to download & visualize XML sitemaps
🔵 Get the URL structure of all URLs in the sitemap
🔵 Visualize publishing trends
🔵 CSV export of the sitemap(s)
🔵 Emailable HTML charts
🔵 uv run adv_sitemaps.py ROBOTS_URL
#advertools #DataScience #SEO #Python
youtu.be/HX3cVI5TEBY
GSC Data from GBQ export
Anonymous queries (shown here as "nan") seem to form a much larger share of overall impressions/clicks than I thought they would.
Here are examples where anonymous impressions are 12-16% of the total impressions & is one of the top queries.
Any similar observations?
Test changes in robots files and their effects on every URL in the XML sitemap, and for every User-agent.
Uses and extends yesterday's script for locally checking any changes before deploying a new robots file.
youtu.be/BYYZkbfUJYM
Python script for checking if your robots rules block URLs in your XML sitemaps
🔵 Provide a robots URL and get the full report
🔵 Runs through all combinations of User-agent/URL combinations
🔵 Runs thousands of tests in bulk
www.youtube.com/watch?v=RtHu...
#advertools #DataScience #SEO #Python
🔵 Locate those broken links (which pages link to them, and what anchor text is used)
🔵 Do the same with external links with the other advertools crawler
🔵 Enjoy
bit.ly/3BQ5z08
2/2
How to create a broken links checker with Python + advertools
A quick how-to guide on how to achieve that with a site crawled with advertools
🔵 Get a mapping of all links on the site
🔵 Find error URLs (define "errors" any way you want)
#DataScience #SEO #advertools #Python #pandas
1/2
Because you don't need to upload any documents, explain, clarify, one-shot, few-shot...
You've already all-shotted yourself to Google.
You just have to enable their assistant/companion/life-partner to help you, which would span most aspects of your life.
Happy Thursday.
2/2
Google is still sending me notifications whenever OpenAI publishes a new video in their 12 release series.
All because I once wrote this in a Google docs sheet (which I've deleted a day or two after).
On this front, Google might have a huge edge over OpenAI.
1/2
Word of the day is ‘forswunk’ (13th century): exhausted by work.
I like to add ‘foreswunk’, exhausted before you even begin.
And all this is guided by your domain knowledge (SEO/SEM/digital marketing), and so, builds on it and makes your knowledge even more useful.
Imagine if someone now doesn't know the difference between Generative AI (the field) and ChatGPT (the most popular tool in the field).
Happy Monday.
4/4
It includes a little programming, and a lot of data skills (visualization, processing, manipulation, analysis, ML/DL/AI, guidelines, and more). It's really interesting, enjoyable, and takes your data work to a whole new level.
3/4
This is from the first few minutes of MIT's computer science course, explaining also why "computer science" is a bad name for the discipline.
If you want to get ahead in "Python SEO", get into Data Science. That is the essence of what we are doing with Python.
2/4
Python SEO
"When some field is just getting started and you don't really understand it very well [Data Science], it's very easy to confuse the essence of what you're doing with the tools that you use [Python]."
– Harold Abelson
1/4
🔵 Contains links to the website's content (like a sitemap)
🔵 Each HTML page on the website would have another markdown version (ending with .md)
🔵 Python library documentation pages with a link to (rst) source are almost there
More details on llmstxt[.]org
Thanks to @jph.bsky.social
2/2
SEO -> LLMO
/robots.txt -> /llms.txt
A new interesting proposal for creating a special file for LLM's to more easily and cost-effectively understand, analyze, and utilize a website's content.
🔵 Lives on the root of the domain
🔵 Is in markdown format
1/2
The sitemap_to_df function converts a sitemap(index) to a DataFrame
Use this function to show the distribution of lastmod dates:
adviz.ecdf(sitemap, x="lastmod", hovername="loc")
And this one to create a treemap of domain/dir_1/dir_2
adviz.url_structure(sitemap["loc"])
2/2