You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update README.md with a better description of the Python capabilities
* Update pyproject.toml and Dependencies
* Revert last pyproject.toml command name
* Add non-privileged user to Docker
* Fix failing test cases
* Add supply chain attestations to GitHub Action
* Update for failing Docker builds
Copy file name to clipboardExpand all lines: README.md
+69-4Lines changed: 69 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,18 @@
1
1
Python SEO and GEO Analyzer
2
-
===================
2
+
===========================
3
3
4
-
A modern SEO and GEO analysis tool that combines technical optimization and authentic human value. Beyond traditional site crawling and structure analysis, it uses AI to evaluate content's expertise signals, conversational engagement, and cross-platform presence. It helps you maintain strong technical foundations while ensuring your site demonstrates genuine authority and value to real users.
A modern SEO and GEO (Generative AI Engine Optimization or better AI Search Optimization) analysis tool that combines technical optimization and authentic human value. Beyond traditional site crawling and structure analysis, it uses AI to evaluate content's expertise signals, conversational engagement, and cross-platform presence. It helps you maintain strong technical foundations while ensuring your site demonstrates genuine authority and value to real users.
5
8
6
9
The AI features were heavily influenced by the clickbait-titled SEL article [A 13-point roadmap for thriving in the age of AI search](https://searchengineland.com/seo-roadmap-ai-search-449199).
7
10
11
+
Note About Python
12
+
-----------------
13
+
14
+
I've written quite a bit about the speed of Python and how there are very specific use cases where it isn't the best choice. I feel like crawling websites is definitely one of those cases. I wrote this tool in Python around 2010 to solve thea very specific need of crawling some small HTML-only websites for startups I was working at. I'm excited to see how much it has grown and how many people are using it. I feel like Python SEO Analyzer is acceptable for most smaller use cases, but if you are looking for something faster, I've built a much faster and more comprehensive tool [Black SEO Analyzer](https://github.com/sethblack/black-seo-analyzer).
15
+
8
16
Installation
9
17
------------
10
18
@@ -16,10 +24,67 @@ pip install pyseoanalyzer
16
24
17
25
### Docker
18
26
19
-
The docker image is available on [Docker Hub](https://hub.docker.com/r/sethblack/python-seo-analyzer) and can be run with the same command-line arguments as the script.
27
+
#### Using the Pre-built Image from Docker Hub
28
+
29
+
The easiest way to use the Docker image is to pull it directly from [Docker Hub](https://hub.docker.com/r/sethblack/python-seo-analyzer).
30
+
31
+
```bash
32
+
# Pull the latest image
33
+
docker pull sethblack/python-seo-analyzer:latest
34
+
35
+
# Run the analyzer (replace example.com with the target URL)
36
+
# The --rm flag automatically removes the container when it exits
37
+
docker run --rm sethblack/python-seo-analyzer http://example.com/
38
+
39
+
# Run with specific arguments (e.g., sitemap and HTML output)
40
+
# Note: If the sitemap is local, you'll need to mount it (see mounting example below)
41
+
docker run --rm sethblack/python-seo-analyzer http://example.com/ --sitemap /path/inside/container/sitemap.xml --output-format html
42
+
43
+
# Run with AI analysis (requires ANTHROPIC_API_KEY)
44
+
# Replace "your_api_key_here" with your actual Anthropic API key
45
+
docker run --rm -e ANTHROPIC_API_KEY="your_api_key_here" sethblack/python-seo-analyzer http://example.com/ --run-llm-analysis
46
+
47
+
# Save HTML output to your local machine
48
+
# This mounts the current directory (.) into /app/output inside the container.
49
+
# The output file 'results.html' will be saved in your current directory.
50
+
# The tool outputs JSON by default to stdout, so we redirect it for HTML.
51
+
# Since the ENTRYPOINT handles the command, we redirect the container's stdout.
52
+
# We need a shell inside the container to handle the redirection.
53
+
docker run --rm -v "$(pwd):/app/output" sethblack/python-seo-analyzer /bin/sh -c "seoanalyze http://example.com/ --output-format html > /app/output/results.html"
54
+
# Note for Windows CMD users: Use %cd% instead of $(pwd)
55
+
# docker run --rm -v "%cd%:/app/output" sethblack/python-seo-analyzer /bin/sh -c "seoanalyze http://example.com/ --output-format html > /app/output/results.html"
56
+
# Note for Windows PowerShell users: Use ${pwd} instead of $(pwd)
57
+
# docker run --rm -v "${pwd}:/app/output" sethblack/python-seo-analyzer /bin/sh -c "seoanalyze http://example.com/ --output-format html > /app/output/results.html"
58
+
59
+
60
+
# Mount a local sitemap file
61
+
# This mounts 'local-sitemap.xml' from the current directory to '/app/sitemap.xml' inside the container
62
+
docker run --rm -v "$(pwd)/local-sitemap.xml:/app/sitemap.xml" sethblack/python-seo-analyzer http://example.com/ --sitemap /app/sitemap.xml
63
+
# Adjust paths and Windows commands as needed (see volume mounting example above)
20
64
21
65
```
22
-
docker run sethblack/python-seo-analyzer [ARGS ...]
66
+
67
+
#### Building the Image Locally
68
+
69
+
You can also build the Docker image yourself from the source code. Make sure you have Docker installed and running.
description = "An SEO tool that analyzes the structure of a site, crawls the site, count words in the body of the site and warns of any technical SEO issues."
0 commit comments