{"id":31299209,"url":"https://github.com/jamesaphoenix/python_for_seo","last_synced_at":"2025-09-25T00:07:36.045Z","repository":{"id":41570163,"uuid":"262785236","full_name":"jamesaphoenix/Python_For_SEO","owner":"jamesaphoenix","description":"A 16-Part Free Course Demonstrating All Of The Different Ways That You Can Use Python To Improve Your SEO Processes.","archived":false,"fork":false,"pushed_at":"2024-05-20T15:01:35.000Z","size":23846,"stargazers_count":140,"open_issues_count":1,"forks_count":33,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-05-20T17:30:15.859Z","etag":null,"topics":["pandas","python","seo","seo-processes"],"latest_commit_sha":null,"homepage":"https://understandingdata.com","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamesaphoenix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-10T12:46:05.000Z","updated_at":"2024-05-20T15:50:42.000Z","dependencies_parsed_at":"2022-07-14T20:30:39.963Z","dependency_job_id":null,"html_url":"https://github.com/jamesaphoenix/Python_For_SEO","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jamesaphoenix/Python_For_SEO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesaphoenix%2FPython_For_SEO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesaphoenix%2FPython_For_SEO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesaphoenix%2FPython_For_SEO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesaphoenix%2FPython_For_SEO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesaphoenix","download_url":"https://codeload.github.com/jamesaphoenix/Python_For_SEO/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesaphoenix%2FPython_For_SEO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276837354,"owners_count":25713375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pandas","python","seo","seo-processes"],"created_at":"2025-09-25T00:07:34.250Z","updated_at":"2025-09-25T00:07:36.039Z","avatar_url":"https://github.com/jamesaphoenix.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐍 Python For SEO 🐍\n\nA 16 part free course demonstrating all of the different ways that you can use Python to improve your SEO processes.\n\n----\n\nPrerequisites:\n- Basic Programming Skills (variables, for loops, if statements).\n- If you don't have any programming experience, I would recommend [completing this python programming course.](https://www.youtube.com/watch?v=rfscVS0vtbw)\n- A willingness to learn packages, libraries \u0026 new methodologies.\n\n----\n\nIts time to level up your SEO game, so grab a ☕ and get ready to start learning some more Python!\n\n----\n\nEvery Lesson Can Be Found Under The PythonForSEO Section (within the main nav of https://understandingdata.com)!\nYou can also find the YouTube content on the two following channels:\n\n- [UnderstandingData](https://www.youtube.com/channel/UCLKL6bVqM1WM8VJavfokGSg)\n\n----\n\n# Course Content:\n\n## Keywords\n\n1. [Keyword De-duplication Techniques + Comparing Keyword Lists + Data Manipulation With Pandas + Stemming/Lemmatization With Pandas](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/1_Keywords)\n\n## Bulk Operations With CSV Files\n\n2. [Combining Multiple CSV Files](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/2_bulk_csv_operations)\n3. [Deleting Files, Folders And Specific File Types](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/3_how_to_delete_multiple_local_files)\n\n## Google Cloud Platform Setup\n4. [How To Setup A Google Cloud Project With Google Sheets API Activated](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/4_how_to_setup_a_google_project)\n\n## Google Sheets\n\n5. [Google Sheets With Pygsheets \u0026 Pandas (How to read and write to google sheets in Python)](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/5_google_sheets_with_pandas)\n\n## Images\n\n6. [How To Download Multiple Image URLs To Your Computer](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/6_downloading_multiple_images)\n7. [How To Compress Single \u0026 Multiple Images](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/7_image_compression)\n8. [How To Resize \u0026 Compress Single \u0026 Multiple Images](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/8_resizing_and_compressing_images)\n9. [How To Convert Images To Newer Formats (.webp)](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/9_converting_images_to_optimised_formats)\n\n## Screaming Frog Automation\n\n10. [How Use Screaming Frog With The Command Line (Mac + Windows)](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/10_automating_screaming_frog)\n11. [How To Setup Screaming Frog In The Cloud (With Remote Desktop)](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/11_cloud_crawling_with_screaming_frog)\n\n## Web Scraping\n\n12. [Web Scraping With Beautiful Soup](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/12_web_scraping_with_python_and_beautifulsoup)\n13. [How To Create A Asychronous Web Scraper In Python Using Aiohttp + Asyncio](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/13_asychronous_web_scraping) \n14. [How To Easily Find All Of The Sitemap.xml Files On A Website](https://github.com/jamesaphoenix/Python_For_SEO)\n15. [How To Scrape Text From Multiple Web Pages](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/15_how_to_extract_scrape_text_from_multiple_web_pages)\n16. [How To Turn A .csv File Into A .json File](https://github.com/jamesaphoenix/Python_For_SEO/tree/master/Course/16_how_to_turn_a_csv_into_json)\n\n\n\n\u003c!--\n15. [Web Scraping Pages From Sitemap.xml Files](#)\n16. [How To Extract Text Content + HTML From Pages At Scale](#)\n\n## NLP\n\n17. [How To Identify All Of The Entities On A HTML Page - Googles NLP API](#)\n18. [How To Extract Semantic Synonyms / Keywords To Enrich Your HTML Pages](#)\n19. [Named Entity Linking - How To Build A Knowledge Graph](#)\n20. [Sentiment Analysis of HTML Pages + Finding Pages with Poor Readability Scores](#) --\u003e\n\n\n\n\u003c!-- ## Web Scraping \u0026 Sitemaps\n\nWeb Scraping Pages from Sitemap.xml files\nSitemap Automation\n\n## Schema Optimisation\n\nHow to extract schema at scale\nHow to create video or article schema At Scale\n\n## Google Cloud Platform Continued\n\nGoogle Page Speed Insights\nCreating a BigQuery Datawarehouse with Google Analytics + Google Search Console Data\n\n## Content Performance With Pandas\n\nContent Performance + Leveling Up With Pandas\n\n## Content De-duplication Techniques\n\nContent De-duplication Techniques\nGrouping HTML Pages\n\n## The Power Of Python Combinations - https://www.sammyseo.com/product-comparison-keywords/\n\nComparing Keyword Intersections Between Multiple Keyword Lists (from Xn domains)\nComparing Phrase Cominbations By Generating All Possible Phrases For SaaS Alternative Sales Pages\n\n## Algorithm Updates\n\nComparing 5 domains across a series of algorithm updates to find the winners vs loosers\n\n## Data Pipelines, DataForSEO \u0026 BigQuery\n\nThe Comprehensive Guide To GoogleBigQuery With Python\nHow To Compare GSC Account Permissions vs GA Account Permissions\nCreating Data Pipelines with DataForSEO (Data Engineering)\n\n## Advanced API Techniques (Combining multiple APIs and blending data sources)\n\nHow to connect to your Bing API Data\nCombining PPC \u0026 GSC Data to uncover new keyword opportunities for paid search\nIdentify Keyword Cannabilisation with GSC + GA\n\n## Log File Analysis\n\nServer Log File Analysis\n\n## G-suite Automation\n\nGoogle Drive Automation\n\n## Wordpress Automation + Shopify\n\nHow to automatically update a series of Wordpress Posts from 2019\n\u003c!-- How to automatically check all of your blog posts or pages for spelling mistakes - www.grammarbot.io\nCreating JSON-LD Schema With Python\nHow To Find The Fastest Wordpress Theme Using Google Page Speed Insights\nHow To Find The Fastest Shopify Theme Using Google Page Speed Insights\n\n## Content Promotion\n\nCreating A LinkedIn Bot For Finding Relevant Influencers + Sending Direct Messages\nCreating A Facebook Bot For Auto-posting Content To Relevant Groups + Collecting Mod Facebook Accounts For Content Approval\n\n## Automatic Text Generation\n\nAutomatically Creating Text With GP2-Simple From LinkedIn Posts - https://github.com/minimaxir/gpt-2-simple\nAutomatically Creating Title Tags + Meta Descriptions\nAutomatically Generate Image Captions with Pythia \u0026 MMF\nAutomatically Generate Meta Descriptions At Scale\n\n## Automatic Text Summarisation\n\nAutomatically Summarise Your HTML Pages For Social Media Copy\n\n## Media Synthesis\n\nHow To Create Featured Images / Author Profile Pictures Using GANs\n\n## Social Media Text-Mining\n\nCreating A Twitter Bot To Automatically Re-tweet Niche Influencer's Posts To Partially Automate Our Twitter Feed\nTopic Modelling With Social Media Data\nNetwork Analysis With Social Media Data\nHow To Do Influencer Research With The Twitter API\nScraping Phone Numbers + Email Addresses Across Twitter, LinkedIn, Web (Email/Phone/First Name + Last Name + Address) --\u003e\n\n\u003c!-- ## Intent Classification\n\nScraping SERP Intent - https://medium.com/@benjburkholder/uncovering-google-search-intent-serpapi-and-python-9d0f93fcb315\nIntent Classification of Keywords With Deep Learning - https://venturebeat.com/2019/11/30/a-super-fast-machine-learning-model-for-finding-user-search-intent/\n\n\n## Competitor / Content Research\n\nHow to automatically track all of your competitors blogging strategy via RSS feeds and email in Python\nFind PeopleAlsoAsked Questions\nHow To Find SERP Feature Content Gaps (Comparing Existing Content Features on the SERPs vs JSON elements that map to these content elements) - https://www.slideshare.net/hamletbatista/scaling-keyword-research-to-find-content-gaps\n\n## Internal Links\n\nInternal Links Graphs with NetworkX + Internal Link Recommendations\n\n## DevOps Automation\n\nHow to use Selemium With Python\nHow to run CRON jobs for SEO\nHow to run Cloud Functions + Cloud Tasks for SEO\nHow to run Screaming Frog inside of a .sh bash script / OS packages to automate your ScreamingFrog Data Pipelines!\n\n## SEO Migrations\nHow To Find A List Of Old URLs with Wayback CDX API\n\n## SEO Testing\n\nSEO Split Test Using Python + CausalImpact + Tag Manager\nStratified Sampling Using Google Analytics + Python\nSEO Split-Testing Experiments using Google Tag Manager\nCausalImpact for SEO\n\n## SEO Forecasting\nSpot (positive/negative) trends in GA (sessions)\nForecasting SEO Traffic with Sarimax + Facebook Prophet --\u003e\n\n----\n\n- Bonus Content: How to prospect for local businesses (Google Maps) with Python\n- Bonus Content: Reddit API Harvesting questions from reddit API\n- Bonus Content: Web scraping Quora with Selenium\n- Bonus Content: How to curate all of the Facebook Groups, LinkedIn Groups for a specific niche with Python\n- Bonus Content: Automatically generate sentences / novels with GPT2\n\n----\n\n## Useful Python Packages For AI Marketers\n- [The Super Duper NLP Repo](https://notebooks.quantumstat.com/)\n- [Sci-kit learn](https://scikit-learn.org/)\n- [Hugging Face Transformers](https://huggingface.co/transformers/)\n- [Data Manipulation](https://pandas.pydata.org/)\n\n## Useful Resources For AI Marketers\n### SEO APIs\n- [Dataforseo](https://dataforseo.com/)  \n- [SEMrush](https://www.semrush.com/api-documentation/)  \n- [Ahrefs](https://ahrefs.com/api)  \n- [SEOmoz](https://moz.com/api)\n- [OPR](https://www.domcop.com/openpagerank/documentation)  \n- [OnCrawl](http://developer.oncrawl.com/)\n\n### Useful APIs for Internal Data Pipelines \u0026 Internal Operations / Reporting\n- [Google Search Console](https://developers.google.com/webmaster-tools)\n- [Google Analytics](https://developers.google.com/analytics/devguides/reporting/core/v4)\n- [Google Analytics Management API](https://developers.google.com/analytics/devguides/config/mgmt/v3)\n- [Google Drive API](https://developers.google.com/drive/api/v3/about-sdk)\n- [Google Docs API](https://developers.google.com/docs/api)\n- [Google Sheets API](https://developers.google.com/sheets/api)\n\n### Link Database\n[CommonCrawl](https://commoncrawl.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesaphoenix%2Fpython_for_seo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesaphoenix%2Fpython_for_seo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesaphoenix%2Fpython_for_seo/lists"}